分类 语文专科 数学专科 英语专科 历史地理 物化其它

Linux中重定向命令行的总结

 

  1. 标准输入的控制

    语法:命令< 文件将文件做为命令的输入。

    例如:

    mail -s “mail test” test@gzu521.com < file1 将文件file1 当做信件的内容,主

    题名称为mail test,送给收信人。

    2. 标准输出的控制

    语法:命令> 文件将命令的执行结果送至指定的文件中。

    例如:

    ls -l > list 将执行“ls -l” 命令的结果写入文件list 中。

    语法:命令>! 文件将命令的执行结果送至指定的文件中,若文件已经存在,则覆盖。

    例如:

    ls -lg >! list 将执行“ls - lg” 命令的结果覆盖写入文件list 中。

    语法:命令>& 文件将命令执行时屏幕上所产生的任何信息写入指定的文件中。

    例如:

    cc file1.c >& error 将编译file1.c 文件时所产生的任何信息写入文件error 中。

    语法:命令》 文件将命令执行的结果附加到指定的文件中。

    例如:

    ls - lag 》 list 将执行“ls - lag” 命令的结果附加到文件list 中。

    语法:命令》& 文件将命令执行时屏幕上所产生的任何信息附加到指定的文件中。

    例如:

    cc file2.c 》& error 将编译file2.c 文件时屏幕所产生的任何信息附加到文件error 中。

    关于输入、输出和错误输出

    在字符终端环境中,标准输入/标准输出的概念很好理解。输入即指对一个应用程序或命令的输入,无论是从键盘输入还是从别的文件输入;输出即指应用程序或命令产生的一些信息;与 Windows 系统下不同的是,Linux 系统下还有一个标准错误输出的概念,这个概念主要是为程序调试和系统维护目的而设置的,错误输出于标准输出分开可以让一些高级的错误信息不干扰正常的输出信息,从而方便一般用户的使用。

    在 Linux 系统中:标准输入(stdin)默认为键盘输入;标准输出(stdout)默认为屏幕输出;标准错误输出(stderr)默认也是输出到屏幕(上面的 std 表示 standard)。在 BASH 中使用这些概念时一般将标准输出表示为 1,将标准错误输出表示为 2。下面我们举例来说明如何使用他们,特别是标准输出和标准错误输出。

    输入、输出及标准错误输出主要用于 I/O 的重定向,就是说需要改变他们的默认设置。先看这个例子:

    $ ls > ls_result

    $ ls -l 》 ls_result

    上面这两个命令分别将 ls 命令的结果输出重定向到 ls_result 文件中和追加到 ls_result 文件中,而不是输出到屏幕上。">"就是输出(标准输出和标准错误输出)重定向的代表符号,连续两个 ">" 符号,即 "》" 则表示不清除原来的而追加输出。下面再来看一个稍微复杂的例子:

    $ find /home -name lost* 2> err_result

    这个命令在 ">" 符号之前多了一个 "2","2>" 表示将标准错误输出重定向。由于 /home 目录下有些目录由于权限限制不能访问,因此会产生一些标准错误输出被存放在 err_result 文件中。大家可以设想一下 find /home -name lost* 2》err_result 命令会产生什么结果?

    如果直接执行 find /home -name lost* > all_result ,其结果是只有标准输出被存入 all_result 文件中,要想让标准错误输出和标准输入一样都被存入到文件中,那该怎么办呢?看下面这个例子:

    $ find /home -name lost* > all_result 2>& 1

    上面这个例子中将首先将标准错误输出也重定向到标准输出中,再将标准输出重定向到 all_result 这个文件中。这样我们就可以将所有的输出都存储到文件中了。为实现上述功能,还有一种简便的写法如下:

    $ find /home -name lost* >& all_result

    如果那些出错信息并不重要,下面这个命令可以让你避开众多无用出错信息的干扰:

    $ find /home -name lost* 2> /dev/null

    同学们回去后还可以再试验一下如下几种重定向方式,看看会出什么结果,为什么?

    $ find /home -name lost* > all_result 1>& 2

    $ find /home -name lost* 2> all_result 1>& 2

    $ find /home -name lost* 2>& 1 > all_result

    另外一个非常有用的重定向操作符是 "-",请看下面这个例子:

    $ (cd /source/directory && tar cf - . ) | (cd /dest/directory && tar xvfp -)

    该命令表示把 /source/directory 目录下的所有文件通过压缩和解压,快速的全部移动到 /dest/directory 目录下去,这个命令在 /source/directory 和 /dest/directory 不处在同一个文件系统下时将显示出特别的优势。

    下面还几种不常见的用法:

    n<&- 表示将 n 号输入关闭

    <&- 表示关闭标准输入(键盘)

    n>&- 表示将 n 号输出关闭

    >&- 表示将标准输出关闭

 


   >>学课在线网课试听.报名        >>学课在线智能题库.模拟做题       >>直播课程       >>录播课程

课程名称
课程免费试听
课程名称
课程免费试听
课程名称
课程免费试听
初级会计师

一级建造师

执业药师

中级会计师

二级建造师

护士资格证

注册会计师

一级造价工程师

健康管理师

经济师考试

监理工程师

考研辅导课

银行从业

安全工程师

自考课程

基金从业

一级消防工程师

心理咨询师

企业人力资源管理师

法律职业资格考试

公共营养师

社会工作者

消防设施操作员

保育员

教师资格证

成人高考

育婴师

公务员培训

文职培训

英语四六级

计算机软考
养老护理员
税务师培训

房产经纪人
咨询工程师

其它课程>>



重要提醒!!内容中联系方式并非本站联系方式,报名咨询的学员请与下面最新联系方式联系我们咨询报名-以免损失!
>>长期招聘兼职招生代理人员,项目合作,团报优惠咨询,有意者请联系我们 >>咨询:13312524700(可加微信)。

昆明学历中心:◆咨询电话:0871-65385921、13312528471 赖老师、钱老师(微信报名:17787865775)点击这里给我发消息


云南地州中心:◆咨询电话:0871-65385921、17787865775 冯老师、 王老师(微信报名:17787865775)点击这里给我发消息


总部报名地址: ◆昆明市-五华区教场东路莲花财富中心10楼;网课试听:ke.xuekaocn.cn   点击这里立即咨询我们



地州分校:   大理分校   丽江分校   迪庆分校   怒江分校   红河分校   临沧分校   玉溪分校   文山分校   保山分校   德宏分校   昭通分校   普洱分校   版纳分校 【各地州学员请加老师微信咨询报名,电话(微信):133-1252-4700】;2021年云南省成人高考>>立即报名



职业技能考证:心理咨询师、健康管理师、茶艺师等更多>◆咨询电话:133 1252 4700(微信)点击这里咨询我们  

公考培训咨询:◆国考云南省考公务员/事业单位面授培训,咨询电话:133 1252 4700 (微信)点击这里立即咨询我们






温馨提示:因考试政策、内容不断变化与调整,学课在线网提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

免责声明:以上内容仅代表原创者观点,其内容未经本站证实,学课在线网对以上内容的真实性、完整性不作任何保证或承诺,转载目的在于传递更多信息,由此产生的后果与学课在线网无关;如以上转载内容不慎侵犯了您的权益,请联系我们QQ:1536696595,我们将会及时处理。




网友评论