一、文件描述符

Linux启动后,会默认打开3个文件描述符,分别是:标准输入standard input 0;正确输出standard output 1;错误输出:error output 2

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

二、> ,>>

输出重定向:表示把将输出重定向到屏幕或者设备或者文件;其中, >> 表示追加新信息到文件

关闭正确输出和错误输出:ls test.txt test.txt1 1>&- 2>&-
&代表所有输出:ls t.txt t.txt1 &>te.txt
&[-,1,2] 分别表示 关闭对应的标识,正确输出,错误输出

三、<,<<

输入重定向

从文件test.txt获取输入给cat,然后cat输入重定向给text1.txt:cat > text1.txt < test.txt

<< 表示接受一个输入结束的标识,当输入这个标识时结束输入:

cat > t.txt << eof
> q
> a
> z
> eof
# 当控制台输入eof后,结束输入

四、exec绑定重定向

绑定一个新的文件描述符6,并且绑定标准输出(相当于给标准输出保存一个临时copy)

ls /proc/self/fd
0  1  2  3
exec 6>&1
ls /proc/self/fd
0  1  2  3  6
#把标准输出绑定回来:
exec 1>&6
ls /proc/self/fd
0  1  2  3  6
#关闭自定义的文件描述符
exec 6>&-
ls /proc/self/fd
0  1  2  3

⚠️注意:如果直接把标准输出绑定到文件,那么问题就是,再也变不回来了

Shell中的<,<<,>,>>介绍相关推荐

  1. Shell中alias介绍

    Shell alias:给命令创建别名 alisa 用来给命令创建一个别名.若直接输入该命令且不带任何参数,则列出当前 Shell 进程中使用了哪些别名.现在你应该能理解类似ll这样的命令为什么与ls ...

  2. linux下变量名长度,Linux中shell的变量介绍

    Linux中shell的变量介绍 发布时间:2020-06-24 16:20:39 来源:亿速云 阅读:112 作者:元一 这期内容当中的小编将会给大家带来有关Linux中shell的变量介绍,以专业 ...

  3. shell中四大循环介绍及使用

    1.for循环结构语法及实例 1.1.for循环结构语法1 for 变量名 in 变量取值列表 do     指令---. done 提示:此结构中"in 变量取值列表"可省略,省 ...

  4. shell中expr的使用介绍

    在Linux shell命令中expr虽然不是很起眼,但是它的作用是非常大的!到目前为止,我个人看来最大的作用就是两个--四则运算和字符串的操作. 先说四则运算,在Shell中四则运算不能简简单单的加 ...

  5. linux中比较大小的符号,linux shell中的比较符号与特殊符号介绍

    shell字符串比较.判断是否为数字 二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. 整数比较 -eq 等于,如:if [ "$a" -eq "$b&qu ...

  6. Linux从mysql中读取数据_linux shell中读写操作mysql数据库

    本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为 ...

  7. shell中的IFS

    一.IFS 介绍 Shell 脚本中有个变量叫 IFS(Internal Field Seprator) ,内部域分隔符.完整定义是The shell uses the value stored in ...

  8. shell中#*,##*,#*,##*,% *,%% *的含义及用法

    介绍下Shell中的${}.##和%%使用范例,本文给出了不同情况下得到的结果. 假设定义了一个变量为: 代码如下: file=/dir1/dir2/dir3/my.file.txt 可以用${ }分 ...

  9. Shell中的${}、##和%%使用范例

    转自:https://zhidao.baidu.com/question/137266220.html 介绍下Shell中的${}.##和%%使用范例,本文给出了不同情况下得到的结果. 假设定义了一个 ...

  10. shell中join链接多个域_Linux Shell中使用awk完成两个文件的关联Join

    Shell中的awk命令是非常强大的,有很多书籍专门介绍awk的.本文介绍的只是其中很小的一个点,使用awk命令完成两个文件的关联join. 先看看awk中的两个自身变量,NR和FNR. awk可以指 ...

最新文章

  1. SharePoint 2016 工作流报错“没有适用于此应用程序的地址”
  2. Java新手,强烈不建议你用 a.equals(b) 判断对象相等!
  3. [转]在ubuntu上安装chrome浏览器
  4. 根据表名如何查找使用它的程序名、接口等
  5. 容器源码分析之LinkedList(三)
  6. roipool and roialign difference
  7. JS_eventBind
  8. 推荐系统-Task02数据库基本使用
  9. retorfit converter使用说明
  10. golang 猜数字小游戏
  11. 安装增强功能,弹出“未能加载虚拟光盘 ...\VBoxGuestAdditions.iso 到虚拟电脑 CentOS.“
  12. Android视频播放器没声,Windows/Android/iOS全平台支持的视频播放器EasyPlayerPro,iOS版播放无音频问题如何解决?...
  13. python基础篇{数据类型}
  14. 利用小米数据库查找手机归属地
  15. 为什么要使用ELK-----EKL的原理 ---以及ELK的配置 详细! 小白都能懂
  16. 这4款风格各异的电脑软件,免费又实用,后悔没早点知道
  17. root过的安卓机器,安卓机怎样root
  18. 通过cmd窗口导入导出mysql数据库
  19. Xilinx Ultrascale+ 使用PRC向ICAP E3核输入码流重构时无反应
  20. 定时任务@Scheduled(cron = “* * * * * *“) cron表达式

热门文章

  1. 科学计算机怎么直接显示10的多少次方,3的几次方等于10 怎么算 log及科学计算器里的其它 函数怎么正确输入...
  2. 深度学习梯度下降优化算法(AdaGrad、RMSProp、AdaDelta、Adam)(MXNet)
  3. 无盘主机服务器,无盘主机服务器视频
  4. java计算机毕业设计民间应急救援队管理源代码+数据库+系统+lw文档
  5. IT朋友,有福啦! 精心收集的深圳餐馆大全(带电话,地址,部分还有店面图片)
  6. vuejs java_[Java教程]Vuejs的一些总结
  7. Python: 参数服务器 argparse + 动态导入模块
  8. 关于熵增的一点个人看法
  9. jredis cluster客户端使用
  10. 中日完全相同的四字成语