shell 12输入输出重定向

shell输入/输出重定向

unix系统命令从终端接受输入并将产生的输出发送回终端。命令读取输入的地方,成为标准输入,默认是终端;命令的输出,为标准输出,默认也是终端。
  • command > file 将输出重定向到 file。
  • command < file 将输入重定向到 file。
  • command >> file 将输出以追加的方式重定向到 file。
  • n > file 将文件描述符为 n 的文件重定向到 file。
  • n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。
  • n >& m 将输出文件 m 和 n 合并。
  • n <& m 将输入文件 m 和 n 合并。
  • << tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入。

    注意:文件描述符 0是标准输入STDIN,1是标准输出STDOUT,2是标准错误STDERR

输出从重定向

*    command1 > file1,如top>text.txt 执行后,会将结果保存到text.txt文件,而非输出到终端。
*    command1 >> file1 ,不希望文件内存被覆盖,可以使用>>将command2的结果追加到file1文件

输入重定向

  • command1 < file1 从文件获取输入

    command1 < infile > outfile

    同时替换输入和输出,执行command1,从文件infile读取内容,然后将输入写入到outfile

    重定向深入讲解

  • 标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。
  • 标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据。
  • 标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。

    command > file 将标准输出重定向到file

    command < file 将标准输入重定向到file

    如果希望标准错误重定向到file,就 command 2 > file ,command 2 >> file

    如果希望将标准输出和标准错误合并后重定向到file,就command > file 2 > &1,command >> file 2 >&1

    Here Document

    Here Document 是 Shell 中的一种特殊的重定向方式,用来将输入重定向到一个交互式 Shell 脚本或程序。
    形式是:
#shell
command << delimiter
    document
delimiter

它的作用是将两个 delimiter 之间的内容(document) 作为输入传递给 command。

注意:

* 结尾的delimiter 一定要顶格写,前面不能有任何字符,后面也不能有任何字符,包括空格和 tab 缩进。

* 开始的delimiter前后的空格会被忽略掉。

#shell
#!/bin/bash
wc -l << EOF
    hello world
    hello java
    hello ruby
EOF

3

/dev/null文件

如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到 /dev/null:
command > /dev/null
/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。

如果希望屏蔽 stdout 和 stderr,可以这样写:

command > /dev/null 2>&1

&

command > file 2>&1

放在>后面的&,表示重定向的目标不是一个文件,而是一个文件描述符,2>1代表将标准错误重定向到文件描述符为1的文件

原文地址:https://www.cnblogs.com/csj2018/p/9602062.html

时间: 2024-08-01 08:30:48

shell 12输入输出重定向的相关文章

8.1 shell 介绍、8.2 命令历史、8.3 命令补全与别名、8.4 通配符、8.5 输入输出重定向

8.1 sehll 介绍 什么是shell shell 是一个命令解释器,提供用户和机器之间交互 支持特定的语法,比如逻辑判断,循环. 每个用户都可以有自己特定的shell. centos7 默认的shell 为bash( Bourne Agin shell ) 还有zsh ,ksh等 8.2 命令历史 /root/.bash_history ;命令历史放置文件 [[email protected] ~]# ls /root/.bash_history/root/.bash_history [[

8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向

8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向 # Linux shell 基础 # 8.1 shell 介绍 - 什么是shell 1. shell 是一个命令解释器,提供用户和机器之间的交互 2. 支持特定语法,比如逻辑判断.循环 3. 每个用户都可以有自己特定的shell 4. CentOS7 默认shell 为bash (Bourne Agin Shell) 5. 还有zsh.ksh等 ``` [[email protected]

[shell]shell输入输出重定向

Unix 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示.一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器. 一般情况下,每个 Unix/Linux 命令运行时都会打开三个文件: 标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据. 标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据. 标准错误文件(stderr):stderr的文件描述符为2,

Shell 环境中的输入输出重定向

Linux Shell 环境中的输入输出重定向,用符号<和>来表示.0.1和2分别表示标准输入.标准输出和标准错误. 1.重定向标准输出到文件: cat fo > foo.txt 2.重定向标准错误到文件 cat fo 2> foo.txt 3.重定向标准输出到标准错误 cat fo 1>&2 4.重定向标准错误到标准输出 cat fo 2>&1 5.重定向标准输出,标准错误到同一个文件 cat fo > fo.txt 2>&1或ca

8.1 shell介绍8.2 命令历史8.3 命令补全和别名8.4 通配符8.5 输入输出重定向

8.1 shell介绍 1. shell是一个命令解释器,提供用户和机器之前的交换 2. 每个用户都可以有自己特定的shell 3. CentOS7默认shell是bash(Bourne Agin Shell); shell还有zsh.ksh等 zsh.ksh这两种shell命令没有安装, 可以用yum list搜索下这两个命令的安装包: [[email protected] ~]# yum list |grep zsh [[email protected] ~]# yum list |grep

五周第三次课(1月10日) 8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向

五周第三次课(1月10日)8.1 shell介绍8.2 命令历史8.3 命令补全和别名8.4 通配符8.5 输入输出重定向 history命令: 用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件. 该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!执行指定序号的历史命令.例如,要执行第2个历史命令,则输入!2. 历史命令是被保存在内存中的,当退出或者登录shell时,会自动保存或读取.在内存中,历史命令仅能够存储1000条历史命

Linux centos7 shell 介绍、 命令历史、命令补全和别名、通配符、输入输出重定向

一.shell介绍 shell脚本是日常Linux系统管理工作中必不可少的,不会shell,就不是一个合格管理员. shell是系统跟计算机硬件交互使用的中间介质,一个系统工具.实际上在shell和计算机硬件之间还有一层--系统内核.如果吧计算机比作人的躯体,那系统内核就是人的大脑,至于shell,把它比做人的五官更贴切. 其实,用户直接面对的不是计算机硬件而是shell,用户把指令告诉shell,然后shell再传给系统内核,接着内核再去支配计算机硬件去执行各种操作. CentOS安装的she

shell介绍,命令历史,命令补全和别名,通配符 ,输入输出重定向

shell介绍 shell是一个命令解释器,提供用户和机器之间的交互 支持特定语法,比如逻辑判断,循环 每个用户都可以有自己特定的shell CentOS7默认shell为bash(Bourne Agin Shell) 还有zsh,ksh等 命令历史 history [[email protected] ~]# ls /root/.bash_history /root/.bash_history [[email protected] ~]# 最大存1000条. [[email protected

shell介绍、命令历史 、 命令补全和别名 、通配符、输入输出重定向

一.shell介绍二.命令历史历史命令存放路径 /root/.bash_history ,默认可以存放1000条命令#history //查看具体的历史命令[[email protected] ~]# echo $HISTSIZE //系统内置环境变量1000 #history -c //清空内存中命令历史,但是存放命令的文件不会被删除#vi /etc/profile // 修改HISTORY环境变量路径/etc/profile,可以吧HISTSIZE=1000改为5000[[email pro