linux 下什么是输入输出错误重定向
简介:介绍输入输出错误重定向的使用
1:什么是输入重定向?
通俗的讲,输入重定向就是把要输入的信息写入到指定的文件中去
2:什么是输出重定向?
通俗的讲,输出重定向就是把要输出的信息写入到一个文件中去,而不是将要输出的文件信息输出到控制台(显示屏)
3:什么是错误重定向?
通俗的讲,错误重定向就是把错误的信息写入到一个文件中去
在linux中一切皆文件
代码语言:javascript复制文件描述符:
posix名称 文件描述符 用途
/dev/stdin 0 标准输入
/dev/stdout 1 标准输出
/dev/stderr 2 标准错误输出
1:输入重定向: <
代码语言:javascript复制eg:wc -l < 123.txt #将123.txt里的输入,会统计出行数
2:输出重定向:> 代表覆盖写入(之前123.txt里面的内容会被覆盖掉) ; >> #代表追加写入(在原有的基础上继续写入)
代码语言:javascript复制eg: cat >> 123.txt ;
cat > 123.txt ; ls -lrt >123.txt(也可以将ls -lrt列出的内容输出写入到123.txt中) ; echo '123455' > 123.txt(将12345输入道123.txt)
#ls -ltr(从底往高) ;
ls -lrt /home/ #列出home目录下的所有东西
3. 错误重定向:(错误重定向后要写上2 ,标准输出要加上的1可以省略)
例如,你输入llll,,因为这是个错误的命令,系统会输出 -bash :llll :command not found 。这个时候输入llll 2> 123.txt ,再查看123.txt这个文件的时候,里面的内容就是-bash :llll :command not found 。 linux的错误输出到无底洞:
代码语言:javascript复制eg:llll 2> 123.txt ; llll 2> /dev/null #/dev/null 无底洞#这样输入的话意思就是直接丢了这错误信息显示的东西,这个无底洞会直接把这个丢掉,不会占用磁盘。
几个符号常用符号
& #代表等同于的 意思 ls -lrt /boot /test 1>/root/123.txt 2>&1 #1是标准输入
&> #代表不分正确还是错误的意思 ls -lrt /boot /test &>123.txt #如果是没有test这个目录的话,ls-lrt这个命令就会错误列不出这个命令,那么上面的命令就不管这个目录在不在,这个符号都把他输入到这个文件夹。
| #管道符 #cat /ect/passwd | grep root #这个管道符就是把passwd的内容列出来,之后grep出passwd里面含有这列字符的列表。(grep回忆用法见最后一行)
; #代表的是可以执行多条命令 cat /etc/passwd | grep root ; ls -lrt # 先执行cat /etc/passwd再执行 grep root
&&(与与符号) llll && echo 123#前面的命令执行成功的话,后面的才能执行成功。前面的命令执行失败的话后面的不可以执行。 ||(两个管道符 就是或) #符号前面的命令执行成功的话后面的命令不能执行