美文网首页
01 linux 命令

01 linux 命令

作者: 格林哈 | 来源:发表于2023-02-01 10:42 被阅读0次

    一、 查找命令

    1 grep

    1 grep 基础

    • -C 关键字 上下行数

    • -A 关键字和后面的N行

    • -B 关键字和前面的N行

    • -n 显示行号

    • -i 忽略大小写

    • -c 只输出 关键字出现的次数

    • -v 输出没有包含关键字内容

    • --color=auto 关键字高亮

    • -m num 查询最大数量, --max-count=num

    • 例子

    tail -n 2000 server.log | grep sendAddPostCommentEvent -n -C 1 --color=a
    
    
    
    

    2 并且查询

    • F 参数强制不使用任何表达式
    grep 5288490287094574636 server.log| grep broadcastPushToWeb|grep -F 'status\":2'
    

    3 或者查询

    egrep  'broadcastPushToWeb|5236743288469332012' server.log
    grep 'pattern1 \| pattern2' filename
    grep -E 'pattern1|pattern2' filename
    

    4 NOT,非查询

    grep -v 'broadcastPushToWeb' filename
    

    5. 后面前面第一次出现

    #最后一次
    grep -C 100  'listMessageByTypes'  catalina.log | tail -200
    # 最前面
    grep -C 100  'listMessageByTypes'  catalina.log | head -200
    

    二、系统信息命令

    1. top命令

    1. 语法

    • -和|是可选的
    top -hv | -bcEeHiOSs1 -d secs -n max -u | U user -p pid(s) -o field -w [cols]
    

    1.1 选项

    选项 名称 描述
    -h 帮助 显示命令帮助
    -v 版本
    -b 批处理方式 以批处理模式启动 top,允许将命令的输出发送到文件或其他程序。Top 不接受批处理模式下的输入,并且一直运行到终止或者达到指定的迭代限制为止。
    -c 切换命令行/程序名称 反转最后记住的 c 状态。如果顶部显示命令行,该字段现在显示程序名称,反之亦然。
    -d [secs.tenths] 延迟时间间隔 提示您在更新屏幕之前指定延迟,并覆盖默认值。数值以秒为单位。该命令接受小数秒,但不接受负数。
    -e [k / m /g / t / p] 切换任务内存缩放 允许您更改top 任务区域内存缩放。可用的缩放选项是k(kibibytes)、m(mebibytes)、g(gibibytes)、t(tebibytes)、p(pebibytes)。
    -E [k / m / g / t / p / e] 切换摘要内存缩放 允许您更改top摘要区域内存缩放。可用的缩放选项是k (kibibytes)、m (mebibytes)、g(gibibytes)、t(tebibytes)、p(pebibytes)、e(exbibytes)。
    -H 线程模式操作 指定-H选项指示top 显示单个线程而不是每个进程中所有线程的总和。
    -i 空闲进程切换 反转最后记住的i状态。当开关关闭时,top 不显示自上次更新以来未使用 CPU 资源的任务。
    -n 限制迭代次数 top 指定结束前要生成的最大迭代次数。
    -o [field name] 覆盖排序字段 指定top 用于对任务进行排序的字段名称。在字段名称前加上一个+强制top 从高到低排序,同时在它前面加上-订单任务从低到高。该-o选项主要支持自动批处理模式操作。
    -O 输出字段名称 该-O选项补充了该-o选项,导致top 分别打印每个可用的字段名称,然后退出。
    -p [N1, N2...] 监控进程 ID 模式 指示top 仅监视具有指定进程 ID 的进程。当与线程模式 ( -H) 结合使用时,top 显示每个受监视的 PID 线程组中的所有进程。PID 的最大数量为 20。指定 PID 值0被视为top 程序进程 ID。要恢复正常操作,请发出以下任何命令:=、u或U,因为它们是互斥的。
    -s 安全模式操作 以安全模式启动top ,即使是 root。
    -S 累计时间切换 反转最后记住的S状态。当累积时间切换为 ON 时,每个进程都会列出它已使用的 CPU 时间。
    -u / -U [ID or name] 用户过滤模式 仅显示与指定用户 ID 或用户名匹配的进程。该-u选项仅匹配有效用户,而该-U选项匹配任何用户 - 真实、有效、已保存或文件系统。在用户 ID 或用户名前加上感叹号 ( !) 会导致top 仅显示与提供的进程不匹配的进程。
    -w [number] 输出宽度覆盖 当不带参数使用时,-w指示top 使用COLUMNS=和LINES=环境变量格式化输出(如果适用)。否则,宽度固定为最大 512 列。-w在行号不受限制的情况下,将参数附加到增加(最多 512)或减少输出宽度。该程序永远不会超过top 调用时的实际终端尺寸。
    -1 单个/独立 CPU 状态切换 反转最后记住的 CPU 状态部分。根据 NUMA 节点命令切换 ( 2) 状态,在一行中或单独显示所有 CPU 信息。

    2. 示例

    2.1 top

    • 输出
      • image.png
      • 输出显示摘要区域(具有资源使用统计信息的仪表板)和任务区域(所有进程的列表)
      • top默认情况下每三秒更新一次信息。
    1. 操作
    • 如果进程列表很长,请使用向上和向下箭头以及Page Up和Page Down键滚动浏览它。要退出top,请按q。
    • 发送信号
      • 使用该top命令向正在运行的进程发送任何信号。按k键并输入过程 PID。top让您有机会键入要发送的信号。不输入特定信号会终止进程。
      • image.png

    2.2 X 次重复后退出

    • 语法
      • 对于[X],指定要top刷新输出的次数。
    top -n [X]
    

    2.3 排序进程

    • 排序关键字
      • M. Sort by the %MEM column.
      • N. Sort by PID column.
      • T. Sort by the TIME+ column.
      • P. Sort by the %CPU column.

    2.4 按特定用户过滤进程

    • -u选项允许您显示所有用户特定的进程。在运行时按u键top或使用以下语法:
    top -u [user name]
    
    • 输出
      • image.png

    2.5 更改显示单位

    • 语法

      • 使用E键选择要top用于显示内存值的单位。
      • 按小写字母e选择在进程列表中显示值的单位。
    • 可用的选项是

      • kibibytes (KiB)
      • mebibytes (MiB)
      • gibibytes (GiB)
      • tebibytes (TiB)
      • pebibytes (PiB)
      • exbibytes (EiB - applies only for memory values)
    • 输出

      • image.png

    2.5 更改输出内容

    • 默认top输出包含大量信息,可能看起来很混乱。通过几次按键调整内容,找到您需要的信息,或从摘要中删除某些部分。
    1. 单个 CPU 核心统计数据
    • 语法
      • 按键盘上的1可以查看每个 CPU 内核的单独统计信息。反复按1切换核心统计数据。
    • 输出
      • image.png
    1. CPU 使用图
    • top支持基本的 ASCII 图,表示每个 CPU 内核的使用情况。按t打开或关闭图表。

      • 第一次按t 显示条纹进度
      • 第二次按t 显示实心进度
      • 第三次按t删除 CPU 显示和任务摘要部分。
    • 输出

      • image.png
      • 按t 变成实心
        • image.png
    1. 内存使用图
    • 该命令还支持内存和交换内存行的图形显示选项。要获得内存使用情况的直观表示,请按m。再次按m删除线条。
    1. 更改文字颜色
    • 通过向输出添加颜色来强调输出中的信息。按z键为显示添加颜色:

    • 输出

      • image.png
    • 自定义显示元素并选择不同的颜色

      1. 按Z打开颜色设置页面。
        • 按以下键选择要更改的显示元素:
          • S。摘要数据区域。
          • M。消息和提示。
          • H。列标题。
          • T。进程列表中的任务信息。
        • 按Enter确认选择。
      2. 使用以下键之一为所选元素选择颜色:
        • 0。黑色的。
        • 1 . 红色的。
        • 2 . 绿色的。
        • 3 . 黄色。
        • 4 . 蓝色的。
        • 5 . 品红。
        • 6 . 青色。
        • 7 . 白色的。
      3. 按Enter确认选择。

    2.6 显示进程命令行

    • 语法

      • top -c
      • 进入 top 按c
    • image.png

    2.7 流程层次结构

    • 要查看哪些进程已启动或由其他进程生成,请按V键。
      • 当想查看系统上的子-父进程层次结构时,树视图很有用。
    • 输出
      • image.png

    2.8 显示活动任务

    • 按I键 ,要过滤输出并仅显示活动任务
      • 输出隐藏了自上次更新以来未使用任何 CPU 资源的任务。
    • 输出
      • image.png

    2.9 限制进程数

    • 按n键限制输出中的进程数。无论活动进程的数量如何。top提示输入要查看的进程数
    • 例如,我们只想显示前 3 个进程:
      • image.png

    2.10 更改进程优先级

    1. 过程
      • 运行top并按r键
      • 出现提示时,输入进程 ID 并按Enter 键。
      • 输入 PID 后,程序会提示输入一个新的 nice 值。输入新值并按Enter 键。
    • 负 nice 值表示更高的进程优先级。

    • 更改PID 28 优先级 为 12

      • image.png

    2.10 过滤进程

    • 过滤器top功能允许使用过滤器表达式来限制在列表中查看哪些进程。按o键激活过滤器选项。该程序会提示您输入过滤器表达式。
    1. 例子
    • 显示 %MEM > 0.2 的
      • image.png

    三、网络相关

    1. netstat 用于显示网络状态

    1. 语法

    netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
    

    1.1 参数说明

    • -a或--all 显示所有连线中的Socket。
    • -A<网络类型>或--<网络类型> 列出该网络类型连线中的相关地址。
    • -c或--continuous 持续列出网络状态。
    • -C或--cache 显示路由器配置的快取信息。
    • -e或--extend 显示网络其他相关信息。
    • -F或--fib 显示路由缓存。
    • -g或--groups 显示多重广播功能群组组员名单。
    • -h或--help 在线帮助。
    • -i或--interfaces 显示网络界面信息表单。
    • -l或--listening 显示监控中的服务器的Socket。
    • -M或--masquerade 显示伪装的网络连线。
    • -n或--numeric 直接使用IP地址,而不通过域名服务器。
    • -N或--netlink或--symbolic 显示网络硬件外围设备的符号连接名称。
    • -o或--timers 显示计时器。
    • -p或--programs 显示正在使用Socket的程序识别码和程序名称。
    • -r或--route 显示Routing Table。
    • -s或--statistics 显示网络工作信息统计表。
    • -t或--tcp 显示TCP传输协议的连线状况。
    • -u或--udp 显示UDP传输协议的连线状况。
    • -v或--verbose 显示指令执行过程。
    • -V或--version 显示版本信息。
    • -w或--raw 显示RAW传输协议的连线状况。
    • -x或--unix 此参数的效果和指定"-A unix"参数相同。
    • --ip或--inet 此参数的效果和指定"-A inet"参数相同。

    1.2 列头信息

    • Proto
      • 套接字使用的协议(tcp、udp、raw)。
    • Recv-Q
      • 连接到此套接字的用户程序未复制的字节数。
      • 这些数字一般都应该是0,如果不是则表示软件包正在队列中堆积,这种情况是非常少见的
    • Send-Q
      • 远程主机未确认的字节数。
    • Local Address
      • 套接字本端的地址和端口号。除非指定--numeric ( -n ) 选项,否则套接字地址会解析为其规范主机名 (FQDN),而端口号会转换为相应的服务名称。
      • 本地计算机的 IP 地址和正在使用的端口号。除非指定-n参数,否则显示与 IP 地址和端口名称对应的本地计算机的名称。如果端口尚未建立,则端口号显示为星号 (*)。
    • Foreign Address
      • 套接字所连接的远程计算机的 IP 地址和端口号。除非指定-n参数,否则将显示对应于 IP 地址和端口的名称。如果端口尚未建立,则端口号显示为星号 (*)。
    • State
      • 指示TCP连接的状态,
        • ESTABLISHED 套接字已建立连接。
        • SYN_SENT 套接字正在主动尝试建立连接。
        • SYN_RECV 已从网络收到连接请求。
        • FIN_WAIT1 套接字已关闭,连接正在关闭。
        • FIN_WAIT2 连接已关闭,套接字正在等待来自远程端的关闭。
        • TIME_WAIT 套接字在关闭后等待处理仍在网络中的数据包。
        • CLOSED 套接字未被使用。
        • CLOSE_WAIT 远程端已关闭,等待套接字关闭。
        • LAST_ACK 远程端已关闭,套接字已关闭。等待确认。
        • LISTEN 套接字正在侦听传入连接。此类套接字不会包含在输出中,除非您指定--listening ( -l ) 或 --all ( -a ) 选项。
        • CLOSING 两个套接字都已关闭,但我们仍然没有发送所有数据。
        • UNKNOWN 套接字的状态未知。
    • PID/Program name
      • 拥有套接字的进程的进程 ID (PID) 和进程名称的斜线分隔对。--program导致包含此列。您还需要超级用户权限才能在不属于您的套接字上查看此信息。此标识信息尚不可用于 IPX 套接字。

    2. 案例

    1. 查看端口端口

    1. netstat -anp 查看所有端口
    root@DESKTOP-2L5PHTK:/etc# netstat -anp
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      103/sshd
    tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      343/docker-proxy
    tcp        0      0 127.0.0.1:3306          127.0.0.1:33320         ESTABLISHED 343/docker-proxy
    tcp        0      0 172.17.0.1:49888        172.17.0.2:3306         ESTABLISHED 343/docker-proxy
    tcp        0      0 127.0.0.1:33320         127.0.0.1:3306          ESTABLISHED -
    tcp6       0      0 :::22                   :::*                    LISTEN      103/sshd
    tcp6       0      0 :::2375                 :::*                    LISTEN      153/dockerd
    tcp6       0      0 :::3306                 :::*                    LISTEN      351/docker-proxy
    tcp6       0      0 172.20.116.187:2375     172.20.112.1:61782      ESTABLISHED 153/dockerd
    tcp6       0      0 172.20.116.187:2375     172.20.112.1:61768      ESTABLISHED 153/dockerd
    
    1. 找出程序运行的端口
    • netstat -ap | grep ssh
    root@DESKTOP-2L5PHTK:/etc# netstat -ap | grep ssh
    tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN      103/sshd
    tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      103/sshd
    

    2. tcp/ip

    1.查看tcp所有端口

    • netstat -antp
    root@DESKTOP-2L5PHTK:/etc# netstat -antp
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      103/sshd
    tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      343/docker-proxy
    tcp        0      0 127.0.0.1:3306          127.0.0.1:33320         ESTABLISHED 343/docker-proxy
    tcp        0      0 172.17.0.1:49888        172.17.0.2:3306         ESTABLISHED 343/docker-proxy
    tcp        0      0 127.0.0.1:33320         127.0.0.1:3306          ESTABLISHED -
    tcp6       0      0 :::22                   :::*                    LISTEN      103/sshd
    tcp6       0      0 :::2375                 :::*                    LISTEN      153/dockerd
    tcp6       0      0 :::3306                 :::*                    LISTEN      351/docker-proxy
    tcp6       0      0 172.20.116.187:2375     172.20.112.1:61782      ESTABLISHED 153/dockerd
    tcp6       0      0 172.20.116.187:2375     172.20.112.1:61768      ESTABLISHED 153/dockerd
    
    1. TCP各种状态列表并统计排序
    • netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
    root@DESKTOP-2L5PHTK:/etc# netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
          5 LISTEN
          5 ESTABLISHED
          1 established)
          1 Foreign
    
    1. TCP 长连接
    • netstat —f inet
      • 这个— 是中文的-
    root@DESKTOP-2L5PHTK:/etc# netstat –f inet
    Active Internet connections (w/o servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State
    tcp        0      0 localhost:mysql         localhost:33320         ESTABLISHED
    tcp        0      0 172.17.0.1:49888        172.17.0.2:mysql        ESTABLISHED
    tcp        0      0 localhost:33320         localhost:mysql         ESTABLISHED
    tcp6       0      0 172.20.116.187:2375     DESKTOP-2L5PHTK:61782   ESTABLISHED
    tcp6       0      0 172.20.116.187:2375     DESKTOP-2L5PHTK:61768   ESTABLISHED
    

    相关文章

      网友评论

          本文标题:01 linux 命令

          本文链接:https://www.haomeiwen.com/subject/oblihdtx.html