Linux管道重定向及多命令..doc
文本预览下载声明
管道和重定向
多命令协作就是通过管道和重定向机制完成的
1.命令行shell的数据流定义
2.重定向
将STDOUT重定向到文件(覆盖)
andy@Fred:~/fred$ echo abcd dddd
andy@Fred:~/fred$ ls
a abc bb ccc dddd
andy@Fred:~/fred$ cat dddd
abcd
andy@Fred:~/fred$ ls -l
总用量 12
-rw-r--r-- 1 andy andy 0 1月 3 21:43 a
drwxr-xr-x 2 andy andy 4096 1月 5 10:47 abc
-rw-r--r-- 1 andy andy 0 1月 3 21:43 bb
-rw-r--r-- 1 andy andy 24 1月 3 21:43 ccc
-rw-r--r-- 1 andy andy 5 1月 7 21:33 dddd
andy@Fred:~/fred$ ls -l ddd
andy@Fred:~/fred$ cat ddd
总用量 12
-rw-r--r-- 1 andy andy 0 1月 3 21:43 a
drwxr-xr-x 2 andy andy 4096 1月 5 10:47 abc
-rw-r--r-- 1 andy andy 0 1月 3 21:43 bb
-rw-r--r-- 1 andy andy 24 1月 3 21:43 ccc
-rw-r--r-- 1 andy andy 0 1月 7 21:35 ddd
-rw-r--r-- 1 andy andy 5 1月 7 21:33 dddd
将STDOUT重定向到文件(追加到最后,另起一行)
错误信息是不能添加进入的
2是将错误信息进行添加,但是正确是信息是不会写入。STDOUT即为不含错误信息。
21将STDOUT和STDERR结合,全部返回
重新定向标准输入STDIN
如:grep(查找关键字) linuxcast /etc/passwd
将passwd这个文件的内容作为标准输入输入给命令
管道:|
将一个命令的STDOUT作为另一个命令的STDIN
root@Fred:/# find / -user andy 2 /aaaa/null | grep andy #从更目录查找,用户名是
/tmp/vmware-andy #andy的文件及目录,然后
/tmp/vmware-andy/vmware-apploader-3597.log #将错误信息写入null文件
/tmp/vmware-andy/vmware-apploader-4284.log #在输出的信息中查找关键
/tmp/orbit-andy #字andy,并输出
/tmp/tracker-andy
管道:通常用来组合不同的命令,实现复杂的功能
重定向:用来保存命令的输出信息或错误信息,可以用来记录执行结果或保存错误信息到指定文件。也可作为筛选输出的方法
LINUX系统基础---文本处理
1.基于关键字搜索文本grep
grep aaa /etc/passwd 从passwd这个纯文本文件中搜关键字aaa
搜索的关键字是一个单词的话不需加“”。
-i 搜索时忽略大小写
-n 现实结果所在行数
-v 输出不带关键字的行
-Ax输出关键字所在行的之后几行
-Bx 输出关键字所在行的之前几行
基于列处理文本
andy@fred:~$ grep -B3 andy /etc/passwd
rtkit:x:109:116:RealtimeKit,,,:/proc:/bin/false
saned:x:110:117::/home/saned:/bin/false
Debian-gdm:x:111:118:Gnome Display Manager:/var/lib/gdm3:/bin/false
andy:x:1000:1000:andy,,,:/home/andy:/bin/bash
列之间用“:”进行分隔,表示不同信息
如何做到只显示某一列的信息:
cut命令
cut -d: f1 /etc/passwd
-d 指定分隔符(默认TAB)上面是指定“:”为分隔符
-f 指定输出列号
-c 基于字符进行分隔 cut -c2-6 /etc/passwd
显示全部