Linux终端生存手册:从cd到zip的救命指令实战

# Linux终端生存手册:从cd到zip的救命指令实战


在Linux系统中,终端是通往系统深处的钥匙。无论是日常运维还是紧急故障处理,掌握核心命令都是必备技能。本文从文件操作、系统监控、网络诊断到数据压缩,梳理一套终端生存指令集,帮助读者在关键时刻从容应对。


## 一、文件系统基础:cd到ls的日常操作


### 1.1 目录切换与查看


`cd`是进入任何目录的起点:


```bash

cd /etc          # 进入/etc目录

cd ~             # 返回用户主目录

cd -             # 返回上一个工作目录

cd ..            # 返回上级目录

```


`ls`命令列出目录内容,常用选项组合:


```bash

ls -la           # 显示所有文件(包括隐藏)及详细信息

ls -lh           # 以人类可读格式显示文件大小

ls -lt           # 按时间排序显示

ls -lS           # 按文件大小排序显示

```


### 1.2 文件查找与定位


当文件位置不明时,`find`是最强大的搜索工具:


```bash

find / -name "*.conf" -type f 2>/dev/null  # 查找所有.conf配置文件,忽略权限错误

find . -mtime -7              # 查找最近7天修改过的文件

find . -size +100M            # 查找大于100MB的文件

find . -exec ls -l {} \;      # 对找到的每个文件执行ls命令

```


快速定位命令位置:


```bash

which python3     # 显示python3命令的完整路径

whereis nginx     # 显示nginx的二进制、源码和手册页位置

```


## 二、系统状态监控:及时发现问题


### 2.1 进程与资源查看


`top`命令实时显示系统进程和资源占用,交互式操作:


```bash

top               # 进入交互界面

# 在top中按:

# 1 - 显示每个CPU核心使用情况

# M - 按内存使用排序

# P - 按CPU使用排序

# k - 终止进程(需输入PID)

```


更简洁的`htop`(需安装)提供彩色界面和鼠标操作支持。


查看进程树:


```bash

pstree -p         # 显示进程树,附带PID

```


### 2.2 内存与磁盘监控


内存使用情况:


```bash

free -h           # 显示内存使用,-h以人类可读格式

vmstat 2 10       # 每2秒输出一次系统状态,共10次

```


磁盘空间预警:


```bash

df -h             # 查看各分区磁盘使用率

du -sh /*         # 统计根目录下各目录总大小

du -sh * | sort -hr  # 当前目录下按大小排序

```


当磁盘空间告急时,快速定位大文件:


```bash

find / -type f -size +500M -exec ls -lh {} \; 2>/dev/null

```

<"p3.s6k3.org.cn"><"m7.s6k3.org.cn"><"a9.s6k3.org.cn">

## 三、文本处理三剑客:grep、sed、awk


### 3.1 grep:文本搜索


`grep`是从文件或输出中提取关键信息的利器:


```bash

grep "error" /var/log/syslog          # 在日志中查找error

grep -r "192.168.1." /etc/             # 递归搜索目录下所有文件

grep -v "^#" /etc/nginx/nginx.conf     # 过滤掉注释行

grep -E "ERROR|FATAL" app.log          # 扩展正则,匹配多个关键词

```


### 3.2 sed:流编辑器


`sed`用于文本替换和处理:


```bash

sed -i 's/old/new/g' file.txt          # 将文件中所有old替换为new

sed -n '10,20p' file.txt                # 打印第10到20行

sed '/^$/d' file.txt                    # 删除空行

```


### 3.3 awk:文本分析工具


`awk`适合结构化文本处理:


```bash

awk '{print $1, $NF}' access.log        # 打印第一列和最后一列

awk '$9 == 404 {count++} END {print count}' access.log  # 统计404状态码数量

awk -F: '{print $1}' /etc/passwd        # 以:为分隔符,打印第一列(用户名)

```


## 四、网络诊断:连接世界的触角


### 4.1 连通性测试


```bash

ping -c 4 google.com          # 发送4个ICMP包测试连通性

telnet 192.168.1.1 80         # 测试端口是否开放

nc -zv 192.168.1.1 1-1000     # 扫描1-1000端口

```


