Linux命令行是每个系统管理员和开发者的必备技能。本文整理了100个最常用的Linux命令,配以详细示例,帮助你快速提升命令行效率。
一、文件与目录操作(1-20)
1. ls - 列出目录内容
# 基本用法
ls -la # 显示所有文件(包括隐藏文件)的详细信息
ls -lh # 人类可读的文件大小
ls -lt # 按修改时间排序
ls -lR # 递归列出子目录
2. cd - 切换目录
cd /var/www # 进入指定目录
cd ~ # 进入用户主目录
cd - # 返回上一个目录
cd .. # 进入上级目录
cd /var/www/html # 绝对路径
3. pwd - 显示当前目录
pwd # 显示当前工作目录的完整路径
4. mkdir - 创建目录
mkdir -p /path/to/dir1/dir2 # 递归创建多级目录
mkdir -m 755 mydir # 创建目录并设置权限
5. rmdir - 删除空目录
rmdir mydir # 只能删除空目录
6. cp - 复制文件
cp file1.txt file2.txt # 复制文件
cp -r dir1/ dir2/ # 递归复制目录
cp -i file1.txt file2.txt # 覆盖前提示
cp -u *.txt backup/ # 只复制更新的文件
7. mv - 移动/重命名
mv old.txt new.txt # 重命名
mv file.txt /tmp/ # 移动到目录
mv -i file1.txt file2.txt # 覆盖前提示
8. rm - 删除文件
rm file.txt # 删除文件
rm -r dir/ # 递归删除目录
rm -f file.txt # 强制删除,不提示
rm -rf dir/ # 强制递归删除(谨慎使用!)
9. touch - 创建空文件/更新时间
touch newfile.txt # 创建空文件
touch -t 202512312359 file.txt # 修改文件时间戳
10. cat - 查看文件内容
cat file.txt # 显示文件内容
cat -n file.txt # 显示行号
cat file1.txt file2.txt > all.txt # 合并文件
11. less - 分页查看
less largefile.log # 分页查看大文件
less +F /var/log/syslog # 实时跟踪日志(类似tail -f)
12. head - 查看文件开头
head file.txt # 显示前10行
head -n 20 file.txt # 显示前20行
head -c 1M file.bin # 显示前1MB
13. tail - 查看文件末尾
tail file.txt # 显示最后10行
tail -n 50 file.txt # 显示最后50行
tail -f /var/log/syslog # 实时跟踪日志
tail -f error.log | grep ERROR # 过滤错误信息
14. grep - 文本搜索
grep "error" log.txt # 搜索包含error的行
grep -n "error" log.txt # 显示行号
grep -i "error" log.txt # 忽略大小写
grep -r "TODO" /path/to/code/ # 递归搜索目录
grep -v "debug" log.txt # 反向搜索(排除debug)
grep -c "error" log.txt # 统计匹配行数
15. find - 查找文件
find /home -name "*.txt" # 按名称查找
find /var/log -size +100M # 查找大于100MB的文件
find /tmp -mtime +7 # 查找7天前修改的文件
find /home -user alice # 按所有者查找
find / -perm 777 # 按权限查找
16. locate - 快速定位文件
locate filename # 快速查找(依赖updatedb数据库)
updatedb # 更新数据库
17. which - 查找命令路径
which python3 # 显示python3的可执行文件路径
18. ln - 创建链接
ln -s /path/to/target link_name # 创建软链接
ln /path/to/target link_name # 创建硬链接
19. tree - 树形显示目录结构
tree # 显示当前目录树
tree -L 2 /etc # 显示2层深度
20. wc - 统计文件信息
wc -l file.txt # 统计行数
wc -w file.txt # 统计单词数
wc -c file.txt # 统计字节数
二、系统管理命令(21-40)
21. ps - 查看进程
ps aux # 显示所有进程
ps -ef | grep nginx # 查找nginx进程
22. top/htop - 实时监控
top # 系统监控
htop # 增强版(需安装)
23. kill - 终止进程
kill 1234 # 终止PID为1234的进程
kill -9 1234 # 强制终止
killall nginx # 终止所有nginx进程
24. systemctl - 服务管理
sudo systemctl start nginx # 启动服务
sudo systemctl stop nginx # 停止服务
sudo systemctl restart nginx # 重启服务
sudo systemctl status nginx # 查看状态
sudo systemctl enable nginx # 设置开机启动
25. df - 查看磁盘空间
df -h # 人类可读格式
df -i # 查看inode使用情况
26. du - 查看目录占用
du -sh /var/log # 显示目录总大小
du -h --max-depth=1 /home # 显示一级子目录大小
27. free - 查看内存
free -h # 人类可读格式
28. uptime - 系统运行时间
uptime # 显示运行时间和负载
29. uname - 系统信息
uname -a # 显示所有系统信息
30. whoami - 当前用户
whoami # 显示当前用户名
31. id - 用户信息
id # 显示当前用户UID/GID
id username # 显示指定用户信息
32. sudo - 提权执行
sudo apt update # 以root权限执行
sudo -i # 切换到root shell
33. su - 切换用户
su - username # 切换到指定用户
su # 切换到root(需密码)
34. chmod - 修改权限
chmod 755 script.sh # 设置权限
chmod +x script.sh # 添加执行权限
chmod -R 644 /var/www/html # 递归修改
35. chown - 修改所有者
chown user:group file.txt # 修改所有者和组
chown -R www-data:www-data /var/www # 递归修改
36. date - 日期时间
date # 显示当前时间
date +%Y-%m-%d # 格式化输出
date -s "2025-01-01 00:00:00" # 设置系统时间
37. cal - 日历
cal # 显示当月日历
cal 2025 # 显示2025年日历
38. history - 命令历史
history # 显示历史命令
history | grep docker # 搜索历史
39. alias - 命令别名
alias ll='ls -la' # 设置别名
alias # 查看所有别名
40. man - 查看手册
man ls # 查看ls命令手册
man -k keyword # 搜索相关命令
三、网络相关命令(41-60)
41. ping - 测试连通性
ping google.com
ping -c 4 8.8.8.8
42. curl - HTTP请求
curl https://example.com
curl -O https://example.com/file.zip
curl -I https://example.com # 仅获取头部
43. wget - 下载文件
wget https://example.com/file.zip
wget -c https://example.com/largefile.iso # 断点续传
44. ssh - 远程登录
ssh user@host
ssh -p 2222 user@host # 指定端口
ssh-keygen # 生成密钥对
ssh-copy-id user@host # 复制公钥
45. scp - 远程复制
scp file.txt user@host:/path/
scp -r dir/ user@host:/path/ # 递归复制目录
46. rsync - 同步文件
rsync -avz /src/ user@host:/dst/
47. netstat - 网络统计
netstat -tlnp # 查看监听端口
netstat -an | grep 80 # 查看80端口连接
48. ss - Socket统计
ss -tlnp # 查看TCP监听
49. ip - 网络配置
ip addr show # 显示网卡信息
ip route show # 显示路由表
50. dig/nslookup - DNS查询
dig example.com
nslookup example.com
51. host - DNS查询
host example.com
52. traceroute - 路由跟踪
traceroute google.com
53. iptables - 防火墙
sudo iptables -L -n -v
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
54. ufw - 简化防火墙
sudo ufw allow 22/tcp
sudo ufw enable
sudo ufw status
55. nmcli - NetworkManager
nmcli dev status
nmcli con show
56. wget - 下载
wget https://example.com/file.zip
57. curl - 传输数据
curl -X POST -d "key=value" https://api.example.com
58. nc/netcat - 网络工具
nc -zv host 80 # 端口扫描
59. tcpdump - 抓包
sudo tcpdump -i eth0 port 80
60. nmap - 网络扫描
nmap -sP 192.168.1.0/24
nmap -p 1-1000 host
四、文本处理命令(61-80)
61. sed - 流编辑器
sed 's/old/new/g' file.txt # 替换文本
sed -i 's/old/new/g' file.txt # 直接修改文件
62. awk - 文本处理
awk '{print $1}' file.txt # 打印第一列
awk -F: '{print $1}' /etc/passwd # 指定分隔符
63. sort - 排序
sort file.txt
sort -n file.txt # 按数字排序
sort -u file.txt # 去重
64. uniq - 去重
sort file.txt | uniq
sort file.txt | uniq -c # 统计重复次数
65. cut - 截取列
cut -d: -f1 /etc/passwd # 以:分隔取第一列
66. tr - 转换字符
echo "hello" | tr 'a-z' 'A-Z' # 转大写
tr -d '\r' < file.txt # 删除回车符
67. diff - 比较文件
diff file1.txt file2.txt
diff -u file1 file2 # unified格式
68. paste - 合并列
paste file1.txt file2.txt # 横向合并
69. join - 连接文件
join file1 file2
70. xargs - 参数传递
find . -name "*.log" | xargs rm
echo "a b c" | xargs -n1 echo
71. tee - 分流输出
ls -la | tee output.txt # 输出到屏幕和文件
72. xargs - 执行命令
find . -name "*.txt" | xargs wc -l
73. basename - 提取文件名
basename /path/to/file.txt # 输出 file.txt
74. dirname - 提取目录名
dirname /path/to/file.txt # 输出 /path/to
75. rev - 反转字符串
echo "hello" | rev # 输出 olleh
76. seq - 数字序列
seq 1 10 # 输出 1到10
77. factor - 分解因数
factor 100
78. yes - 重复输出
yes | head -n 10
79. clear - 清屏
clear
80. echo - 输出文本
echo "Hello World"
echo -e "Line1\nLine2" # 解析转义字符
五、压缩与打包(81-90)
81. tar - 打包
tar -czf archive.tar.gz /path/to/dir # 压缩
tar -xzf archive.tar.gz # 解压
tar -tzf archive.tar.gz # 查看内容
82. gzip/gunzip
gzip file.txt
gunzip file.txt.gz
83. zip/unzip
zip -r archive.zip dir/
unzip archive.zip
84. bzip2/bunzip2
bzip2 file.txt
bunzip2 file.txt.bz2
85. xz
xz file.txt
xz -d file.txt.xz
86. rar
rar a archive.rar files/
rar x archive.rar
87. 7z
7z a archive.7z files/
7z x archive.7z
88. dd - 磁盘复制
dd if=/dev/sda of=/dev/sdb # 磁盘克隆
89. cpio - 归档
find /path | cpio -ov > archive.cpio
90. ar - 静态库
ar rcs libfoo.a foo.o bar.o
六、权限与用户管理(91-100)
91. passwd - 修改密码
passwd # 修改当前用户密码
sudo passwd username # 修改指定用户密码
92. useradd - 创建用户
sudo useradd -m -s /bin/bash newuser
93. userdel - 删除用户
sudo userdel -r username
94. groupadd - 创建组
sudo groupadd developers
95. usermod - 修改用户
sudo usermod -aG sudo username # 添加到sudo组
96. su - 切换用户
su - username
97. sudo - 提权
sudo command
98. visudo - 编辑sudoers
sudo visudo
99. umask - 默认权限
umask # 查看当前umask
umask 022 # 设置umask
100. getfacl/setfacl - ACL权限
getfacl file.txt
setfacl -m u:username:rwx file.txt
总结
这100个命令涵盖了Linux日常使用的方方面面。建议:
- 每天练习5个命令,20天掌握核心
- 创建命令速查表,随时查阅
- 多用man和--help,学会自学
- 结合Shell脚本,提高自动化能力
📖 进阶建议:掌握这些命令后,可以学习Shell脚本编程、正则表达式,进一步提升命令行效率。