linux实战(2)输入输出与错误重定向详解

2021-08-16 17:37:36 浏览数 (1)

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#前面的命令执行成功的话,后面的才能执行成功。前面的命令执行失败的话后面的不可以执行。 ||(两个管道符 就是或) #符号前面的命令执行成功的话后面的命令不能执行

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

0 人点赞