赞
踩
在使用Linux时有的情况下会使用上一个命令的输出来作为下一个命令的输入,这个时候就需要用到管道命令了,下面在介绍管道命令前先介绍一些常用的命令,以便于更好的了解管道命令的使用
取最后10行内容 # tail -n 10 filename 实时监听文件输出 # tail -f file 查看文件头10内容 # head -n 10 filename 查看文件信息 # stat filename 计算文件或目录的大小 #du -sh 文件或目录 查看磁盘挂载情况 #df -h
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 也是正确的
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 |
unrar
unrar命令主要用于解压rar文件命令,从rar档案文件中提取文件
解压文件
# unrar -x file.rar
参数 | 备注 |
---|---|
-e | 将文件解压到当前目录 |
-l | 列出档案文件内容 |
-p | 将文件打印到标准输出 |
-t | 检测档案文件 |
-v | 列出档案文件的详细信息 |
-x | 使用完整路径提取文件(解压文件) |
管道命令也是常用的一个命令,那为什么要单独拿出来说呢?这是因为管道命令在Linux当中其实是非常重要的,他几乎能应用在所有的其他命令上,可以加载其他命令后对前一条命令的输出进行相应的处理,例如对上一条命令的输出进行特定符号的分割、忽略某些字符等,同时也可以用这些处理过的信息作为下一条命令的输入。换个角度来看就像是流水线中的处理过程,所以这就是为什么被称作管道命令的原因。下面将来介绍管道命令的使用方法以及grep、cut、sort、uniq、wc
使用方法
1)通过“|” 进行连接;
2)前方命令的输出做为后方命令的输入,即后方命令处理前方命令的结果
3)例子: 命令a | 命令b | 命令c
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" ./
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代表第十个字符 |
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 | 按那个字段来进行排序 |
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 为无重复数标注
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 中的行数、单词数、字符数
对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
通过管道方式取出你的IP地址(192.168的地址)
新建两个用户testuser和testuse1,同时取出他们的用户名、UID、GID
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。