目录

Linux-命令终极指南分类详解与实战场景

Linux 命令终极指南:分类详解与实战场景

一、文件管理类

1. ls - 列出目录内容

作用 :查看文件与目录信息。

ls -lh /var/log       # 以人性化单位显示文件大小
ls -a ~/.ssh           # 显示隐藏文件(如 SSH 密钥)
ls -R /opt             # 递归列出子目录内容

2. cp - 文件复制

作用 :复制文件或目录。

cp -r /etc/nginx /backup/conf  # 递归复制配置目录
cp -v file.txt{,.bak}          # 备份文件(生成 file.txt.bak)

3. rm - 文件删除

作用 :删除文件或目录。

** 注意**: rm -rf 命令慎用,可能导致数据不可恢复!

rm -f *.log          # 强制删除日志文件
rm -rf /tmp/*        # 清空临时目录(危险操作!)

二、系统监控类

1. top / htop - 实时进程监控

作用 :查看 CPU、内存、进程状态。

top -p $(pgrep nginx)  # 仅监控 Nginx 进程
htop --sort=MEM        # 按内存使用排序(需安装 htop)

2. df / du - 磁盘空间分析

作用 :查看磁盘占用情况。

df -hT                # 查看磁盘分区与文件系统类型
du -sh /var/cache     # 统计目录总大小
du --max-depth=1 /home | sort -hr  # 按层级统计子目录大小

3. free - 内存监控

作用 :查看内存与交换分区使用情况。

free -h               # 人性化显示内存信息
free -s 2 -c 5        # 每 2 秒刷新,共 5 次

三、网络操作类

1. curl - 数据传输工具

作用 :下载文件、测试 API、发送 HTTP 请求。

curl -O https://example.com/file.zip  # 下载文件
curl -X POST -d "user=admin" http://api.local/login  # 发送 POST 请求

2. netstat / ss - 网络连接监控

作用 :查看端口监听与连接状态。

netstat -tunlp        # 查看所有监听的 TCP/UDP 端口
ss -s                 # 统计网络连接状态(性能优于 netstat)

3. ping / traceroute - 网络诊断

作用 :测试网络连通性与路径追踪。

ping -c 4 baidu.com   # 发送 4 次 ICMP 请求
traceroute -n 8.8.8.8 # 跟踪到 Google DNS 的路由路径

四、文本处理类

1. grep - 文本搜索

作用 :过滤日志或文件中的关键字。

grep "ERROR" /var/log/syslog      # 搜索错误日志
grep -r --include="*.log" "404" /var/www  # 递归搜索指定后缀文件

2. awk - 文本分析

作用 :按列提取数据。

awk '{print $1}' access.log       # 提取日志文件第一列(IP 地址)
df -h | awk '$NF=="/"{print $5}'  # 提取根分区使用百分比

3. sed - 文本替换

作用 :批量修改文件内容。

sed -i 's/old_string/new_string/g' config.txt  # 替换文件内容
sed -n '10,20p' file.txt          # 显示第 10-20 行内容

五、权限管理类

1. chmod - 修改权限

作用 :设置文件/目录权限。

chmod 644 file.txt    # 设置文件权限为 rw-r--r--
chmod -R 755 /var/www # 递归设置目录权限

2. chown - 修改归属

作用 :变更文件/目录所有者。

实战

chown www-data:www-data index.html  # 修改文件属主为 www-data
chown -R user:group /app            # 递归修改目录归属

六、压缩解压类

1. tar - 打包压缩

作用 :打包与解压 .tar.gz 文件。

tar -czf backup.tar.gz /data       # 压缩目录
tar -xzf backup.tar.gz -C /restore # 解压到指定路径

2. zip / unzip - ZIP 格式支持

作用 :处理 ZIP 压缩包。

实战

zip -r files.zip *.txt             # 压缩所有 .txt 文件
unzip package.zip -d /opt          # 解压到指定目录

七、进程管理类

1. ps - 查看进程

作用 :显示当前运行进程。

实战

ps aux | grep nginx    # 筛选 Nginx 进程
ps -eo pid,comm,%mem --sort=-%mem  # 按内存占用排序

2. kill / pkill - 终止进程

作用 :结束进程或发送信号。

kill -9 1234           # 强制终止 PID 为 1234 的进程
pkill -f "python app.py"  # 按名称终止进程

八、搜索定位类

1. find - 文件搜索

作用 :按条件查找文件。

find / -name "*.conf" -type f  # 查找所有 .conf 文件
find /tmp -mtime +7 -exec rm {} \;  # 删除 7 天前的临时文件

2. locate - 快速搜索

作用 :通过数据库快速定位文件。

locate nginx.conf      # 快速查找配置文件
updatedb               # 手动更新数据库(需 root 权限)

九、系统信息类

1. uname - 系统信息

作用 :查看内核与系统版本。

uname -a               # 显示完整系统信息
uname -r               # 仅显示内核版本

2. dmesg - 内核日志

作用 :查看硬件与驱动日志。

dmesg | grep -i usb    # 筛选 USB 设备日志
dmesg --human --color  # 人性化显示日志(需较新版本)

十、高级技巧

1. 命令组合

# 统计当前目录下各类型文件数量
find . -type f | awk -F. '{print $NF}' | sort | uniq -c | sort -nr

2. 别名(Alias)

alias ll='ls -lh --color=auto'  # 自定义快捷命令
alias rm='rm -i'                # 强制交互式删除(防误删)

3. 管道与重定向

# 将命令输出追加到日志文件
echo "Update at $(date)" >> /var/log/update.log 2>&1