1.数据流和重定向
1.2数据流
标准输入 (standard input,简称stdin):默认情况下,标准输入指从键盘获取的输入
标准输出(standard output,简称stdout): 默认情况下,命令执行所回传正确的信息会输出到屏幕上
标准错误输出(standard error output,简称stderr): 默认情况下,标准错误输出可理解为命令执行失败后,所回传的错误信息会输出到屏幕上
不管正确或错误的数据都是默认输出到屏幕上,所以屏幕是混乱的。所以就需要用数据流重定向将这两条数据分开。数据流重定向可以将标准输出和标准错误输出分别传送到其他的文件或设备去,而分别传送所用的特殊字符如下所示:
标准输入 (stdin):代码为0 0代表输入(键盘)
标准输出 (stdout):代码为1 1代表输出(屏幕)
标准错误输出(stderr) : 代码为2 2代表错误(输出错误提示)[root@server q1]# ll /dev 显示系统中该命令的存放位置
1.2重定向操作符
重定向操作符可以将命令输入和输出数据流从默认设备重定向到其他位置。、
重定向操作符本身不是命令,而是命令中附加的可改变命令的输入和输出对象的特殊符号.
1.2.2符号
输出重定向操作符: > >>
“>”默认是覆盖,覆盖原有内容 “>>”默认是追加,在原有内之后添加内容
输入重定向操作符:< <<“<” 输入重定向
"<<"表示输入的终止符用哪一种,一般在<<后直接加输入终止符
[root@server q1]# cat > t1.txt << aaa
自我理解:以看的形式给t1.txt输入内容,当遇到aaa时输入终止三种文件存储方式:echo "hello word" > t1.txt
cat > file3 << end
cat > t5.txt
1.2.3用法
命令 >文件 或 命令 1>文件 : 将命令执行后的结果不在默认的屏幕上显示,而是以覆盖的方式写入到指定立件中,若指定的文件不存在,则自动创建该文件
命令 2>文件 :将命令执行后所产生的错误信息不在默认的屏幕上显示,而是以覆盖的方式写入到指定文件中,若指定的文件不存在,则自动创建该文件
命令 2>/dev/nu11 : 将命令执行后所产生的错误信息不在默认的屏幕上显示,而是写入到空设备命令文件(黑洞)中(相当于Vin的回收站),即将输出的错误信息丢弃掉
命令&>文件 命令>&文件 : 将命令执行后的正确输出信息和错误信息不在默认的屏幕上显示,而是以罗盖的方式写入到指定文件中,若指定的文件不存在,则自动创建该文件
命令 >>文件 : 将命令执行后的正确输出信息以追加的方式写入到指定的文件中,不覆盖原文件内容,若指定的文件不存在,则自动创建该文件
命令 <文件 : 使命令从指定的文件中读取数据作为输入命令 <<结束标识字符串 : 在命令行读取数据作为输入,直到遇到指定的结束标识字符串
输出重定向具体命令用法:
>符号的用法,覆盖
>> 符号的用法,追加
注意:若命令echo输入错误,则会导致文件内容的丢失。例:
因此>覆盖也可以删除文件
将错误提示,输入到文件夹中:在>之前加数字2
[root@server q1]# ehco "xixihaha" 2> ni.txt
将正确和错误的信息都转储到文件中
[root@server q1]# echo "xixihaha" &> ni.txt
隐藏脚本执行的过度信息:
[root@server q1]# yum makecache > n1.txt缺点:n1.txt文件会越执行越大
因此优化 [root@server q1]# yum makecache > /dev/null 该命令为不显示也不储存
使脚本后台静默安装,安装过程不保存
合并文件:[root@server q1]# cat t1.txt t2.txt >t3.txt
输入重定向具体命令用法:
符号:< <<
将字符串test输入重定向到文件file中 [root@server q1]# echo test > file
"<<"表示输入的终止符用哪一种,一般在<<后直接加输入终止符
以看的形式给file3输入内容,当遇到end时输入终止
[root@server q1]# cat > file3 << end
以看的形式给t1.txt输入内容,当遇到aaa时输入终止
第二种输入法:[root@server q1]# cat > t5.txt
该输入发较难使用,最后结束要组合按键Ctrl + D 删除输入错的同行字母时要用组合按键
Ctrl + Backspace
以上命令都只能更改/删除同一行,不能更改/删除上一行
1.3 echo
1.3.1.作用
向终端设备上输出字符串或变量的存储数据(像屏幕终端输出)
1.3.2.格式
echo "字符串"
注意:单引号' $PATH'是原样输出"$PATH"含义是保留部分字符含义
echo $变量名($提取变量的值)
2.tee
3.1 作用
读取标准输入数据,将结果输出到文件中同时输出到屏幕上
3.2 格式
tee -参数 文件名
3.3 参数
-a:加数据,即--apped。
-i:忽略终端信号·
--help:帮助信息
3.4 用法:
[root@server ~]# tee test.txt用法与[root@server q1]# cat > t.testxt相似
4.管道符
4.1.作用
用于两个命令或多个命令相连接,将左侧命令的结果作为右侧命令的数据输入
4.2.格式
命令1 | 命令2 | 命令3 .....
4.3使用:
查看passwd这个文件有多少行,
[root@server q1]# cat /etc/passwd | wc -l 将左侧查看的数据交给右侧来处理
过滤出 ip a 命令中的ip地址,即图中红框中的内容
grep 关键字 意义:按照右边的关键字对文本进行过滤
tr -s 替换
[root@server q1]# ip a | grep ens160 | grep inet | tr -s " " | cut -d " " -f3