管道,输出,管道,重定向,grep

输出:
大于号:将一条命令执行结果(标准输出,或者错误输出,本来都要打印到屏幕上面的)重定向其它输出设备(文件,打开文件操作符,或打印机等等)
> 是覆盖原有内容
>> 是追加内容

2> 是错误内容覆盖
>> 是错误内容追加重定向
[[email protected] ~]$ sdfsdfsdf > a.txt
bash: sdfsdfsdf: 未找到命令...
[[email protected] ~]$ sdfsdfsdf 2>a.txt

[[email protected] ~]$ echo ‘123‘ > ture.txt

&> 是错误(正确)都可以内容覆盖
&>> 是错误(正确)都可以内容追加重定向

正确与错误的内容分别添加到不同文件
[[email protected] ~]$ date 2>err.txt >ture.txt
[[email protected] ~]$ cat err.txt
[[email protected] ~]$ cat ture.txt
2017年 06月 12日 星期一 15:48:13 CST

输入:
小于号:命令默认从键盘获得的输入,改成从文件,或者其它打开文件以及设备输入

[[email protected] ~]$ cat err.txt
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[[email protected] ~]$ tr ‘a-z‘ ‘A-Z‘ <err.txt #把err.txt的内容输入转换为大写
127.0.0.1 LOCALHOST LOCALHOST.LOCALDOMAIN LOCALHOST4 LOCALHOST4.LOCALDOMAIN4
::1 LOCALHOST LOCALHOST.LOCALDOMAIN LOCALHOST6 LOCALHOST6.LOCALDOMAIN6
[[email protected] ~]$

grep:

#在passwd中含有passwd的行全部过滤出来
[[email protected] ~]$ cp /etc/passwd .
[[email protected] ~]$ grep root passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[[email protected] ~]$ grep -n root passwd
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin
[[email protected] ~]$ grep ^root passwd
root:x:0:0:root:/root:/bin/bash

#在passwd中含有yuq的行全部过滤出来
[[email protected] ~]$ grep yuq passwd
yuq:x:1000:1000:yuq:/home/yuq:/bin/bash
#在passwd中含有yuq(包括大小写)的行全部过滤出来
[[email protected] ~]$ grep -i yuq passwd
yuq:x:1000:1000:yuq:/home/yuq:/bin/bash
Yuq:x:1000:

#在passwd中含有yuq(包括大小写)的行全部反向过滤出来
[[email protected] ~]$ grep -inv yuq passwd

#找到关键字的下面三行
[[email protected] ~]$ grep -n -A3 root passwd

#找到关键字的上面三行
[[email protected] ~]$ grep -n -B3 yuq passwd

#找到关键字的上面三行和下面三行
grep -n -C3 yuq passwd

grep还可用正则表达式

管道:
把前一条命令的结果当成一个命令输入
[[email protected] ~]$ ls -a |grep *.txt
a.txt
结合本例就是先显示所有的文件,然后再用grep命令在ls的结果中查找包含*.txt的文件。

先把一个命令结果写入一个文件,再从文件中过滤
[[email protected] ~]$ ifconfig lo > a.txt
[[email protected] ~]$ grep ‘inet ‘ a.txt
inet 127.0.0.1 netmask 255.0.0.0

#用管道实现
[[email protected] ~]$ ifconfig lo | grep -n ‘inet ‘
2: inet 127.0.0.1 netmask 255.0.0.0

# tee把前面命令的结果写入a.txt(覆盖)
ifconfig lo | tee a.txt |grep ‘inet‘

# 查看/etc/passwrod的11~15行
[[email protected] ~]$ head -14 /etc/passwd | tail -5
[[email protected] ~]$ cat -n /etc/passwd |head -15|tail -5

时间: 2024-10-05 18:23:21

管道,输出,管道,重定向,grep的相关文章

Linux文件编辑器vim输出输入重定向、管道以及进程

合抱之木,生于毫末:九层之台,起于累土:千里之行,始于足下.正因基础的重要性,才又撸起了linux. linux编辑工具: VI VIM EMACS vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面.vim的这些优势主要体现在以下几个方面: 易用性 vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台. 语法加亮 vim可以用不同的颜色来加亮你的代码. 可视化操作(ESC+V) 就是说vim不仅可以在终端运行,也可以运行于x

探秘linux-文件管理(inode理解)及管道和IO重定向

