博客
关于我
Linux 运维需要掌握的 17 个实用技巧
阅读量:194 次
发布时间:2019-02-28

本文共 2418 字,大约阅读时间需要 8 分钟。

Linux命令实用技巧(17项)

1. 查找当前目录下所有以.tar结尾的文件并移动到指定目录

find . -name "*.tar" -exec mv {} /backup/

注解

find命令用于查找文件,-name "*.tar"指定了以.tar结尾的文件,-exec mv {} /backup/则将匹配的文件移动到指定目录。可以使用-type f限制为文件,避免误将目录包含。

2. 批量解压当前目录下所有以.zip结尾的文件到指定目录

for i in `find . -name "*.zip" -type f` do  unzip -d /data/www/img/done $idone

注解

find命令查找所有.zip文件,使用-type f确保只匹配文件。for循环遍历每个文件,使用unzip解压到指定目录。

3. sed命令收集常用用法

  • 去掉行首的.字符:
    sed -i 's/^.//g' test.txt
  • 在行首添加a字符:
    sed 's/^/a/g' test.txt
  • 在行尾添加a字符:
    sed 's/$/a/' test.txt
  • 在特定行后插入字符:
    sed '/wuguangke/ac' test.txt
  • 在行前插入字符:
    sed '/wuguangke/ic' test.txt
  • 替换文件中的目录:
    sed -i 's:/user/local:/tmp:g' test.txt

4. 判断目录是否存在,不存在则新建,存在则打印信息

if [ ! -d /data/backup/ ]; then  mkdir -p /data/backup/else  echo "The Directory already exists, please exit."fi

5. 监控Linux磁盘根分区空间(超过90%时发送邮件)

  • 打印根分区大小:
    df -h | sed -n '/^Filesystem.*\/[^/]/p' | awk '{print $5}'
  • 检查空间是否大于90%:
    while sleep 5; do  df -h | sed -n '/^Filesystem.*\/[^/]/p' | awk '{print $5}' | sed 's/%//g' | awk '{if ($1 >= 90) then email...}'done

6. 统计Nginx访问日志,找出访问量前20的IP地址

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

注解

sort排序后uniq -c去重统计,sort -nr按访问量降序排列,head -20显示前20条。

7. sed命令用于修改特定行

  • 修改SELINUX状态:
    sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
  • 替换目录路径:
    sed -i 's:/user/local:/tmp:g' test.txt

8. 打印文件中的最大值、最小值和总和

  • 最大值:
    awk 'BEGIN {max=0} {if ($1+0 > max+0) max=$1} END {print "Max=" max}'
  • 最小值:
    awk 'BEGIN {min=65536} {if ($1+0 < min+0) min=$1} END {print "Min=" min}'
  • 总和:
    cat test.txt | awk '{sum+=$1} END {print "Sum=" sum}'

9. 使用snmpd抓取Cacti v2数据

snmpwalk -v2c -c public 192.168.0.241

10. 修改文本中以“jk”结尾的字符串为“yz”

sed -e 's/jk$/yz/g' b.txt

11. 网络抓包:tcpdump

  • 捕获特定主机和端口的数据包:
    tcpdump -nn host 192.168.56.7 and port 80
  • 排除特定主机:
    tcpdump -nn host 192.168.0.22 and port 80

12. 显示最常用的20条Linux命令

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

13. 删除最后创建时间小于3天且后缀为*.log的文件

find . -mtime +3 -name "*.log" | xargs rm -rf {}

14. 将某目录下大小超过100k的文件移动至/tmp

find . -size +100k -exec mv {} /tmp/

15. 防火墙配置:只允许远程主机访问本机的80端口

iptables -Fiptables -A INPUT -p tcp --dport 80 -j ACCEPTiptables -A INPUT -p tcp -j REJECT

16. Nginx日志统计:找出访问IP最多的前10个

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

17. Netcat(nc)的常用用法

  • 端口测试:
    nc -vz 192.168.1.2 8080
  • UDP会话测试:
    nc -u 192.168.1.2 8080
  • 启动nc监听:
    nc -l -p 8080
  • 传输测试(从A到B):
    nc -l -p 8080 | pv

    (A端)

    nc 192.168.1.2 8080 < /dev/zero

    (B端)

转载地址:http://rkpi.baihongyu.com/

你可能感兴趣的文章
ObjectMapper - 实现复杂类型对象反序列化(天坑!)
查看>>
ObjectProperty 类的使用
查看>>
Objects.equals有坑
查看>>
Object常用方法
查看>>
Object方法的finalize方法
查看>>
Object类有哪些方法,hashcode方法的作用,为什么要重写hashcode方法?
查看>>
Object类有哪些方法?各有什么作用?
查看>>
Objenesis创建类的实例
查看>>
OBObjective-c 多线程(锁机制) 解决资源抢夺问题
查看>>
OBS studio最新版配置鉴权推流
查看>>
Obsidian 彩色标题
查看>>
Obsidian的使用-ChatGPT4o作答
查看>>
Obsidian笔记记录GPT回复的数学公式无缝转化插件Katex to mathjax
查看>>
ObsoleteAttribute 可适用于除程序集、模块、参数或返回值以外的所有程序元素。 将元素标记为过时可以通知用户:该元素在产品的未来版本中将被移除。...
查看>>
OC block声明和使用
查看>>
OC Xcode快捷键
查看>>
oc 中的.m和.mm文件区别
查看>>
OC 中的重写 OC中没有重载 以及隐藏
查看>>
OC 内存管理黄金法则
查看>>
oc57--Category 分类
查看>>