Linux学习记录11——管道符、通配符、转义字符、环境变量

本文详细介绍了Linux系统中管道命令符的使用,包括配合grep和wc统计行数、ls和more翻页查看、以及ps和grep的结合。此外,还讲解了命令行通配符、常用转义字符如反斜杠、单引号、双引号和反引号,以及环境变量PATH的工作原理和别名命令的设置。
摘要由CSDN通过智能技术生成

一.学习的内容

        今天主要学习了Linux系统中的管道命令符、命令行的通配符、常用的转义字符以及重要的环境变量。

1、管道命令符

        管道符的作用用一句话可以概括为:把前一个命令原本要输出到屏幕的信息当作后一个命令的标准输入。符号为:“  |  ”。

        在前面,我们使用过 grep 命令来搜索文本中包含关键词的行,而要统计有多少行,除了使用 -c 参数外,还可以使用 wc -l 命令。学完管道符后,我们就可以把这两个命令结合起来,如下图所示:

图1  grep和wc命令结合

        比如,我们想用 ls -l 命令查看 /etc 目录下的各个文件详细信息,此时它会一股脑的全部显示在屏幕上;此时,我们利用管道符,将 more 命令和 ls -l 命令结合起来,就可以实现翻页查看。如下图所示:

图2  ls 命令和 more命令结合

        在之前学习 ps 命令时,执行完 ps aux 后在界面上输出了许多信息,想要找到我们需要的信息非常困难,此时借助管道符,就可以把ps 命令和 grep 命令结合起来使用,如下图所示:

图3  ps和grep结合

        如果需要将管道符处理后的结果既输出到屏幕,又同时写入到文件中,则可以与 tee 命令结合使用。如下图所示:

图4  tee命令

2、命令行通配符

         顾名思义,通配符就是通用的匹配信息的符号。

        Linux系统中的通配符及含义如下表所示:

通配符作用
*任意字符零个或多个
单个任意字符
[0-9]单个数字
[a-z]单个小写字母
[A-Z]单个大写字母
[a-Z]单个字母

        下面我们来匹配所有在 /dev 目录下中且以 sda 开头的文件,命令与输出结果如下图所示:

图5  * 通配符的使用

          如果只想查看文件名以 sda开头,但是后面还紧跟其他某一个字符的文件的相关信息,这时候就要用到问号来匹配了。

图6   ? 通配符

         下面是关于通配符 [0-9] 以及 [1357]等的使用。 [0-9]会匹配 0-9 之间的单个数字,也可使用[1357]这样的方式仅匹配这四个数字中的一个。如下图所示:

图7     [  ] 通配符

         通配符不仅可以放在后面,放在前面也是可行的。如下图所示,查看  /etc/  目录下,以  .conf  结尾的文件,可以使用  ls -l  /etc/*.conf  命令。

图8  通配符放前面

         通配符还可以与创建文件的命令相结合。不过在创建多个文件时,需要使用大括号,并且字段之间用逗号间隔。如下图所示:

图9  用通配符创建多个文件

         最后,通配符的玩法较多,可自行摸索。

3、常用的转义字符

        4个最常用的转义字符:

        反斜杠(\): 使反斜杠后面的一个变量变为单纯的字符

        单引号(' '): 转义其中所有的变量为单纯的字符串

        双引号(" "): 保留其中的变量属性,不进行转义处理

        反引号(`  `): 把其中的命令执行后返回结果

        我们先定义一个 PRICE 变量赋值为6,使用 echo 'price is $PRICE' 命令,发现并没有输出PRICE的值,这是因为加了单引号,它将所有的变量都变成了单纯的字符。 

图10   单引号转义字符

         把和上面相同的命令用双引号括起来。输出结果变成了  price is 6  。对大部分命令来说,加双引号和不加基本没什么区别。

图11   双引号转义字符

        下面是既使用双引号又使用反斜杠的命令及其输出。

图12  双引号和反斜杠

         如果只需要某个命令的输出值,可以使用反引号字符,如下图所示:

图13  反引号

4、重要的环境变量

        在Linux系统中,变量名称一般都是大写,命令都是小写。

        命令在Linux中执行分为4个步骤:

        第一步:判断用户是否以绝对路径或相对路径的方式输入命令,如果是绝对路径则直接执行,否则进入第二步继续判断。

        第二步:Linux系统检查用户输入的命令是否为别名命令,即用一个自定义的命令名称来替换原本的命令名称。之前在使用rm 命令删除文件时,系统总要询问是否执行删除操作,其实就是系统为了防止误删而特意设置的别名命令rm = rm -i

        可以使用 “alias 别名=命令”来创建属于自己的别名命令;可以使用 “unalias 别名”命令去取消一个别名命令。下图14分别是取消 rm 别名命令,再使用它执行删除操作,可以发现已经不需要询问是否要删除了;图15 则是再把“ rm -i ” 的别名命令设置成 rm 命令,由图可知,再执行rm 命令时又恢复了询问的过程。

图14  取消别名命令
图15  设置别名命令

        第三步:bash解释器判断用户输入的时内部命令还是外部命令。内部命令是解释器内部的指令,会被直接执行;而用户在绝大部分时间输入的是外部命令,这些外部命令交由步骤四继续处理。可以使用 “type 命令名称” 来判断用户输入的命令是内部还是外部。

图16  type命令

        第四步:系统在多个路径中查找用户输入的命令文件,而定义这些路径的变量叫做PATH,可以简单的把它理解为“解释器的小助手”,作用就是告诉解释器待执行的命令可能存放的位置,然后,bash解释器就会乖乖的在这些位置逐个查找。PATH是由多个路径组成的变量,每个路径值之间用冒号间隔,对这些路径的增加和删除操作将影响到Bash解释器对Linux命令的查找。 

        

二.本次学习遇到的问题

        

三、问题的答案及解决办法

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值