【精通Linux系列】Linux中的输入输出与错误重定向详解

4,673 阅读3分钟

🚀 作者 :“大数据小禅”

🚀 专栏简介 :本专栏主要分享Linux技术,会涉及到常用的Linux命令操作,常用的服务部应用署以及相关运维知识,还有一些Linux系统的深层解析。

🚀 粉丝福利 :加入小禅的大数据社群

🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬

1:什么是输入重定向?

通俗的讲,输入重定向就是把要输入的信息写入到指定的文件中去

2:什么是输出重定向?

通俗的讲,输出重定向就是把要输出的信息写入到一个文件中去,而不是将要输出的文件信息输出到控制台(显示屏)

3:什么是错误重定向?

通俗的讲,错误重定向就是把错误的信息写入到一个文件中去

在linux中一切皆文件
文件描述符:
posix名称   文件描述符       用途
/dev/stdin    0           标准输入
/dev/stdout   1           标准输出
/dev/stderr   2           标准错误输出
1:输入重定向: <
eg:wc -l < 123.txt  #将123.txt里的输入,会统计出行数
2:输出重定向:> 代表覆盖写入(之前123.txt里面的内容会被覆盖掉) ; >> #代表追加写入(在原有的基础上继续写入)
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的错误输出到无底洞:

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#前面的命令执行成功的话,后面的才能执行成功。前面的命令执行失败的话后面的不可以执行。

||(两个管道符 就是或) #符号前面的命令执行成功的话后面的命令不能执行

grepgrep '119.4.253.206' 123.txt | wc -l #查找123.txt里边含有这串数字的列表,需要精准匹配则需要加上 - 参数,后面加上 |wc -l就可以统计出这个数字行数。