高级命令

find(文件)

功能: 递归按条件查找文件(隐藏文件也会查找)
语法: find  查找路径  查找条件 [-exec 处理动作 \;]

    -name  文件名,支持通配符(通配符要加引号,不然机器会识别成文件名)
    -iname  以文件名作为查找条件,文件名不去区分大小
    -type  文件类型
    -size  文件大小 [+-]n[kMG]  find / -size +50M
    -group 组名
    -user  用户名
    -empty             查找空文件或目录
    -atime +n          查找几天前访问过的文件
    -atime -n          查找几天内访问过的文件
    -mtime +n         查找n天前修改过内容的文件
    -mmin  +n         查找n分钟前修改过内容的文件
    -ctime +n         查找n天前修改过状态的文件(状态有权限、大小等)
    -cmin  -n         查找n分钟内修改过状态的文件
    -perm g=w          仅查找权限为w的文件
    -perm -g=w         查找权限有w的文件

多条件查找:
条件1 [-a] 条件2     与的关系:多个条件同时满足
例如:   find 查找路径  条件1 -a 条件2 

条件1 -o 条件2   或的关系:满足其中任一条件
 例如:  find 查找路径  条件1 -o 条件2  

-not 条件       非: 取反
 例如:   find 查找路径  ! 条件1    
            
用法二: find [查找范围]  查找条件  -exec|-ok  操作 \;

查找后的处理:
-ok      交互处理,每一个文件处理前询问
-exec    直接处理

例子: 查找到所有tom用户的普通空白文件,并删除
      find / -user tom -empty -type f exec rm -rf {} \;

grep(用于文件内容、输入内容输入的过滤)

功能: 打印出匹配到"模式"的行
语法: grep [选项] 模式 文件
模式:
    root    包含有root的行
    ^root   以root开头的行
    root$   以root结尾的行
    ^$      行首和行尾中间没有任何字符,空行
选项:
    -i      忽略大小写
    -v      取反,打印出没有匹配到"模式"的行
    -n      带行号打印
    -q      不输出
    -c      统计匹配到"模式"的行的数量
    -R       递归匹配    grep -R "^root" 目录
    -w       将关键词作为一个完整的单词进行匹配

wc - 统计

功能: 统计行数,字符数,单词数
语法: wc [选项] 文件
选项:
    -l      统计行数
    -c      统计字节数

sort - 行排序

功能: 将文件中的行进行排序后输出(默认以第一个字符按照升序的方式进行排序)
语法: sort [选项] 文件
选项:
    -n  按照数值进行排序  sort -n  文件
    -r  逆序输出         
    -t  指定字段分隔符(列分隔符) 
    -k  指定按照第几列排序        sort -t: -k3 -n  /etc/passwd
    
    按照从大到小排序:-r -n

uniq

功能: 过滤掉连续重复的行
语法: uniq [选项] 文件
选项:
    -c  统计相同的行的行数,输出时将行数写在行的前面(去重,并统计连续的行数)
    -i  不区分大小写
    -u  只打印不重复的行

xargs

功能: 将从标准输入中接收到的内容(以空格分隔) 传递给后面的命令作为其参数,默认作为处理的最后
一个参数
例:
[root@desk ~]# echo "tom jim jerry"|xargs -n1 id   将"tom jim jerry"一个一个地传递
  给id作为其参数  
 结果: uid=10005(tom) gid=10006(tom) 组=10006(tom),0(root)
 id: jim: no such user
 uid=10006(jerry) gid=10007(jerry) 组=10007(jerry)

-n  指定一次传递的参数的个数,默认是传递全部参数
-i  将要传递的参数赋值给{}   

cut - 处理列

功能: 打印列
语法: cut 选项  文件                   
选项:
    -d      指定字段分隔符   cut -d : -f 1,3 /tmp/pass
    -f      指定需要打印的字段(列)  cut -d " " -f 1,3 /tmp/pass

tr - 处理字符(不支持直接加文件)

功能: 从标准输入中替换、缩减或删除字符,并将结果写到标准输出
语法: tr [选项] set1 [set2]
选项:
    -d  删除set1中所有的字符       echo 80% | tr -d %
    -s  如果只有set1:将set1中的连续字符缩减为1个; 如果有set1和set2则将set1中的字符缩减后
        替换成set2                                 
    -t  将set1中的字符对应替换成set2中的字符(set1中的字符不要重复) 
           tr 字符1 字符2  (字符可以是多个 )

文件的打包与压缩

压缩的好处:
    1.节省磁盘空间
    2.节省网络带宽,加快传输速度

zip

  zip 选项 路径  要压缩的文件
  压缩:压缩后原文件不会消失,压缩后的后缀是.zip   
  语法: zip  [选项]  压缩包名  需要压缩的文件列表 
  选项:
      -r    压缩列表中有目录
     例: zip a.zip a.txt
         zip -r ab.zip abc a.txt :将abc、a.txt压缩保存命名为ab.zip
     
  解压:
  语法: unzip  zip压缩包 [-d exdir]
  选项:
      -d exdir   解压到指定目录
      例: unzip ab.zip -d /opt/      将压缩包解压到路径,默认是解压到当前目录下。   

tar (归档程序)

功能: 既可打包,也可压缩
    打包: 仅归档,文件的大小不会变化
    压缩: 压缩后文件的大小会变化

打包/压缩语法:
   tar 选项  包名  文件列表
解包/解压语法:
   tar 选项  包名  [-C exdir]
选项:
    -cf 创建归档(文件命名以:.tar结尾  )
    -xf 解包/压
    -f  后接包名,必接选项(归档后的文件名)
    -tf 查询包中有哪些文件(查看归档的内容)
    -rf 往打好的包中追加文件,不适用于压缩包
    -zf 通过gzip压缩      xxx.tar.gz
    -jf 通过bzip2压缩    xxx.tar.bz2
    -Jf 通过xz压缩       xxx.tar.xz
    -af 程序通过规范的后缀名自动选择压缩程序进行压缩
    -C  将归档文件释放到指定的目录(解压才用到)

 注意:  gzip、bzip2:这两个压缩程序在压缩完成后原文件会消失 
    
    tar 选项 路径  要打包的文件
 例子:
    1.将/test目录下所有的文件打包到/tmp,包名叫test.tar
       tar -cf /tmp/test.tar  /test/*
    
    2.将/test目录下所有的文件采用gzip方式压缩存放到/opt,并命名为test.tar.gz
       tar -czf /opt/test.tar.gz  /test/*
       tar -caf /opt/test.tar.gz /test/*       //使用-a时 文件名一定要规范
    
    3.解压:将文件解压到/tmp目录
       tar -xf /opt/test.tar.gz  -C /tmp      //不接-C表示解压到当前目录
    4.查看归档后的内容
       tar -tf test.tar
    5. 追加内容
       tar -rf test.tar  /var/log/messages

du :

du  -h: 用于统计一个目录下所有文件的大小(以人类易读的方式显示)
du  -sh:  统计最后文件的大小

你可能感兴趣的:(高级命令)