linux命令2>1,LInux命令设置参数

&1是什么意思?我是菜鸟回答的通俗一点吧。。。 比如 $ cat cities > cities.copy 2>&1'>LINUX中2>&1是什么意思?我是菜鸟回答的通俗一点吧。。。 比如 $ cat cities > cities.copy 2>&1

标准出错也定位到这个文件中

创新互联是一家专业提供大姚企业网站建设,专注与网站设计制作、成都网站建设H5场景定制、小程序制作等业务。10年已为大姚众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

2代表标准出错,如果文件不存在,如果不加上21则会打印出错信息,

加上以后就不会打印了,也进入那个文件了

1代表标准输出定向到的地方,这句相当于

cat cities cities.copy 2 cities.copy

或者

cat cities 1 cities.copy 2 cities.copy

或者

cat cities 2 cities.copy 1 2

0:标准输入,1:标准输出,2:标准出错

linux常用命令

1.列出文件清单命令:ls

ls命令能够列出当前目录下的所有内容。ls 命令的执行方式为:

# ls [-选项] [文件名或者目录名]

进入到Linux命令行中后,我们至少要知道当前所处的位置有哪些内容,这些信息就可以使用ls命令来获得。

在Linux中,ls命令是最常使用的命令之一,因为在命令行下要随时查看目录内容。如果不加任何选项的话,ls命令仅列出当前目录下的文件和目录名,例如,想要查看/etc目录下的内容,可以使用下列命令:

# ls /etc

如果想要列出当前目录下所有文件,则可以使用下列命令:

# ls -a

2、cat命令

功能:在标准输出上显示文件。

语法:cat [-vTEuAte] 文件

例子: cat example.txt

cat -A exam2.txt

cat file1 file2 file2

3、more命令

功能:在终端屏幕按屏显示文本文件。

语法: more [-pcdls] 文件

例子: more example.c

more -dc example.c

more -c -10 example.c

4、less命令

less命令的功能几乎和more命令一样,也是用来按页显示文件,不同之处在于less命令在显示文件时允许用户既

可以向前又可以向后翻阅文件。

5、head命令

功能:显示指定文件的前若干行。缺省设置为显示10行

语法:head [-n] 文件

例子: head example.c

head -3 example.c

6、tail命令

功能:显示指定文件的末尾若干行。缺省设置为显示10行

语法:tail [+ / - num ] [参数] 文件

+num 从第num行以后开始显示。- num 从距文件尾num行处开始显示。

例子: tail example.c

tail -4 example.c

7、grep、fgrep和egrep命令

功能:

这组命令以指定模式搜索文件,并通知用户在什么文件中搜索到与指定的模式匹配的字符串,并打印出所有包含该字符串的文本行,在该文本行的最前面是该行所在的文件名。grep命令一次只能搜索一个指定的模式;egrep命令检索扩展的正则表达式(包括表达式组和可选项);fgrep命令检索固定字符串,它不识别正则表达式,是快速搜索命令。

语法:

grep [-EFbcihlnvxef] [查找模式] [文件名1,文件名2,……]

egrep [选项] [查找模式] [文件名1,文件名2,……]

fgrep [选项] [查找模式] [文件名1,文件名2,……]

例子: grep "text file" example

grep data *

grep goto *.c

gt;/dev/null 2>amp;1 是什么意思'>linux命令后面的 1>gt;/dev/null 2>amp;1 是什么意思

1 /dev/null 21

对于/dev/null设备一般不存在附加的说法,虽然这么写没错。一般写成:

1/dev/null 21

1/dev/null 含义是把标准输出重定向到/dev/null,其实就是屏蔽标准输出。

21 是把标准错误重定向到标准输出,也就是fprintf(stderr, "error msg");的信息会被打印到stdout上。

结合起来就是屏蔽所有输出信息。

至于为什么采用,以及这些符号,我也不清楚,前两者还算直观,这个我也是理解不能。

可以查看sh实现源码,通过代码了解这些符号的实现,希望注释中能有一些蛛丝马迹描述为什么采用这个符号。

&1'>Linux 重定向符号以及2>&1

一个进程默认会打开标准输入、标准输出、错误输出三个文件描述符

文件描述符为0,小于号表示数据由文件流入命令

usage:

命令 file

#加入输入重定向,对输入文件进行计数

wc -l /etc/passwd

文件描述符为1,大于号表述数据由命令流入文件

所以: echo "hello" t.log 也可以写成 echo "hello" 1 t.log

会把文件的内容清空,再输入到新的文件

会把当前内容保持不变,然后在下一行进行追加

2 错误重定向,如果当前命令产生了错误,会把错误重定向到文件中,而不会打印到屏幕

无论内容正确还是错误都会把文件输出到文件中。

stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。

默认情况下, command file 将stdout 重定向到 file, command file 将stdin 重定向到 file。

如果希望 stderr 重定向到 file,可以这样写:

$ command 2file

如果希望 stderr 追加到 file 文件末尾,可以这样写:

$ command 2file 2 表示标准错误文件(stderr)

如果希望将 stdout 和 stderr 合并后重定向到 file,可以这样写:

$ command file 21 或者 $ command file 21

如果希望对 stdin 和 stdout 都重定向,可以这样写:

$ command file1 file2

command 命令将 stdin 重定向到 file1,将 stdout 重定向到 file2。

含义:将标准错误输出 重定向到 标准输出。

符号是一个整体,不可分开,分开后就不是上述含义了。

比如有些人可能会这么想:2是标准错误输入,1是标准输出,是重定向符号,那么"将标准错误输出重定向到标准输出"是不是就应该写成"21"就行了?是这样吗? 如果是尝试过,你就知道21的写法其实是将标准错误输出重定向到名为"1"的文件里去了

amp;1 是什么意思'>Linux中的 gt;/dev/null 2>amp;1 是什么意思

bash环境作了如下实验:

[root@s253

~]#

balabala

-bash:

balabala:

command

not

found

[root@s253

~]#

balabala

/dev/null

[root@s253

~]#

balabala

/dev/null

21

[root@s253

~]#

balabala

/dev/null

21

[root@s253

~]#

两条命令等价。

网友给出ksh和bash对比

/home/lee#echo

$0

-ksh

/home/lee#ls

abc

/dev/null

21

/home/lee#ls

abc

/dev/null

ls:

abc:

没有那个文件或目录

[1]

1524

[1]

Done

(1)

ls

--color=tty

abc

/home/lee#bash

/home/lee#echo

$0

bash

/home/lee#ls

abc

/dev/null

21

/home/lee#ls

abc

/dev/null

显然在ksh就不一样了,所以推荐使用/dev/null

21

27

后记:

21

的解释

Linux的IO输入输出有三类

Standard

Input

代码

Standard

Output

代码

1

Standard

Error

代码

2

ls

thereisno

1

out.txt

标准输出重定向

也可以不加1写成

ls

thereisno

out.txt

ls

thereisno

2

out.txt

标准错误重定向

ls

thereisno

out.txt

21

把错误定向到标准输出,然后统一重定向

ls

thereisno

out.txt

所有IO重定向(中的可以代表任意,0,1,2,3……)


文章名称:linux命令2>1,LInux命令设置参数
文章地址:http://ybzwz.com/article/hsedhc.html