linux shell下常用输入输出操作符是:
1. 标准输入 (stdin) :代码为 0 ,使用 < 或 << ; /dev/stdin -> /proc/self/fd/0 0代表:/dev/stdin
2. 标准输出 (stdout):代码为 1 ,使用 > 或 >> ; /dev/stdout -> /proc/self/fd/1 1代表:/dev/stdout
3. 标准错误输出(stderr):代码为 2 ,使用 2> 或 2>> ; /dev/stderr -> /proc/self/fd/2 2代表:/dev/stderr
#显示当前目录文件 test.sh test1.sh test1.sh实际不存在
[chengmo@centos5 shell]$ ls test.sh test1.sh
ls: test1.sh: 没有这个文件和目录
test.sh
#正确输出与错误输出都显示在屏幕了,现在需要把正确输出写入suc.txt
# 1>可以省略,不写,默认所至标准输出
[chengmo@centos5 shell]$ ls test.sh test1.sh 1>suc.txt
ls: test1.sh: 没有这个文件和目录
[chengmo@centos5 shell]$ cat suc.txt
test.sh
#把错误输出,不输出到屏幕,输出到err.txt
[chengmo@centos5 shell]$ ls test.sh test1.sh 1>suc.txt 2>err.txt
[chengmo@centos5 shell]$ cat suc.txt err.txt
test.sh
ls: test1.sh: 没有这个文件和目录
#继续追加把输出写入suc.txt err.txt “>>”追加操作符
[chengmo@centos5 shell]$ ls test.sh test1.sh 1>>suc.txt 2>>err.txt
#将错误输出信息关闭掉
[chengmo@centos5 shell]$ ls test.sh test1.sh 2>&-
test.sh
[chengmo@centos5 shell]$ ls test.sh test1.sh 2>/dev/null
test.sh
#&[n] 代表是已经存在的文件描述符,&1 代表输出 &2代表错误输出 &-代表关闭与它绑定的描述符
#/dev/null 这个设备,是linux 中黑洞设备,什么信息只要输出给这个设备,都会给吃掉
#关闭所有输出
[chengmo@centos5 shell]$ ls test.sh test1.sh 1>&- 2>&-
#关闭 1 ,2 文件描述符
[chengmo@centos5 shell]$ ls test.sh test1.sh 2>/dev/null 1>/dev/null
#将1,2 输出转发给/dev/null设备
[chengmo@centos5 shell]$ ls test.sh test1.sh >/dev/null 2>&1
#将错误输出2 绑定给 正确输出 1,然后将 正确输出 发送给 /dev/null设备 这种常用
<P>[chengmo@centos5 shell]$ ls test.sh test1.sh &>/dev/null
#& 代表标准输出 ,错误输出 将所有标准输出与错误输出 输入到/dev/null文件
相关推荐
- `2>&1` 表示将错误输出(2)重定向到标准输出(1),这样错误信息也会被输出到屏幕或指定的文件。 - `&> filename` 是一个简化的形式,它同时将标准输出和错误输出都重定向到`filename`。 4. **输出打印不显示*...
shell中可能经常能看到:>/dev/null 2>&1 命令的结果可以通过%>的形式来定义输出 /dev/null 代表空设备文件 > 代表重定向到哪里,例如:echo “123” > /home/123.txt 1 表示stdout标准输出,系统默认值是1,所以”>...
在Shell脚本编程中,`>/dev/null 2>&1` 是一个常见的命令行操作,它的目的是将命令的输出(包括标准输出和标准错误)都重定向到一个特殊的地方——`/dev/null`,通常被称为“黑洞”或者“空设备文件”。这个文件的...
首先,`>/dev/null`是将标准输出(标准输出的文件描述符为1)重定向到`/dev/null`,这是一个特殊的设备文件,通常被称为“黑洞”,因为它会丢弃所有写入它的数据,不会有任何输出。这意味着任何命令的正常输出都不会...
相信大家经常能在shell脚本中发现>/dev/null 2>&1这样的语句。以前的我并没有去深入地理解这段命令的作用,照搬照用,直到上周我将这段命令不小心写成了2>&1 >/dev/null,出了一点小问题之后,我才开始去了解这段...
- **禁止标准输出**:例如,使用`cat $filename > /dev/null`可以防止文件内容被输出到屏幕。 - **禁止标准错误**:例如,使用`rm $badname 2>/dev/null`可以在删除不存在的文件时不显示错误信息。 - **同时禁止标准...
在 `nohup /mnt/Nand3/H2000G >/dev/null 2>&1 &` 这个例子中,`>/dev/null` 表示将标准输出(文件描述符 1)重定向到 `/dev/null`,这是一个特殊的设备文件,任何写入它的数据都会被丢弃,相当于“黑洞”。`2>&1` ...
- `ls test.sh test1.sh 2>&1`:将错误输出重定向到与标准输出相同的地方,即合并输出。 - `ls test.sh test1.sh 2>/dev/null`:将错误输出丢弃,不显示在屏幕上。 此外,还可以使用`&>`(或`>&`)将标准输出和错误...
例如,mysh > /dev/null 2>&1 就可以忽略标准输出和错误输出。 在 IO 重定向中,我们需要了解基本概念,包括 FD(File Descriptor)、STDIN、STDOUT 和 STDERR 等。FD 是一个文件描述符,shell 的 FD 通常为 10个,...
在某些情况下,我们可能希望丢弃命令的错误输出,如`grep delegate /etc/* 2>/dev/null`,这会过滤掉grep因权限问题无法打开文件时的错误提示,让屏幕只显示匹配的搜索结果。 了解并熟练运用输入输出重定向和管道...
8. **重定向标准错误到标准输出**:`2>&1`表示将错误输出与标准输出合并。例如,`command 2>&1 > all_output.txt`将所有输出(包括错误)都写入all_output.txt。 9. **历史记录重定向**:在shell脚本中,`exec`命令...
`2>&1`,将错误输出与标准输出合并。 结合使用管道和重定向,可以实现复杂的数据处理流程,例如: - `ls -l | grep '.txt' > files.txt`: 列出当前目录下的所有文件,并筛选出以'.txt'结尾的文件,结果保存到`files...
- **标准输出(stdout)**:默认输出到终端,文件描述符为1,可以使用`>`进行重定向。 - **标准错误(stderr)**:通常用于错误信息,文件描述符为2,也可以通过`2>`进行重定向。 重定向操作符包括: - `>`:...
- 示例:`find / -name test > /dev/null 2>&1` 的含义是搜索根目录下的名为 "test" 的文件,并将输出重定向到空设备文件 `/dev/null`,同时将错误输出也重定向到同一位置。 #### 五、Shell 变量管理 - **变量...
在Bash shell编程中,文件描述符是至关重要的概念,它们是操作系统与程序之间交互数据的主要方式。文件描述符是一个非负整数,用于标识进程打开的文件或管道。在Linux系统中,一切皆文件,包括设备、网络连接等,都...
- **`/dev/null`**:通常用于丢弃不需要的数据或重定向不需要的输出。 - **`/dev/tty`**:代表当前终端(或终端仿真器)的设备文件,可以用来从终端读取数据。 示例脚本 `test_dev_null.sh` 展示了如何使用 `/dev/...
- `&>/dev/null`:将标准输出和标准错误输出都重定向到黑洞。 14. 用户配置文件: - `~/.bashrc`:用户每次打开新终端时加载,只对当前用户有效,常用于定义变量。 15. 系统配置文件: - `/etc/profile`:所有...
linux shell 中”2>&1″的含义 脚本: nohup /mnt/Nand3/H2000G >/dev/null 2>&1 & 对于& 1 更准确的说应该是文件描述符...把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去。通俗的说,就是把所有标准输出和标准
8. 错误重定向:`2>`将错误输出到指定文件,`2>&1`将标准错误与标准输出合并。 练习四涉及文件读取、追加以及邮件发送: 1. `cat`:连续查看多个文件。 2. `>>`:追加内容到文件,不会覆盖原有内容。 3. `1>`:将...