`
王之子
  • 浏览: 110428 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

I/O 重新导向及管道

阅读更多

1. I/O 重新导向

  • 输出导向
# ls -al /etc > /test1/ext.txt     -> 将 /etc 目录下的文件数据结果存储到 /test1/etc.txt 文件中
 
 
# cat > /test1/editor.txt   -> 成为简单的文字编辑器
 
I Love Linux !! -> 按 Enter 键
                -> 按 Ctrl+c 就可结束文件编辑
 
  • 附加输出导向

# cat >> /test1/origin.txt -> 可以在键盘输入内容,附加在源文件之后

  • 输入导向

    输出导向的概念和输入导向刚好相反。前者是将命令或程序的执行结果通过屏幕或文件来输出,但是后者却是将键盘或文件提供命令来执行。

# cat file1

The content of file1 !


# cat < file1


The content of file1 !


    在上述的范例中,二者的输出结果完全相同,但是在执行的程序上却完全不同。在"cat file1"命令中,cat 的标准输入文件为 file1 。因此 cat 在收到输入文件后会执行它的功能而将 file1 的内容显示到屏幕。但是在 "cat < file1"命令中,cat 并没有任何的标准输入文件,而是利用“输入重导(<)”的功能将 file1 传给 cat 当成标准输入文件,最后才能将 file1 的内容显示到屏幕。
   
   在可以接受参数的命令上,输入重导并没有很大的用处,但是在无法接受参数的命令上就相当有用,例如 "patch"

# patch patch-2.4.3-2

# patch < patch-2.4.3-2

   因为patch命令无法接受参数,所以在上述的第一行命令输入后,patch 命令会将 
patch-2.4.3-2 视为参数,因为它无法接受参数,所以画面不会有任何的反应,若是利用输入重导 (<) 来将 patch-2.4.3-2 文件输入给 patch ,则系统就会开始执行源代码更新的操作。

  • 附加输入导向(<< 字符串)

    附加输入导向可以自行定义一个字符串,例如 quit ,系统在收到此字符串前,会持续地将数据输入文件,这个功能经常使用在电子邮件系统中。以下是一个传送电子邮件的范例,假设我们定义的字符串是"Finsh",可以继续输入邮件内容。当输入"Finsh"字符串后,系统便会结束邮件的编辑并且寄出。

# mail 751446682@qq.com << Finsh

>The mail is from sherlock

>Finsh -> 结束邮件的编辑并且寄出.

  • 错误输出导向(&>)

   错误输出导向不论是正常或错误的执行,都不会将信息结果显示在屏幕上,而是直接写入文件中。一般的程序设计师都会习惯将程序测试和出错时所有信息(正常和错误)记录在文件中,以利日后修改时参考。

# ls /user1 > /test1/error.txt

ls: /usr1 : No such file or directory -> 错误信息显示在屏幕

# cat /test1/error.txt -> 错误信息没有记录在文件中

# ls /usr1 &> /test1/error.txt -> 没有出现错误信息

# cat /test1/error.txt -> 错误记录在文件中

2.管道

   

   Linux 系统中的“管道”最主要的功能是将其他程序的输出结果直接导向到另一个程序来当成输入数据。

   举例来说,/etc 目录下的文件有很多。若是使用 "ls al"命令,它们并没有办法在同一页中显示,若是我们要浏览第一页中的数据,可能不是很方便,此时可以将"ls -al"命令产生的结果利用管道 (|) 直接导向至 "less" 命令。然后就可以使用上下键来逐行浏览输出结果。

# ls -al /etc | less

# ls -l /etc | grep mysql  ->在 etc 目录中搜索包含 mysql 关键字的文件

分享到:
评论

相关推荐

    彻底明白 Java 语言中的IO系统

    - **PushbackInputStream**: 允许将数据推回到输入流中,以便重新读取。 - **PushbackReader**: 字符流版本的`PushbackInputStream`。 这些FilterInputStream及其相应的输出流(如`DataOutputStream`、`...

    Getting started with new io

    描述:本文将全面介绍Java中的新输入输出(NIO),一个自JDK 1.4版本引入的重要库,旨在提供高速、块导向的输入输出处理能力,相较于传统的Java I/O包,NIO通过数据缓冲和块处理技术充分利用了底层优化,无需依赖...

    彻底明白 Java 语言中的IO系统 .pdf

    1. **以字节为导向的流(Byte-Oriented Streams)**:这类流以字节为单位处理数据,适用于任何形式的数据传输。包括`InputStream`和`OutputStream`两个基类,以及它们的多种子类,如`ByteArrayInputStream`、`...

    Java IO

    3. **装饰器I/O类**:如 `BufferedInputStream`、`BufferedOutputStream`、`DataInputStream` 和 `DataOutputStream` 等,它们通常用来增强基础流的功能,比如添加缓存或数据格式化的能力。 ### Java IO的总体结构 ...

    redir的再实现

    "redir的再实现"是针对Windows操作系统的一个项目,旨在重新构建redir功能,以便在命令行环境中(CMD)能够完全模拟各种内置命令。redir通常用于重定向输入和输出流,使得程序的输出可以被导向到文件或者从文件读取...

    Oracle 管道 解决Exp/Imp大量数据处理问题

    首先,管道是一种在内存中创建的伪文件,用于快速的I/O操作。它具有先进先出(FIFO)的缓冲区机制,允许一个进程写入管道,另一个进程读取数据。通过`mknod`命令可以创建管道,然后可以将exp的输出直接导向管道,...

    HOOPS Visualize(HPS)培训资料PDF

    - **文件I/O**:提供了高级API,将HOOPS Exchange、HOOPS Publish和Parasolid建模内核连接到HOOPS Visualize,简化了使用这些组件构建应用程序的过程。 **其他组件**如**操作符**,包括选择与高亮、相机和对象操纵...

    重定向和管道、信号1

    在Linux操作系统中,重定向和管道是两种非常重要的I/O操作,它们允许用户或程序将标准输入、输出和错误流导向不同的位置,如文件、设备或者另一个程序的输入。同时,信号是进程间通信的一种机制,用于通知进程发生了...

    loader-fipe

    由于没有提供具体的项目描述或详细信息,我将基于“loader”和“fipe”的概念来探讨一些Java中与加载器和文件I/O相关的知识点。 1. **Java ClassLoader**: - Java的ClassLoader是Java运行时环境的一部分,负责...

    2021年化工自动化控制仪表考试题及化工自动化控制仪表最新解析 .docx

    15. CENTUM CS3000系统:I/O子系统分为现场网络I/O(FIO)和远程I/O(RIO)。 16. 不同PLC编程语言:不同制造商的PLC编程语言可能互不兼容。 17. 热电阻温度计:温度变化通过热电阻转换为电阻值变化进行测量。 18...

    java课程代码

    【Java课程代码】这个主题涵盖了Java编程语言中的多个核心概念,包括网络编程、对象导向设计、输入输出(I/O)处理、国际化(I18N)支持以及内存管理和多线程。下面将对这些关键知识点进行详细的阐述。 1. **Java_...

    LINUX与UNIX SHELL编程指南

    1. I/O重定向:使用"(输入重定向)和"&gt;"(输出重定向)将命令的标准输入或输出导向文件。 2. 管道:"|"操作符连接两个命令,使前一个命令的输出成为后一个命令的输入,实现命令间的数据流传递。 五、正则表达式 在...

    perl5.8.8.8

    8. I/O流:Perl 5.8.8对文件和网络I/O进行了优化,引入了IO::Handle类,支持管道、套接字和其他类型的流操作。 9. 迭代器和数据结构:Perl 5.8.8增加了对迭代器的支持,以及改进的数据结构如数组和哈希,使数据处理...

    shell_lab

    5. **输入/输出重定向**:使用`和`&gt;`操作符将输入或输出导向文件,或者使用`&&gt;`将标准输出和错误输出合并。 6. **管道**:通过`|`操作符连接命令,将一个命令的输出作为另一个命令的输入。 7. **脚本执行权限**:...

    PycookBook进阶书籍

    文件与I/O章节着重于文件的读写操作,包括文本数据和二进制数据的读写、文件不存在时的写入操作、字符串的输入输出操作、压缩文件的处理、文件的迭代读取、内存映射的二进制文件、文件路径名操作以及文件存在性的...

    Learning Prel (中文第五版 part_2 )

    I/O重定向、管道和文件句柄的概念也是Perl编程中不可或缺的部分。 5. **函数和模块**:Perl拥有丰富的内置函数,如`print`、`chomp`、`sort`等,同时支持自定义函数。了解CPAN(Comprehensive Perl Archive Network...

    A.4 WCF和HTTP文件传输练习

    你还会了解到如何处理文件I/O操作,以及如何在C#中实现异步文件传输以提高用户体验。此外,通过实验4的文件,你将看到具体的代码实现,这将帮助你更好地理解和掌握WCF与HTTP文件传输的概念和技术。 总之,这个“A.4...

    UNIX环境高级编程

    2. **文件系统和I/O操作**:UNIX系统基于文件模型,所有的设备都可视为文件。文件操作涉及打开、关闭、读写、 Seek等函数,同时也会介绍文件权限、硬链接和软链接等概念。此外,I/O流、标准输入/输出和重定向也是...

Global site tag (gtag.js) - Google Analytics