微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

4.3管道和重定向

管道和重定向:> < >> <<

运算器 控制器: cpu

存储器:RAM

输入设备/输出设备

程序:指令和数据

控制器:指令

运算器

存储器

地址总线:内存寻址

数据总线:传输数据

控制总线:控制指令

寄存器:cpu暂时存储器

I/O:硬盘

INPUT设备:

OUTPUT设备:

系统设定

   输出设备:标准输出,STDOUT,1

   认输入设备:标准输入,STDIN,0

   标准错误输出:STDERR,2

标准输入:键盘

标准输出错误输出显示

I/O重定向

Linux:

> 输出 ls /var > /tmp/var.out 覆盖输出(覆盖原有内容

>>:追加输出 

/***

set 内建命令:

  -C(不允许覆盖)  -开启功能

  +C(恢复覆盖)    +关闭功能

ls /var >| /tmp/var.out(-C没作用)

**/

set -C:禁止对已经存在文件使用覆盖重定向

        强制覆盖输出,则使用>|

set +C: 关闭上述功能

2>:重定向错误输出

2>>:追加方式

ls /varr > /tmp/var3.out 2> /tmp/err.out(两次重定向)

&>:重定向标准输出错误输出至同一个文件

&>>:追加方式

ls /var6 &> /tmp/var0.out

<: 输入重定向

<<:Here Document(在此处生成文档)cat << EOF(end of file)

cat >> /tmp/myfile.txt << EOF 在脚本中生成文件

cat < /etc/fstab 把文件显示出来

tr 'a-z' 'A-Z' < /etc/fstab

passwd --stdin

管道:前一个命令的输出,作为后一个命令的输入

命令1 | 命令2 | 命令3 | ...

echo "hello , world" | tr 'a-z' 'A-Z'

echo "redhat" | passwd --stdin hive

tee 从标准输入输入,保存到标准输出文件

echo "Hello,World" | tee /tmp/hello.out

wc -l(字母) /etc/passwd

wc -l /etc/passwd | cut -d' ' -f1

练习:

1 统计/usr/bin/目录下的文件个数:

 ls /usr/bin | wc -l

2 取出当前系统上所有用户的shell,要求,每种shell只显示一次,并且

  按顺序进行显示

 cut -d: -f7 /etc/passwd | sort -u

3 思考:如何显示/var/log目录下每个文件内容类型

 file /var/log/*

 file 'ls /var/log'

4 取出/etc/inittab文件的第6行

 head -6 /etc/inittab | tail -1

5 取出/etc/passwd文件中倒数第9个用户用户名和shell,显示到屏幕上

  并将其保存至/tmp/users文件

 tail -9 /etc/passwd |head -1 | cut -d: -f1,7 | tee /tmp/users

6 显示/etc/目录下所有以pa开头的文件,并统计其个数

 ls -d(不加-d把目录下的文件显示出来了) /etc/pa* | wc -l

7 不使用文本编辑器,将alias cls = clear一行内容添加至当前用户

  .bashrc文件

 echo "alias cls = clear" >> ~/.bashrc

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