1. 重命名 - 高效批量重命名文件
在需要一次性重命名多个文件时,重命名命令是一个救星。与使用循环结合 mv 命令不同,重命名命令允许你轻松应用复杂的重命名模式。
将所有 .txt
文件更改为 .log
。
rename 's/\.txt$/\.log/' *.txt
将文件名转换为小写。
rename 'y/A-Z/a-z/' *
对所有 .jpg
文件添加前缀。
rename 's/^/photo_/' *.jpg
使用 rename
命令比在循环中使用 mv
快得多,并且避免了潜在的文件名冲突。
2. pv - 监视数据传输进度
有没有想过你的数据在文件或设备之间传输的速度有多快?pv(管道查看器)命令通过显示进度条、预计时间和传输速率来帮助您。
监视文件复制进度。
pv bigfile.iso > /mnt/usb/bigfile.iso
监控压缩备份的进度。
tar cf - /home | pv | gzip > backup.tar.gz
在处理大文件时,这非常有用,因为您可以看到实时进度,而不是盲目等待。
3. 超时 - 设置时间后自动结束命令
有时候,一个命令运行的时间比预期的要长,如果你希望它在一定时间后自动停止,可以使用timeout
命令。
在10秒后停止命令。
timeout 10s ping google.com
在1小时后停止该过程。
timeout 1h rsync -av /source/ /destination/
这在脚本中很有用,可以防止命令无休止地挂起.
4. shuf - 随机输入行或选择随机条目
需要在文件中打乱行或者随机挑选一个项目?shuf
是一个简单但强大的随机化任务命令。
随机打乱文件中的行。
shuf file.txt
从文件中随机选择一行。
shuf -n 1 file.txt
生成一个随机密码(12个字符)。
shuf -zer -n12 {A..Z} {a..z} {0..9} | tr -d 'shuf -zer -n12 {A..Z} {a..z} {0..9} | tr -d '\0'
shuf 命令非常适合随机抽样、测试和生成随机数据。
5. comm -按行比较两个已排序的文件在处理列表或日志
按行比较两个已排序的文件在处理列表或日志时,comm 允许您比较两个排序的文件并查找共同或独特的行。比较两个用户列表。
comm file1.txt file2.txt
仅显示常用行。
comm -12 file1.txt file2.txt
comm 命令对于日志分析、用户管理和比较配置非常有用。
6. tac - 反转文件中的行顺序
你试过 tac 吗?它以相反的顺序显示文件的内容,这是一种简单而有效的技巧。
以逆序查看日志文件
tac /var/log/syslog
反转文件的内容并保存
tac file.txt > reversed.txt
这对于快速阅读最新的日志条目非常方便,而不必使用 tail -r。
7. nl - 向文件添加行号
需要在文件中添加行号吗?nl 可以立即做到,而不会修改原始文件。
为文件的每一行添加编号
nl file.txt
在编号时跳过空行
nl -ba file.txt
在处理代码片段、调试或格式化日志时,这非常有用。
8. yes - 自动回答提示厌倦了反复按 “y” 来确认
yes 命令自动回应提示,自动确认软件包安装。
yes | apt install package-name
通过生成无限输出来测试CPU性能。yes > /dev/null
小心! 如果不明智地使用,是可能会使你的系统过载。
9. 观察 - 重复执行一个命令想要实时监控一个命令的输出
watch以固定间隔运行一个命令,刷新输出。每2秒监控一次可用磁盘空间。
watch -n 2 df -h
跟踪目录中的更改。
watch -d ls -l
每5秒检查一次系统正常运行时间
watch -n 5 uptime
这对于实时监控系统统计数据、日志文件或进程状态非常有用。
10. expr - 在 Shell 中进行数学计算
需要在 shell 脚本中执行快速算术运算,expr 允许你进行加法、减法、乘法和除法运算。
基本算术
expr 10 + 5
expr 10 \* 5 # Use backslash for multiplication
expr 20 % 3