获得徽章 0
赞了这篇沸点
Linux 命令行的扩展

每当我们在命令行中输入一个命令并按下回车键的时候,shell 都会对这条命令中的内容做一些替换,然后再执行这条命令,对命令内容做替换的过程叫做 expansion,翻译成中文应该是叫「扩展」,或者说是「转义」,比如「ls a*」这个命令,输出的是所有文件名以 a 开头的文件,就是 shell 先对「ls a*」做了扩展,把 a* 替换成了当前文件夹下所有以 a 开头的文件名,然后再交由操作系统去执行替换后的命令。

上面说的这种对「*」的扩展叫做「路径名扩展」,也就是应用于文件路径的扩展。不止「*」,其他通配符的使用也属于路径名扩展。

还有一种扩展是「波浪号扩展」,就是这个符号:「~」,当它单独使用时,指代的是当前用户的家目录,比如「cd ~」就是打开当前用户的家目录(其实直接输入「cd」就可以打开家目录);当它后面跟用户名时,指代的是该用户的家目录,比如「cd ~foo」就是打开 foo 用户的家目录。

除此之外,还有算数扩展、括号扩展、参数扩展、命令扩展。
展开
2
下一页