linux 2》,linux中2》&1的含义
linux中&>什么意思
表示任意几个字符串,其他具体的参考如下:
1.>重定向输出符号。
2.>>重定向输出符号,但有追加的功能。
3. 2>错误重定向输出符号,覆盖原文件内容。
4. 2>>错误重定向输出符号,有文件内容追加的功能。重定向:I/O。Linux Shell环境中支持输入输出重定向,用符号<和>来表示。0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出,比如 2>a.txt表示将错误信息输出到文件a.txt中。
5.*代表0个或者多个特殊字符
6.?匹配任意一个字符。
7.|管道符号。解释:command1|command2,将command1的输出作为command2的输入,比如ls-al|less,表示将ls-al的输出作为less的输入,即将la-al的输出分页。管道命令只接受标准输入(standoutput)。
8.&后台进程符。
9.&&l逻辑与符号。用法:命令1&&命令2表示如果命令1执行成功,继续执行命令2。
10.||逻辑或符号。用法:命令1||命令2表示如果命令1执行成功,不执行命令2;但如果命令1执行失败才执行命令2。
&&与||,命令执行是顺序进行的,没有优先级
11.!逻辑非符号。排除指定范围。例:ls a[!0-9]
12.[x-y]表示一定的范围。
13.#注释符;符合替换文字最短的那一个。
14.””双引号表示把它所包含的内容作为普通字符,但` `$\‘‘几个符号除外。
15.’’单引号表示把它所包含的内容作为普通的字符,无特殊例外。
16.$变量符,提取变量,如echo$HOME,查看变量;正则表达式中表示行首。
17.\转义字符,就是将特殊字符转换成其本来的普通字符的意思。
18.``反单引号,表示它所包含的内容。一般作为嵌入的命令使用,此命令将先执行。
19.;命令分隔符。
20.<重定向输入符。
21.()表示整体执行命令。
22.^反向选择符,例:grep-n'^[^a-zA-Z]' wokao.txt,[]内的叫反向选择符,[]外的则表示定位在行首。查找行首不是英文字母的行。
23..点该表任意字符串
Linux shell中的2>&1
在Linux shell中,"2>&1"这一表达式被用于重定向错误输出到标准输出。
具体而言,"2>"表示重定向错误输出,">&"表示将标准输出重定向到指定位置。
在脚本test.sh中,如果使用"this_is_bad_cmd",通常会引发错误。若仅使用">",错误信息将不会被输出到log文件中。
但通过"2>&1",错误信息将被重定向到log文件,确保其与正常输出一同记录。测试显示错误信息未在终端上显示,但已成功记录在log1文件中。
"2>&1"中的"&"意味着"1"不表示文件名,而是标准输出(stdout)。
值得注意的是,上述测试在bash shell解释器中有效,而csh则会失败。可通过"echo$0"查看当前使用的shell解释器版本。
存在两种替代的写法。第一种是">&",在csh shell解释器中可正常工作。第二种是"&>",但在任何shell解释器中均无法使用。
使用">&",错误信息被正确记录在log2文件中。相反,使用"&>"时,信息未被正确记录在log3文件中,且错误信息直接显示在终端上。
linux 2>,2>>
ls:aaaa:NO such file or directory错误提示本来是显示在你的屏幕面前,你用了错误重定向后就把报错信息给你收集到一个文件,为了方便你查看错误信息,因为你不可能时时刻刻都在你的屏幕面前,等着程序执行完毕。比如你定了早上3点钟在备份你服务器上数据,当时出错了你知道吗?
是不知道的,可是都把错误重定向到一个文件,你上班时间看一下那个文件你就知道晚上的备份有没有出问题。
用在shell脚本里比较多,很多地方都可以用到