• linux常用命令


    1. grep

      grep [-acinv] [--color=auto] '搜寻字符串' filename
      选项与参数:
          -a :将 binary 文件以 text 文件的方式搜寻数据
          -c :计算找到 '搜寻字符串' 的次数
          -i :忽略大小写的不同,所以大小写视为相同
          -n :顺便输出行号
          -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
          --color=auto :可以将找到的关键词部分加上颜色的显示喔!
      
    2. sed

        sed命令格式
          sed [options] 'command' file(s)
          sed [options] -f scriptfile file(s)
        删除行
          nl /etc/passwd | sed '2,5d' 删除2-5行
          nl /etc/passwd | sed '2d' 删除第2行
          nl /etc/passwd | sed '3,$d' 删除第3行到最后一行
       添加行
          nl /etc/passwd | sed '2a drink tea' 在第二行后面加上
          nl /etc/passwd | sed '2i dirnk tea' 在第二行前面加上
        替换行
       nl /etc/passwd | sed '2,5c No 2-5 number' 将2-5行用No 2-5 number 替换
       数据搜寻并删除
       nl /etc/passwd | sed '/root/d' 搜寻root并删除
       数据搜寻并替换
          sed 's/要被取代的字串/新的字串/g'
      
       去掉 “行首” 带“@”的首字母@
          sed -i 's/^@//' file
       特定字符串的行前插入新行
          sed -i '/特定字符串/i 新行字符串' file
       特定字符串的行后插入新行
          sed -i '/特定字符串/a 新行字符串' file
       特定字符串的删除
          sed -i '/字符串/d' file
      
       显示指定行
       	sed -n '2p' file
       显示指定行到行
       	sed -n '2,8p' file
      
    3. awk

       awk '{pattern+action}' {filenames} pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。花括号({})不需要在程序中始
          终出现,但它们用于根据特定的模式对一系列指令进行分组。 pattern就是要表示的正则表达式,用斜杠括起来。
      
       awk调用方式
          一、命令行方式:
       	  awk [-F field-separator] 'commands' input-file(s)
          二、shell脚本方式
       	  #!/bin/awk
          三、将所有的awk命令插入一个单独文件,然后调用
       	  awk -f awk-script-file input-file(s)
      
        显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分割,而且在所有行添加列名name,shell,在最后一行添 加"blue,/bin/nosh"
       	cat /etc/passwd |awk -F ':' 'BEGIN {print "name,shell"} {print $1","$7} END {print "blue,/bin/nosh"}'
      
        统计/etc/passwd的账户人数
          awk '{count++;print $0;} END{print "user count is ",count}' /etc/passwd
      
        统计某个文件夹下的文件占用的字节数
       	ls -l |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ",size/1024/1024,"M" }'
      
       AWK内置变量
       ARGC 命令行参数个数
       ARGV 命令行参数排列
       ENVIRON 支持队列中系统环境变量的使用
       FILENAME awk浏览的文件名
       FNR 浏览文件的记录数
       FS 设置输入域分隔符,等价于命令行 -F选项
       NF 浏览记录的域的个数
       NR 已读的记录数
       OFS 输出域分隔符
       ORS 输出记录分隔符
       RS 控制记录分隔符
      
    4. du

      读取文件大小
      du -h /filename/
      只显示总和的大小
      du -s /filename/

    5. scp

       复制文件
       scp local_file remote_username@remote_ip:remote_folder
       or
       scp local_file remote_usename@remote_ip:remote_file
       or
       scp local_file remote_ip:remote_folder
       or
       scp local_file remote_ip:remote_file
       
       复制目录
       scp -r /local_folder remote_username@remote_ip:remote_folder
       or
       scp -r local_folder remote_ip:remote_folder
      
    6. route
       添加网关/设置网关:

      route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0      #增加一条到达244.0.0.0的路由。
      

      屏蔽一条路由:

      route add -net 224.0.0.0 netmask 240.0.0.0 reject    #增加一条屏蔽的路由,目的地址为224.x.x.x将被拒绝。
      

      删除路由记录:

      route del -net 224.0.0.0 netmask 240.0.0.0
      route del -net 224.0.0.0 netmask 240.0.0.0 reject
      

      删除和添加设置默认网关:

      route del default gw 192.168.1.1
      route add default gw 192.168.1.1
      
    7. vmstat

       -a:显示活跃和非活跃内存
      
       -f:显示从系统启动至今的fork数量 。
      
       -m:显示slabinfo
      
       -n:只在开始时显示一次各字段名称。
      
       -s:显示内存相关统计信息及多种系统活动数量。
      
       delay:刷新时间间隔。如果不指定,只显示一条结果。
      
       count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。
      
       -d:显示磁盘相关统计信息。
      
       -p:显示指定磁盘分区统计信息
      
       -S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)
      
       -V:显示vmstat版本信息。
      

      字段说明

        r 表示运行队列(就是说多少个进程真的分配到CPU),我测试的服务器目前CPU比较空闲,没什么程序在跑,当这个值超过了CPU数目,就会出现CPU瓶颈了。这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,
       服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。
      
        b 表示阻塞的进程,这个不多说,进程阻塞,大家懂的。
      
       swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。
      
       free 空闲的物理内存的大小,我的机器内存总共8G,剩余3415M。
      
       buff Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存,我本机大概占用300多M
      
       cache cache直接用来记忆我们打开的文件,给文件做缓冲,我本机大概占用300多M(这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。)
      
       si 每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。我的机器内存充裕,一切正常。
      
       so 每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。
      
       bi 块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte,我本机上没什么IO操作,所以一直是0,但是我曾在处理拷贝大量数据(2-3T)的机器上看过可以达到140000/s,磁盘写入速度差不多140M每秒
      
       bo 块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。
      
       in 每秒CPU的中断次数,包括时间中断
      
       cs 每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并
       发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量
       避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。
      
       us 用户CPU时间,我曾经在一个做加密解密很频繁的服务器上,可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。
      
       sy 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。
      
       id 空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。
      
       wt 等待IO CPU时间
      
    8. mpstat

      mpstat [-P {|ALL}] [internal [count]]
      
      参数 解释
         -P {|ALL} 表示监控哪个CPU, cpu在[0,cpu个数-1]中取值
         internal 相邻的两次采样的间隔时间、
      
         count 采样的次数,count只能和delay一起使用
      
         当没有参数时,mpstat则显示系统启动以后所有信息的平均值。有interval时,第一行的信息自系统启动以来的平均信息。从第二行开始,
      

      输出为前一个interval时间段的平均信息。

      字段说明

         %user 在internal时间段里,用户态的CPU时间(%),不包含nice值为负进程 (usr/total)*100
      
         %nice 在internal时间段里,nice值为负进程的CPU时间(%) (nice/total)*100
      
         %sys 在internal时间段里,内核时间(%) (system/total)*100
      
         %iowait 在internal时间段里,硬盘IO等待时间(%) (iowait/total)*100
      
         %irq 在internal时间段里,硬中断时间(%) (irq/total)*100
      
         %soft 在internal时间段里,软中断时间(%) (softirq/total)*100
      
         %idle 在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%) (idle/total)*100
      
    9. ps

         -A 显示所有进程(等价于-e)(utility)
         -a 显示一个终端的所有进程,除了会话引线
         -N 忽略选择。
         -d 显示所有进程,但省略所有的会话引线(utility)
         -x 显示没有控制终端的进程,同时显示各个命令的具体路径。dx不可合用。(utility)
         -p pid 进程使用cpu的时间
         -u uid or username 选择有效的用户id或者是用户名
         -g gid or groupname 显示组的所有进程。
         U username 显示该用户下的所有进程,且显示各个命令的详细路径。如:ps U zhang;(utility)
         -f 全部列出,通常和其他选项联用。如:ps -fa or ps -fx and so on.
         -l 长格式(有F,wchan,C 等字段)
          -j 作业格式
         -o 用户自定义格式。
         v 以虚拟存储器格式显示
         s 以信号格式显示
         -m 显示所有的线程
         -H 显示进程的层次(和其它的命令合用,如:ps -Ha)(utility)
         e 命令之后显示环境(如:ps -d e; ps -a e)(utility)
         h 不显示第一行
      

    把开头为 # 的行过滤掉
    grep -Ev '^[[:space:]].*|^#' aliyun_aegis.sh

    ps命令找出占用内存资源最多的10个进程
    ps auxw|head -1;ps auxw|sort -rn -k4|head -10

    内存消耗最多的前10个进程
    ps auxw|head -1;ps auxw|sort -rn -k4|head -10
    虚拟内存使用最多的前10个进程
    ps auxw|head -1;ps auxw|sort -rn -k5|head -10

  • 相关阅读:
    logistic regression svm hinge loss
    matlab
    deep learning学习记录三
    deep learning学习记录二
    JavaScript自定义方法实现trim()、Ltrim()、Rtrim()
    php 用户验证的简单示例
    php用户验证代码的简单例子
    php验证复选框的小例子
    二招解决php乱码问题
    PHP页面中文乱码分析
  • 原文地址:https://www.cnblogs.com/Mr-Axin/p/14754279.html
Copyright © 2020-2023  润新知