LINUX常用命令--重定向、管道篇(四)
2014-11-11 11:22
316 查看
一、Linux重定向
重定向能够实现Linux命令的输入输出与文件之间重定向,以及实现将多个命令组合起来实现更加强大的命令。这部分涉及到的比较多的命令主要有:
涉及到的比较多的命令主要有:
cat:连接文件
sort:排序文本行
uniq:忽略或者报告重复行
wc:统计文件的行数、词数、字节数
grep:打印匹配制定模式的行
head:输出文件的头部
tail:输出文件的尾部
tee:从标准输入读,并往标准输出或者文件写
1.重定向标准输出
使用>可以将本来出现在屏幕的标准输出信息重定向到一个文件中。
用>>可以在实现重定向时不覆盖原有内容,而是在文件末尾追加内容.
2.重定向标准错误信息到文件
没有单纯的一个操作符可以将标准错误信息重定向到文件中。要实现这一点有两种办法。第一种使用文件描述符,在shell中,默认用数字0,1,2分别代表标准输入、标准输出、标准错误。
3.屏蔽不想看到的信息
Linux中有一个特殊的文件/dev/null,这个文件叫做bit bucket,可以接受输入信息但是什么都不做。因此要抑制命令的输出信息,只需要如下操作:
4.重定向标准输入
cat命令可以接受一组文件为参数,将这些文件复制到标准输出。我们前面的例子中已经多次使用到cat命令来将文本文件的内容读取到屏幕上。
cat还有一个很重要的功能:接受一组文件,然后通过重定向将他们重新组合到一个文件中。我们看一个例子:
其它实例:
ls -l /usr/tmp >dir 重定向
ls -l /usr/tmp >>dir 追加重定向
ls /usr/tmp 2>err.file 错误输出到err.file
ls /usr/tmp >output.file 2>&1 错误和输出重定向到output
ls /usr/tmp 2>&1 >output.file 错误到标准输出,其他输到output
wc </etc/passwd
标准的输入,输出和错误输出分别表示为STDIN,STDOUT,STDERR,也可以用0,1,2来表示
二、管道
将一个程序的标准输出写到一个文件中去,再将这个文件作为另一个程序的输入。管道要解决的就是不需要临时文件就能将两条命令结合在一起。如:
ls /usr/bin |wc -w
Linux提供|操作符,该操作符可以将一个命令的输出作为另一个命令的输入,这样通过多个命令的协作来完成一些比较复杂的内容。比如,我们可以通过uniq命令来排除重复的行。但是uniq命令往往需要和sort命令配合使用。因为uniq接收一组排好序的文本,而刚好sort可以将文本行排序。我们看下面的例子:
[root@test]#cat ls
我们还可以对uniq命令加上-d选项来查看重复的行,如下:
[root@test]#cat ls |sort|uniq -d
aaaaaaaaaaaaaaaaaaaaaaaa
使用wc命令可以统计文本的行数、单词书和字节数。可以和例如ls命令的输出一起组成管道命令:
[root@test]#
如果仅仅想要统计行数,只需要在wc命令后面添加-l选项即可。wc命令常用来统计代码的行数。
[root@test]#
上面这个例子统计了cn目录下所有php文件的行数之和。
grep命令用来查找匹配的模式,并且打印包含该模式的行。举个例子:
在这个例子中,zip就是一个模式,表示包含字符串zip。我们在/bin和/usr/bin目录下找出名字带有zip的程序,并且打印这些程序的名字。grep命令可以使用正则表达式,功能也非常强大,这里我们不侧重介绍。
head和tail命令也常常用于组成管道命令。head可以查看文件或者文本的前面部分。tail查看文件或者文本的末尾部分。二者都可以接收-n选项,表示显示的行数。
看例子:
tail还有一个重要的用处,就是实时显示某些程序的日志文件。tail能接受一个选项-f,实时显示出新添加到文件末尾的行数。这样一旦有新的行追加到日志文件的末尾,就会被实时显示在后面。
重定向能够实现Linux命令的输入输出与文件之间重定向,以及实现将多个命令组合起来实现更加强大的命令。这部分涉及到的比较多的命令主要有:
涉及到的比较多的命令主要有:
cat:连接文件
sort:排序文本行
uniq:忽略或者报告重复行
wc:统计文件的行数、词数、字节数
grep:打印匹配制定模式的行
head:输出文件的头部
tail:输出文件的尾部
tee:从标准输入读,并往标准输出或者文件写
1.重定向标准输出
使用>可以将本来出现在屏幕的标准输出信息重定向到一个文件中。
用>>可以在实现重定向时不覆盖原有内容,而是在文件末尾追加内容.
2.重定向标准错误信息到文件
没有单纯的一个操作符可以将标准错误信息重定向到文件中。要实现这一点有两种办法。第一种使用文件描述符,在shell中,默认用数字0,1,2分别代表标准输入、标准输出、标准错误。
3.屏蔽不想看到的信息
Linux中有一个特殊的文件/dev/null,这个文件叫做bit bucket,可以接受输入信息但是什么都不做。因此要抑制命令的输出信息,只需要如下操作:
ls
/usr/
>
/dev/null
4.重定向标准输入
cat命令可以接受一组文件为参数,将这些文件复制到标准输出。我们前面的例子中已经多次使用到cat命令来将文本文件的内容读取到屏幕上。
cat还有一个很重要的功能:接受一组文件,然后通过重定向将他们重新组合到一个文件中。我们看一个例子:
jerry@ubuntu:~$
cat
ls1
其它实例:
ls -l /usr/tmp >dir 重定向
ls -l /usr/tmp >>dir 追加重定向
ls /usr/tmp 2>err.file 错误输出到err.file
ls /usr/tmp >output.file 2>&1 错误和输出重定向到output
ls /usr/tmp 2>&1 >output.file 错误到标准输出,其他输到output
wc </etc/passwd
标准的输入,输出和错误输出分别表示为STDIN,STDOUT,STDERR,也可以用0,1,2来表示
二、管道
将一个程序的标准输出写到一个文件中去,再将这个文件作为另一个程序的输入。管道要解决的就是不需要临时文件就能将两条命令结合在一起。如:
ls /usr/bin |wc -w
Linux提供|操作符,该操作符可以将一个命令的输出作为另一个命令的输入,这样通过多个命令的协作来完成一些比较复杂的内容。比如,我们可以通过uniq命令来排除重复的行。但是uniq命令往往需要和sort命令配合使用。因为uniq接收一组排好序的文本,而刚好sort可以将文本行排序。我们看下面的例子:
[root@test]#cat ls
我们还可以对uniq命令加上-d选项来查看重复的行,如下:
[root@test]#cat ls |sort|uniq -d
aaaaaaaaaaaaaaaaaaaaaaaa
使用wc命令可以统计文本的行数、单词书和字节数。可以和例如ls命令的输出一起组成管道命令:
[root@test]#
ls
/bin
/usr/bin/
|
sort
|
uniq
|
wc
如果仅仅想要统计行数,只需要在wc命令后面添加-l选项即可。wc命令常用来统计代码的行数。
[root@test]#
find
cn/ -name
"*.php"
|
xargs
cat
|
wc
-l
上面这个例子统计了cn目录下所有php文件的行数之和。
grep命令用来查找匹配的模式,并且打印包含该模式的行。举个例子:
[root@test]#ls
/bin
/usr/bin/
|
sort
|
uniq
|
grep
zip
在这个例子中,zip就是一个模式,表示包含字符串zip。我们在/bin和/usr/bin目录下找出名字带有zip的程序,并且打印这些程序的名字。grep命令可以使用正则表达式,功能也非常强大,这里我们不侧重介绍。
head和tail命令也常常用于组成管道命令。head可以查看文件或者文本的前面部分。tail查看文件或者文本的末尾部分。二者都可以接收-n选项,表示显示的行数。
看例子:
[root@test]#ls
/bin/
|
head
-n 5
tail还有一个重要的用处,就是实时显示某些程序的日志文件。tail能接受一个选项-f,实时显示出新添加到文件末尾的行数。这样一旦有新的行追加到日志文件的末尾,就会被实时显示在后面。
[root@test]#tail[code]-f
/var/log/messages
相关文章推荐
- Linux常用指令别名、输入/输出重定向、管道、命令连接符、命令替换符
- LINUX常用命令--重定向、管道篇(四)
- linux常用命令-重定向与管道操作
- Linux 常用命令1 pwd、ls、cd、tab、清屏、重定向、转义、管道、touch、mkdir、tree、cat、more、rmdir、rm、grep、help、man、history、find
- 学习笔记☞Linux常用命令【三】 ( 简单shell编程,管道,重定向,输出,进程,网络管理,关机重启)
- 【Linux常用指令整理8】别名、输入/输出重定向、管道、命令连接符、命令替换符
- linux常用命令——重定向
- linux命令温故知新:输入输出重定向/管道
- Linux常用文件重定向命令
- 开发人员需要熟知的常用Linux命令之一:重定向操作符
- RHCE课程-RH033Linux基础笔记五之常用文本处理命令、输入输出重定向、管道
- linux学习入门17——LINUX多命令协作、管道及重定向(linuxcast.net)
- 开发人员需要熟知的常用Linux命令之一:重定向操作符
- RHCE课程-RH033Linux基础笔记五之常用文本处理命令、输入输出重定向、管道
- 【每天一个Linux命令】04. Linux中管道命令与重定向区别
- linux 命令之间传递数据的方式:重定向、管道、xargs 命令。
- [linux学习笔记]第3天:变量分类,重定向,管道命令,程序执行流,文本处理类命令, 正则表达式,短路操作符
- Linux管道和重定向 ---多命令协作
- Linux强大的IO重定向和管道功能(内含命令替换,实例:批量删除文件)
- RHCE课程-RH033Linux基础笔记五之常用文本处理命令、输入输出重定向、管道 推荐