不知道你接触Linux系统多久了。你了解过Linux中的特殊字符吗?事实上,那些特殊字符非常有用。今天的文章就给大家简单介绍一下Linux中你需要知道的15个特殊字符。想学习或者刚学Linux的朋友们赶快上车吧!~homedirectory波浪号~指的是homedirectory,也就是我们用户的个人目录,无论你在哪里,输入cd~,它都会带你回家!cd~更高级的方法是在它后面加上具体的路径,直接定位到home目录中的指定位置,是不是很方便呢?cd~/工作/存档。当前目录英文时期。代表当前目录,我们看一下当前目录下的所有文件:ls-al.红圈中指的是当前目录,但是这个是没有意义的,我们更多的是在命令中使用它,如下:./script.sh这个是告诉bash只在当前目录下搜索并执行script.sh文件目录,而不是在路径中查找它。..parentdirectory中的两个英文句点..代表parentdirectory,也就是当前目录上面的目录。假设我们要回到上一个目录:cd..和之前一样,可以在它后面添加一个特定的目录,意思是定位到与当前目录同级的其他目录:cd../projects//path的目录分隔符斜线“/”指的是路径目录分隔符,这里没什么好说的。ls~/work/tests/不过有意思的是,如果/路径目录分隔符前面没有任何东西,是不是就代表这是顶级目录呢?由于Linux系统的目录树以/开头,所以只有一个/代表我们常说的系统根目录。cd/comment以#开头,表示这句话是注释。#ThiswillbeignoredbytheBashshell虽然上面的段落被忽略了,但它仍然会被添加到你的命令历史记录中。更强大的做法是:先定义一个变量,赋给它字符串"amazingalvin"this_string="amazingalvin"${this_string#amazing}返回把amazing注释掉的this_string字符串变量,可以看到echo输出Result:echoawsome${this_string#amazing}amazing只是被注释掉了,没有被删除,取消注释后返回:echo$this_string?单字符通配符问号“?”指单字符通配符。BashShell支持三种通配符。表示匹配文件名中的任意字符,例如:lsbadge?.txt注意不匹配badge.txt,因为badge后面没有字符。就因为“?”匹配单个字符,这里有个看似厉害的玩法,就是你要查找的文件的文件名有多少个字符,你就可以输入多少个“?”。ls??????.txt看起来很牛逼,但为什么我觉得这很别扭?????*字符序列通配符*代表任意字符序列,匹配任意字符,包括空字符。以刚才的徽章为例:lsbadge*可以看到匹配到了badge.txt。匹配任何类型的文件:lssource.*[]字符集通配符方括号“[]”指的是字符集通配符,文件名中的相关字符必须至少匹配字符集中的一个字符。下面通过一个例子来体验一下它的作用:lsbadge_0[246].txtlsbadge_[01][789].txtlsbadge_[23][1-5].txt;命令分隔符与“;”相同我们每天都用的差不多,就不细说了,主要是用来分隔命令的。ls>计数.txt;wc-l计数.txt;rmcount.txt注意这里,使用的时候;将命令分开,即使第一个命令失败,第二个命令也会运行,即使第二个命令失败,第三个命令也会运行,以此类推。如果你想在命令失败时停止,使用“&&”,如下:cd./doesntexist&&cp~/Documents/reports/*.&后台处理有时当终端正在运行命令时,比如vim,如果你想运行另一个命令?这里有个小技巧,就是在后台启动程序的命令后加一个“&”符号,这样就可以在终端实现后台多任务的效果。vimcommand_address.page&上面显示了后台进程的ID。<输入重定向许多Linux命令接受文件作为参数并从该文件获取数据。大多数这些命令也可以从流中获取输入。要创建流,可以使用左尖括号“<”将文件重定向到命令中,如下所示:sort
