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

    1,从当前目录下的文件中找到一个字符串

    grep -rn "hello,world!" *
    
     
    
    * : 表示当前目录所有文件,也可以是某个文件名
    
    -r 是递归查找
    
    -n 是显示行号
    
    -R 查找所有文件包含子目录
    
    -i 忽略大小写
    
    下面是一些有意思的命令行参数:
    
     
    
    grep -i pattern files :不区分大小写地搜索。默认情况区分大小写, 
    
    grep -l pattern files :只列出匹配的文件名, 
    
    grep -L pattern files :列出不匹配的文件名, 
    
    grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’), 
    
    grep -C number pattern files :匹配的上下文分别显示[number]行, 
    
    grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行, 
    
    grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。 
    
    这里还有些用于搜索的特殊符号:
    
     
    
    < 和 > 分别标注单词的开始与结尾。
    
    例如: 
    
    grep man * 会匹配 ‘Batman’、‘manic’、‘man’等, 
    
    grep '<man' * 匹配‘manic’和‘man’,但不是‘Batman’, 
    
    grep '<man>' 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。 
    
    '^':指匹配的字符串在行首, 
    
    '$':指匹配的字符串在行尾,  

    2,vi操作

    1.跳到文本的最后一行:按“G”,即“shift+g”
    
    2.跳到最后一行的最后一个字符 : 先重复1的操作即按“G”,之后按“$”键,即“shift+4”。
    
    3.跳到第一行的第一个字符:先按两次“g”,
    
    4.跳转到当前行的第一个字符:在当前行按“0”。

    3,curl post json请求

    curl -l -H "Content-type: application/json" -X POST -d '{"phone":"13521389587","password":"test"}'  http://domain/apis/users.json

     

    4,find 命令

        

     1.命令格式:
    
        find pathname  -options [-print  -exec  -ok]
    
      2.命令功能:
    
        用于在文件树中查找文件,并作出相应的处理。
    
      3.命令参数:
    
        pathname: find 命令所查找的目录路径。譬如用 . 来表示当前目录,用  /  来表示系统根目录。
    
        -print:  find 命令将匹配的文件输出到标准输出。
    
        -exec:  find 命令对匹配的文件执行该参数所给出的 shell 命令,相应命令的形式为   ’command‘ {}  ;   ,注意 {}  和 “  ;” 之间的空格。
    
        -ok:   和 -exec 的作用相同,只不过以一种更为安全的模式来执行该参数所给出的 shell 命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行功能。
    
      4.命令选项:
    
        -name  按照文件名查找文件
    
        -perm  按照文件权限来查找文件
    
        -prune   使用这一选项可以使find 命令不在当前指定的目录中查找,如果同时使用 -depth 选项,那么 -prune 将被 find 命令忽略
    
        -user  按照文件属主来查找文件
    
        -group  按照文件所属的组来查找文件
    
        -mtime    -n  +n  按照文件的更改时间来查找文件,  - n 表示更改时间距现在 n 天以内, + n 表示文件更改时间距现在 n 天以前。
    
            find 命令还有 -atime和-ctime 选项,但他们都和  -m  time 选项类似。
    
        -nogroup  查找无有效所属组的文件,即该文件所属的组在 /etc/groups 中不存在。
    
        -nouser  查找无有效属主的文件,即该文件的属主在 /etc/passwd 中不存在。
    
        -newer  file1  !  file2  查找更改时间比文件 file1 新但比文件  file2 旧的文件。
    
        -type   查找某一类型的文件,诸如:
    
              b  块设备文件
    
              d  目录
    
              c  字符设备文件
    
              p  管道文件
    
              l  符号链接文件
    
              f  普通文件
    
        -size  n:[c]  查找文件长度为 n 块的文件,带有 c 时表示文件长度以字节计。 -depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
    
        -fstype    查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件 /etc/fstab 中找到,该配置文件中包含了本系统中有关文件系统的信息。
    
        -mount  在查找文件是不跨越文件系统mount点
    
        -follow   如果find 命令遇到符号链接文件,就跟踪至链接所指向的文件。
    
        -cpio  对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。
    
        另外,下面三个的区别:
    
        -amin  n  查找系统中最后N分钟访问的文件
    
        -atime  n  查找系统中最后 n*24 小时访问的文件
    
        -cmin  n  查找系统中最后 N 分钟被改变文件状态的文件
    
        -ctime  n  查找系统中最后 n*24小时被改变文件状态的文件
    
        -mmin  n  查找系统中最后 N 分钟被改变文件数据的文件
    
        -mtime  n   查找系统中最后 n*24 小时被改变文件数据的文件  
    
      5.使用实例:
    
        实例1:查找指定时间内修改过的文件
    
        命令:
    
          find  -atime  -2  查找48小时内修改过的文件
    
        实例2:根据关键字查找
    
        命令:
    
          find  .   -name  "*.log"  在当前目录查找以 .log 结尾的文件。  “.” 代表当前目录
    
        实例3:按照目录或文件的权限来查找文件
    
        命令:
    
          find   /opt/soft/test  -perm  777   查找/opt/soft/test 目录下, 权限为   777 的文件
    
        实例4:按照类型查找
    
        命令:
    
          find  .  -type   f   -name  "*.log"  查找当前目录中以 .log 结尾的 普通文件
    
        实例5:查找当前所有目录并排序
    
        命令:
    
          find  .  -type d | sort  组合命令,其实只要知道 find [PATH]  [option] [argument] 就可以了, “| 管道”  “sort”  命令随时可以跟任何命令组合使用。
    
        实例6:按大小查找文件
    
        命令:
    
          find  .   -size    +1000c  -print

     5,统计目录下的文件数

    ls | wc -l

    6,查看当前进程打开了多少句柄数

    lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more

    比较准一点的是

    lsof -p 进程id > openfiles.log

    或者是查看目录 /proc/pid/fd

    7,防止火墙 centos 7 

    firewall-cmd --list-ports
    firewall-cmd --reload #重启firewall
    systemctl stop firewalld.service #停止firewall
    systemctl disable firewalld.service #禁止firewall开机启动
    
    firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

    8,查看linux上下文切换

    首先安装sysstat:yum install sysstat  //使用的是fedora,ubuntu/debian使用apg-get

    pidstat -w -G testp 1 10       //根据进程名监控上下文切换
    pidstat -w -p 48863 1 10     //根据PID监控上下文切换

    平均时间: UID    PID       cswch/s     nvcswch/s   Command
    平均时间: 0         48770     2.53          2.78               testp

    cswch/s: 每秒任务主动(自愿的)切换上下文的次数,当某一任务处于阻塞等待时,将主动让出自己的CPU资源。

    nvcswch/s: 每秒任务被动(不自愿的)切换上下文的次数,CPU分配给某一任务的时间片已经用完,因此将强迫该进程让出CPU的执行权。

  • 相关阅读:
    node.js 安装后怎么打开 node.js 命令框
    thinkPHP5 where多条件查询
    网站title中的图标
    第一次写博客
    Solution to copy paste not working in Remote Desktop
    The operation could not be completed. (Microsoft.Dynamics.BusinessConnectorNet)
    The package failed to load due to error 0xC0011008
    VS2013常用快捷键
    微软Dynamics AX的三层架构
    怎样在TFS(Team Foundation Server)中链接团队项目
  • 原文地址:https://www.cnblogs.com/wgslucky/p/10008614.html
Copyright © 2011-2022 走看看