《鸟哥的Linux私房菜》学习笔记(6)——管道及IO重定向
一、标准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重定向的更多相关文章
- 鸟哥的linux私房菜学习笔记 __ 命令与文件的搜寻
连续输入两次[tab]按键就能够知道使用者有多少命令可以下达.那你知不知道这些命令的完整档名放在哪里?举例来说,ls 这个常用的命令放在哪里呢? 就透过 which 或 type 来找寻吧! 范例一: ...
- 鸟哥的Linux私房菜学习笔记——文件权限与目录配置
Linux的文件权限和目录配置 在linux中的每个用户必需属于一个组,不能独立于组外.在linux中每个文件有所有者.所在组.其它组的概念. (1)所有者 一般为文件的创建者,谁创建了该文件,就是天 ...
- 鸟哥的Linux私房菜学习笔记(1)
2014/10/29 1.档案的权限管理分为三个部分: 拥有者.群组.其他 2.ls -al 命令可以看到档案的详细信息 3.档案的属性中由十个部分构成 第一个部分是档案类型 -代表档案.d代表文件夹 ...
- 【鸟哥的Linux私房菜】笔记1
Linux是什么 从操作系统与cpu架构关系到linux Richard Mathew Stallman GPL 关于GNU计划 Linux的发展 Linux的核心版本 Linux的特色 Linux ...
- 鸟哥的linux私房菜学习-(一)优缺点分析以及主机规划与磁盘分区
一.linux的优缺点 那干嘛要使用Linux做为我们的主机系统呢?这是因为Linux有底下这些优点: 稳定的系统:Linux本来就是基于Unix概念而发展出来的操作系统,因此,Linux具有与Uni ...
- 【鸟哥的Linux私房菜】笔记2
Linux的应用 学习资源整理 安装记录 >< 1.Linux的应用: 网络服务器 数据库 学术机构的高效运算任务 嵌入式系统 ... 2.挂载与磁盘分区 学习资源整理 学习 1.书上的网 ...
- 【鸟哥的Linux私房菜】笔记3
正确地开机 最好不要使用root账号登陆!GNOME图形界面 View items as a list X WindowShell 文本交互界面bash是Shell的名称,Linux的默认壳程序就是b ...
- 《鸟哥的Linux私房菜》笔记——02. 关于Linux
Unix 历史 1969年以前:伟大的梦想--Bell, MIT 与 GE 的「Multics」系统 1969年:Ken Thompson 的小型 file server system 1973年:U ...
- 《鸟哥的Linux私房菜》笔记——03. 磁盘分区
Everything is a file. 常见硬件对应于 Linux 下的文件(/dev目录下) 装置 装置在Linux内的档名 SCSI/SATA/U盘硬盘机 /dev/sd[a-p] U盘 /d ...
- 鸟哥的linux私房菜学习
cat /etc/shells 系统拥有的shellcat /etc/passwd 记录用户使用的shell按两次 tab 键可显示所有可执行的指令alias 查看所有命令的别名alias lm='l ...
随机推荐
- 《疯狂动物城》主题曲《TryEverything》中文翻译
<疯狂动物城>主题曲<TryEverything>夏奇拉激情献唱,很多事情是需要是试试,不试试就不知道可以成功. Oh oh oh oh oooh 哦哦哦哦哦 Oh oh oh ...
- git 使用流程 命令
克隆远程分支到本地 git clone <https://github.com/cqzyl/methods.js.git> 进入master分支 git checkout master 以 ...
- js 数组对象去重
let hash = {}; let config = [ { name: 2, state: true, output: 'Y'}, { name: 3, state: true, output: ...
- 12个非常不错的javascript类库
Javascript是一个解释性的编程语言.最初作为浏览器的一部份在浏览器中运行,可以和用户交互,并且控制浏览器,异步通讯,修改显示的document.在这篇文章中,我们收集了12款最新的Javasc ...
- 【extjs6学习笔记】1.10 初始: 定义类
http://www.extjs-tutorial.com/extjs/define-new-class-in-extjs
- Win10 应用商店管理应用
在企业日常办公中,对 Windows 10 应用商店软件不需要,希望办公系统干净一些.企业运维中,我们可以使用组策略来管理Windows 10 微软Store应用程序.可以根据组织的要求进行配置,多项 ...
- python+selenium之自动生成excle,保存到指定的目录下
进行之自动化测试,想把自动生成的excle保存到指定的目录下.网上百度的代码如下: import xlwt import time time = time.strftime ('%Y%m%d%H%M% ...
- TTTAttributedLabel颜色设置
NSString *text = @"Lorem ipsum dolor sit amet"; [self.testAttributedLabel setText:text aft ...
- ABAP和Java的destination和JNDI
Netweaver里使用事务码SM59创建Destination: Java 新建一个destination: 测试代码: try { Context ctx = new InitialContext ...
- 使用SAP云平台 + JNDI访问Internet Service
以Internet Service http://maps.googleapis.com/maps/api/distancematrix/xml?origins=Walldorf&destin ...