zoukankan      html  css  js  c++  java
  • Linux常用的一些命令

    Linux常用的一些命令

    cd : 切换目录

    cd /  切换到根目录
    cd ~  切换到home目录
    cd ../切换到父目录

    ls 或 ll : 显示当前目录下的文件以及目录

    ls  显示当前目录下的文件以及目录的简略信息
    ll 显示当前目录下的文件以及目录的详细信息

    pwd : 查看当前目录的绝对路径信息

    df 可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。

    du 可以查看文件及文件夹的大小。

    df -h  : 查看内存以及磁盘使用情况
    # 如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。
    #这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=
    du -sh :系统只显示当前文件夹所占用的总空间
    du -h --max-depth=1 / 
    du -h --max-depth=1 /* 

     

    ps 查看进程

     ps命令查找与进程相关的PID号:
        ps a 显示现行终端机下的所有程序,包括其他用户的程序。
        ps -A 显示所有程序。
        ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
        ps -e 此参数的效果和指定"A"参数相同。
        ps e 列出程序时,显示每个程序所使用的环境变量。
        ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
        ps -H 显示树状结构,表示程序间的相互关系。
        ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
        ps s 采用程序信号的格式显示程序状况。
        ps S 列出程序时,包括已中断的子程序资料。
        ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
        ps u 以用户为主的格式来显示程序状况。
        ps x 显示所有程序,不以终端机来区分。
       
        最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定的进程进行操作。
        ps aux | grep program_filter_word,ps -ef |grep tomcat
    
    ps -ef|grep java|grep -v grep 显示出所有的java进程,去处掉当前的grep进程。

    结果:

    [root@cetc102 ~]# ps
      PID TTY          TIME CMD
     7535 pts/1    00:00:00 bash
     7843 pts/1    00:00:00 ps
    
    [root@cetc102 ~]# ps -aux
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root         1  0.1  0.1 193848  6964 ?        Ss   10:30   0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
    root         2  0.0  0.0      0     0 ?        S    10:30   0:00 [kthreadd]
    root         3  0.0  0.0      0     0 ?        S    10:30   0:00 [ksoftirqd/0]
    root         5  0.0  0.0      0     0 ?        S<   10:30   0:00 [kworker/0:0H]
    root         7  0.0  0.0      0     0 ?        S    10:30   0:00 [migration/0]
    root         8  0.0  0.0      0     0 ?        S    10:30   0:00 [rcu_bh]
    root         9  0.0  0.0      0     0 ?        S    10:30   0:00 [rcu_sched]
    root        10  0.0  0.0      0     0 ?        S<   10:30   0:00 [lru-add-drain]
    
    [root@cetc102 ~]# ps -ef
    UID        PID  PPID  C STIME TTY          TIME CMD
    root         1     0  0 10:30 ?        00:00:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
    root         2     0  0 10:30 ?        00:00:00 [kthreadd]
    root         3     2  0 10:30 ?        00:00:00 [ksoftirqd/0]
    root         5     2  0 10:30 ?        00:00:00 [kworker/0:0H]
    root         7     2  0 10:30 ?        00:00:00 [migration/0]
    root         8     2  0 10:30 ?        00:00:00 [rcu_bh]
    root         9     2  0 10:30 ?        00:00:00 [rcu_sched]
    root        10     2  0 10:30 ?        00:00:00 [lru-add-drain]

    kill : 结束进程命令

    使用kill命令结束进程:kill pid   
    
    常用:kill9 pid ,是强制结束进程  ,其中pid是进程号
    
    Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:# killall -9 NAME

    查看端口占用情况

    CentOS下可以用netstat或者lsof查看,Windows下也可以用netstat查看,不过参数会不同

    Linux:
    netstat -nap #会列出所有正在使用的端口及关联的进程/应用
    lsof -i :portnumber #portnumber要用具体的端口号代替,可以直接列出该端口听使用进程/应用
    
    一、检查端口被哪个进程占用
    netstat -lnp|grep 88   #80为端口号
    netstat -nap|grep :22 #22为端口号 二、查看进程的详细信息
    ps 1777 #1777为pid 三、杀掉进程 kill -9 1777 #杀掉编号为1777的进程(请根据实际情况输入) Windows系统: netstat -nao #会列出端口关联的的进程号,可以通过任务管理器查看是哪个任务 最后一列为程序PID,再通过tasklist命令:tasklist | findstr 2724 再通过任务管理结束掉这个程序就可以了

    netstat -nap  查看进程端口占用情况,结果如下所示

    [root@cetc102 ~]# netstat -nap
    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:111             0.0.0.0:*               LISTEN      1/systemd           
    tcp        0      0 0.0.0.0:6000            0.0.0.0:*               LISTEN      5476/X              
    tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      5447/dnsmasq        
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      4995/sshd           
    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      4994/cupsd          
    tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      5516/master         
    tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      7523/sshd: root@pts 
    tcp        0     52 192.168.3.147:22        192.168.3.78:50737      ESTABLISHED 7523/sshd: root@pts 
    tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
    tcp6       0      0 :::6000                 :::*                    LISTEN      5476/X              
    tcp6       0      0 :::22                   :::*                    LISTEN      4995/sshd           
    tcp6       0      0 ::1:631                 :::*                    LISTEN      4994/cupsd          
    tcp6       0      0 ::1:25                  :::*                    LISTEN      5516/master         
    tcp6       0      0 ::1:6010                :::*                    LISTEN      7523/sshd: root@pts 
    udp        0      0 0.0.0.0:5353            0.0.0.0:*                           4383/avahi-daemon:  
    udp        0      0 0.0.0.0:55007           0.0.0.0:*                           4383/avahi-daemon:  
    udp        0      0 192.168.122.1:53        0.0.0.0:*                           5447/dnsmasq        
    udp        0      0 0.0.0.0:67              0.0.0.0:*                           5447/dnsmasq        
    udp        0      0 0.0.0.0:111             0.0.0.0:*                           1/systemd           
    udp        0      0 0.0.0.0:723             0.0.0.0:*                           4365/rpcbind        
    udp6       0      0 :::111                  :::*                                1/systemd           
    udp6       0      0 :::723                  :::*                                4365/rpcbind        
    raw6       0      0 :::58                   :::*                    7           4483/NetworkManager 
    Active UNIX domain sockets (servers and established)
    Proto RefCnt Flags       Type       State         I-Node   PID/Program name     Path
    unix  3      [ ]         DGRAM                    10499    1/systemd            /run/systemd/notify
    unix  2      [ ]         DGRAM                    10501    1/systemd            /run/systemd/cgroups-agent
    unix  2      [ ACC ]     STREAM     LISTENING     19465    1/systemd            /run/lvm/lvmetad.socket
    unix  2      [ ACC ]     STREAM     LISTENING     44510    5993/gnome-session-  @/tmp/.ICE-unix/5993
    unix  2      [ ACC ]     STREAM     LISTENING     43793    6183/ssh-agent       /tmp/ssh-aaJZT5QqWRLP/agent.5993
    unix  2      [ ACC ]     STREAM     LISTENING     10510    1/systemd            /run/systemd/journal/stdout
    unix  5      [ ]         DGRAM                    10513    1/systemd            /run/systemd/journal/socket

    查看端口是否放开:telnet、nc(netcat)

    telnet只能测试TCP
    telnet SERVER_IP port
    example:
    telnet localhost 80
    
    nc测试TCP:
    nc -z SERVER_IP port
    example:
    nc -z 192.192.193.211 22
    
    nc测试UDP
    nc -uz SERVER_IP port
    example:
    nc -uz 192.192.193.211 22

    查看进程、内存、CPU占用情况:

    1.命令行输入top回车,然后按下大写M按照memory排序,按下大写P按照CPU排序。
    [root@cetc102 ~]# top
    top - 11:23:47 up 53 min,  3 users,  load average: 0.01, 0.03, 0.05
    Tasks: 245 total,   1 running, 244 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  0.2 us,  0.2 sy,  0.0 ni, 99.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem :  3762336 total,   912940 free,   903752 used,  1945644 buff/cache
    KiB Swap:  3932156 total,  3932156 free,        0 used.  2326104 avail Mem 
    
      PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                            
     7430 cetc      20   0  759136  38708  24312 S   1.0  1.0   0:41.21 gnome-system-mo                                                                                    
     8151 root      20   0  162140   2404   1584 R   0.7  0.1   0:00.36 top                                                                                                
        9 root      20   0       0      0      0 S   0.3  0.0   0:01.28 rcu_sched                                                                                          
        1 root      20   0  193848   6964   4208 S   0.0  0.2   0:02.09 systemd                                                                                            
        2 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kthreadd                                                                                           
        3 root      20   0       0      0      0 S   0.0  0.0   0:00.04 ksoftirqd/0                                                                                        
        5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                                                                                       
        7 root      rt   0       0      0      0 S   0.0  0.0   0:00.01 migration/0                                                                                        
        8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh                                                                                             
       10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 lru-add-drain                                                                                      
    
    
    2. ps -ef | grep "进程名"
        ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep 进程名
    例如:
    # ps -ef | grep mongodb | grep -v grep
    root     18512     1  8 Feb28 ?        11:25:23 mongod -f mongodb.conf
    # ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep 18512 | grep -v grep
    18512 mongod          mongod -f mongodb.conf       8.0 6243952 7924496 Feb28 root      0
     备注: 
    pid:进程的ID
    vsz:进程占用的虚拟内存
    rsz:进程占用的物理内存
    
    [root@cetc102 ~]# ps -ef | grep sleep | grep -v grep
    root      8194  4470  0 11:26 ?        00:00:00 sleep 60
    
    3. top -d 1 -p pid
    例如:
    # top -d 1 -p 18512
    top - 13:18:41 up 9 days, 19:53,  3 users,  load average: 0.00, 0.00, 0.00
    Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
    Cpu(s):  0.3%us,  0.3%sy,  0.0%ni, 99.2%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
    Mem:   8191244k total,  7929432k used,   261812k free,   122160k buffers
    Swap: 20479996k total,    16232k used, 20463764k free,  1316248k cached
    
      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                       
    18512 root      20   0 7738m 6.0g 5472 S  1.0 76.3 685:26.98 mongodb     
    
    4. pmap -x pid
    例如:
    # pmap -x 18512
    18512:   mongod -f mongodb.conf
    Address           Kbytes     RSS   Dirty Mode   Mapping
    0000192c8d4c8000  655360       0       0 -----    [ anon ]
    00007f9228ae4000       4       0       0 -----    [ anon ]

    pmap -d pid

    5.可以使用以下命令查使用内存最多的K个进程
    方法1:ps -aux | sort -k4nr | head -K 
    如果是10个进程,K=10,如果是最高的三个,K=3 
    说明:ps -aux中(a指代all——所有的进程,u指代userid——执行该进程的用户id,x指代显示所有程序,不以终端机来区分)

    sort -k4nr中(k代表从第几个位置开始,后面的数字4即是其开始位置,结束位置如果没有,则默认到最后;n指代numberic sort,根据其数值排序;r指代reverse,这里是指反向比较结果,输出时默认从小到大,反向后从大到小。)。本例中,可以看到%MEM在第4个位置,根据%MEM的数值进行由大到小的排序。
    head -K(K指代行数,即输出前几位的结果)
    |为管道符号,将查询出的结果导到下面的命令中进行下一步的操作。

      方法2-0:top (然后按下M,注意大写)

      方法2-1:top (然后按下m,注意小写) 

    6. 可以使用下面命令查使用CPU最多的K个进程  

      方法1:ps -aux | sort -k3nr | head -K 

      方法2:top (然后按下P,注意大写)

    查看内存使用情况:free -m

    查看cpu使用情况: top看进程运行情况

    查看磁盘以及分区情况: df -

    查看网络情况: ifconfig

    查看端口使用情况

        #1.方法一
        lsof -i:端口号
    
        #2.方法二
        netstat -apn|grep 端口号

    服务器排查以及优化:

    清理内存:
    #1.【推荐】释放网页缓存(To free pagecache),
    sync
    echo 1 > /proc/sys/vm/drop_caches
    
    #2.释放目录项和索引(To free dentries and inodes)
    sync
    echo 2 > /proc/sys/vm/drop_caches
    #3.释放网页缓存,目录项和索引(To free pagecache, dentries and inodes):
    sync
    echo 3 > /proc/sys/vm/drop_caches
    
    

    查看网络使用情况:

  • 相关阅读:
    python正则表达式(+ {})(二)
    14丨 HTTP有哪些优点?又有哪些缺点?
    python正则表达式(. *)(一)
    12丨响应状态码该怎么用?
    Fiddler—Fiddler+willow插件应用(十四)
    11丨你能写出正确的网址吗?
    【洛谷P1858】多人背包
    【洛谷P3387】(模板)缩点
    【洛谷P2184】贪婪大陆
    Leetcode: 39. Combination Sum
  • 原文地址:https://www.cnblogs.com/zhangchao0515/p/11262983.html
Copyright © 2011-2022 走看看