一、标准I/O                                                           

标准输入:也可以叫STDIN,用0来标识,通常是键盘

标准输出:也可以叫STDOUT,用1来标识,通常是显示器

标准错误输出:STDERR,用2来标识,通常是显示器

二、I/0重定向                                                        

I/O重定向是指改变数据的输入或输出来源。

1、输入重定向:<

[root@hao ~]# tr 'a-z' 'A-Z' < /etc/fstab

#
# /ETC/FSTAB
# CREATED BY ANACONDA ON SAT JUL ::
#
...

2、在此处生成文档:<< 通常和EOF或END一起使用

[root@hao ~]# cat << END
> the first line
> second
> end
> END
the first line
second
end
[root@hao ~]# cat >> /tmp/myfile.txt << EOF
> the first line
> second
> EOF
[root@hao ~]# cat /tmp/myfile.txt
the first line
second

3、输出重定向:> 覆盖输出。

  会覆盖目标文件中的内容,容易发生错误。可以使用set -C禁止覆盖已经存在的文件。同理set +C则可以关闭上述功能。默认情况下是可以覆盖,当然在set -C 关闭覆盖输出功能情况下,如果要强制覆盖输出,则可以使用>|来强制覆盖输出。

set -C

4、输出重定向:>>追加输出

[root@hao tmp]# ls /var
account crash db games lib lock mail opt run tmp yp
cache cvs empty gdm local log nis preserve spool www
[root@hao tmp]# ls /var >/tmp/var.out
[root@hao tmp]# cat /tmp/var.out
account
cache
...

5、重定向错误输出:2>,如果不是错误输出,则2>相当于>

6、追加方式重定向错误输出:2>>

[root@hao ~]# ls /varr > /tmp/var2.out
ls: cannot access /varr: No such file or directory
[root@hao ~]# ls /varr > /tmp/var2.out
[root@hao ~]# cat /tmp/var2.out
ls: cannot access /varr: No such file or directory
[root@hao ~]# ls /var > /tmp/var2.out
account crash db games lib lock mail opt run tmp yp
cache cvs empty gdm local log nis preserve spool www

7、若为标准输出,则输出到某一个文件,若为错误输出,则重定向到另一个文件

[root@hao ~]# ls /var > /tmp/var2.out >/tmp/err.out
[root@hao ~]# cat /tmp/var2.out
account
cache
crash
...
[root@hao ~]# cat /tmp/err.out

8、重定向标准输出和错误输出至同一个文件:&>

[root@hao ~]# ls /var# &> /tmp/var3.out
[root@hao ~]# cat /tmp/var3.out
ls: cannot access /var#: No such file or directory
[root@hao ~]# ls /var &> /tmp/var3.out
[root@hao ~]# cat /tmp/var3.out
account
cache
...

三、管道                                                                  

管道:把前一个命令的输出,作为后一个命令的输入,以此类推至多个命令。

[root@hao ~]# echo 'hello world' | tr 'a-z' 'A-Z'
HELLO WORLD
[root@hao ~]# cut -d: -f1 /etc/passwd |sort
abrt
adm
apache
...
[root@hao ~]# cut -d: -f3 /etc/passwd |sort -n ...
[root@hao ~]# cut -d: -f1 /etc/passwd |sort|tr 'a-z' 'A-Z'
ABRT
ADM
APACHE
AVAHI-AUTOIPD
BIN
...

四、tee命令,输出到文件中,且输出到屏幕上                

[root@hao ~]# echo 'hello world' | tee /tmp/hello.out
hello world
[root@hao ~]# cat /tmp/hello.out
hello world

五、练习                                                                  

1、统计/usr/bin/目录下的文件个数

[root@hao ~]# ls /usr/bin | wc -l

2、取出当前系统上所有用户的shell,要求每种shell只显示以此,并且按顺序显示

[root@hao ~]# cut -d: -f7 /etc/passwd|sort -u
/bin/bash
/bin/sync
/bin/tcsh
/sbin/halt
/sbin/nologin
/sbin/shutdown

3、显示/var/log目录下每个文件的内容类型

[root@hao ~]# file /var/log/*
/var/log/anaconda.ifcfg.log: ASCII text
/var/log/anaconda.log: UTF-8 Unicode English text
/var/log/anaconda.program.log: ASCII English text, with very long lines, with overstriking
/var/log/anaconda.storage.log: UTF-8 Unicode C++ program text, with very long lines
...

4、取出/etc/inittab文件的第六行

[root@hao log]# head - /etc/inittab |tail -
#

5、取出/etc/passwd文件中倒数第9个用户的用户名和shell,显示到屏幕上并将其保存至/tmp/users文件中

[root@hao log]# tail - /etc/passwd |head -|cut -d: -f1,|tee /tmp/users
tcpdump:/sbin/nologin

6、显示/etc目录下所有一pa开头的文件,并统计其个数

[root@hao log]# ls -d /etc/pa*|wc -l

7、不使用文本编辑器,将alias cls=clear 一行内容添加至当前用户的.bashrc文件中。

[root@hao log]# echo "alias cls=clear" >> ~/.bashrc