一.文件管理 1.Linux系统上各主要目录的简介 / 根,所有文件的起点 bin 存放操作系统启动时的引导程序,以及操作系统内核文件 boot 存放操作系统启动时的引导程序,以及操作系统内核文件 dev 存放设备文件和特殊文件(如字符设备) etc 存放配置文件的目录 home 普通用户的家目录默认都在此目录下 lib 存放系统库和内核模块文件 (/lib/modules) lib64 存放x86_64位系统上共享库文件 media 系统上提供的设备挂载点 misc 系统上提供的设备挂载点 m

Linux学习笔记——管道及IO重定向

管道及IO重定向 运算器.控制器:CPU 存储器:RAM 输入/输出设备   I/O 程序:指令和数据 控制器:指令 运算器: 存储器: 地址总线:内存寻址 数据总线:传输数据 控制总线:控制指令 I/O: 程序:指令和数据 INPUT设备: OUTPUT设备: 系统设定:  默认输出设备:标准输出,STDOUT,1   默认输入设备:标准输入,STDIN,0 标准错误输出:STDERR,2 标准输入:键盘 标准错误输出:显示器 I/O重定向: linux:  >:覆盖输出 >>:追加输

管道及IO重定向

管道和IO重定向: > <  >>  << 运算器.控制器:CPU 存储器:RAM 输入设备/输出设备 程序:指令和数据 控制器:指令 运算器: 存储器 地址总线:内存寻址 数据总线:传输数据 控制总线:控制指令 寄存器:CPU暂时存储器 I/O:输入输出设备,硬盘,键盘鼠标 程序需要载入数据或者等待数据,数据来自哪个设备. INPUT设备: OUTPUT设备: 系统设定: 默认输出设备:标准输出,STDOUT 用1表示 默认输入设备:标准输入,STDIN 用0表示 标

Linux管道及IO重定向小练习

1.统计/usr/bin目录下的文件个数 [[email protected] ~]# ls /usr/bin | wc -l 1306 [[email protected] ~]# 2.取出当前系统上所有用户的SHELL,要求,每种SHELL只显示一次,并且按顺序进行显示 [[email protected] ~]# cut -d: -f7 /etc/passwd | sort -u /bin/bash /bin/nologin /bin/sync /bin/tcsh /sbin/halt /

【Linux笔记】cd无法进入xargs管道输出的目录

今天在写shell脚本的时候,想用cd进入xargs管道输出的目录,但是提示报错.详情如下: [环境描述] 目录结构: [[email protected] nagiosclient_db]# ls -ltr total 2488 -rw-r--r--.        1     root   root    405725   Mar  3 14:12   nrpe-2.12.tar.gz -rw-r--r--.        1     root   root    2095419 Mar 

管道输出到read中遇到的问题

1. 管道输出到read命令中, 使用管道echo输出来设置变量将会失败. 然而, 使用管道cat输出看起来能够正常运行.   cat file1 file2 |  while read line 2 .while被放置在子shell中. 1 #!/bin/sh 2 # readpipe.sh 3 # Bjon Eriksson . 4 5 last="(null)" 6 cat $0 | 7 while read line 8 do 9 echo "{$line}"

SecurityCRT输出日志重定向

使用CRT进行抓取log,因为工具本省缓冲区有限,导致,刷屏特别快,可能会错过一些log,可以对CRT的log进行增加输出源,或者说将输出到控制台的log再输出到本地文件中: 文件->点击(勾选)日志文件:这个选项代表打出到控制台的日志将会输出到日志文件中: 选项->会话选项->终端->日志文件:指定输出文件路径以及名称: 如此配置,就可以将log输出到指定的文件中了. SecurityCRT输出日志重定向,布布扣,bubuko.com

错误信息输出,重定向到文件

将错误重定向到文件remove-item none 2> d:\ee.txt 将错误追加到已有文件remove-item none 2>> d:\ee.txt 将错误发送到成功输出流.如果报错后,代码依然继续执行,则Exception不会被捕获到$myerror = Remove-Item "NoSuchDirectory" 2>&1$myError.Exception为空 $error会保存所有错误信息,以倒序排列,即最新的错误信息就是$error[0

linux将标准输出和标准错误输出都重定向到一个文件?

需求描述: 今天在写crontab,里面有标准输出和错误输出,之前使用的是 > /dev/null 2>&1 那这个意思也就等同于将标准输出和错误输出都输出到/dev/null中,在这里记录下 操作过程: 1.原crontab定时任务,分别对标准输出和标准错误输出进行定向 [[email protected] mail]# crontab -l */1 * * * * /usr/sbin/ntpdate 192.168.53.22 >/dev/null 2>&1 2