[RHEL7基础篇-11] 常用命令介绍与管道命令

[RHEL7基础篇-11] 常用命令介绍与管道命令

简介

在使用Linux时有的情况下会使用上一个命令的输出来作为下一个命令的输入,这个时候就需要用到管道命令了,下面在介绍管道命令前先介绍一些常用的命令,以便于更好的了解管道命令的使用

常用命令介绍

取最后10行内容
# tail -n 10 filename

实时监听文件输出
# tail -f file

查看文件头10内容
# head -n 10 filename

查看文件信息
# stat filename

计算文件或目录的大小
#du -sh 文件或目录

查看磁盘挂载情况
#df -h
  1. tar命令

    命令组合
    tar  -jxvpf  /-jcvpf  /-zxvpf  /-zcvpf   目标文件   源文件或目录
    
    将/test打包并压缩归档名为this.tar.gz的tar文件当中
    # tar  -cvf this.tar.gz /etc
    
    将this.tar.gz解压到当前目录下
    # tar  -xvf  this.tar.gz
    
    将当前目录下所有.txt文件打包并压缩归档到文件this.tar.gz
    # tar czvf this.tar.gz ./*.txt
    
    将当前目录下的 this.tar.gz中的文件解压到当前目录
    # tar -xzvf this.tar.gz -C ./
    
    排除指定文件和目录后,进行打包压缩
    # tar -jcvpf etc.tar.bz2 --exclude=sysconfig(目录) --exclude=hosts(文件) /etc
    (错误写法 tar -jcvpf etc.tar.bz2 /etc --exclude=sysconfig(目录) --exclude=hosts(文件))
    
    恢复指定文件
    # tar -jxvpf etc.tar.bz2 etc/passwd etc/shadow  
    
    tar看打包了哪些文件和目录 
    # tar -tvf etc.tar.bz2
    
    参数备注
    j使用 bzip2 格式给文件或目录进行打包并压缩归档成档案文件
    z使用 gzip 格式给文件或目录进行打包并压缩归档成档案文件
    x解压档案文件
    c创建新的档案文件(想备份一个目录或一些文件时就需要选择)
    v列出归档过程中的处理文件的信息,如无该参数则不显示处理文件的信息
    p保留备份数据的原本权限与属性,常用于备份(-c) 重要的配置文件
    f使用档案文件或设备归档,该参数通常为必选项
    t列出档案文件的内容,查看已经备份了那些文件
    r追加新的文件到档案文件的末尾
    u更新档案文件,将档案文件当中包含的文件替换成最新的文件,若档案文件当中没有该文件则追加到档案文件的最后
    b该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为20(20*512 bytes)
    k在解压的过程中保留系统原有的文件(遇到相同的文件不替换)
    m在解压档案文件时,把所有文件的修改时间设定为现在
    M创建多卷的档案文件,以便在几个磁盘中存放
    w过程中的每一步都要求确认,压缩和解压都适用

    注:
    1.f 这个参数确实是必选的,要不你就找不到你的tar文件,提示你"文件不存在"的错误
    2.tar并没有强制要求在参数前使用 - ,所以在使用参数时可以不加,例如:tar cvf file1 也是正确的

  2. gzip
    gzip命令对文本文件有60%~70%的压缩率,但是gzip压缩式时默认会使原文件消失,这个需要特别注意

    压缩文件
    # gzip -9 file  //gzip file
    
    压缩目录(并没有打包目录,只是把目录下的所有文件都进行压缩)
    # gzip -r /test
    [root@localhost /]# cd /test1
    [root@localhost test1]# ls
    test1  test2
    [root@localhost test1]# gzip -r /test1
    [root@localhost test1]# ls
    test1.gz  test2.gz
    
    解压并打印执行过程
    # gzip -dv filename.gz
    
    压缩文件并保留原文件
    # gzip -c file1 > filename.gz
    
    参数备注
    -c将压缩文件并保留原文件,压缩文件名为原文件名.gz
    -d对压缩文件进行解压缩
    -r递归压缩指定目录下以及子目录下的所有文件
    -v对于每个压缩和解压缩的文件,打印出相应的文件名和压缩比
    -l列出每一个压缩文件的大小、为压缩文件的大小、压缩比、未压缩文件的名称
    -数字用于指定压缩等级,-1 压缩等级最低,压缩比最差;-9 压缩比最高。默认的压缩比为 -6
  3. unrar
    unrar命令主要用于解压rar文件命令,从rar档案文件中提取文件

    解压文件
    # unrar -x file.rar
    
    参数备注
    -e将文件解压到当前目录
    -l列出档案文件内容
    -p将文件打印到标准输出
    -t检测档案文件
    -v列出档案文件的详细信息
    -x使用完整路径提取文件(解压文件)

管道命令

