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接收到的输入