你应该知道的 Bash 特殊字符

并非所有字符在 Bash 中都是相同的。 其中一些执行特殊功能、调整命令并帮助我们操作数据。 这就是为什么我们用最重要的 Bash 特殊字符编译了以下列表。 请继续阅读以了解怎样使用它们以及它们怎样使您的日常 Bash 生活更轻松。

文件夹路径分隔符 (/)

在 Bash 中,正斜杠 (/) 分隔路径的各个部分,即文件夹内的子文件夹。 要访问主文件夹中名为“pictures”的文件夹,您必须使用命令 cd 作为:

上面的正斜杠后的所有内容 example 位于斜线之前的内容。

主目录 (~)

您可以使用波浪号字符 (~)。 为了 example, 要转到您的主文件夹,请使用:

您还可以将其合并到更复杂的路径中。 为了 example, 要编辑主目录中“个人”文件夹中名为“mydata.txt”的文件,请使用:

当前/上方文件夹 (.)

您可以使用单个 (.) 或双点 (..) 来分别定义是在当前目录中还是在上面的目录中执行操作。 单点 (.) 映射到当前文件夹,而双点 (..) 映射到其上方的文件夹。

假设您在文件夹“/home/USERNAME/pictures”中,并希望在同一目录中执行名为“transform_images.sh”的脚本。 在这种情况下,键入:

如果在执行脚本后,您想返回到当前所在文件夹上方的文件夹,请键入:

这会将您从文件夹“/home/USERNAME/pictures”返回到“/home/USERNAME”。

评测和取消 (#)

哈希符号(#) 在编写 Bash 脚本时更有用,因为它允许您向它们添加注释以供将来参考。 Bash 忽略哈希符号后面的所有内容。

在下面的脚本中,第一行定义它是一个 Bash 脚本,第二行是一个被忽略的注释,第三行是一个典型的复制命令:

即使您不编写脚本,哈希也很有用,因为它们允许您取消部分命令。 要查看实际效果,请尝试以下简单的命令:

然后,请尝试以下操作:

你只会在第二个版本中看到“我是”返回,因为散列将取消后面的所有内容。

范围 ([])

您可以通过将字符范围括在方括号 ([])。 要查看实际效果,假设您要查找以 D 或 M 开头的文件夹名称。键入:

也许您所在的文件夹中充满了以每年命名的子文件夹。 将前五年的文件夹复制到 /home/USERNAME/backup, 用:

您甚至可以使用破折号 (-) 进一步简化它们:

Bash 将从 5 到 9 迭代以包含它们之间的数字。

重定向 (<>)

使用尖括号 (<>),您可以重定向命令的输入或输出。 为了 example,以下命令:

将重定向输出 ls 并将其保存到“list.txt”文件中。

请注意,双右尖括号 (>>) 附加 命令的输出到文件。 如果您重新运行相同的命令,它会将其输出附加到现有内容的末尾。 到 代替 其内容有新的结果,使用单个右尖括号 (>):

管道 (|)

您可以将不同的命令组合成一个更大的整体,通过使用管道(|)。 它们有点类似于重定向(更多关于它们的异同点在这里)。

假设您有一个包含数千个条目的大文件,并且想要在其中找到您的名字。 不要在文本编辑器中搜索它,而是执行以下操作:

Bash 特殊字符管道进入 Grep

在这种情况下,“entries.txt”的输出将通过管道传送到 grep 命令。

命令分隔符 (;)

Bash 允许您一次性发出多个命令,方法是用分号 (;)。 为了 example, 使用一个命令将两个文件夹复制到两个不同的目的地:

分号将两个命令分开并告诉 Bash 顺序执行它们。 请注意,如果您愿意,您可以使用两个以上的命令。

通配符

*您可能已经使用过星号 (

) 在某些命令中。 它匹配任何字符序列,并允许将所有 JPG 文件从一个文件夹复制到另一个文件夹等操作:?问号( example) 也是 Bash 中的通配符,但只匹配单个字符。 为了

上述命令将复制以“201”开头的文件夹中的所有jpg文件。 由于通配符可转换为任何字母数字字符,而不仅仅是数字,因此上述命令还将复制任何可能命名为“201A”或“201z”的文件夹。

在后台启动 (&)&您可以将命令作为后台进程运行,只需在命令后附加一个与符号 (

): fg 以上将开始复制文件huge_file.zip并立即移至后台,让您继续使用终端。 该命令将在完成时自动退出。 如果你想再次提出它,你可以输入 Enter其次是

.

变量 ($)$美元符号 (

) 允许您设置在命令中使用的变量。 要查看它们的运行情况,请尝试在终端中输入以下内容:

Bash 特殊字符回声变量

请注意,为变量赋值时没有美元符号。

转义符 () 和引号 (“)如果您想在命令中使用任何特殊字符,则必须对其进行转义。 您可以通过在特殊字符前面加上反斜杠 ( example)。 为了 ! , 如果您的文件名称包含感叹号,则必须键入

而是让 Bash 将其解释为感叹号而不是特殊字符。''另一种方法是使用单个 ("") 或双引号 (

)。 通过将字符串括在引号中,其中的任何特殊字符都将被视为实际字符。 单引号和双引号之间也有区别。 单引号会将封闭的字符串评估为文本,而双引号允许您在封闭的字符串中使用变量 ($)。

总结

以上不是 Bash 中唯一的特殊字符,但它们是我们认为对我们在终端中的日常冒险最有用的字符。 不要忘记查看这些键盘快捷键以在 Bash 中快速移动。 如果我们遗漏了任何重要的特殊字符,请在下面的评测部分告诉我们。

永远不会错过

接收我们最新教程的更新。

注册即表示您同意我们的隐私政策,欧洲用户同意数据传输政策。

相关阅读:

Posted in: Linux