linux命令二

shell的输入、输出和错误重定向

Linux下系统打开3个文件,即标准输入、标准输出和标准错误输出。用户的shell将键盘设置为默认的标准输入,屏幕为默认的标准输出和标准错误输出。也就是用户从键盘输入命令,然后将结果和错误信息输出到屏幕。

所谓的重定向,就是不使用系统默认的标准输入输出,而是重新指定,因此重定向分为输入重定向、输出重定向和错误输出重定向。要实现重定向就需要了解重定向操作符,shell就是根据重定向操作符来决定重定向操作的。

  •         1.输入重定向
    • 输入重定向用于改变命令的输入源,利用输入重定向可以将一个文件的内容作为命令的输入,而不是键盘输入。
    • 用于输入重定向的操作符有<和<<。例如
    • wc </etc/shadow

      用wc命令统计输入给它的文件 /etc/shadow 的行数、单词数和字符数。还有一种输入重定向 << ,这种重定向告诉shell当前命令的标准输入为来自命令行中一对分隔符号之间的内容。例如:

    • wc << aa
      cdb
      aa

      上面的命令将一对分隔号aa之间的内容作为wc命令的输入。分隔号可以是任意字符。shell将在第一个分隔号后开始读取内容,直到出现另一个分隔号结束,然后将内容送给wc命令处理。

输出重定向

输出重定向是将命令的输出结果不再屏幕输出,二十输出到一个指定文件中。在Linux下输出重定向用得很多。例如,某个命令的输出很长,一个屏幕无法全部显示,可以将命令的输出指定到一个文件,然后用more命令查看这个文件,从而得到命令输出的完整信息。

        用于输出重定向的操作符有 > 和 >> ,例如:

ps -ef > ps.txt

将ps -ef 输出的系统运行的进程信息全部输出到ps.txt文件,而不是输出到屏幕上,可以用cat命令查看ps.txt文件中系统运行的进程信息。

        再看下面这个例子:

cat file1 file2 file3 > file

上面这个cat命令是查看文件的内容,将file1 file2 file3 的内容全部输出到file文件中,类似于文件内容的合并。

如果在 > 后面指定的文件不存在,shell就会自动新建一个文件;如果文件存在,那么这个文件原有的内容将被覆盖;如果不想覆盖存在的文件,可以使用 >> 操作符,例如:

ls -al /etc/* >> /root/install.log

错误重定向

错误重定向和标准输出重定向一样,可以使用操作符 2> 和 2>> 实现,例如:

tar zxvf text.tar.gz 2> error.txt

上面这个命令中,tar是打包命令,可以在屏幕上看到tar的解压过程。如果text.tar.gz是个损坏的压缩包,就会把错误信息输出到error.txt文件。

shell中的管道如何使用

管道可以把很多命令连接起来,可以把第1个命令的输出当作第2个命令的输入,第2个命令的输出可以当作第3个命令的输入,依此类型。因此,管道的作用就是把一个命令的输出当作下一个命令的输入,而不经过任何中间文件。

通过管道符 | 可以建立一个管道连接,例如:

ls -al /etc/* |more

上面这个命令表示将 /etc 目录以及子目录下的所有文件分屏显示。再看下面这个例子:

ps -ef | grep httpd | wc -l

这个命令是查看系统中正在运行的httpd进程,并计算httpd的进程数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值