• linux系统命令(调试命令)(nmtui,ip a、ss、ps、uptime、top、lsof、grep,iotop、iftop)


    本章命令

    0 1 2 3 4 5 6 7 8 9 10
    nmtui ip a ss ps uptime top lsof grep iotop iftop tsar

    nmtui

    • 图形化管理网卡命令
    • 依靠于NetworkManager服务
    • NetworkManager服务影响网络

    示例:

    1、ip a

    作用:查看ip地址(用于centos7系统)
    centos6系统用ifconfig
    windows运行ipconfig

    ╭─root@localhost.localdomain ~  
    ╰─➤  ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:7f:e5:12 brd ff:ff:ff:ff:ff:ff
        inet 192.168.80.3/24 brd 192.168.80.255 scope global ens33
           valid_lft forever preferred_lft forever
        inet6 fe80::20c:29ff:fe7f:e512/64 scope link 
           valid_lft forever preferred_lft forever
    
    # 拓展:修改网卡信息
    修改配置文件 /etc/sysconfig/network-scripts/    目录下的网卡同名文件
    
    DEVICE=eth0 #指出设备名称
    NM_CONTROLLED=yes #network mamager的参数,实时生效,不需要重启
    ONBOOT=yes #设置为yes,开机自动启用网络连接
    IPADDR=192.168.21.129 #IP地址
    BOOTPROTO=none #设置为none禁止DHCP,设置为static启用静态IP地址,设置为dhcp开启DHCP服务
    NETMASK=255.255.255.0 #子网掩码
    DNS1=8.8.8.8 #第一个dns服务器
    TYPE=Ethernet #网络类型为:Ethernet
    GATEWAY=192.168.21.2 #设置网关
    DNS2=8.8.4.4 #第二个dns服务器
    IPV6INIT=no #禁止IPV6
    USERCTL=no #是否允许非root用户控制该设备,设置为no,只能用root用户更改
    HWADDR=00:0C:29:2C:E1:0F #网卡的Mac地址
    PREFIX=24
    NAME=”System eth0″ #定义设备名称
    
    #实例:
    TYPE=Ethernet 
    DEVICE=ens33 
    ONBOOT=yes 
    BOOTPROTO=static 
    IPADDR=192.168.9.129
    NETMASK=255.255.255.0 
    GATEWAY=192.168.21.2 
    DNS1=8.8.8.8 
    DNS2=114.114.114.114 
    

    2、ss

    作用:查看端口监听状态

    option:
    -t: 显示tcp链接
    -n: 以数字形式显示当前链接的端口
    -l: 只显示监听的
    -a:显示全部
    -p: 显示PID

    #常用组合:ss -tnl
    ╭─root@localhost.localdomain ~  
    ╰─➤  ss -tnl
    State       Recv-Q Send-Q                       Local Address:Port                                      Peer Address:Port              
    LISTEN      0      128                                      *:22                                                   *:*                  
    LISTEN      0      100                              127.0.0.1:25                                                   *:*                  
    LISTEN      0      128                                     :::22                                                  :::*                  
    LISTEN      0      100                                    ::1:25                                                  :::*       
    

    3、ps

    作用:查看进程的工具

    option :
    a: 显示跟当前终端关联的所有进程
    u: 基于用户的格式显示(U: 显示某用户ID所有的进程)
    x: 显示所有进程,不以终端机来区分

    ╭─root@localhost.localdomain ~  
    ╰─➤  ps aux
    USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root          1  0.0  0.3 125160  3668 ?        Ss   16:32   0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
    root          2  0.0  0.0      0     0 ?        S    16:32   0:00 [kthreadd]
    root          3  0.0  0.0      0     0 ?        S    16:32   0:00 [ksoftirqd/0]
    root          9  0.0  0.0      0     0 ?        R    16:32   0:01 [rcu_sched]
    root         10  0.0  0.0      0     0 ?        S    16:32   0:00 [watchdog/0]
    root         12  0.0  0.0      0     0 ?        S<   16:32   0:00 [khelper]
    root         13  0.0  0.0      0     0 ?        S    16:32   0:00 [kdevtmpfs]
    root         14  0.0  0.0      0     0 ?        S<   16:32   0:00 [netns]
    root         20  0.0  0.0      0     0 ?        S<   16:32   0:00 [md]
    root         26  0.0  0.0      0     0 ?        S    16:32   0:00 [kswapd0]
    root         27  0.0  0.0      0     0 ?        SN   16:32   0:00 [ksmd]
    root         28  0.0  0.0      0     0 ?        SN   16:32   0:00 [khugepaged]
    root         29  0.0  0.0      0     0 ?        S    16:32   0:00 [fsnotify_mark]
    root        539  0.0  0.0      0     0 ?        S    16:32   0:00 [xfsaild/sda1]
    root        601  0.0  0.1  55416  1732 ?        S<sl 16:33   0:00 /sbin/auditd -n
    root        620  0.1  0.6 302432  6064 ?        Ssl  16:33   0:46 /usr/bin/vmtoolsd
    
    ...      #省略了部分进程
    
    postfix    1295  0.0  0.3  89152  3988 ?        S    16:33   0:00 qmgr -l -t unix -u
    root       2175  0.0  0.3 140364  3196 tty1     Ss+  16:33   0:00 -zsh
    root       2289  0.1  0.0      0     0 ?        R    16:42   0:39 [kworker/0:1]
    root       2729  0.0  0.0      0     0 ?        S<   22:38   0:00 [hci0]
    root       2730  0.0  0.0      0     0 ?        S<   22:38   0:00 [kworker/u257:1]
    root       3112  0.0  0.5 145668  5556 ?        Ss   22:38   0:00 sshd: root@pts/0
    postfix    3114  0.0  0.3  89084  3960 ?        S    22:38   0:00 pickup -l -t unix -u
    root       3115  0.0  0.3 140372  3332 pts/0    Ss   22:38   0:00 -zsh
    root       3225  0.0  0.0      0     0 ?        S<   22:51   0:00 [kworker/0:1H]
    root       3255  0.0  0.1 151056  1828 pts/0    R+   23:10   0:00 ps aux
    

    输出表详解:

    表头 含义
    USER 启动这些进程的用户
    PID 进程的ID
    %CPU 进程占用的CPU百分比
    %MEM 占用内存的百分比
    VSZ 进程占用的虚拟内存大小(单位:KB)
    RSS 进程占用的物理内存大小(单位:KB)
    STAT 该程序目前的状态
    START 该 process 被触发启动的时间
    TIME 该 process 实际使用 CPU 运作的时间
    COMMAND 该程序的实际指令

    STAT:该程序目前的状态(详解)

    Linux进程有5种基本状态:

    R :该程序目前正在运作,或者是可被运作;
    S :该程序目前正在睡眠当中,但可被某些讯号(signal) 唤醒。
    T :该程序目前正在侦测或者是停止了;
    Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (僵尸) 程序的状态
    D :不可中断状态.

    5个基本状态后,还可以加一些字母,它们含意:

    <: 表示进程运行在高优先级上
    N: 表示进程运行在低优先级上
    L: 表示进程有页面锁定在内存中
    s: 表示进程是控制进程
    l: 表示进程是多线程的
    +: 表示当前进程运行在前台

    实例 ps -ef

    $ps -ef
    UID         PID   PPID  C STIME TTY          TIME CMD
    root          1      0  0 Sep18 ?        00:01:19 init [3]
    root         78      1  0 Sep18 ?        00:00:02 /usr/sbin/sshd
    root         93      1  0 Sep18 ?        00:00:56 crond -m/dev/null
    root        104      1  0 Sep18 ?        00:00:01 /usr/sbin/atd
    root        120      1  0 Sep18 ?        00:00:00 /bin/sh /usr/local/bin/svscanboot
    root        122    120  0 Sep18 ?        00:01:13 svscan /service
    root        123    120  0 Sep18 ?        00:00:00 readproctitle service errors: ..........................................
    root        124    122  0 Sep18 ?        00:00:00 supervise tops-gemclient
    root        125    122  0 Sep18 ?        00:00:00 supervise log
    root        126    124  0 Sep18 ?        00:00:00 /usr/bin/perl -w ./run
    nobody      127    125  0 Sep18 ?        00:00:00 multilog t I s200000 n5 ./main
    root       1910      1  3 Sep18 ?        1-17:18:02 ./service_manager -TjApiHttpTimeout=30s
    
    • UID: 用户ID(User ID)
    • PID: 进程ID(Process ID)
    • PPID: 父进程的进程ID(Parent Process id)
    • STIME: 启动时间
    • TTY: 与进程关联的终端(tty)
    • TIME: 进程使用的总cpu时间
    • CMD: 正在执行的命令行命令

    实例

    # 查看进程的启动时间:
    ps -eo lstart   启动时间
    # 查看进程的运行时间
    ps -eo etime   运行多长时间.
    # 查看进程的pid、启动时间、运行时间
    ps -eo pid,lstart,etime | grep [ pid ]
    # 查看进程的实际使用内存
    ps -eo 'pid,comm,rsz' | grep  [oss_server]
    

    4、uptime

    作用:查看系统负载

    ╭─root@localhost.localdomain ~  
    ╰─➤  uptime 
     23:34:30 up  7:01,  2 users,  load average: 0.00, 0.01, 0.05
    
    #输出含意如下:
    
    23:34:30  up      7:01,     2 users, load average:    0.00     ,0.01  ,     0.05
    当前时间 系统状态  系统运行时间 当前登录用户         系统负载1分钟 ,5分钟 ,15分钟的平均负载
    
    
    那么什么是系统平均负载呢? 系统平均负载是指在特定时间间隔内运行队列中的平均进程数。
    如果每个CPU内核的当前活动进程数不大于3的话,那么系统的性能是良好的。如果每个CPU内核的任务数大于5,那么这台机器的性能有严重问题。
    如果你的linux主机是1个双核CPU的话,当Load Average 为6的时候说明机器已经被充分使用了。
    

    5、top

    作用:实时显示进程的状态

    输出内容:

    第1行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。
    第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
    第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等;其中数据均为CPU数据并以百分比格式显示。
    第4行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。
    第5行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。
    第6行:表格

    第6行表格含义:

    表头 含义
    PID 进程id
    USER 进程所有者
    PR 进程优先级
    NI nice值。负值表示高优先级,正值表示低优先级
    VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
    RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
    SHR 共享内存大小,单位kb
    S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
    %CPU 上次更新到现在的CPU时间占用百分比
    %MEM 进程使用的物理内存百分比
    TIME+ 进程使用的CPU时间总计,单位1/100秒
    COMMAND 进程名称(命令名/命令行)

    top 运行中的内部命令:

    s – 改变画面更新频率
    l – 关闭或开启第一部分第一行 top 信息的表示
    t – 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
    m – 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
    N – 以 PID 的大小的顺序排列表示进程列表
    P – 以 CPU 占用率大小的顺序排列进程列表
    M – 以内存占用率大小的顺序排列进程列表
    h – 显示帮助
    n – 设置在进程列表所显示进程的数量
    q – 退出 top
    s – 改变画面更新周期

    # 查看进程状态
    cat /proc/17944/status ; echo -e "
    "; cat /proc/17944/stack
    

    6、lsof

    作用:用于查看你进程打开的文件,打开文件的进程,进程打开的端口(TCP、UDP)

    -i<条件>:列出符合条件的进程。(4、6、协议、:端口、 @ip )

    ╭─root@localhost.localdomain ~  
    ╰─➤  lsof
    zsh: command not found: lsof
    ╭─root@localhost.localdomain ~  
    ╰─➤  yum install lsof -y      
    ╭─root@localhost.localdomain ~  
    ╰─➤  lsof -i:22
    COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    sshd     984 root    3u  IPv4  18375      0t0  TCP *:ssh (LISTEN)
    sshd     984 root    4u  IPv6  18384      0t0  TCP *:ssh (LISTEN)
    

    7、grep

    作用:Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来;

    ╭─root@www.du1.com ~  
    ╰─➤  lsof -i:80 | grep httpd
    httpd   2348   root    4u  IPv6  21624      0t0  TCP *:http (LISTEN)
    httpd   2350 daemon    4u  IPv6  21624      0t0  TCP *:http (LISTEN)
    httpd   2351 daemon    4u  IPv6  21624      0t0  TCP *:http (LISTEN)
    httpd   2352 daemon    4u  IPv6  21624      0t0  TCP *:http (LISTEN)
    
    

    8、iotop

    作用:iotop 是一个用来监视磁盘 I/O 使用状况的 top 类工具。iotop 具有与 top 相似的 UI,其中包括 PID、用户、I/O、进程等相关信息。

    下载

     yum install iotop -y
    

    使用

    ╭─root@localhost.localdomain ~  
    ╰─➤  iotop  
    
    ##其中:
    
       r  :反向排序
      o  :只显示有IO输出的进程
      q :是退出
    

    9、iftop

    官网:http://www.ex-parrot.com/~pdw/iftop/

    安装

    yum install epel-release
    yum install iftop -y
    

    常用的参数

    -i   设定监测的网卡,如:# iftop -i eth1
    -B    以bytes为单位显示流量(默认是bits),如:# iftop -B
    -n   使host信息默认直接都显示IP,如:# iftop -n
    -N   使端口信息默认直接都显示端口号,如: # iftop -N
    -F   显示特定网段的进出流量,如# iftop -F 10.10.1.0/24
    -h(display this message),帮助,显示参数信息
    -p   使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;
    -b    使流量图形条默认就显示;
    -f     过滤计算包用的;
    -P    使host信息及端口信息默认就都显示;
    -m    设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M
    

    进入iftop画面后的一些操作命令(注意大小写)

    按h切换是否显示帮助;
    按n切换显示本机的IP或主机名;
    按s切换是否显示本机的host信息;
    按d切换是否显示远端目标主机的host信息;
    按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;
    按N切换显示端口号或端口服务名称;
    按S切换是否显示本机的端口信息;
    按D切换是否显示远端目标主机的端口信息;
    按p切换是否显示端口信息;
    按P切换暂停/继续显示;
    按b切换是否显示平均流量图形条;
    按B切换计算2秒或10秒或40秒内的平均流量;
    按T切换是否显示每个连接的总流量;
    按l打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;
    按L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;
    按j或按k可以向上或向下滚动屏幕显示的连接记录;
    按1或2或3可以根据右侧显示的三列流量数据进行排序;
    按<根据左边的本机名或IP排序;
    按>根据远端目标主机的主机名或IP排序;
    按o切换是否固定只显示当前的连接;
    按f可以编辑过滤代码,这是翻译过来的说法,我还没用过这个!
    按!可以使用shell命令,这个没用过!没搞明白啥命令在这好用呢!
    按q退出监控。
    

    摘自:https://www.vpser.net/manage/iftop.html


    10、监控命令tsar

    • tsar是淘宝自己开发的一个采集工具(类似于sar工具),主要用来收集服务器的系统信息(如cpu,io,mem,tcp等),以及应用数据(如squid haproxy nginx等)。
    • 收集到的数据存储在磁盘上,可以随时查询历史信息,输出方式灵活多样,另外支持将数据存储到mysql中,也可以将数据发送到nagios报警服务器。
    • tsar在展示数据时,可以指定模块,并且可以对多条信息的数据进行merge输出,带--live参数可以输出秒级的实时信息。
    • tsar可以通过编写模块轻松扩展,这使得它成为一个功能强大且多功能的报告工具。
    • 官方网址:http://tsar.taobao.org
    • github地址:https://github.com/alibaba/tsar
    • 参考:https://www.cnblogs.com/clsn/p/9135820.html

    常用命令

    tsar -il 1  #查看负载
    
    

  • 相关阅读:
    抽奖系统 random()
    JavaScript 稀奇的js语法
    Node初识笔记 1第一周
    vue 自定义指令
    vue 组件 单选切换控制模板 v-bind-is
    学习网址
    vue 组件 子向父亲通信用自定义方法用事件监听
    vue 组件 模板中根数据绑定需要指明路径并通信父
    vue 组件 模板input双向数据数据
    测试样式
  • 原文地址:https://www.cnblogs.com/du-z/p/10885061.html
Copyright © 2020-2023  润新知