重定向命令linux 重定向命令使用

[Linux]实用指令:重定向、追加[Linux]入门
[Linux]目录结构
[Linux]vi,vim
[Linux]开机、重启和用户登录注销
[Linux]用户管理篇:创建用户指定密码
[Linux]用户管理篇:删除用户
[Linux]用户管理篇:组的管理
[Linux] 实用指令:运行级别和找回root密码
[Linux] 实用指令:帮助指令
[Linux]实用指令: pwd、ls、cd
[Linux]实用指令:mkdir、rmdir、touch
[Linux]实用指令:cp、 rm、mv
[Linux]实用指令: cat、more、less
[Linux]实用指令:重定向、追加
[Linux]实用指令:echo、head 、tail
[Linux]实用指令:ln 、history
&1'>Linux 重定向符号以及2>&1 一个进程默认会打开标准输入、标准输出、错误输出三个文件描述符
文件描述符为0,小于号表示数据由文件流入命令
usage:
命令file
#加入输入重定向,对输入文件进行计数
wc -l/etc/passwd
文件描述符为1,大于号表述数据由命令流入文件
所以: echo "hello"t.log 也可以写成 echo "hello" 1t.log
会把文件的内容清空,再输入到新的文件
会把当前内容保持不变,然后在下一行进行追加
2错误重定向,如果当前命令产生了错误 , 会把错误重定向到文件中,而不会打印到屏幕
无论内容正确还是错误都会把文件输出到文件中 。
stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息 。
默认情况下, commandfile 将stdout 重定向到 file, commandfile 将stdin 重定向到 file 。
如果希望 stderr 重定向到 file,可以这样写:
$ command 2file
如果希望 stderr 追加到 file 文件末尾,可以这样写:
$ command 2file2 表示标准错误文件(stderr)
如果希望将 stdout 和 stderr 合并后重定向到 file,可以这样写:
$ commandfile 21 或者 $ commandfile 21
如果希望对 stdin 和 stdout 都重定向,可以这样写:
$ commandfile1 file2
command 命令将 stdin 重定向到 file1,将 stdout 重定向到 file2 。
含义:将标准错误输出 重定向到 标准输出 。
符号是一个整体,不可分开,分开后就不是上述含义了 。
比如有些人可能会这么想:2是标准错误输入,1是标准输出,是重定向符号,那么"将标准错误输出重定向到标准输出"是不是就应该写成"21"就行了?是这样吗? 如果是尝试过 , 你就知道21的写法其实是将标准错误输出重定向到名为"1"的文件里去了
linux bash的重定向 关于linux bash的重定向
所谓I/O重定向简单来说就是一个过程重定向命令linux,这个过程捕捉一个文件,或者命令 , 程序,脚本,甚至脚本中的代码块(code block)的输出,然后把捕捉到的输出 , 作为输入发送给另外一个文件 , 命令,程序,或者脚本 。
如果谈到I/O重定向,就涉及到文件标识符(File Descriptor)的概念, 在Linux系统中,系统为每一个打开的文件指定一个文件标识符以便系统对文件进行跟踪 , 这里有些和C语言编程里的文件句柄相似,文件标识符是一个数字,不同数字代表不同的含义,默认情况下 , 系统占用重定向命令linux了3个,分别是0标准输入(stdin),1标准输出(stdout), 2标准错误(stderr), 另外3-9是保留的标识符,可以把这些标识符指定成标准输入,输出或者错误作为临时连接 。通常这样可以解决很多复杂的重定向请求 。
标准输入通常指键盘的输入
标准输出通常指显示器的输出
标准错误通常也是定向到显示器
请看以下例子,来描述一下他们的关系
#ls /dev
这个命令列出/dev目录下的所有文件,在屏幕上输出结果 。

推荐阅读