Linux 基础 之 非交互式多行录入
一、输入输出的定义
1.输入就是我们的键盘,鼠标和我们用这些硬件在系统只录入的字符。
2.输出就是系统接收到我们想要实现的功能字符后,经过进程的处理产生字符。输出会有两种形式出现:编号1为正确输出,编号2为错误输出,默认着两种输出都会被系统定向到字符设备中。
二、非交互式多行录入
在我们调用sh命令是不能自动运行的,需要借助<<输入重定向符号进行重定向。
三、管道
管道就是把输出变成下一个程序的输入,管道是用来组合多条命令的使用的。顾名思义就是一个过滤器一样,我们可以使用这个命令来控制正确还是错误的来通过管道。
ls /bin | wc -l
"注意:通过管道后输出会变成输入,那么是无法保存在文件中的"。如上图所示,命令只会呈现结果而不会保存。
tee 复制输出到指定位置,ls /bin | tee file | wc -l
cat file file中已经保存了输出,也就是有了两份内容。
四、练习:
1.显示当前时间 , 显示格式为 hh:mm:ss, 并保存到文件 time.txt文件中
date +%H:%M:&S | tee time.txt
我们可以看到tee命令的呈现,也就是通过管道来复制时间到time.txt。
2.显示 /etc/passwd 文件的第 15-18 行内容,当我们不会使用命令时学会用--help命令来查看命令的操作。
3.显示 /bin 中文件包含大写字母的文件 , 保存到bin_westos_file.txt 文件中,并统计个数显示到屏幕。
touch bin_westos_file.txt
ls /bin/*[[:upper:]]* | tee bin_westos_file.txt | wc -l
4.在 student 用户下查找 /etc 下 passwd 文件,屏蔽错误输出
find /etc/ -name passwd 2> /dev/null
我们要学会使用/dev/null,也就是系统垃圾箱,我们可以将没用的东西放进去。
5.在 student 用户下查找 /etc 下 passwd 文件,正确输出保存到 /tmp/westos.out 错误输出保存到 /tmp/westos.err,这题就是用两个重定向就OK了,然后用cat查看一下效果。
find /etc/ -name passwd 2> /tmp/westos.err > /tmp/westos.out
6.在 student 用户下查找 /etc 下 passwd 文件,显示命令输出并保存输出到 /tmp/westos.all 中。就是通过2>&1 把错误输出的编号由2转换为1,进而可以通过管道,然后复制一份到/tmp/westos.all。
find /etc/ -name passwd 2>&1 | tee /tmp/westos.all