《鸟哥的Linux私房菜》学习笔记(6)——管道及IO重定向的更多相关文章

  1. 鸟哥的linux私房菜学习笔记 __ 命令与文件的搜寻

    连续输入两次[tab]按键就能够知道使用者有多少命令可以下达.那你知不知道这些命令的完整档名放在哪里?举例来说,ls 这个常用的命令放在哪里呢? 就透过 which 或 type 来找寻吧! 范例一: ...

  2. 鸟哥的Linux私房菜学习笔记——文件权限与目录配置

    Linux的文件权限和目录配置 在linux中的每个用户必需属于一个组,不能独立于组外.在linux中每个文件有所有者.所在组.其它组的概念. (1)所有者 一般为文件的创建者,谁创建了该文件,就是天 ...

  3. 鸟哥的Linux私房菜学习笔记(1)

    2014/10/29 1.档案的权限管理分为三个部分: 拥有者.群组.其他 2.ls -al 命令可以看到档案的详细信息 3.档案的属性中由十个部分构成 第一个部分是档案类型 -代表档案.d代表文件夹 ...

  4. 【鸟哥的Linux私房菜】笔记1

    Linux是什么 从操作系统与cpu架构关系到linux  Richard Mathew Stallman GPL 关于GNU计划 Linux的发展 Linux的核心版本 Linux的特色 Linux ...

  5. 鸟哥的linux私房菜学习-(一)优缺点分析以及主机规划与磁盘分区

    一.linux的优缺点 那干嘛要使用Linux做为我们的主机系统呢?这是因为Linux有底下这些优点: 稳定的系统:Linux本来就是基于Unix概念而发展出来的操作系统,因此,Linux具有与Uni ...

  6. 【鸟哥的Linux私房菜】笔记2

    Linux的应用 学习资源整理 安装记录 >< 1.Linux的应用: 网络服务器 数据库 学术机构的高效运算任务 嵌入式系统 ... 2.挂载与磁盘分区 学习资源整理 学习 1.书上的网 ...

  7. 【鸟哥的Linux私房菜】笔记3

    正确地开机 最好不要使用root账号登陆!GNOME图形界面 View items as a list X WindowShell 文本交互界面bash是Shell的名称,Linux的默认壳程序就是b ...

  8. 《鸟哥的Linux私房菜》笔记——02. 关于Linux

    Unix 历史 1969年以前:伟大的梦想--Bell, MIT 与 GE 的「Multics」系统 1969年:Ken Thompson 的小型 file server system 1973年:U ...

  9. 《鸟哥的Linux私房菜》笔记——03. 磁盘分区

    Everything is a file. 常见硬件对应于 Linux 下的文件(/dev目录下) 装置 装置在Linux内的档名 SCSI/SATA/U盘硬盘机 /dev/sd[a-p] U盘 /d ...

  10. 鸟哥的linux私房菜学习

    cat /etc/shells 系统拥有的shellcat /etc/passwd 记录用户使用的shell按两次 tab 键可显示所有可执行的指令alias 查看所有命令的别名alias lm='l ...

随机推荐

  1. C#与JAVA学习感悟

    C#与JAVA学习感悟 学完C#与JAVA,感觉收获良多.C#与JAVA这两门语言相似度很高(了解它们早期历史的人可能知道为什么),也许很多人在学习JAVA(或C#)时会同时学习C#(或JAVA),因 ...

  2. sql 删除字段 出错

    1. 删除字段:   ALTER TABLE TALE_NAME DROP COLUMN nn;   2.报错: 消息 5074,级别 16,状态 1,第 1 行对象'DF__WorkOrder__I ...

  3. ElasticSearch:华为云搜索CSS 之POC操作记录

    2019/03/06 09:00 ES文档官方:https://support.huaweicloud.com/usermanual-es/es_01_0024.html 华为云区域:华北北京1 ES ...

  4. java 基础 04 循环结构 一维数组

    内容: (1)循环结构 (2)一维数组 1.循环结构 1.1for循环 (1)语法格式 for(初始化表达式1;条件表达式2;修改初始化表达式3){ 循环体; } (2)执行流程 执行初始化表达式 = ...

  5. It does not do to dwell on dreams and forget to live.

    It does not do to dwell on dreams and forget to live.不要过于依赖梦想,却忘了生活.

  6. GoDaddy虚拟主机创建FTP 图文流程

    有了ftp各种操作就方便多了,也不用通过网页的控制面板来修改代码了 狗爹linux虚拟主机创建FTP 1. 通过虚拟主机管理界面,进入cPanel控制面板 2. 进入FTP管理页面 3. 填写账号.密 ...

  7. https 双向验证

    服务器配置 服务器秘钥   服务器公钥证书  ,客户端公钥证书 客户端配置  客户端秘钥+密码 服务器公钥证书 目前android验证ok,pc浏览器添加客户端秘钥证书  ,访问还是失败,待继续查找资 ...

  8. SQLserver2005描述对数据的调用

    SQL Server2005 采用了下面的4部分结构 服务器名称.数据库名称.架构名称.数据对象名称

  9. nbtscan ip地址

    查找网络(192.168.1.0)中netbios名字信息,对应命令如下: nbtscan 192.168.1.1-254 找到有netbios名字后,可以使用如下的命令查看这些主机运行的服务. nb ...

  10. Nagios-4.1.1 (OpenLogic CentOS 7.2)

    平台: CentOS 类型: 虚拟机镜像 软件包: apache2.4.6 nagios 4.1.1 php5.4.16 devops monitoring nagios open-source ph ...