在终端中更智能地工作的 Bash 提示和技巧

作为 Linux 用户,当我们第一次打开终端并开始以最高效、最强大和最灵活的方式在系统上工作时,这是一个特殊的时刻。 但是,您第一次进入终端可能会令人生畏,因为迎接您的只是一个闪烁的光标和一个无限可能的世界。 为了帮助您解决这个问题,我们向您展示了一些 Bash 提示和技巧,可以让您在终端中更聪明地工作,而不是更努力地工作。

使用 Apropos 查找命令

Apropos (app-row-POE) 是一个命令,它允许您使用以下命令查找命令 man 或根据其描述手动输入。 如果你曾经找到一个命令的手册页,它看起来有点像这样:

顶部的“NAME”部分就是我要说的。 如果我想找到 ping 命令与 apropos,我会输入 apropos icmp 进入我的终端并点击 Enter. 请注意,它不区分大小写。 这会拉出每个带有 NAME 条目的命令,其中包含“ICMP”。

另一个很好的用途 apropos 正在探索您可能不熟悉的工具,例如 selinux. 发出 apropos selinux command 将为您提供可用于与 SELinux 交互的所有不同命令的列表,让您开始高效执行。

替换上一个命令

在终端中为我节省了大量时间的事情是弄清楚怎样替换上一个命令中的某些内容。 如果我拼错了某些东西或者只需要替换上一个命令中的一个选项,我可以使用 ^ 拉出我拼错的单词的键,然后是另一个 ^ 输入我想要的词或选项。

让我们看一个 example. 假设我想 ping “maketecheasier.com”以确保我有完整的 Internet 连接(包括 DNS)。 但是如果我拼错了一些东西,我可能会得到某种错误。 因此,如果我不小心ping maktecheaser.com(缺少“i”),我会遇到一些麻烦。

要替换拼写错误的选项,我可以输入 ^maktecheaser.com^maketecheasier.com,该命令将按预期运行。 这是一个简单的 example,但假设您运行了一个带有很多选项的长命令,或者误导了命令的输出或错误。 能够替代 > 为了 >> 在复杂的命令中是一个救星。

Bash 提示和技巧 Ping 示例

其他 example 与 systemd 和 systemctl 命令。 我会经常发出多个不同的 systemctl 子命令,例如启动、停止、启用或禁用服务。 我可以把它们分出来 ^start^enable,这将节省我的时间。

!!

这是在我经常发生的一个特定场景中非常有用的一个。 !! (bang-bang) 将完全下拉上一个命令。 它可能看起来没有用,但是如果您一直考虑键入需要在超级用户权限下运行的命令,您就会开始理解这有什么用处。

一个伟大的 example 是安装脚本。 假设您使用“./SCRIPT-NAME.sh”运行安装脚本,它说您需要以超级用户权限运行它。 只需输入 sudo !!,输入您的密码,然后您就可以参加比赛了。 它节省了大量时间,一旦你在你的肌肉记忆中得到那个序列,你就能比做错时更快地做到这一点。

Bash 提示和技巧 Bang Bang

传递来自先前命令的参数

使用 !$,我们可以将命令中的最后一个参数向下传递到当前命令,并且通过一些细微的变化,我们可以将任何参数向下传递到当前命令。

让我们看一些例子。 如果我正在编辑脚本,我可以使用命令 nano samplescript.sh. 完成该脚本后,我想让它可执行,因此我可以将八进制权限更改为 755。为此,我可以使用 chmod 755 !$ 命令。 然后,再次提取脚本的名称,我可以使用 ./!:2 取消第二个论点。

Bash 提示和技巧参数

其他一些例子:

您可以替换您的数字来提取您想要的任何参数。 Bash 将保留 close 使用此方法可以轻松处理 100 个参数,您可以轻松快速地完成一些像这样的琐碎任务。

我希望您喜欢这些 Bash 提示和技巧,以帮助您在终端中更智能地工作。 您还应该了解 Bash 变量和特殊字符。