LINUX常用命令--重定向、管道篇(四)

一、Linux重定向

重定向能够实现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还有一个很重要的功能:接受一组文件,然后通过重定向将他们重新组合到一个文件中。我们看一个例子:

  [email protected]:~$ cat ls1

  aaaaaaaaaaaaaaaaaaaaaaaa

  [email protected]:~$ cat ls2

  bbbbbbbbbbbbbbbbbbbbbbbb

  [email protected]:~$ cat ls1 ls2 > ls

  [email protected]:~$ cat ls

  aaaaaaaaaaaaaaaaaaaaaaaa

  bbbbbbbbbbbbbbbbbbbbbbbb

其它实例:

  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可以将文本行排序。我们看下面的例子:

  [[email protected]]#cat ls 

  aaaaaaaaaaaaaaaaaaaaaaaa

  bbbbbbbbbbbbbbbbbbbbbbbb

  aaaaaaaaaaaaaaaaaaaaaaaa

  

  [[email protected]]#cat ls |sort|uniq

  aaaaaaaaaaaaaaaaaaaaaaaa

  bbbbbbbbbbbbbbbbbbbbbbbb

我们还可以对uniq命令加上-d选项来查看重复的行,如下:

  [[email protected]]#cat ls |sort|uniq -d

  aaaaaaaaaaaaaaaaaaaaaaaa

使用wc命令可以统计文本的行数、单词书和字节数。可以和例如ls命令的输出一起组成管道命令:

  [[email protected]]#ls /bin /usr/bin/ | sort | uniq | wc

  

如果仅仅想要统计行数,只需要在wc命令后面添加-l选项即可。wc命令常用来统计代码的行数。

  [[email protected]]#find cn/ -name "*.php" |xargs cat|wc -l

上面这个例子统计了cn目录下所有php文件的行数之和。

grep命令用来查找匹配的模式,并且打印包含该模式的行。举个例子:

  [[email protected]]#ls /bin /usr/bin/ | sort | uniq | grep zip

在这个例子中,zip就是一个模式,表示包含字符串zip。我们在/bin和/usr/bin目录下找出名字带有zip的程序,并且打印这些程序的名字。grep命令可以使用正则表达式,功能也非常强大,这里我们不侧重介绍。

head和tail命令也常常用于组成管道命令。head可以查看文件或者文本的前面部分。tail查看文件或者文本的末尾部分。二者都可以接收-n选项,表示显示的行数。

看例子:

  [[email protected]]#ls /bin/ | head -n 5

tail还有一个重要的用处,就是实时显示某些程序的日志文件。tail能接受一个选项-f,实时显示出新添加到文件末尾的行数。这样一旦有新的行追加到日志文件的末尾,就会被实时显示在后面。

 [[email protected]]#tail -f /var/log/messages

时间: 2024-10-05 20:08:44

LINUX常用命令--重定向、管道篇(四)的相关文章

Linux常用命令-文本查看篇

前言 Linux常用命令中,除了cat还有很多其他用于文本查看的命令.本文将简单介绍一下这些文本查看的命令. 全文本显示--cat cat可能是常用的一个文本查看命令了,使用方法也很简单: cat file  #全文本显示在终端cat -n file #显示全文本,并显示行号 另外,cat也可用作合并文件: cat file1 file2 >file3 该命令将file1 file2的内容合并写到file3中. 倒序显示全文本--tac tac是cat倒过来的写法,tac以行为单位,倒序显示全文

LINUX常用命令-系统配置篇(二)

学到一定程度了就会关注系统方面的一些配置,只是就需要相关的命令了.现在把Linux查看系统配置常用命令列出来 # uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostname # 查看计算机名# lspci -tv # 列出所有PCI设备# lsusb -tv # 列出所有USB设备# lsmod # 列出加载的内核模块# env # 查看环境变量 资源# fr

Linux常用命令总结之(四)pwd

Linux中用 pwd 命令来用来查看当前工作目录"的完整路径. 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录. 当我们不确定工作目录的具体位置时候,常用pwd命令来确定位置 1.命令格式: pwd [选项] 2.命令功能: 查看"当前工作目录"的完整路径 3.常用参数: 一般情况下不带任何参数 如果目录是链接时: 格式:pwd -P  显示出实际路径,而非使用连接(link)路径. 其他参数:   --help      在线帮助. --version   显

linux常用命令整理(四):软件包管理和shell基础

大家好,我是会唱歌的程序猿------ 最近在学习linux,闲暇之余就把这些基本的命令进行了整理,希望大家能用的上,整理的的目的是在忘了的时候翻出来看看^?_?^,前后一共分为五个部分: linux基本命令整理(一):常用命令 地址:http://www.cnblogs.com/devinCat/p/7247824.html linux基本命令整理(二):用户.用户组.文件系统和网络 地址:http://www.cnblogs.com/devinCat/p/7247847.html linux

Linux常用命令-入门篇(一)

1    For循环 语法:begin for i in reverse 1..10 loop insert into users values(i,'奥巴马'): end loop: end; 注意:循环变量 i 是隐含增加的,所以无法看到 2    goto语句 goto 语句用于跳转到特定的位置去执行语句.由于goto语句会减少程序的可读性,所以一般情况下 不建议使用goto语句 3    null语句 null语句不会执行任何操作,但是可以增加程序的可读性 4    创建返回值是一个结果

Linux常用命令(四)

Linux常用命令(四) 目前已经总结了,文件操作命令,目录操作命令,查看目录下的文件及目录结构,本节我来总结一下Linux另外两个重要的命令rm删除命令和find查找命令. 1 rm命令 rm命令是Linux系统中常用的命令,该命令的功能为删除一个目中的文件或多个文件或目录,对于链接文件,只是删除了链接,对原始文件没有影响,rm命令十分危险,新手要特别当心. 1.1 语法 rm [选项] 文件... 1.2 命令参数 -i 每个删除操作完成前都有确认提示 -I 删除超过 3 个文件时或递归删除

Linux常用命令大全(全面)

笔者在这篇文章中跟大家分享一下接近 100 个 Linux 常用命令大全,希望可以帮助到大家. 1.ls [选项] [目录名 | 列出相关目录下的所有目录和文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 -a 列出包括.a开头的隐藏文件的所有文件 -A 通-a,但不列出"."和".." -l 列出文件的详细信息 -c 根据ctime排序显示 -t 根据文件修改时间排序 ---color[=WHEN] 用色彩辨别文件类型 WHEN 可以是'ne

hadoop之linux常用命令

Linux的命令后面会有命令选项,有的选项还有选项值.选项的前面有短横线“-”,命令.选项.选项值之间使用空格隔开.有的命令没有选项,会有参数.选项是命令内置的功能,参数是用户提供的符合命令格式的内容. 1.1.1.           命令提示符 在桌面上点击鼠标右键,在弹出菜单中选择“Open in Terminal”, 系统会打开终端,类似于Windows下的命令行.Windows的命令行是dos环境,Linux下的命令行是shell环境.我们的所有命令都是在shell下运行的,后面所有章

Linux 常用命令汇总

Linux 常用命令汇总 1. 显示日期与时间:date 可修改显示日期格式,如:date +%Y/%m/%d %H:%M à2016/12/25 17:05(%Y:年:%m:月:%d:日:%H:24小时制:%M:分) date –d 参数后可加:today/yesterday/tomorrow 来显示今天.昨天.明天日期 2. 显示日历:cal(默认显示本月月历) cal 2001 可显示2001年整年日历:cal 10 2001 可具体显示某月月历 3.  计算器:bc 4. Tab键:用在