01 linux 命令

一、 查找命令

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容