linux 的输入输出重定向

(输入输出的介绍)输入一个命令,到显示给我们结果,经历的过程!linux 的输入输出重定向

如上图所示,当我们输入一个date命令时,会先被读到内存中,当我们按下回车键,该命令就会被cpu执行,并得到返回一个结果,那么这个结果实际是会放在/dev/pts/0这个文件中,这个文件就是显示字符的设备,系统给我们的反馈也就这样显示在我们的屏幕中

那么管理系统的输出,该如何呢,也就是重定向

每次打开的都会产生一个显示字符设备,/dev/pts/0or1。。。

当我们输入 date > /dev/pts/1,这样的话,内容就显示到了其他屏幕上

输出的分类!

两类输出,也就是正确的输出和错误的输出!

如何定向输出(这是会覆盖原文件的)

(1)find /etc/ -name passwd

(以名字的方式查找/etc/目录下的passwd的文件)

(2)怎么管理输出,比如说把正确的输出定向到xx

用>来进行定向,就是把查询到的正确的输出定向到桌面的yues.out文件中

find /etc/ -name passwd > yues.out

用2>来定向错误输出,就是把查询到的错误的输出定向到桌面的yues.err文件中

find /etc/ -name passwd 2> yues.err

用&>来定向所有输出

怎么清空一个文件

rm -fr * 清文件

(1)> 文件名

怎么建立新文件

(1)touch file

(2)vim file

(3)gedit file

(4)> file

怎么不覆盖原文件呢?追加

将 > 换成 >>

怎么显示文件

cat file

(1) echo haha 类似于打印机会打印出来

echo haha>file 会把echo后的内容追加到file中

对输出进行二次处理

wc file 行数 字数 字节数

wc -l file 显示文件的行数

wc -w file 显示文件的单词数

wc -m file 显示文件的字符数

wc -c file 显示文件的字节数

ls |wc -w 这就是对ls列出来的文件的个数做了统计

(1)默认管道符只通过编号为1的输出,比如

find /etc/ -name passwd | wc -l

(2)我们怎么把正确1的和错误2的都让管道符通过呢

find /etc/ -name passwd 2>&1 | wc -l

(3)把内容复制一份到file文件中,再通过管道

find /etc/ -name passwd 2>&1| tee file | wc -l

输入重定向

(1)tr ‘a-z’ ‘A-Z’ <westos (这就是说,westos文件定向到tr这个命令中,把小写转换为大写)

那么我们如何让多个命令自动执行

先建立一个脚本 如:vim yues.sh

里面的内容为 :date

​ cal

输入 sh yues.sh

那么这两个命令就会依次执行

(2)有时候,有的命令必须要有输入,例如passwd,这时候脚本就不能自动运行,这时候我们就需要让密码自动输入到passwd中,我们把要输入的密码也写入脚本中,并且需要告诉系统,密码应该被重定向到passwd的输入(多行录入)

passwd << EOF

mima

mima

EOF

那么mima就是passwd接收到的输入

< EOF

mima

mima

EOF

那么mima就是passwd接收到的输入