### 4.2 路由追踪


```bash

traceroute google.com         # 显示到目标的路由路径

mtr google.com                # 结合ping和traceroute的动态工具

```


### 4.3 网络配置查看


```bash

ip addr show                  # 查看IP地址配置

ss -tuln                      # 查看监听端口

netstat -anp | grep 8080      # 查看8080端口占用情况

curl ifconfig.me              # 查看公网IP

```


## 五、文件传输与压缩:数据的搬运工


### 5.1 远程文件传输


```bash

scp file.txt user@192.168.1.100:/home/user/   # 上传文件到远程

scp user@192.168.1.100:/remote/file.txt ./    # 从远程下载文件

rsync -av /local/dir/ user@remote:/remote/dir/ # 增量同步目录

```


### 5.2 压缩与解压


**tar打包与压缩**:


```bash

tar -czf archive.tar.gz /path/to/dir       # 创建tar.gz压缩包

tar -xzf archive.tar.gz -C /target/dir     # 解压tar.gz到指定目录

tar -cjf archive.tar.bz2 /path/to/dir      # 创建tar.bz2压缩包

tar -xjf archive.tar.bz2                   # 解压tar.bz2

```


**zip压缩**:


```bash

zip -r archive.zip /path/to/dir            # 递归压缩目录

unzip archive.zip -d /target/dir           # 解压到指定目录

zip -e secure.zip file.txt                  # 创建加密zip(提示输入密码)

```


**查看压缩包内容**:


```bash

tar -tf archive.tar.gz                      # 查看tar包内容

unzip -l archive.zip                         # 查看zip包内容

```


## 六、权限管理:守护系统的防线


### 6.1 权限修改


```bash

chmod 755 script.sh          # 设置rwxr-xr-x权限

chmod +x script.sh           # 添加执行权限

chown user:group file.txt    # 修改文件所有者和所属组

chown -R user:group /dir     # 递归修改目录下所有文件

```

<"d2.s6k3.org.cn"><"h5.s6k3.org.cn"><"v1.s6k3.org.cn">

### 6.2 特殊权限


```bash

chmod u+s executable         # 设置SUID(执行时以所有者权限运行)

chmod g+s directory          # 设置SGID(目录内新建文件继承组)

chmod +t /tmp                # 设置粘滞位(只有所有者能删除)

```


## 七、应急处理:当系统出问题时


### 7.1 查找占用磁盘的罪魁祸首


```bash

# 查看各目录大小

du -h --max-depth=1 / | sort -hr


# 查找已被删除但仍占用空间的文件

lsof | grep deleted

```


### 7.2 处理高负载


```bash

# 查看CPU占用最高的进程

ps aux --sort=-%cpu | head -10


# 查看IO等待情况

iotop -o


# 杀死进程

kill -9 PID                # 强制终止

kill -15 PID               # 优雅终止

```


### 7.3 系统信息收集


```bash

uname -a                    # 查看内核版本

cat /etc/os-release         # 查看发行版信息

dmesg | tail -20            # 查看最近内核日志

journalctl -xe              # 查看系统日志

```


## 八、总结:从指令到习惯


掌握这些核心命令,就像拥有了一套Linux生存工具箱。但真正的熟练来自于日常实践——当遇到问题时,先想想哪个命令能帮你诊断;当重复操作时,考虑如何用管道组合简化流程。


以下是一个快速参考速查表:


| 场景 | 命令组合 |

|------|---------|

| 查找大文件 | `find / -type f -size +100M -exec ls -lh {} \;` |

| 统计日志中错误 | `grep -c "ERROR" app.log` |

| 查看端口监听 | `ss -tuln \| grep LISTEN` |

| 打包并排除目录 | `tar -czf backup.tar.gz --exclude='node_modules' /project` |

| 同步目录 | `rsync -av --delete source/ dest/` |


终端不是冰冷的黑框,而是通往系统深处的窗口。理解每个命令的作用和组合方式,就能在系统出现问题时从容应对,甚至在日常工作中事半功倍。


请使用浏览器的分享功能分享到微信等