Linux拿来即用的45个高效命令技巧集锦~
The following article is from 浩道Linux Author 浩道
第一时间收到文章更新
前言
众所周知,Linux命令众多,但是却很少人懂得去使用它的高效命令。一方面是没有现成的资料;另一方面是大家固定了命令原有使用模式,认为不论白猫黑猫,能够捉住老鼠就是好猫了!本文浩道将结合工作生涯所接触命令序列,整理出一套拿来即用的高效Linux命令序列,让大家更高效地应用在工作中!
以下相关高效命令实用指数不分先后,更多的是以简单的命令形式带给大家更好的使用体验。
touch haodao{1..100}.py
dd if=/dev/zero of=/root/haodaolinux/test.txt bs=1M count=1024
cat /dev/null > haodao.py
或
echo -n "" > haodao.py
或
true > haodao.py
或
: > haodao.py
或
truncate -s 0 haodao.py
以上5种快速清空文件方法,大家可以选择自己常用的一种,大家知道几种呢!
4、查找当前目录下名字为haodao.py的文件;
find . -name haodao.py
5、查找当前目录下名字以.py结尾的文件;
find . -name "*.py"
6、查找当前目录下名字以.py结尾的文件,并且指定为文件类型搜索;
find . -type f -name "*.py"
7、查找当前目录下名字包含haodao的目录;
find . -type d -name "haodao*"
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
find . -name "*.py" -exec rm -rf {} \;
或
find . -name "*.py" | xargs rm -rf {};
或
rm -rf $(find . -name "*.py")
以上3种快速删除指定类别文件方法,哪一种更香更好用呢?
13、查找当前目录下30天前修改过的所有文件;
find . -mtime 30
14、查找当前目录下30天前访问过的所有文件;
find . -atime 30
15、查找当前目录下过去1个小时内修改过的所有文件;
find . -mmin -60
16、查找当前目录下过去1个小时内修改过的所有文件;
find . -amin -60
17、查找当前目录下修改超过10天,但修改不到30天的所有文件;
find . -mtime +10 -mtime -30
find . -mtime +7 -name "*.py" | xargs rm -rf {};
find . -size +1000M -exec mv {} /root/home ;
find . -name "*.py" –mtime +30 –type f –size +1000M |xargs rm –rf {};
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
22、查看有几颗cpu,每颗分别是几核;
cat /proc/cpuinfo | grep physical | uniq -c
nohup ping www.baidu.com &
nohup ping www.baidu.com > /dev/null &
以上命令执行时后台运行, 不输出任何日志。
nohup ping www.baidu.com >out.log 2>&1 &
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
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/haodaoping.log &
以上命令实现后台每一秒自动ping www.baidu.com,并将结果记录到/root/haodaoping.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命令常见技巧;
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
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-433 -i ens33 -n -c 8