管道,文件查找,打包压缩

一.管道与重定向

1.管道

 rpm -qa  | grep 'httpd'  #查询所有已安装的软件包,过滤包含httpd的包

1.将/etc/passwd中的用户按UID大小排序

[root@qfedu.com ~]# sort -t":" -k3 -n /etc/passwd     #以: 分隔,将第三列按字数升序
[root@qfedu.com ~]# sort -t":" -k3 -n /etc/passwd -r  #以: 分隔,将第三列按字数降序
[root@qfedu.com ~]# sort -t":" -k3 -n /etc/passwd |head  #以: 分隔,将第三列按字数升序看前十行
[root@qfedu.com ~]# sort -t":" -k3 -n /etc/passwd |tail     #以: 分隔,将第三列按字数升序看后十行

 sort 排序,默认升序
-t 指定分隔符
-k 指定列
-n 按数值
-r 降序
head 默认输出前十行
tail 默认输出后十行

netstat -lntp | awk 'NR==3 {print $4}' | awk -F':' '{print $2}'  

nerstab -lntp :查看监听端口号

awk:文本分析工具   -F : 指定分隔符

NR==3 :第三行

print $4: 打印第四列

常用小命令 :du -h   /etc/   查看目录及目录中文件大小

                      du -sh  /etc/    查看目录的总大小

                      ls   /etc/  |  wc -l   查看目录中有多少个文件

 2.输出重定向

FD:  0,标准输入(键盘)
          1,标准输出
          2,标准错误,
          3+,进程在执行过程中打开的其他文件。  
          &:表示正确错误混合输出

 >  ---------覆盖

>>   -------追加

正确输出:1>  1>>   等价于>>

错误输出:2>  2>>               /dev/null:为垃圾桶黑洞文件

[root@qfedu.com ~]# ls /home/  /aaaaaaaaa >list.txt 2>error.txt #重定向到不同的位置

 正确和错误都输出到相同位置:

[root@qfedu.com ~]# ls /home/  /aaaaaaaaa &>list.txt  #混合输出到相同文件

 3.输入重定向

标准输入:<   等价 0<

通过输入重定向创建文件

cat > file <<EOF(任何字母都可,结尾处与此处相同即可)

1.例: cat >file1 << EOF

        >1111

        >EOF

  文件file1内容为1111

2.利用重定向建立多行的文件 脚本创建多行文件

[root@qfedu.com ~]# vim create_file.sh
#!/bin/bash
cat >file200.txt <<EOF
111
222
333
yyy
ccc
EOF
[root@qfedu.com ~]# chmod +x create_file.sh 
[root@qfedu.com ~]# ./create_file.sh 
[root@qfedu.com ~]# cat file200.txt 
111
222
333
yyy
ccc

 4.参数传递:xargs

对:ls cp rm 管道不能执行。所以通过xargs。

语法:cat a.txt | xargs -i cp {} /目录

{}:前面传过来的内容

-i:为了让大括号生效

目录时 -r

解释:前面传过来的东西交给大括号

二.文件查找

find

语法:find [path..] [options] [expression] [action]

                   路径     选项         表达式        动作

-a :并且      -o:或者

找到后处理的动作:a 找到后默认是显示文件

                                b 找到后删除:在后方加上 -delete

                                c 找到后复制 :find  /etc -name “文件名”  -ok  cp -rvf  {}  /tmp  \;

                                                         find  /etc -name “文件名”  -exec cp {} /tmp  \;

                                                         find  /home/ -name "文件名" | xargs -i cp {} /tmp

                                                        

 1.按文件名

从根开始找文件
[root@qfedu.com ~]# find / -name “file2”   #从根开始找文件
/root/file2
/var/tmp/file2
[root@qfedu.com ~]# find /etc -name "ifcfg-ens33"  #以名字的方式查找 
[root@qfedu.com ~]# find /etc -iname "Ifcfg-ens33"  #-i忽略大小写

[root@qfedu.com ~]# find /home/ ! -name "test5*" # !--取反

 2.按文件大小

[root@qfedu.com ~]# find /etc -size +5M        #大于5M
[root@qfedu.com ~]# find /etc -size 5M        #等于5M
[root@qfedu.com ~]# find /etc -size -5M      #小于5M
[root@qfedu.com ~]# find / -size +3M -a -size -5M  #查找/下面大于3M而且小于5M的文件
-a:and
[root@qfedu.com ~]# find / -size -1M -o -size +80M #查找/下面小于1M或者大于80M的文件
-o:or
[root@qfedu.com ~]# find / -size -3M -a -name "*.txt" #查找/ 下面小于3M而且名字是.txt的文件

3.按时间查找

 atime = access访问时间
-mtime = modify改变时间  内容修改时间会改变
-ctime = change修改时间   属性修改时间会改变

[root@qfedu.com ~]# find /opt -mtime +5        #修改时间5天之前
[root@qfedu.com ~]# find /opt -atime +1     #访问时间1天之前
[root@qfedu.com ~]# find . -mtime -2        #修改时间2天之内

[root@qfedu.com ~]# fin  . -amin +1         #访问时间在1分钟之前
[root@qfedu.com ~]# find /opt -amin -4      #访问时间在4分钟之内
[root@qfedu.com ~]# find /opt -mmin -2      #修改时间在2分钟之内

4.指定查找目录深度

find      /     -maxdepth         4          -a           name “文件名”

 /(仅在根下) -maxdepth:最大目录深度  4:深度几级,以/来分级

5.按文件属主属组查找

find  /home  -user  jack      查找属主为jack的文件

find  /home   -group   hr     查找属组为hr的文件

 6.按文件权限查找

find . -perm 644    .代表相对路径当前位置

7.按文件类型查找

 find      /tmp       -type           f    

                      类型命令      普通文件

f:普通文件   b:块设备文件   d:目录    p:管道     l:连接

 三 . 打包压缩解压

linux打包压缩工具:gzip  bzip2  xzip  zip

gzip
        压缩
            gzip filename
        解压
            gzip -d filename.gz
            gunzip filename.gz
    bzip2
        压缩
            bzip2 filename
        解压
            bzip2 -d filename.bz2
            bunzip2    filename.bz2
    xzip
        tar -cJ[v]f filename.tar.xz filename
     zip
        压缩    
            zip -q -r filename.zip  filename
        解压
            unzip filename.zip
        解压到指定路径
            unzip filename.zip -d 路径
 

语法:tar   选项    压缩包文件    源文件

c:创建   f:文件    z:压缩   t:测试    v:详情   z:gzip   j:bzip    -C:指定解包路径

打包:tar -cf  etc.tar   /etc                                      

打包压缩 : tar  -czf   etc.gzip.tar.gz     /etc

测试 : tar  -tf  etc.tar

解压  : tar -xf  etc.tar

解压解包 :tar   xzf  压缩文件  -C 解压路径

tar    czf   /tmp/`date + %F-%T` -etc.tar.gz  /etc

将打包文件放到/tmp目录下,并以当前时间开头命名

tar     cvf   dir1.tar   /home/dir10

打包目录dir10 将包命名为dir1.tar

按时间创建目录或文件  :mkdir `date +%F` upload 

                                          touch  file -`date+%F`.txt 

拓展:发邮件

1.安装:yum -y install mailx

2.编辑配置文件:vim /etc/mail.rc 添加如下内容

set from=88888888@qq.com        

set smtp=smtp.qq.com

set smtp-auth-user=8888888@qq.com

set smtp-auth-password=xxxx(qq邮箱开启接受的密钥)

set smtp-auth=login

3.格式:echo “邮件内容” | mail -s “邮件标题” 8888888@qq.com

  

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值