2.1 文件、文本与管道
Linux 的命令行特别擅长处理文本。日志、配置、CSV、环境变量、命令输出,本质上都可以变成一行行文本,然后交给小工具组合处理。
文件操作命令
| 命令 | 作用 |
|---|---|
cp source target | 复制 |
mv old new | 移动或重命名 |
rm file | 删除文件 |
rm -r dir | 递归删除目录 |
mkdir -p path/to/dir | 创建多层目录 |
touch file | 创建空文件或更新时间戳 |
注意
rm -r 会递归删除目录。真实环境里执行前一定先 pwd 和 ls,确认自己站在哪里。重定向
bash
echo "hello" > note.txt
echo "second line" >> note.txt
cat note.txt> 会覆盖文件,>> 会追加到文件末尾。这个区别非常重要。
标准输入、标准输出、标准错误
多数命令都有三个常见通道:
- stdin:标准输入,命令读入的内容。
- stdout:标准输出,命令正常输出的内容。
- stderr:标准错误,命令报错和诊断信息。
管道 | 会把左边命令的 stdout 交给右边命令的 stdin。
正在加载概念检查...
grep、sort、uniq、wc
bash
grep ERROR app.log
grep ERROR app.log | wc -l
grep ERROR app.log | awk '{print $3}' | sort | uniq -c这些命令常常连在一起:
grep:筛选匹配行。awk:按列取值或做简单文本处理。sort:排序。uniq -c:统计相邻重复行数量,通常接在sort后。wc -l:统计行数。
正在加载交互实验...
正在加载概念检查...
命令组合的思路
不要试图找一个“万能命令”。Linux 更鼓励把简单工具接起来:
1. 先拿到文本。 2. 再过滤需要的行。 3. 再提取需要的列。 4. 再排序、计数、汇总。
这就是很多服务器排查、数据清洗、日志分析的基本形状。
正在加载本节练习...