《鸟哥的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 ...
随机推荐
- Java 编码规范有感
应小组要求,开发测试都需要考阿里编码规范,因此,相当于是突击了一下关于编码规范方面的知识,目前做的项目后期需要进行项目迁移,数据迁移,功能迁移... 各种迁移... 阿里巴巴编码规范(Java)考试地 ...
- 移动端真机调试工具--DebugGap (VIDE)
越来越多的移动端开发工作,需要我们有一个好的调试工具,以解决各类真机才会遇到的BUG,最近使用了一款DebugGap 的工具,非常方便,在这里推荐给大家. 官网地址 DebugGap . 按需求下载 ...
- 【Android车载系统 News | Tech 5】车载设计开发
1. 基于Android的车载移动终端系统的研究与开发 http://wenku.baidu.com/link?url=hIKlQ2myEmR8N0CA28a_SLzLA2Q9R5Xpk20OJ53h ...
- UGUI的事件系统分析
UGUI的源码还是非常清晰的,打开源码可以发现, 从UGUI的源码可知:在EventSystem中调用每一帧函数来实现: private void TickModules() { for (var i ...
- Spring IoC和AOP的介绍
基于Spring Framework 版本:5.0.2.RELEASE IoC 概念:传统Java开发中,程序通过new主动创建对象实例,而Spring有专门的IoC容器来创建对象,具体来说就是在Sp ...
- D3 学习
D3 学习笔记 D3简介 D3全称是Data-Driven Documents数据驱动文档,是一个开源的javascript库,可以用于数据可视化图形的创建,但不仅仅只是这些.可以查看d3帮助文档还有 ...
- sublime相关小技巧
1.快速建立一个新文件:Ctrl+n 2.修改多个相同符号:Ctrl+D 3.建立语言后缀的文件保存,例如我想创建PHP的语言脚本,先按Ctrl+Shift+p,打开Command Palette,输 ...
- 使用JDBC操作SAP云平台上的HANA数据库
本文假设您对JDBC(Java Database Connectivity)有最基本的了解.您也可以将其同ADBC(ABAP Database Connectivity)做对比,细节请参考我的博客AD ...
- JAVA设计模式初探之桥接模式
生活中的一个例子: 拿汽车在路上行驶的来说.既有小汽车又有公共汽车,它们都不但能在市区中的公路上行驶,也能在高速公路上行驶.这你会发现,对于交通工具(汽车)有不同的类型,它们所行驶的环境(路)也 ...
- Airflow 调度基础
1. Airflow Airflow是一个调度.监控工作流的平台.用于将一个工作流制定为一组任务的有向无环图(DAG),并指派到一组计算节点上,根据相互之间的依赖关系,有序执行. 2. 安装 pip安 ...