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
    
    

    查看网络使用情况:

  • 相关阅读:
    leetcode 78. 子集 JAVA
    leetcode 91. 解码方法 JAVA
    leetcode 75. 颜色分类 JAVA
    leetcode 74 搜索二维矩阵 java
    leetcode 84. 柱状图中最大的矩形 JAVA
    last occurance
    first occurance
    classical binary search
    LC.234.Palindrome Linked List
    LC.142. Linked List Cycle II
  • 原文地址:https://www.cnblogs.com/zhangchao0515/p/11262983.html
Copyright © 2011-2022 走看看