Linux常用命令手册:从入门到精通的100个必备命令

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脚本编程、正则表达式,进一步提升命令行效率。

发表评论