find stat file du grep cut tr sort uniq wc split tee tree dd date diff which locate xargs 
  
find   -- 查找文件所在的位置
    基本用法:      find  查找路径   查找条件
        -name 名称              命令 范围路径 选项  查找的名字
            # find  /  -name  "a.txt"      //全盘查找名称为a.txt的文件
        -type 文件类型                          //目录是d
            # find  /tmp/  -type f           //查找/tmp目录下所有的普通文件  
        -size 大小                
            # find  /  -size  +1G            //全盘查找大于1G的文件
        -user 所有者
            # find  /  -user  jim               //查找文件的所有者为jim的文件
        -perm 权限
            # find  /  -perm  -4000          //全盘查找有suid权限的文件                
        -atime      -mtime     -ctime  时间
            # find  /tmp  -mtime 1          //查找/tmp目录下1天前修改过内容的文件
            +2   3天以前
            -2   2天以内
            2    2天以前的24小时
                                                                                           
        多条件查找
            逻辑运算: 与(and)   或(or)    非(!)
                与: 多个条件同时满足为真  expr1 [-a|-and]  expr2 
                    # find / -size +1G   -name "*.iso"   //默认情况下是与的关系
                或: 满足一个条件即为真     expr1 {-o|-or} expr2
                    # find / -size +1G   -o  -name "*.iso"   // -o ? -or
                非: 不满足条件为真           { !| -not }  expr1
                    # find /tmp  ! -type d         //查找/tmp下非目录文件   ! ? -not
                
        查找后执行动作
            -exec      对查找到的所有文件直接执行动作
            -ok         对查找到的每个文件执行动作前先询问
                # find  /  -name  a.txt  -ok  rm -rf {}  \;
                    < rm ... /root/a.txt > ? y
                    < rm ... /tmp/a.txt > ? y
                    < rm ... /a.txt > ?
        
find [路径] [选项 选项的参数] [{-exec|-ok} command \;] 
        
        1、查找/bin目录下以a开头的命令,且这个命令由4个字符构成,拷贝到/opt/test目录内
        find /bin -name “a???” -exec cp -r {} /opt/test \;
        2.查找根下所属主是root,所属组不是root的文件或者目录
        find / -user root -a ! -group root
stat  -- 查看文件信息
    用法:stat FILENAME
    access  time   --访问时间(atime)   cat,more,less...   一天中第一次访问会改变atime
    modify  time   --内容修改(mtime)   修改文件内容
    change time   --状态修改(ctime)     修改文件属性,如权限,属主,属组,大小,名称...
    
file  -- 确定文件的类型 
    # file  zsh-5.0.2-25.el7.x86_64.rpm 
        zsh-5.0.2-25.el7.x86_64.rpm: RPM v3.0 bin i386/x86_64 zsh-5.0.2-25.el7
    
du  -- 报告磁盘空间使用情况
    # du  -h  /iso/
        7.7G	/iso/
grep  -- 过滤满足条件的行
    用法: grep [选项]...   模式    文件...
        选项:
            -E     支持扩展正则表达式       egrep
            -i      忽略大小写
            -v     取反
            -n     显示行号
            -c     只显示匹配的行数
            -A NUMBER   显示模式匹配到的行和之后的NUMBER行
            -B NUMBER   显示模式匹配到的行和之前的NUMBER行
            -C NUMBER   显示模式匹配到的行和前后NUMBER行
        模式:
             ^       行首          以r开头的行: ^r
             $       行尾          以h结尾的行: h$
             ^$     空行
    # grep jim /etc/passwd
    jim:x:1000:1000:JIM:/home/jim:/bin/bash
    # cat /etc/passwd | grep jim
    jim:x:1000:1000:JIM:/home/jim:/bin/bash
    # ps aux |grep xeyes
    root      1799  0.6  0.0 140048  2136 pts/2    S    16:08   0:01 xeyes
    root      1817  0.1  0.0 140048  2172 pts/2    T    16:09   0:00 xeyes
    root      1874  0.0  0.0 112664   964 pts/2    S+   16:12   0:00 grep --color=auto xeyes
cut  -- 打印列
    用法:cut  [选项]...   [文件]...
    选项:
        -d      指定分隔符
        -f      选择第几列,多列使用,隔开
        
        # cut -d : -f 1,7 /etc/passwd 
        
