Linux Bash中,你应该知道的15个特殊字符!
首先明白什么是特殊字符?
特殊字符->当您在 shell 中键入它们时,它们充当指令或命令,并告诉 shell 执行某个功能。
因此,我们把单字符视为单个的字符命令。
1、~ Home Directory(家目录或主目录)
波浪线(~)是您的主目录的缩写。
这意味着您不必在命令中输入您的主目录的完整路径。
无论您在文件系统的哪个位置,您都可以使用这个命令进入您的主目录.
~ 在计算机世界里,家也应该是你最熟悉的地方!2、. Current Directory(当前工作目录)
句号(.)代表当前工作目录。如果在 ls 中使用 -a (all)选项或者其他选项,则可以在目录列表中看到它。
. current directory3、.. Parent Directory(父目录或上级目录)
英文中的双句号”(..)表示当前目录的父目录。您可以使用它在目录树中向上移动一级。
parent directory4、/ Path Directory Separator(路径目录分隔符)
您可以使用正斜杠(/)ーー通常称为斜杠ーー来分隔路径名中的目录。
一个斜杠表示可能的最短目录路径。因为 Linux 目录树中的所有内容都从根目录开始,所以您可以使用以下命令快速移动到根目录:
/ root directory5、# Comment or Trim Strings(注释符号或修剪字符串)
5.1、注释(comment)
多数情况下,您使用符号(#),在终端中或者shell脚本中注释相关内容,该内容将被bash shell忽视
,但是这并不是被真正的忽视,而是被存在你命令历史当中,我们可以通过history名令进行查看。
zsh history5.2 也可以使用#符号,针对字符串便令,从头部开始删除部分字符
定义个字符串one_string="Hello world.",并输出该字符串。
one_string trim string Hello 被裁减掉这做不会改变字符串变量one_string中存储的值;
它只会影响发送到 echo 的内容。
我们可以使用 echo 再次打印字符串变量的值并检查以下内容:
one_string 存储的依然是Hello world6、? Single Character Wildcard(单字符通配符)
创建10个txt文本文件 ls 查看符合的文件因为文件test??.txt文件名中,test后面有两个字符,所以需要两个??号来代替,才能才看我们新建的10个txt文件,如果用一个?,不能进行全部的通配。
test?.txt 没有满足条件的通配符 ??????.txt 进行全部文件的通配7、* Character Sequence Wildcard(字符序列通配符或任意字符通配符)
使用*号符号,可以进行任意多个字符的统配。
character sequence wildcard*号通配符,在shell中使用非常的方便和灵活,也使用最为高频的通配方式。
8、[] Character Set Wildcard(字符集通配符)
文件名中的相关字符必须至少与通配符集中的一个字符匹配。
character set wildcard? * [] 是linux和unix系统中的三种字符通配方式,可以给据场景的需求进行灵活的选择。
9、; Shell Command Separator(命令分割符)
该符号可以让你在一行中运行多条命令
;请注意,第二个命令即使第一个失败也会运行,第三个命令即使第二个失败也会运行,依此类推。
还有一点需要注意:
如果希望在一个命令失败时停止执行顺序,请使用双符号(& &)而不是分号:
&&逻辑与&&逻辑与前个命令执行失败,后面的命令并不会被执行。
10、& Background Process(后台处理)
正常情况下,在终端窗口中输入命令去执行在完成之后,才返回到命令提示符。
通常,这只需要一两分钟,如果你是通过更新系统软件,需要更长的时间,例如:sudo apt update && sudo apt upgrade。这时候如果需要在等待的过程,启动另外的程序,,则需要关闭应用程序之前不能使用终端窗口。这时候后台处理就大用用处了。
background process It's great!11、< Input Redirection(输入重定向)
许多 Linux 命令接受一个文件作为参数,并从该文件获取它们的数据。这些命令中的大多数还可以接受来自流的输入。要创建流,可以使用左尖括号(<) ,如下面的示例所示,将文件重定向到命令中:
input redirection input redirection can not know filename12、> Output Redirection(输出重定向)
您可以使用右直角括号(>)来重定向命令的输出(通常,将输出重定向到文件中) .
output redirecton13、| Pipe(管道)
pipe可以将多个命令连接在一个,一个命令的结果做为下个命令的输入。
14、! Pipeline logical NOT and History Operator
叹号(!)是一个逻辑运算符,意思是“非”。
! logical opterator!6051 历史命令中的第6051条
history!!重复上次命令
!!15、$ Variable Expressions(变量表达式)
您可以使用 echo 查看变量持有的值ーー只需在变量名称前面加上美元符号($) ,如下所示:
reference variable要创建变量,必须给它一个名称并提供一个值让它保存。您不必使用美元符号来创建变量。只有在引用变量时才添加 $,如下面的示例所示:
创建变量在美元符号周围添加大括号({}) ,并执行参数展开以获取变量的值,并允许对该值进行进一步的转换。
${variables}Quoting Special Characters(引用特殊字符)
下面三种特殊的引用,产生不同的效果:
quoting special characters把特殊字符想象成非常短的命令。
如果您能记住它们的用法,
那么对于理解 Bash shell 以及其他人的脚本将大有裨益。
下想获得更多的命令帮助信息请试一试下面的方法:
推荐使用tldr
备注:tldr - too long don't read!
网友评论