哈喽兄弟们!🙋♀️ 今天我要掏出我的 Shell 工具箱啦!这些小可爱们能帮你快速处理文本、排序数据、去重信息,简直是运维的提效神器!快来一起武装起来吧!😉
1️⃣ cut
:文本切割小能手!✂️
-
作用: 就像一把精准的剪刀,
cut
可以帮你截取文本的指定列!再也不用对着长长的字符串发愁啦! -
语法:
cut [选项] 文件名
-
常用选项:
-c
:按字符来切割!想剪掉第几个字?就靠它!-d <分隔符>
:指定你想要的分隔符,比如,
、:
、空格等等!默认是 Tab 哦!-f <列号>
:和-d
搭配使用,指定你要截取第几列!还可以用,
连接多个列号,或者用-
指定范围!
-
举个栗子: 想要
/etc/passwd
文件里所有小姐姐的用户名?cat /etc/passwd | cut -d: -f1
这条命令会用
:
作为分隔符,然后提取每一行的第一列(用户名)!是不是超方便?🤩
2️⃣ sort
:数据整理强迫症的救星!🧹
-
作用: 就像你的衣橱整理师,
sort
能帮你把文本的每一行都按照 ASCII 码值乖乖地排序!默认是升序哦! -
语法和选项:
man sort
(想了解更多高级用法,就去查手册吧!) -
常用选项:
-u
:去重!相同的行只保留一行!-r
:降序排列!不想要升序?反过来就好!-o <文件名>
:把排序结果输出到文件里!再也不怕覆盖啦!-n
:按数字排序!处理数字的时候一定要用它!-t <分隔符>
:指定分隔符!和cut
的-d
类似!-k <列号>
:指定按哪一列排序!配合-t
使用!-R
:随机排序!每次运行结果都不一样,神秘感十足!
-
举个栗子: 想把一个记录了小姐姐年龄的文件按年龄从小到大排序?
sort -n age.txt
如果想按年龄从大到小排序还去重?
sort -nr -u age.txt
3️⃣ uniq
:重复数据终结者!👯♀️
-
作用: 就像你的去重小助手,
uniq
能帮你找出并处理连续的重复行!注意是连续的哦!所以通常要和sort
配合使用! -
常用选项:
-i
:忽略大小写!大小写不敏感也能去重!-c
:在每一行前面显示出现的次数!统计数据超好用!-d
:只显示重复的行!看看哪些小姐姐出现了两次!
-
举个栗子: 想统计一个日志文件里每个 IP 地址出现的次数?
cat access.log | cut -d' ' -f1 | sort | uniq -c | sort -nr
先提取 IP,排序让相同的 IP 挨在一起,然后用
uniq -c
统计次数,最后按次数降序排列!完美!💯
4️⃣ tee
:屏幕和文件我都要!📺️💾
-
作用: 就像一个分流器,
tee
能把命令的输出同时显示在屏幕上,并且保存到文件里!实时监控和记录两不误! -
常用选项:
-a
:追加到文件!不想覆盖原来的内容就用它!
-
举个栗子: 实时查看系统状态并保存到文件?
top -n 1 | tee system_status.log
想把一些信息追加到日志文件?
echo "重要操作完成" | tee -a operation.log
5️⃣ diff
:文件比对找不同!🔍
-
作用: 就像找茬游戏,
diff
能帮你比较两个文件或目录的内容,告诉你哪里不一样! -
常用选项:
-r
:递归比较目录!子目录里的不同也能找出来!-u
:以统一模式显示差异!生成补丁文件常用!
-
举个栗子: 比较两个版本的配置文件?
diff config.old config.new
生成补丁文件?
diff -u config.old config.new > config.patch
6️⃣ paste
:文件按行合并术!🔗
-
作用: 就像把多个文件的内容按行用胶水粘在一起!
-
常用选项:
-d <分隔符>
:自定义间隔符!默认是 Tab!-s
:串行处理!把每个文件的所有行拼成一行!
-
举个栗子: 合并两个日志文件按时间对比?
paste log1.txt log2.txt
用逗号分隔?
paste -d ',' log1.txt log2.txt
7️⃣ tr
:字符变形魔法师!✨
-
作用: 帮你转换、替换或删除字符!处理文本的瑞士军刀!
-
常用选项:
-s
:压缩重复字符!把多个空格变成一个!-d
:删除指定的字符!
-
举个栗子: 把所有小写字母变成大写?
echo "hello world" | tr 'a-z' 'A-Z'
删除所有数字?
echo "my number is 12345" | tr -d '0-9'
💖 总结一下:
这些小工具是不是超实用?熟练掌握它们,能让你在 Linux 世界里如鱼得水,效率翻倍!快去试试吧,运维带你一起变强!💪