由io 、 控制器、计算器、存储器组成
IO: input output
计算机里面通过终端窗口实现输入和输出,键盘鼠标屏幕这些只是手段,真正完成输入输出的是终端窗口
在linux中,每打开一个文件,系统会分配一个唯一的数字(文件描述符 --fd)用来代表目前打开的文件,其中有三个数字预留给打开的文件使用(0 1 2 )
输入出错误需要一个设备来实现:
查看默认的输入输出错误的窗口设备 --- ll /dev/std*
默认当前的窗口就是完成实现默认的输入、输出和错误的设备
描述: 重新改变linux的输入输出等
输出的信息不在当前窗口完成,而是在指定的设备进行完成。
使用tty命令可以查看当前窗口的终端名称
例如: echo 1346 1> /dev/pts/0 -- 将要输出结果在指定的窗口进行显示
1>
(可以省略成 >
)重定向到不同的文件:xx 1> f1 2>f2 --- 对的重定向到f1,错的重定向到f2
重定向到同一个文件: xx > xx 2>&1 --- 把标准输出往xx里面写,把错的重定向到1里面 2>&1
2>&1:2表示错误,1表示正确,&符号的作用是表示1是描述符不是文件名1
整体意思就是把错误的输出重定向到1(正确输出的文件)里面去
注意:前后次序有要求。需要先放对的 再放错的
这样写不对,因为首先执行的就是把错误重定向到1里面.然而这个时候1自己都不知道该重定向到哪儿,所以就输出到了屏幕,没有实现1和2的重定向.
&> 或者 >&
例如把输入的内容直接生成到文件中 cat > a.txt
输入内容每回车一次就重定向一次
比如一个命令原来默认是通过当前终端来进行标准输入的,可以通过一个文件,把文件中的内容输入给它
.
实现多行重定向<< 单词
,提前把多行内容写完,然后再执行重定向
例如: cat > xx << EOF --- 遇到EOF结束
左侧的标准输出作为右侧的标准输入 --- stdin | stdout
比如实现1+..100: seq -s+ 100 | bc(-s:指定分隔符)
作用: 字符转换和删除
tr '123' 'abc' -- 把132转换成abc -- 一一对应 1--a 2--b
tr命令需要有输入才能进行转换 不能这样: tr 'xx' 'yy' filename
删除: tr -d '需要删除的内容'
例如:
实现windos格式向linux格式转换:
tr -d '\r' < 1.txt > 11.txt
windows的文本文件多了个回车符号 所以 tr -d '\r' 文件名
(\r:回车 \n:换行 -d:删除指定字符)
tr命令执行删除操作的时候 需要有输入
1.将多个连续的空格压缩成一个空格 df | tr -s ' ' (-s:把相同连续的字符合成一个)
2.使用awk 指定空格作为分隔符就取出来了
手机扫一扫
移动阅读更方便
你可能感兴趣的文章