Linux 命令执行顺序控制与管道
Posted 林震宇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 命令执行顺序控制与管道相关的知识,希望对你有一定的参考价值。
顺序执行、选择执行、管道、cut 命令、grep 命令、wc 命令、sort 命令等,高效率使用 Linux 的技巧
顺序执行
只需要在命令间加;
sudo apt-get update;sudo apt-get install some-tool
选择执行
另一种是要修上一条执行成功才执行下一条,那么就用&&
而||
就与它相反,是当上一条不成功执行下一条
管道
管道是一种通信机制,通常用于进程间的通信(也可通过 socket 进行网络通信),它表现出来的形式就是将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)。管道又分为匿名管道和具名管道(这里将不会讨论在源程序中使用系统调用创建并使用管道的情况,它与命令行的管道在内核中实际都是采用相同的机制)。
我们在使用一些过滤程序时经常会用到的就是匿名管道,在命令行中由|分隔符表示,|在前面的内容中我们已经多次使用到了。具名管道简单的说就是有名字的管道,通常只会在源程序中用到具名管道。
|
ls -al /etc
ls -al /etc | less
由于内容太多,所以通过管道将前一个命令(ls)的输出作为下一个命令(less)的输入,然后就可以一行一行地看。
cut 过滤
打印/etc/passwd文件中以:为分隔符的第 1 个字段和第 6 个字段分别表示用户名和其家目录
cut /etc/passwd -d ‘:‘ -f 1,6
# 前五个(包含第五个)
cut /etc/passwd -c -5
# 前五个之后的(包含第五个)
cut /etc/passwd -c 5-
# 第五个
cut /etc/passwd -c 5
# 2到5之间的(包含第五个)
cut /etc/passwd -c 2-5
grep 查找
grep [命令选项]... 用于匹配的表达式 [文件]...
查找目录下所有包含abc的文本文件
grep -rnI "abc" ~
-r 表示递归搜索子目录文件
-n 表示打印匹配项行号
-I 表示忽略二进制文件
查看环境变量中以abc结尾的字符串
export | grep ".*abc$"
$ 代表一行的末尾
.* 代表任意字符
wc 计数工具
wc 命令用于统计并输出一个文件中行、单词和字节的数目
# 行数
wc -l /etc/passwd
# 单词数
wc -w /etc/passwd
# 字节数
wc -c /etc/passwd
# 字符数
wc -m /etc/passwd
# 最长行字节数
wc -L /etc/passwd
结合管道来操作一下,下面统计 /etc 下面所有目录数
ls -dl /etc/*/ | wc -l
sort 排序
cat /etc/passwd | sort
cat /etc/passwd | sort -r
cat /etc/passwd | sort -t‘:‘ -k 3
cat /etc/passwd | sort -t‘:‘ -k 3 -n
-t参数用于指定字段的分隔符,这里是以":"作为分隔符;-k 字段号用于指定对哪一个字段进行排序。这里/etc/passwd文件的第三个字段为数字,默认情况下是以字典序排序的,如果要按照数字排序就要加上-n参数
uniq 去重
过滤重复行
查看最近执行过的命令,去除重复
history | uniq
以上是关于Linux 命令执行顺序控制与管道的主要内容,如果未能解决你的问题,请参考以下文章