跳到主要内容Linux 45 个高效命令技巧集锦 | 极客日志Shell / Bash
Linux 45 个高效命令技巧集锦
Linux 系统管理涉及大量命令行操作。 45 个常用高效命令技巧,涵盖文件创建与清空、查找与删除、权限管理、进程监控、网络抓包及日志分析等场景。通过示例代码展示 find、dd、sed、tcpdump、ps 等核心工具的高级用法,帮助用户提升运维效率,快速解决实际问题。
GopherDev29 浏览 Linux 45 个高效命令技巧集锦
以下相关高效命令实用指数不分先后,更多的是以简单的命令形式带给大家更好的使用体验。
1. 如何快速创建多个相同类型的文件
如创建名字为 example1.py,example2.py 到 example100.py 的批量文件。
touch example{1..100}.py
2. 如何快速生成一个大文件
有时候需要在本机生成一个大文件,用于测试磁盘的读写能力,可以借助 dd 命令生成大文件。
dd if=/dev/zero of=/root/example/test.txt bs=1M count=1024
上述命令,在 /root/example 目录下生成一个文件名为 test.txt 大小为 1G 的文件。
3. 快速清空一个文件的方法
如清空 example.py 文件。
cat /dev/null > example.py
或
echo -n "" > example.py
或
true > example.py
或
: > example.py
或
truncate -s 0 example.py
以上 5 种快速清空文件方法,大家可以选择自己常用的一种。
4. 查找当前目录下名字为 example.py 的文件
find . -name example.py
5. 查找当前目录下名字以.py 结尾的文件
find . -name "*.py"
6. 查找当前目录下名字以.py 结尾的文件,并且指定为文件类型搜索
find . -type f -name "*.py"
7. 查找当前目录下名字包含 example 的目录
find . -type d -name "example*"
8. 查找当前目录下文件权限为 755 的对应文件
find . -type f -perm 755
9. 查找当前目录下不具有 755 权限的所有文件
find . -type f ! -perm 755
10. 查找当前目录下具有 777 权限的所有文件,并且将这些权限全部改为 755
find . -type f -perm 777 -exec chmod 755 {} \;
11. 查找当前目录下文件大小为 100MB~1GB 的所有文件
find . -type f -size +100M -size -1G
12. 查找当前目录下以.py 结尾的文件,并且删除
find . -name "*.py" -exec rm -rf {} \;
find . -name "*.py" | xargs rm -rf
rm -rf $(find . -name "*.py")
以上 3 种快速删除指定类别文件方法,哪一种更香更好用呢?
13. 查找当前目录下 30 天前修改过的所有文件
14. 查找当前目录下 30 天前访问过的所有文件
15. 查找当前目录下过去 1 个小时内修改过的所有文件
16. 查找当前目录下过去 1 个小时内访问过的所有文件
17. 查找当前目录下修改超过 10 天,但修改不到 30 天的所有文件
find . -mtime +10 -mtime -30
18. 查找当前目录下 7 天前创建的,并且后缀名是以.py 结尾的文件,并且进行删除
find . -mtime +7 -name "*.py" | xargs rm -rf
19. 查找当前目录大于 1000M 的文件,并将该文件移动到/root/home 目录下
find . -size +1000M -exec mv {} /root/home \;
20. 查找当前目录下创建于 30 天前,大小大于 1000M,以.py 结尾的文件,并且进行删除
find . -name "*.py" -mtime +30 -type f -size +1000M | xargs rm -rf
21. 查看有几个逻辑 CPU,包括 CPU 型号
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
22. 查看有几颗 CPU,每颗分别是几核
cat /proc/cpuinfo | grep physical | uniq -c
23. 后台运行命令
nohup ping www.baidu.com &
以上命令执行时后台运行,并且有 nohup.out 输出。
或
nohup ping www.baidu.com > /dev/null &
nohup ping www.baidu.com > out.log 2>&1 &
以上命令执行时后台运行,并将错误信息做标准输出到日志中。
24. 强制关闭进程名包含 xxx 的所有进程
ps aux | grep xxx | grep -v grep | awk '{print $2}' | xargs kill -9
25. /var 目录按照目录大小排序展示最前面 20 个目录或者文件
du -xB M --max-depth=2 /var | sort -rn | head -n 20
26. 按照大到小排列出当前文件或者目录最大的 10 个
du -s * | sort -n | tail -n 10
27. 查找当前系统内存使用量较高的进程(前 20 个)
ps -aux | sort -rnk 4 | head -20
可以看到输出的第 4 列就是内存的耗用百分比。最后一列就是相对应的进程。
28. 查找当前系统 CPU 使用量较高的进程(前 20 个)
ps -aux | sort -rnk 3 | head -20
可以看到输出的第 3 列为 CPU 的耗用百分比,最后一列就是对应的进程。
29. 后台持续 ping 包,并将结果记录到日志中
ping www.baidu.com | awk '{ print $0 " " strftime("%Y-%m-%d %H:%M:%S", systime()) }' >> /root/ping.log &
30. 查找 80 端口请求数最高的前 15 个 IP
netstat -anlp | grep 80 | grep tcp | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | head -n 15
31. 查看自己本机系统最常用的 10 条命令
cat /root/.bash_history | grep -v ^# | awk '{print $1}' | sort | uniq -c | sort -nr | head -10
32. 查看 2022 年 12 月 11 日 09 时这个时间内有多少个 IP 访问你的 tomcat 服务器
awk '{print $4,$1}' access.log | grep 11/Dec/2022:09 | awk '{print $2}' | sort | uniq | wc -l
这里只要给出访问日志文件,就可以计算出来,自己可以根据需要计算某个时间点的访问的 IP 数。
33. 查看自己 tomcat 服务器访问量排在前 20 位的 IP 地址
cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -20
34. 查看某一个 IP 地址访问了 tomcat 服务器的哪些页面资源
grep ^192.168.30.200 access.log | awk '{print $1,$7}'
35. 查看自己 tomcat 服务器中某一个页面资源被访问的次数
grep "/portal/index.html" access.log | wc -l
36. 通过抓包工具 tcpdump 查看 8080 端口访问量情况
tcpdump -i ens33 -tnn dst port 8080 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr | head -10
37. 如何通过 sed 命令将文件 test.py 中的 haodao 全部替换成 HAODAO
sed -i "s/haodao/HAODAO/g" test.py
38. 替换 haodao.py 文件中的目录
sed -i "s:/etc/dhcp:/home:g" haodao.py
即表示将 haodao.py 文件中的/etc/dhcp 目录替换成/home 目录。
39. 针对 haodao.py 文件举例 sed 命令常见技巧
1) 去掉行首的#字符
sed -i "s/^#//g" haodao.py
2) 在行首添加 linux 字符
sed -i "s/^/linux/g" haodao.py
3) 在行尾添加一个 study 字符
sed -i "s/$/study/" haodao.py
4) 在特定行后,即 we love 行后添加一个 you 字符
sed -i "/we love/ayou" haodao.py
5) 在特定行前,即 haodao 行前添加一个 where 字符
sed -i "/haodao/iwhere" haodao.py
40. 针对网口 ens33 抓取不限制大小的报文,保存为文件 haodao.cap
tcpdump -i ens33 -s 0 -w haodao.cap
41. 针对网口 ens33 进行抓包,过滤出 icmp 报文并且源 IP 地址是 192.168.20.231 的相关报文
tcpdump icmp and src 192.168.20.231 -i ens33 -n
42. 针对网口 ens33 进行抓包,过滤出源 IP 地址是 192.168.20.231 的相关报文
tcpdump src host 192.168.20.231 -i ens33 -n -c 5
43. 针对网口 ens33 进行抓包,过滤出目的 IP 地址是 192.168.20.231 的相关报文
tcpdump dst host 192.168.20.231 -i ens33 -n -c 5
44. 针对网口 ens33 进行抓包,过滤出端口号是 8080 的相关报文
tcpdump port 8080 -i ens33 -n -c 5
45. 针对网口 ens33 进行抓包,过滤出 80 端口到 443 端口的相关报文
tcpdump portrange 80-443 -i ens33 -n -c 8
相关免费在线工具
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
- Markdown转HTML
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
- HTML转Markdown
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
- JSON 压缩
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
- JSON美化和格式化
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online