Linux 操作系统中有大量强大的命令行工具,下面我将分类介绍一些最常用的指令及其用法。
文件与目录操作
1. ls - 列出目录内容
```
ls [选项] [目录名]
```
常用选项:
-
`-l`:长格式显示(详细信息)
-
`-a`:显示所有文件(包括隐藏文件)
-
`-h`:人类可读的文件大小(配合 -l 使用)
-
`-t`:按修改时间排序
-
`-r`:反向排序
示例:
```bash
ls -lah /home # 显示/home目录下所有文件的详细信息
```
2. cd - 切换目录
```
cd [目录路径]
```
特殊路径:
-
`cd ~` 或 `cd`:返回用户主目录
-
`cd ..`:返回上级目录
-
`cd -`:返回上一次所在的目录
3. pwd - 显示当前工作目录
```
pwd
```
4. mkdir - 创建目录
```
mkdir [选项] 目录名
```
常用选项:
-
`-p`:递归创建所需目录结构
-
`-m`:设置目录权限
示例:
```bash
mkdir -p project/{src,doc,bin} # 创建project目录及其子目录
```
5. cp - 复制文件/目录
```
cp [选项] 源文件 目标文件
cp [选项] 源文件... 目标目录
```
常用选项:
-
`-r`:递归复制目录
-
`-i`:覆盖前提示
-
`-u`:只复制更新的文件
-
`-v`:显示复制过程
示例:
```bash
cp -r /home/user/documents /backup/ # 递归复制目录
```
6. mv - 移动/重命名文件
```
mv [选项] 源文件 目标文件
mv [选项] 源文件... 目标目录
```
常用选项:
-
`-i`:覆盖前提示
-
`-v`:显示移动过程
示例:
```bash
mv oldname.txt newname.txt # 重命名文件
mv *.txt /target/dir/ # 移动所有txt文件
```
7. rm - 删除文件/目录
```
rm [选项] 文件...
```
常用选项:
-
`-r`:递归删除目录
-
`-f`:强制删除,不提示
-
`-i`:删除前提示确认
示例:
```bash
rm -rf obsolete_dir/ # 强制递归删除目录(谨慎使用!)
```
8. find - 查找文件
```
find [路径] [表达式]
```
常用表达式:
-
`-name "pattern"`:按名称查找
-
`-type f/d`:查找文件/目录
-
`-mtime +n`:查找n天前修改的文件
-
`-size +10M`:查找大于10MB的文件
-
`-exec command {} \;`:对找到的文件执行命令
示例:
```bash
find /home -name "*.txt" -type f # 查找/home下所有txt文件
find . -mtime -7 -exec ls -l {} \; # 查找7天内修改的文件并列出详细信息
```
9. grep - 文本搜索
```
grep [选项] 模式 [文件...]
```
常用选项:
-
`-i`:忽略大小写
-
`-r`:递归搜索目录
-
`-n`:显示行号
-
`-v`:反向匹配(不包含模式的行)
-
`-l`:只显示包含匹配的文件名
-
`-E`:使用扩展正则表达式
示例:
```bash
grep -rn "error" /var/log/ # 递归搜索/var/log/中包含"error"的行
ps aux | grep sshd # 过滤包含sshd的进程
```
文件内容查看与处理
10. cat - 连接并显示文件内容
```
cat [选项] [文件...]
```
常用选项:
-
`-n`:显示行号
-
`-b`:显示非空行行号
示例:
```bash
cat file1 file2 > combined # 合并文件
cat -n /etc/passwd # 显示带行号的文件内容
```
11. less/more - 分页查看文件
```
less [选项] 文件名
more [选项] 文件名
```
常用操作(less中):
-
空格:下一页
-
b:上一页
-
/pattern:搜索
-
q:退出
12. head/tail - 查看文件开头/结尾
```
head [选项] 文件
tail [选项] 文件
```
常用选项:
-
`-n NUM`:显示NUM行(默认10)
-
`-f`:跟踪文件变化(常用于日志)
示例:
```bash
head -n 20 largefile.log # 显示文件前20行
tail -f /var/log/syslog # 实时查看日志更新
```
13. wc - 统计文件内容
```
wc [选项] 文件
```
常用选项:
-
`-l`:行数
-
`-w`:单词数
-
`-c`:字节数
-
`-m`:字符数
示例:
```bash
wc -l access.log # 统计文件行数
```
14. sort - 排序文件内容
```
sort [选项] 文件
```
常用选项:
-
`-n`:按数值排序
-
`-r`:逆序排序
-
`-k N`:按第N列排序
-
`-u`:去重
示例:
```bash
sort -nrk 3 data.txt # 按第三列数值逆序排序
```
15. uniq - 报告或忽略重复行
```
uniq [选项] [输入文件 [输出文件]]
```
常用选项:
-
`-c`:统计重复次数
-
`-d`:只显示重复行
-
`-u`:只显示不重复行
通常与sort配合使用:
```bash
sort file.txt | uniq -c # 统计每行出现次数
```
16. cut - 提取文件列
```
cut [选项] 文件
```
常用选项:
-
`-d DELIM`:指定分隔符(默认为制表符)
-
`-f LIST`:选择指定字段
示例:
```bash
cut -d: -f1,7 /etc/passwd # 提取用户名和登录shell
```
17. sed - 流编辑器
```
sed [选项] '命令' 文件
```
常用命令:
-
`s/pattern/replacement/`:替换
-
`d`:删除行
-
`p`:打印行
示例:
```bash
sed 's/foo/bar/g' file.txt # 全局替换foo为bar
sed -i.bak 's/old/new/' file # 直接修改文件并备份
```
18. awk - 文本处理工具
```
awk '模式 {动作}' 文件
```
常用变量:
-
`$0`:整行
-
`1,2,...`:第1,2,...字段
-
`NF`:字段数
-
`NR`:当前行号
示例:
```bash
awk -F: '{print 1, 7}' /etc/passwd # 同cut示例
awk '3 \> 100 {print 0}' data.txt # 打印第三列大于100的行
```
系统信息与进程管理
19. ps - 显示进程状态
```
ps [选项]
```
常用选项组合:
-
`aux`:显示所有用户的所有进程
-
`-ef`:全格式列表
示例:
```bash
ps aux | grep nginx # 查找nginx进程
```
20. top/htop - 动态显示进程信息
```
top
htop # 需要安装,功能更强大
```
常用操作:
-
q:退出
-
k:杀死进程(输入PID)
-
M:按内存排序
-
P:按CPU排序
21. kill - 终止进程
```
kill [选项] PID...
killall [选项] 进程名...
```
常用选项:
-
`-9`:强制终止(SIGKILL)
-
`-15`:正常终止(SIGTERM,默认)
示例:
```bash
kill -9 1234 # 强制终止PID为1234的进程
killall -u username # 终止某用户的所有进程
```
22. free - 显示内存使用情况
```
free [选项]
```
常用选项:
-
`-h`:人类可读格式
-
`-m`:以MB为单位
示例:
```bash
free -h # 显示易读的内存信息
```
23. df - 显示磁盘空间
```
df [选项] [文件...]
```
常用选项:
-
`-h`:人类可读格式
-
`-T`:显示文件系统类型
示例:
```bash
df -hT # 显示所有挂载点的磁盘使用情况
```
24. du - 估算文件/目录空间使用
```
du [选项] [文件...]
```
常用选项:
-
`-h`:人类可读格式
-
`-s`:只显示总计
-
`--max-depth=N`:显示N级子目录
示例:
```bash
du -sh /var/log/ # 显示/var/log/的总大小
```
25. uname - 显示系统信息
```
uname [选项]
```
常用选项:
-
`-a`:显示所有信息
-
`-r`:内核版本
-
`-m`:机器硬件名称
示例:
```bash
uname -a # 显示所有系统信息
```
26. uptime - 显示系统运行时间
```
uptime
```
输出示例:
```
10:30:45 up 15 days, 3:25, 2 users, load average: 0.15, 0.10, 0.05
```
网络相关
27. ifconfig/ip - 网络接口配置
```
ifconfig [接口] [选项] # 传统命令
ip addr show # 现代替代命令
```
示例:
```bash
ifconfig eth0 # 显示eth0接口信息
ip a # 显示所有接口信息
```
28. ping - 测试网络连通性
```
ping [选项] 主机名/IP
```
常用选项:
-
`-c N`:发送N个包后停止
-
`-i N`:设置间隔N秒
示例:
```bash
ping -c 4 google.com # 向google.com发送4个ping包
```
29. netstat/ss - 网络统计信息
```
netstat [选项] # 传统命令
ss [选项] # 现代替代命令
```
常用选项:
-
`-t`:TCP连接
-
`-u`:UDP连接
-
`-l`:监听端口
-
`-p`:显示进程信息
-
`-n`:数字形式显示地址
示例:
```bash
ss -tulnp # 显示所有监听端口及相关进程
```
30. traceroute/tracepath - 跟踪路由路径
```
traceroute 主机名/IP
tracepath 主机名/IP # 不需要root权限
```
31. wget/curl - 下载工具
```
wget [选项] URL
curl [选项] URL
```
常用选项:
-
`-O`:保存到文件(wget)
-
`-o FILE`:保存到文件(curl)
-
`-L`:跟随重定向
示例:
```bash
wget https://example.com/file.zip
curl -o file.zip https://example.com/file.zip
```
32. ssh - 安全远程登录
```
ssh [选项] 用户名@主机 [命令]
```
常用选项:
-
`-p 端口`:指定端口
-
`-i 密钥文件`:使用指定密钥
示例:
```bash
ssh -p 2222 [email protected] 'ls -l /tmp'
```
权限管理
33. chmod - 更改文件权限
```
chmod [选项] 模式 文件...
```
模式格式:
-
数字模式:如 `755`
-
符号模式:如 `u+x,g-w,o=r`
示例:
```bash
chmod 755 script.sh # rwxr-xr-x
chmod +x script.sh # 添加执行权限
```
34. chown - 更改文件所有者
```
chown [选项] 用户[:组] 文件...
```
常用选项:
- `-R`:递归更改
示例:
```bash
chown user:group file.txt # 更改所有者和组
chown -R www-data:www-data /var/www # 递归更改
```
35. passwd - 更改用户密码
```
passwd [用户名] # 无参数更改当前用户密码
```
压缩与归档
36. tar - 归档工具
```
tar [选项] 文件...
```
常用选项:
-
`-c`:创建归档
-
`-x`:提取归档
-
`-v`:显示过程
-
`-f FILE`:指定归档文件
-
`-z`:gzip压缩/解压
-
`-j`:bzip2压缩/解压
-
`-J`:xz压缩/解压
示例:
```bash
tar -czvf archive.tar.gz dir/ # 创建gzip压缩的归档
tar -xzvf archive.tar.gz # 解压gzip归档
```
37. gzip/gunzip - 压缩/解压
```
gzip [选项] 文件...
gunzip [选项] 文件...
```
常用选项:
-
`-d`:解压(gzip)
-
`-k`:保留原文件
-
`-9`:最大压缩
示例:
```bash
gzip -9 largefile.log # 最大压缩
gunzip largefile.log.gz # 解压
```
38. zip/unzip - ZIP压缩/解压
```
zip [选项] 压缩包名 文件...
unzip [选项] 压缩包名
```
常用选项:
-
`-r`:递归压缩目录
-
`-d 目录`:指定解压目录
示例:
```bash
zip -r archive.zip dir/
unzip archive.zip -d target_dir/
```
系统管理
39. sudo - 以超级用户权限执行命令
```
sudo [选项] 命令
```
常用选项:
-
`-i`:切换到root shell
-
`-u 用户`:以指定用户身份执行
40. su - 切换用户
```
su [选项] [用户名]
```
无参数时切换到root
41. useradd/userdel - 添加/删除用户
```
useradd [选项] 用户名
userdel [选项] 用户名
```
常用选项:
-
`-m`:创建用户主目录
-
`-G 组`:指定附加组
-
`-r`:删除用户时同时删除主目录
示例:
```bash
useradd -m -G sudo newuser # 创建有sudo权限的用户
userdel -r olduser # 删除用户及其主目录
```
42. groupadd/groupdel - 添加/删除组
```
groupadd [选项] 组名
groupdel 组名
```
43. crontab - 定时任务管理
```
crontab [选项]
```
常用选项:
-
`-e`:编辑当前用户的crontab
-
`-l`:列出当前用户的crontab
-
`-r`:删除当前用户的crontab
44. systemctl - 系统服务管理
```
systemctl [命令] [服务]
```
常用命令:
-
`start`:启动服务
-
`stop`:停止服务
-
`restart`:重启服务
-
`status`:查看服务状态
-
`enable`:设置开机启动
-
`disable`:禁止开机启动
示例:
```bash
systemctl status nginx # 查看nginx状态
systemctl restart apache2 # 重启apache
```
其他实用命令
45. alias - 创建命令别名
```
alias 别名='命令'
```
示例:
```bash
alias ll='ls -alF'
```
46. history - 查看命令历史
```
history [选项]
```
常用选项:
-
`-c`:清除历史
-
`-d N`:删除第N条历史
常用操作:
-
`!N`:执行历史中第N条命令
-
`!!`:执行上一条命令
-
`!str`:执行最近以str开头的命令
47. which/whereis - 查找命令位置
```
which 命令
whereis [选项] 命令
```
whereis选项:
-
`-b`:只查找二进制文件
-
`-m`:只查找手册页
48. man - 查看命令手册
```
man [章节] 命令
```
常用章节:
-
1:用户命令
-
5:文件格式
-
8:管理员命令
49. ln - 创建链接
```
ln [选项] 源文件 目标文件
```
常用选项:
-
`-s`:创建符号链接
-
`-f`:强制创建
示例:
```bash
ln -s /path/to/file linkname # 创建符号链接
```
50. dd - 磁盘/文件转换与复制
```
dd [选项]
```
常用选项:
-
`if=FILE`:输入文件
-
`of=FILE`:输出文件
-
`bs=N`:块大小
-
`count=N`:复制N个块
示例:
```bash
dd if=/dev/sda of=disk.img bs=4M # 创建磁盘映像
dd if=/dev/zero of=/swapfile bs=1M count=1024 # 创建1GB交换文件
```
总结
以上是Linux中最常用的50个命令及其主要用法。掌握这些命令可以完成大多数日常系统管理任务。要深入了解每个命令,可以使用`man 命令名`查看完整手册。随着使用经验的积累,你会发现Linux命令行工具的强大和高效。