控制台使用技巧

掌握控制台的使用技巧可以帮助我们更高效地操作控制台,提高工作效率,并减少因手动输入命令而产生的错误。以下是一些常用的快捷键;

操作快捷键

  • Ctrl + r;快速查找历史命令
  • Ctrl + l;清理控制台屏幕
  • Ctrl + a;移动光标到命令行首
  • Ctrl + e;移动光标到命令行尾
  • Ctrl + w;删除光标之前的内容
  • Ctrl + k;删除光标之后的内容

VIM文件编辑快捷键

  • ZZ;文件保存并退出

进程操作快捷键

  • Ctrl + c;强制终止程序的执行
  • Ctrl + z;挂起一个进程
  • Ctrl + d;终端中输入 exit 后回车

Linux命令中快捷键(top)

  • Shift + p;根据 CPU 使用率排序
  • Shift + m;根据内存占用排序

Shell 命令合集

空间分析

场景1:磁盘空间不足,需快速定位日志目录

1
du -x --max-depth=1 / | sort -k1 -n
  • du -x –max-depth=1 /;统计根目录下第一级目录的磁盘使用情况,跳过其他文件系统
  • sort -k1 -nr:按第一列数值进行降序排序

场景2:系统产生很多碎片文件,导致 inode 资源不足

1
find -type f | awk -F/ -v OFS=/ '{$NF=""; dir[$0]++} END {for (i in dir) print dir[i] i}' | sort -k1 -nr | head
  • find -type f:查找所有文件
  • awk -F/ -v OFS=/:按 / 分割文件路径,去除文件名,统计目录
  • sort -k1 -nr:按第一列数值进行降序排序
  • head:显示前几行

指定文件操作

场景1:批量查找文件作内容替换

1
find ./ -type f -name consumer.xml -exec sed -i "s/aaaaaa/bbbbbb/g" {} ;
  • find ./ -type f -name consumer.xml;查找当前目录及其子目录下名为 consumer.xml 的文件
  • -exec sed -i “s/aaaaaa/bbbbbb/g” {} ;;对每个找到的文件执行 sed 命令,将 aaaaaa 替换为 bbbbbb

场景2:批量查找文件作拷贝打包

1
(find . -name "*.txt" | xargs tar -cvf test.tar) && cp -f test.tar /home/
  • find . -name “*.txt”;查找当前目录及其子目录下所有 .txt 文件
  • xargs tar -cvf test.tar;将找到的文件打包成 test.tar
  • && cp -f test.tar /home/;如果打包成功,将压缩包复制到 /home/ 目录

链接状态分析

场景:想了解用户请求所建立的网络连接状态分析

1
netstat -n | awk '/^tcp/ {++S[$NF]} END {for (a in S) print a, S[a]}'
  • netstat -n;查看主机上的所有 TCP 和 UDP 连接信息
  • awk ‘/^tcp/ {++S[$NF]} END {for (a in S) print a, S[a]}’;过滤出 TCP 连接,并统计每种连接状态的数量

IP 信息提取

场景:shell 脚本中希望快速提取到本机 IP

1
ip a | grep "global" | awk '{print $2}' | awk -F/ '{print $1}'
  • ip a;查看主机上所有网卡的信息
  • grep “global”;过滤出全局 IP 地址
  • awk ‘{print $2}’;提取第二列内容
  • awk -F/ ‘{print $1}’;以 / 为分隔符,提取第一列内容

** 以上是常用 Shell 命令合集及使用技巧的总结,希望对你有所帮助。**