《鸟哥的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 ...
随机推荐
- How to Install Apache Solr 4.5 on CentOS 6.4
By Shay Anderson on October 2013 Knowledge Base / Linux / How to Install Apache Solr 4.5 on Cent ...
- 使用css写三角箭头
.right-arrow{ width:6px; height:6px; align-self: center; border-right:1px solid #2ac795; border-left ...
- 【C++】【MFC】定义全局变量的方法
在stafx.h 里面加extern CString place在stafx.app 里面加CString place
- Spring IoC和AOP的介绍
基于Spring Framework 版本:5.0.2.RELEASE IoC 概念:传统Java开发中,程序通过new主动创建对象实例,而Spring有专门的IoC容器来创建对象,具体来说就是在Sp ...
- uvm_svcmd_dpi——DPI在UVM中的实现(二)
UVM中有需要从cmmand line 输入参数的需求,所有uvm_svcmd_dpi.svh和uvm_svcmd_dpi.cc 文件就是实现功能. uvm_svcmd_dpi.svh的源代码如下,我 ...
- python3基础05(有关日期的使用1)
#!/usr/bin/env python# -*- coding:utf-8 -*- import timefrom datetime import datetime,timedelta,timez ...
- Android商城开发系列(十二)—— 首页推荐布局实现
首页新品推荐的布局效果如下图: 这块布局是使用LinearLayout和GridView去实现,新建recommend_item.xml,代码如下所示: <?xml version=" ...
- char*、string、CString各种字符串之间转换
参考博客: http://blog.csdn.net/luoweifu/article/details/20242307 http://blog.csdn.net/luoweifu/article/d ...
- 推荐一个VS2015 插件 Favorite Documents
随着解决方案越来越庞大,查找某个文件变的非常费神,考眼力 有了这个工具我们可以将常用的几个文件或文件夹添加到收藏夹中,随时展开双击即可到达收藏位置 从 视图>其他窗口中打开 安装 在Vi ...
- ubuntu16.4 配置logstash6.3.2 kibanan6.3.2
1. 官网下载 https://artifacts.elastic.co/downloads/logstash/logstash-6.3.2.tar.gz https://www.elastic.co ...