跳转至

命令备忘

  • 查找虚机内存占用最多的几个进程
    grep VmSwap /proc/*/status | sort -hk2 | tail
    
  • 通过 PID 查看程序文件位置
    ls -l /proc/{PID}}$/exe
    

sort

  • 排序 ipv4 地址

    sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 
    

  • -n:使用数值(numeric)排序,而不是默认的字典排序。

  • -t .:指定了字段分隔符为点号 .,而不是默认的空白字符(空格或制表符)。

  • -k 1,1 -k 2,2 -k 3,3 -k 4,4:指定了按照特定字段来排序:

    • -k 1,1:指定按照第一个字段( IP 地址的第一部分)排序。
    • -k 2,2:指定按照第二个字段( IP 地址的第二部分)排序。
    • -k 3,3:指定按照第三个字段( IP 地址的第三部分)排序。
    • -k 4,4:指定按照第四个字段( IP 地址的第四部分)排序。

    less

  • 显示行号

    less -N xxx # 打开后直接打 -n 回车可以把关闭行号显示
    

  • 强制不换行显示

    less -S xxx
    

  • 使用命令的同时启动搜索

    less -p pattern filename
    
    可使用正则,比如
    less -p 'E[0-9]*' /var/log/messages
    Oct 22 03:39:03 k8s-master kubelet: E1022 03:39:03.766496 # 会高亮 E1022
    

  • 查看多文件时翻页

          :n     Examine  the next file (from the list of files given in the com‐
                  mand line).  If a number N is specified, the N-th next  file  is
                  examined.
           :p     Examine the previous file in the command line list.  If a number
                  N is specified, the N-th previous file is examined.
    

  • -R 能显示颜色字符
    和 grep --color=always -E '|xxx' 搭配使用可高亮指定关键词

    tailf /var/log/messages | grep -E --color=always '|orphaned|Failed' | less -R
    

curl

  • -S 显示错误信息
  • -s 静默信息
  • -o filename 把输出保存到文件
  • -O 使用请求的文件名(服务器上的文件名)来保存
  • -u username:password 指定认证的用户名密码

  • 输出当前时间和返回的状态码,忽略返回的内容。
    curl -s -o /dev/null -w "[`date`]: %{http_code}\n" http://10.96.0.1:39000 
    
  • 提供用户名密码,获取到的文件内容保存,以服务端的文件名保存文件。
    curl -SsO -u username:password xxx.com/file.conf
    
  • 把获取到的文件给 tar 解压到指定目录里
    curl -Ss xxx.com/file/xxx.tar.gz | tar -xz -C ~/xxx/
    

top

  • 按内存使用从高到低排序,并显示完整命令行
    top -co %MEM
    

grep

  • 只输出匹配内容

-o 参数,通常用来提取匹配行中的相关信息,一般配合使用正则来提取信息 。

提取 UUID
提取 /var/log/message 中出现的 UUID
grep -o '\b[0-9a-f]\{8\}-[0-9a-f]\{4\}-[0-9a-f]\{4\}-[0-9a-f]\{4\}-[0-9a-f]\{12\}\b' /var/log/messages
  • \b: 表示单词边界,确保匹配整个单词。
  • [0-9a-f]: 匹配数字 0-9 和小写字母 a-f 中的任何一个字符。
  • \{8\}: 表示前面的字符集 [0-9a-f] 必须精确重复 8 次。
  • -: 匹配短横线字符。
  • \\b: 再次表示单词边界。
  • 只匹配不输出结果

-q 参数,通常配合其它命令用于判断是否有匹配。

根据匹配与否进行操作

例如,假设你要在一个文件中查找是否存在某个模式,但是不需要看到实际的匹配行,可以这样做:

if grep -q "pattern" filename; then
  echo "Pattern found" 
else
  echo "Pattern not found"
 fi
在这个例子中,-q 选项告诉 grep 不要输出匹配到的内容,而是根据匹配与否返回状态,然后根据返回状态执行相应的操作。

  • 提取 IPv4 地址

    grep -oE '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b'
    
    正则分解:

  • \b:是单词边界的元字符,确保匹配的是完整的IP地址,而不是 IP 地址的一部分。

  • ([0-9]{1,3}\.){3}:这部分匹配 IP 地址的前三个字段,每个字段是一个由 1 到 3 位数字组成的数字,后跟一个点号 .{1,3} 表示数字可以是 1 到 3 位数。

  • [0-9]{1,3}:这部分匹配 IP 地址的最后一个字段,也是由 1 到 3 位数字组成。

  • \b:再次是单词边界,确保匹配的是完整的 IP 地址结尾。

创建时间: 2024-05-10 09:30:15 最后更新: 2024-07-10 09:52 更新次数: 3 浏览次数: