shell--管道命令(pipe)
管道命令使⽤的是“|”这个界定符号
管道命令“|”仅能处理经由前⾯⼀个命令传来的正确信息,也就是standard output的信息,对于standard error并没有直接处理的能⼒
shell命令属于什么语言每个管道后⾯接的第⼀个数据必定是“命令”,⽽且这个命令必须要能够接受 standrad input的数据才⾏,这样的命令才可以是“管道命令”。例如 less,more,head,tail等都可以接受standard input的管道命令。⾄于ls,cp,mv等就不是管道命令了
也就是说管道命令主要有两个⽐较需要注意的地⽅:
管道命令仅会处理standard output,对于standard error output 会予以忽略
管道命令必须要能够接受来⾃前⼀个命令的数据成为standard input继续处理才⾏
选取命令:cut,grep
选取命令就是将⼀段数据经过分析后,取出我们所想要的,或者是经由分析关键字,取得我们所想要的那⼀⾏。需要注意,⼀般来说,选取信息通常是针对“⾏”来分析的,并不是整⽚信息分析
cut
cut -d ’分割字符’ -f fields ⽤于分割字符
cut -c 字符范围⽤于排列整齐的信息
参数:
-d:后⾯接分割字符,与-f⼀起使⽤
-f:依据-d的分割字符将⼀段信息切割成为数段,⽤-f取出第⼏段的意思
-c:以字符(characters)的单位取出固定字符区间、
例如
root@DESKTOP-J295FSF:/mnt/c/Users/vivi# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
root@DESKTOP-J295FSF:/mnt/c/Users/vivi# echo $PATH |cut -d ':' -f 5
/
sbin
root@DESKTOP-J295FSF:/mnt/c/Users/vivi# echo $PATH |cut -d ':' -f 3,5
/usr/sbin:/sbin
root@DESKTOP-J295FSF:/mnt/c/Users/vivi# export
declare -x HOME="/root"
declare -x HOSTTYPE="x86_64"
declare -x LANG="en_US.UTF-8"
declare -x LESSCLOSE="/usr/bin/lesspipe %s %s"
declare -x LESSOPEN="| /usr/bin/lesspipe %s"
declare -x LOGNAME="root"
root@DESKTOP-J295FSF:/mnt/c/Users/vivi# export|cut -c 12-
HOME="/root"
HOSTTYPE="x86_64"
LANG="en_US.UTF-8"
LESSCLOSE="/usr/bin/lesspipe %s %s"
LESSOPEN="| /usr/bin/lesspipe %s"
LOGNAME="root"
grep
cut是在⼀⾏信息当中取出某部分我们想要的,⽽grep则是分析⼀⾏信息,若当中有我们所需要的信息,就将该⾏拿出来,语法是这样的grep [-acinv] [--color-auto] ‘查字符串’ filename
-a:将binary⽂件以text⽂件的⽅式查数据
-c:计算到‘查字符串’的次数
-i:忽略⼤⼩写的不同,所以⼤⼩写视为相同
-n:顺便输出⾏号
-v:反向选择,即显⽰出没有‘查字符串’内容的那⼀⾏
--color=auto:可以将到的关键字部分加上颜⾊显⽰
root@DESKTOP-J295FSF:/mnt/c/Users/vivi# last| grep 'root'
root@DESKTOP-J295FSF:/mnt/c/Users/vivi# last| grep -v 'root'
root@DESKTOP-J295FSF:/mnt/c/Users/vivi# grep --color=auto 'stop' catfile
ok now stop
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论