tr  -- 替换或删除字符
    用法:tr [选项]...  SET1   [SET2]
        # cat a.txt 
            abcdefgh
            ijklm
        # tr a A  < a.txt        //将a.txt中的a替换成A
            Abcdefgh
            ijklm
        # tr abc ABC < a.txt    //将abc一一对应替换成ABC
            ABCdefgh
            ijklm
        选项:
            -s      将连续出现的字符缩减替换成一个
            -d      删除SET1
            # cat a.txt 
                aaaa
                aabab
            # tr -s a A  < a.txt       //将连续出现的a缩减替换成一个A
                A
                AbAb
            # tr -d a < a.txt           //删除a
                bb
            # tr -s "\n" < a.txt  //删除空行        
sort   -- 排序,
默认情况下按每行的第一个字符进行顺序排序用法:sort   [选项]...   [文件]...
        选项:
            -n      按照数值从小到大进行排序
            -t       指定分隔符   一般和-k结合使用
            -k      使用分隔符分隔的第几列
            -r       逆序显示
            -u      去掉连续的重复行
        # sort -t" " -k2 -n -r a.txt  //以空格为分隔符,按照第二列从大到小的顺序进行排列
            ac 2123 asdjfs
            de 78 djlsdjf
            ab 78 hello
            cd 35 world
            ad 33 bjsdfs    
    
uniq  -- 去重,去掉连续的重复行
    用法:uniq  [选项]...  [文件]
    选项:
        -c      去重后统计重复的行数,将数字显示在每行的前面
        -u      不打印连续重复的行
        -d      只打印连续重复的行
        
 
    
wc  -- 统计,统计行数,单词数,字节数
    wc  [选项]...   [文件名]...
    选项:
        -l      统计行数 line
         
        # wc /etc/passwd
        51   96 2564 /etc/passwd
        行数  单词数   字节数  文件名
        # wc -l /etc/passwd   //统计/etc/passwd文件内一共有多少行内容
        51 /etc/passwd
        # rpm -qa |wc -l   //统计安装了多少个软件包
        1344    
               
split -- 切割文件
    用法:split  [选项]...  [输入 [前缀]]
        选项:
            -b      指定切割后的文件大小,默认单位是Byte
            -l       指定切割后文件的行数
            -d      以数字作为切割后文件名称后缀,一般和-a结合使用
            -a      指定数字的长度,一般和-d结合使用
        # split -b 100 -d  -a 4  b.txt    //将b.txt按每个文件100字节进行切割
        # ls
            b.txt  x0000  x0001  x0002
            
tee  -- 输出+保存,将标准输入复制到每个指定文件,并显示到标准输出,默认为覆盖保存
    用法:tee  [选项]...   [保存到的文件]...
        选项:
            -a      追加保存到文件
            
           # head -3 /etc/passwd |tee /tmp/pass             //将/etc/passwd文件的前3行的内容覆盖保存到/tmp/pass文件中
           # head -2 /etc/passwd |tee -a /tmp/pass         //将/etc/passwd文件的前2行的内容追加保存到/tmp/pass文件中
  
tree  -- 树状显示目录内容
    用法: tree  [选项]...    [目录]...
        选项:
            -L      指定深度
            -o      输出到文件,而非标准输出
            
           # tree -L 1 / 
         
dd   
    用法:dd  if=/dev/zero of=文件名 bs=块大小  count=块数量
                if   从哪里读取
                of  写到哪里去
                bs  指定块大小block size
                count  指定块的数量
                
    /dev/zero 特殊设备 无限0资源
        
    # dd if=/dev/zero of=/tmp/a.txt bs=1M count=50  //在/tmp/目录下创建a.txt空文件,此文件大小为50M         
       
date   查看和修改系统时间日期       
    # date                                  查看时间日期
    2018年 06月 07日 星期四 23:06:17 CST
    # date -s "2018/6/7 15:05"    修改时间日期
    2018年 06月 07日 星期四 15:05:00 CST
    
    # date +%F
    2018-06-07
    # date +%Y%m%d
    20180607
hwclock  查看和修改硬件时间日期
    # hwclock                             查看时间日期
    2018年06月07日 星期四 23时09分03秒  -0.074195 秒
    # hwclock -w   //将硬件时间修改和系统一致
    # date
    2018年 06月 07日 星期四 15:07:51 CST
    # hwclock 
    2018年06月07日 星期四 15时07分55秒  -0.130538 秒
    
--------------------------------------------------    
`  `   先执行引号内命令 
# date +%Y%m%d
20180607
# echo today is :
today is :
# echo today is :date +%Y%m%d
today is :date +%Y%m%d
 
# echo today is :`date +%Y%m%d`
today is :20180607
# which vim 
/usr/bin/vim
# rpm -qf /usr/bin/vim 
vim-enhanced-7.4.160-1.el7.x86_64
# rpm -qf `which vim`
vim-enhanced-7.4.160-1.el7.x86_64
 
Centos7 高级命令
原文:https://www.cnblogs.com/haojinfei/p/13891825.html