1.文件描述符是与一个打开的文件或数据流相关联的整数。文件描述符0,1,2是系统预留的。

  • 0 --------stdin(标准输入)
  • 1 --------stdout(标准输出)
  • 2---------stderr(标准错误)

2.输出重定向

常见的有> 、>>、2>&1、&>

>操作符用于截断(w)模式的文件写入(如果文件目标文件包含文件按,就先截断,即清空后再写入

>>操作符用于追加模式(a)的文件按写入(新的数据会被添加到 目标文件的末尾,原有的文件内容保留)

>和>>使用标注输出,所以>等同于1>, >>等同于1>>,如果需要使用特定的文件描述符,就需要将描述符至于操作符之前

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

[hupeng@hupeng-vm shell]$touch .txt
[hupeng@hupeng-vm shell]$ls .txt #默认情况下,正常输出信息和错误信息直接在终端上显示
.txt
[hupeng@hupeng-vm shell]$ls .txt .txt
ls: cannot access .txt: No such file or directory
.txt
[hupeng@hupeng-vm shell]$ls .txt .txt > stdout.txt #将正确输出重定向到stdout.txt中,错误信息还是直接在终端输出
ls: cannot access .txt: No such file or directory
[hupeng@hupeng-vm shell]$cat stdout.txt
.txt
[hupeng@hupeng-vm shell]$ls .txt .txt > stdout.txt >stderr.txt #将错误信息输出到stderr.txt
[hupeng@hupeng-vm shell]$cat stdout.txt
.txt
[hupeng@hupeng-vm shell]$cat stderr.txt
ls: cannot access .txt: No such file or directory
[hupeng@hupeng-vm shell]$#使用2>&1标准输出和标注出错输出到同一个文件
[hupeng@hupeng-vm shell]$ls .txt .txt >out.txt >& #注意是&,不是1!!! &1表示文件描述符1,即标准输出 将标准输出重定向到了out.txt,而将标准出错重定向到了标准输出
[hupeng@hupeng-vm shell]$cat out.txt
ls: cannot access .txt: No such file or directory
.txt
[hupeng@hupeng-vm shell]$ls .txt .txt >out.txt > #这里的1是普通文件名
[hupeng@hupeng-vm shell]$cat out.txt
.txt
[hupeng@hupeng-vm shell]$cat #1是普通文件名
ls: cannot access .txt: No such file or directory
[hupeng@hupeng-vm shell]$rm out.txt
[hupeng@hupeng-vm shell]$ls .txt .txt &>out.txt #使用&> 将stout和stderrr都重定向到了指定文件
[hupeng@hupeng-vm shell]$cat out.txt
ls: cannot access .txt: No such file or directory
.txt
[hupeng@hupeng-vm shell]$#关于>和>>
[hupeng@hupeng-vm shell]$echo "test 1" > out.txt
[hupeng@hupeng-vm shell]$cat out.txt
test
[hupeng@hupeng-vm shell]$echo "test 2" > out.txt
[hupeng@hupeng-vm shell]$cat out.txt
test
[hupeng@hupeng-vm shell]$echo "test 3" >> out.txt
[hupeng@hupeng-vm shell]$cat out.txt
test
test
[hupeng@hupeng-vm shell]$echo "test 4" >> out.txt
[hupeng@hupeng-vm shell]$cat out.txt
test
test
test

shell文件描述符和重定向的更多相关文章

  1. 玩转Linux文件描述符和重定向

    本文介绍linux中文件描述符与重定向的相关知识,文件描述符是与文件输入.输出相关联的整数,它们用来跟踪已打开的文件.有需要的朋友参考下. 原文出处:http://www.jbxue.com/arti ...

  2. Linux文件描述符与重定向

    文件描述符可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作. 当Linux启动的时候会默认打开三个文件描述符,分别是: 标 ...

  3. Linux Shell 文件描述符 及 stdin stdout stderr 重定向

    Abstract: 1) Linux Shell 命令的标准输入.标准输出.标准错误,及其重定位: 2)Linux Shell 操作自定义文件描述符: 文件描述符是与文件相关联的一些整数,他们保持与已 ...

  4. linux专题一之文件描述符、重定向、管道符、tee命令

    本节讨论一下几个问题: 1. 文件描述符. 2. 重定向. 3. 管道符 4. tee的用法. 1. 文件描述符. 在linux系统中一切皆文件.文件夹和设备都是文件.如何用来区别不同的文件呢?这里的 ...

  5. shell 文件描述符

    /tmp/test.sh > /tmp/test.log 2>&1 这个命令的意思是 前半部分是将shell的输出重定向到/tmp/test/log.默认是标准输出(stdout文 ...

  6. Linux 文件描述符和重定向

    200 ? "200px" : this.width)!important;} --> 介绍 文件描述符是与文件输入.输出相关联的整数,在编写脚本时会经常使用标准的文件描述符 ...

  7. 【Linux】文件描述符与重定向

    重定向符号 符号 描述 > 输出重定向到一个文件或设备 覆盖原来的文件 >! 输出重定向到一个文件或设备 强制覆盖原来的文件 >> 输出重定向到一个文件或设备 追加原来的文件 ...

  8. Shell重定向文件描述符

    #!/bin/bash      最近在看shell,各种困惑,不过解决困惑的感觉还是很不错的.废话少说,linux中使用文件描述符来标识每个文件对象.文件描述符为一个非负整数,可以唯一标识会话中打开 ...

  9. 18 shell 重定向以及文件描述符

    1.对重定向的理解 2.硬件设备和文件描述符 文件描述符到底是什么 3.Linux Shell 输出重定向 4.Linux Shell 输入重定向 5.结合Linux文件描述符谈重定向 6.Shell ...

