在Linux的世界里,能一把梭的就不走代码。

编程探索课程 2025-02-18 16:28:49
UNIX哲学:保持清晰,保持简洁

UNIX 系统的设计、开发和使用过程中,要确保各个组件、命令、功能等都具有明确的目的和清晰的逻辑。无论是系统的架构设计,还是具体的代码实现,都应该让使用者能够轻易地理解其工作原理和预期用途,避免出现模糊不清、模棱两可的情况,从而降低学习成本和使用难度。

keep simple

1.快速生成序列文件(seq+xargs组合)seq 1 5 | xargs -I{} touch file_{}.txt

生成 file_1.txt 到 file_5.txt,比 for 循环更简洁。

2.用sponge避免管道覆盖原文件sed 's/foo/bar/g' file.txt | sponge file.txt

sponge(来自 moreutils 包)会缓存管道输出,避免直接覆盖原文件。

3.快速计算目录下文件哈希(递归校验)find . -type f -exec sha256sum {} + | sort | sha256sum

生成整个目录的唯一哈希,适合校验文件一致性。

4.用mtr替代ping+traceroutemtr -rwc 100 example.com

实时混合诊断网络问题,显示丢包率和路径延迟(需安装 mtr)。

5.历史命令的魔法符号^^old^new # 替换上一条命令中的字符串

例如:

$ echo hello warldhello warld$ ^warld^worldecho hello worldhello world6.用pee分流管道数据echo "data" | pee "cat" "gzip > output.gz"

pee(来自 moreutils)将输入同时传给多个命令,类似 tee 的管道版。

7.快速创建临时文件系统(RAM Disk)mkdir /tmp/ramdisk && mount -t tmpfs -o size=1G tmpfs /tmp/ramdisk

创建一个 1GB 的内存盘,适合高性能临时操作。

8.用units做单位换算units "100 miles" "kilometers"

直接输出单位换算结果(需安装 units)。

9.批量重命名特殊符号文件名find . -name "* *" -exec rename 's/ /_/g' {} +

将文件名中的空格替换为下划线,避免脚本处理时出错。

10.用scriptreplay录制并回放终端操作script -t 2> timing.log -a output.session # 开始录制exit # 结束录制scriptreplay timing.log output.session # 回放操作

精确复现终端操作过程(包括时间间隔)。

11.快速查看二进制文件结构(xxd+less)xxd -g 1 file.bin | less

以十六进制和 ASCII 格式查看二进制文件,支持搜索。

12.用pv监控管道传输进度dd if=/dev/zero | pv -s 1G | dd of=zero.file

显示数据传输的实时速度和进度(需安装 pv)。

13.快速生成随机文件名(mktemp进阶)TEMP_FILE=$(mktemp -u XXXXXX.dat) # 生成唯一临时文件名但不创建

避免手动处理随机命名冲突。

14.用nl为文件添加行号nl -ba filename # 显示所有行号(包括空行)

比 cat -n 更灵活,支持格式控制。

15.rsync的--delete精确同步rsync -av --delete source/ destination/

严格同步目录,删除目标端多余文件。

16.用column格式化输出为表格mount | column -t # 对齐输出为表格

让 df、mount 等命令的输出更易读。

17.快速测试端口连通性(nc进阶)nc -zv 192.168.1.1 22 # 测试 SSH 端口nc -zvu 8.8.8.8 53 # 测试 UDP 端口18.用yes自动应答命令行交互yes | apt-get install package # 自动回答 "y"yes "no" | rm -i *.log # 自动回答 "no"

批量处理需要确认的操作。

19.<<<直接传递字符串给命令grep "foo" <<< "hello foo world" # 替代 echo "..." | grep

避免创建管道,直接操作字符串。

20.用watch监控命令输出变化watch -d -n 1 "ls -l | grep .log"

-d 高亮显示变化部分,适合监控日志或文件变动。

以上分享覆盖了文件操作、网络调试、系统管理等场景,适合需要高效解决特定问题的场景。可根据实际需求组合使用!

还是那句话:在Linux的世界里,能一把梭的就不走代码。

0 阅读:9
编程探索课程

编程探索课程

感谢大家的关注