管道命令也是常用的一个命令,那为什么要单独拿出来说呢?这是因为管道命令在Linux当中其实是非常重要的,他几乎能应用在所有的其他命令上,可以加载其他命令后对前一条命令的输出进行相应的处理,例如对上一条命令的输出进行特定符号的分割、忽略某些字符等,同时也可以用这些处理过的信息作为下一条命令的输入。换个角度来看就像是流水线中的处理过程,所以这就是为什么被称作管道命令的原因。下面将来介绍管道命令的使用方法以及grep、cut、sort、uniq、wc

  1. 使用方法
    1)通过“|” 进行连接;
    2)前方命令的输出做为后方命令的输入,即后方命令处理前方命令的结果
    3)例子: 命令a | 命令b | 命令c

  2. grep
    grep 主要用于查找文件内容所用,例如查找是否包含某一字符串的行

    /etc/hosts 所含的内容为
    在这里插入图片描述

    查找 /etc/hosts 中包含192.168.100.100的行
    # cat /etc/hosts | grep 192.168.100.100
    # cat /etc/hosts | grep "192.168.100.100"
    

    在这里插入图片描述

    除了包含192.168.100.100 的行外,其他的行都打印出来(注释掉的内容不包含)
    # cat /etc/hosts | grep -v 192.168.100.100
    

    在这里插入图片描述

    查找 /etc/hosts 中包含192.168.100.100或192.168.1.5的行
    # cat /etc/hosts | egrep "192.168.1.5|192.168.100.100"
    

    在这里插入图片描述

    查找 /etc/hosts 中忽略大小写的 Local
    # cat /etc/hosts | grep -i Local
    

    在这里插入图片描述

    在当前路径下查找所有含有ipaddr字符串这个内容的文件
    # grep -r "ipaddr" ./
    

    在这里插入图片描述

  3. cut
    cut 主要用于切割文件中的字符,通常会结合管道命令来按照要求对文件进行切割

    /etc/passwd 所含的内容为
    在这里插入图片描述
    df -h
    在这里插入图片描述

    把 /etc/passwd 以:为分割,取第1个字段
    # cat /etc/passwd | cut -d ":" -f 1
    把 /etc/passwd 以:为分割,取第1、3个字段
    # cat /etc/passwd | cut -d ":" -f 1,3
    

    在这里插入图片描述
    在这里插入图片描述

    取每一行的第10个字符到行末尾
    # cat /etc/passwd | cut -c 10-
    取每一行的第1个到第10个字符
    # df -h | cut -c 1-10
    

    在这里插入图片描述
    在这里插入图片描述

    参数备注
    -d后面跟的是分割符
    -f后面跟的是第几个字段
    -c截取字符,后面跟的数字是每一行截取字符的数量,1代表第一个字符,10代表第十个字符
  4. sort
    sort主要用于分类文件内容、重新排序并打印在屏幕上

    以:为分割符,使用第3个字段安数排序输出 /etc/passwd 的内容
    # cat /etc/passwd | sort -t ":" -k 3 -n
    以:为分割符,使用第3个字段安数排序输出 /etc/passwd 的内容给cut取第3个字段
    # cat /etc/passwd | sort -t ":" -k 3 -n | cut -d ":" -f 3
    
    参数备注
    -f忽略大小写
    -b忽略最前面的空白部分
    -M以月份的名字來排序,例如 JAN, DEC 等等的排序方法
    -n按数字排序,不指定n时,默认以第一个数据来进行排序
    -r反向排序(从大到小,默认是从小到大)
    -u就是 uniq ,重复行只显示一行
    -t分隔符,默认是tab键做为分割符
    -k按那个字段来进行排序
  5. uniq
    uniq 主要是用于排除相邻重复行的显示

    /etc/passwd 所含的内容为
    在这里插入图片描述

    排除 /tmp/t2 文件中相邻的重复行的显示,并标注重复数
    # cat /tmp/t2 | uniq -c  // cat t2 | uniq 为无重复数标注
    /tmp/t2 文件排序后并消除重复行的显示
    # cat /tmp/t2 | sort | uniq -c  // cat t2 | sort |uniq 为无重复数标注
    

    在这里插入图片描述
    在这里插入图片描述

  6. wc
    wc 主要是用于显示文件中的属性,例如行数、单词数、字符数等

    /tmp/t2 所含的内容为
    在这里插入图片描述

    查看 /tmp/t2 有多少行
    # cat /tmp/t2 | wc -l
    

    在这里插入图片描述

    查看 /tmp/t2 有多少单词
    # cat /tmp/t2 | wc -w
    

    在这里插入图片描述

    查看 /tmp/t2 有多少字符
    # cat /tmp/t2 | wc -m
    

    在这里插入图片描述

    一起查看 /tmp/t2 的行、单词数、字符数
    # cat /tmp/t2 | wc -m
    

    在这里插入图片描述
    从左到右分别为 /tmp/t2 中的行数、单词数、字符数

练习

  1. 对apache.log日志分析——apache.log文件下载
    访问最多的前10个IP,出现的次数,由多到少排序,结果定位到 /tmp/result 文件中

    # cat apache.log | cut -d " " -f 1 | sort | uniq -c | sort -nr | head -n 10 > /tmp/result
    

    在这里插入图片描述

  2. 通过管道方式取出你的IP地址(192.168的地址)
    在这里插入图片描述

  3. 新建两个用户testuser和testuse1,同时取出他们的用户名、UID、GID
    在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JovaZou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值