随机推荐

  1. happens-before俗解

    happens-before俗解 学习Java并发,到后面总会接触到happens-before偏序关系.初接触玩意儿简直就是不知所云,下面是经过一段时间折腾后个人对此的一点浅薄理解,希望对初接触的人 ...

  2. Windows 10瘦身

    Windows操作系统功能越来越强大,同时体型也越来越臃肿.安装盘没有60Gb都不敢安装.Windows10 安装最低磁盘要求20G ====瘦身基础篇,适合任何用户:(可见目录,简单迁移)1. 安装 ...

  3. (19)jQuery操作文本和属性

    <!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>jq ...

  4. AtCoder Grand Contest 031 B - Reversi

    https://atcoder.jp/contests/agc031/tasks/agc031_b B - Reversi Time Limit: 2 sec / Memory Limit: 1024 ...

  5. 高斯消元 o(n^3) 取摸和不取摸

    #include<bits/stdc++.h> using namespace std; ; int a[MAXN][MAXN];//增广矩阵 int x[MAXN];//解集 bool ...

  6. html和vue框架

    HTML写的页面,每次跳转的时候都要向服务器请求 vue框架:单页面运用,路由的跳转,方便

  7. day07 hadoop里面的RPC框架使用

    PS: RPC远程调用 Webservice啥的都是远程调用.下面简单介绍其使用过程 Hadoop已经实现了RPC框架,不用我们自己写,不过需要我们注意几点:1.发布服务端和客户端必须包名相同 1.服 ...

  8. redis源码之压缩列表ziplist

    压缩列表ziplist1.简介连续,无序的数据结构.压缩列表是 Redis 为了节约内存而开发的, 由一系列特殊编码的连续内存块组成的顺序型(sequential)数据结构. 2.组成 属性 类型 长 ...

  9. centos 7 lvs 负载均衡搭建部署

    环境: 在vm里开三个虚拟机 负载调度器:10.0.3.102 真实服务器1:10.0.3.103 真实服务器2:10.0.3.104 虚拟ip: 10.0.3.99 (用来飘移) 负载调度器上 if ...

  10. linux 文件管理操作入门

    mkdir -p /root/kali/bp/shell  一路创建文件夹直到生成文件夹shell,中间没有kali文件夹的话也会自动创建生成 tar解压缩 范例一:将整个 /etc 目录下的文件全部 ...