Linux Shell 重定向与管道【转帖】】的更多相关文章

by 程默 在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作. 用户可以自定义文件描述符范围是:3-num,这个最大数字,跟用户的:ulimit –n 定义数字有关系,不能超过最大值. linux启动后,会默认打开3个文件描述符,分别是:标准输入standard input 0,正确输出standard output 1,错误输出:erro…
在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作. 用户可以自定义文件描述符范围是:3-num,这个最大数字,跟用户的:ulimit –n 定义数字有关系,不能超过最大值. linux启动后,会默认打开3个文件描述符,分别是:标准输入standard input 0,正确输出standard output 1,错误输出:error outp…
(1).输出重定向 定义:将命令的标准输出结果保存到指定的文件中,而不是直接显示在显示器上. 输出重定向使用>和>>操作符. 语法:cmd > filename,表示将标准输出写入文件,如果此文件已存在,将覆盖原文件的内容.如果不存在,则新建该文件. cmd >> filename,表示将标准输出追加到文件,如果文件不存在,则新建该文件. 实例1:查看当前主机的CPU类型保存到cpu.txt文件中,而不是直接显示到屏幕上. //如果想要直接查看CPU信息 [xf@xue…
1重定向1.1      重定向符号 >               输出重定向到一个文件或设备 覆盖原来的文件 >!              输出重定向到一个文件或设备 强制覆盖原来的文件 >>             输出重定向到一个文件或设备 追加原来的文件 <               输入重定向到一个程序 1.2标准错误重定向符号 2>             将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件  b-shell 2>> …
数据流重定向简单来说就是把原本应该输出到某处(比如说屏幕)的数据,重定向其输出目的地,到其他的地方(比如文件). linux中的输入与输出: 标准输入(stdin):默认从键盘输入 标准输出(stdout):执行的正常结果信息,默认输出到屏幕 标准错误输出(stderr):执行的错误信息,默认输出到屏幕 那就让我们来体验下这三个鬼东西吧: [fuwh@localhost 08:32 ~]$ ll <-- 标准输出,默认结果输出到屏幕 总用量 24 drwxrwxr-x. 2 fuwh fuwh…
计算机组成部分: 由io . 控制器.计算器.存储器组成 IO: input output 计算机里面通过终端窗口实现输入和输出,键盘鼠标屏幕这些只是手段,真正完成输入输出的是终端窗口 标准输入.出.错误 在linux中,每打开一个文件,系统会分配一个唯一的数字(文件描述符 --fd)用来代表目前打开的文件,其中有三个数字预留给打开的文件使用(0 1 2 ) 标准输入 -- stdin --- 0 --- 对应/dev/stdin设备 标准输出 -- stdout --- 1 --- 对应/de…
重定向 redirection 每个命令有输入源和输出目的地,默认行为,是标准输入和标准输出.大多数情况,标准输入是键盘,标准输出是屏幕.可以为单独的操作修改输入和输出,这就是重定向.重定向可以使某个命令从源文件输入而不是键盘,或输出到显示器以外的地方(比如存储到文件). 使用<和>来定义输入和输出源.使用>>追加到文件的末尾. sort<terms>terms-alpha 这个命令将terms文件中的条目排序,然后输出到terms-alpha文件. BASH输出重定向…
> 正确结果重定向 2> 错误结果重定向 &> 正确和错误全部重定向 >> 追加,其它同> 标准输出实际上就是显示器,比如我们使用cat命令打开一个文件,文件内容就会输出到屏幕上. $ cat passwd > a.txt $ 重写向之后,屏幕上不再有输出,全部都输出到a.txt $ cat a.txt root:x:::root:/root:/bin/bash daemon:x:::daemon:/usr/sbin:/usr/sbin/nologin b…
最近在将ksh转成bash运行的时候出现了问题.代码如下: echo $1 | sed 's/\..*$/''/' | read FILE_NAME 当使用ksh执行的时候没有问题,FILE_NAME能获取到正确的值.但当使用bash执行时,FILE_NAME值为空. 找了半天也不知道什么原因,最后找到了一种解决方法.代码如下: read FILE_NAME <<< ` echo $1 | sed 's/\..*$/''/' ` 上面的代码有两点需要注意: ①使用了 <<&l…
写一个简单的 demo 示例 #include <stdio.h> int main() { fprintf(stdout, "stdout output\n"); fprintf(stderr, "stderr output\n"); ; } $gcc test.c -o test $./test > /dev/null stderr output $./test > /dev/null 2>&1 $ 对于重定向符号,可以这么…