查看原文
其他

实用20个linux小技巧,总有你没有用过的!

脚本之家 2022-09-23

The following article is from 浩道linux Author 浩道

 关注
“脚本之家
”,与百万开发者在一起

出处:浩道linux(ID:hao_tiyu)如若转载请联系原公众号

前言


今天浩道给大家分享诸多linux运维老司机在用的一些linux小技巧。这些都是我结合道中朋友的分享进行的一次总结汇总。希望能够给大家在日常运维工作中带来如虎添翼的完美体验。




linux知识锦囊

以下实用指数不分先后,更多的是以简单的命令形式带给大家更好的体验。


1、快速清空一个文件的方法,如清空haodao.txt文件

cat /dev/null > haodao.txt


2、查看tomcat服务器的日志有多少个IP访问。

awk '{print $1}' access.log |sort |uniq |wc -l


3、如何在本机快速生成一个大文件。

有时候需要在本机生成一个大文件,用于测试磁盘的读写能力,可以借助dd命令生成大文件。

dd if=/dev/zero of=test.txt bs=1M count=1000

上述命令,生成一个文件名为test.txt 大小为 1G 的文件。


4、如何快速创建大批量相同类型的文件。

如创建名字为haodao1.txt,haodao2.txt到haodao100.txt的批量文件。

touch haodao{1..100}.txt


5、查找当前目录下以.txt结尾的文件,并且删除。

find . -name "*.txt" -exec rm -rf {} \;


find . -name "*.txt" |xargs rm -rf {};

rm -rf $(find . -name "*.txt")


6、查找当前目录下7天前创建的,并且后缀名是以.txt结尾的文件,并且进行删除

find . -mtime +7 -name "*.txt" |xargs rm -rf {};


7、查找当前目录大于1000M的文件,并将该文件移动到/root/home目录下

find . -size +1000M -exec mv {} /root/home ;


8、查找当前目录下创建于30天前,大小大于1000M,以.txt结尾的文件,并且进行删除。

find . -name "*.txt" –mtime +30 –type f –size +1000M |xargs rm –rf {};


9、查看自己本机最常用的10条命令

cat /root/.bash_history |grep -v ^# |awk '{print $1}' |sort |uniq -c |sort -nr |head -10


10、查看2021年12月11日09时这个时间内有多少个IP访问你的tomcat服务器

awk '{print $4,$1}' access.log | grep 11/Dec/2021:09 | awk '{print $2}'| sort | uniq | wc -l

这里只要给出访问日志文件,就可以计算出来,自己可以根据需要计算某个时间点的访问的IP数。


11、查看tomcat服务器访问量排在前10 位的IP地址

cat access.log|awk '{print $1}'|sort|uniq -c|sort -nr|head -10


12、查看tomcat服务器中某一个页面资源被访问的次数

grep "/portal/index.html" access.log | wc -l


13、查看某一个IP地址访问了tomcat服务器的哪些页面资源

grep ^192.168.20.100 access.log| awk '{print $1,$7}'


14、通过抓包工具tcpdump看看8080端口访问量情况

tcpdump -i ens120 -tnn dst port 8080 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -10


15、历史命令常用技巧

1)重复执行上一条命令为!!

2)重复执行history历史中第N条命令为!N

    其中N可以通过history命令进行查看。

3)重复执行最近一次,以某个字符开头的历史命令,如以awk开头的历史命令为!awk

4)最近一次命令的最后一个参数,命令为!$

    如最近一次命令为vi ./test.txt

    执行命令mv !$ !$.bak

    此时即可实现将当前目录下的test.txt改名为test.txt.bak


16、如何通过sed命令将文件test.txt中的haodao全部替换成HAODAO

sed -i "s/haodao/HAODAO/g" test.txt


17、替换haodao.txt文件中的目录

sed -i "s:/etc/dhcp:/home:g" haodao.txt

即表示将haodao.txt文件中的/etc/dhcp目录替换成/home目录


18、以下针对haodao.txt文件举例sed命令常见技巧

1)去掉行首的#字符,命令为:

sed -i "s/^#//g" haodao.txt

2)在行首添加linux字符,命令为:

sed -i "s/^/linux/g" haodao.txt

3)在行尾添加一个study字符,命令为:

sed -i "s/$/study/" haodao.txt

4)在特定行后,即we love行后添加一个you字符,命令为:

sed -i "/we love/ayou" haodao.txt

5)在特定行前,即haodao行前添加一个where字符,命令为:

sed -i "/haodao/iwhere" haodao.txt


19、过滤出状态为UP的网络接口

ip addr |awk -F ":" '/state UP/ {print $2}'


20、过滤出对应各网卡的IP地址信息

ip -o addr |awk '/inet/{print $2,$4}'


结语

以上都是一些在日常工作中非常使用的小技巧,知识点虽然简单,但是却不能不使用,也是很多朋友容易忽略掉的。如果你也觉得实用,那么就让我们一起分享给身边的小伙伴吧。独乐乐不如众乐乐,知识本就是需要大家传播的!

  推荐阅读:

终于!我找到程序员爱穿卫衣的原因了

10 款你不知道的 Linux 环境下的替代工具!

初识linux那时,技术总监竟安排这件事给我!

2021年技术人员的最佳Linux桌面前5名

Linus吐槽桌面版Linux

每日打卡赢积分兑换书籍入口

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存