如何在Linux中创建自定义命令

在本文中,我们将向您展示如何在Linux中创建自定义命令,该自定义命令将允许您使用所选的简单名称创建“快捷”命令。 更好的是,您可以将多个这样的命令组合在一起,并在一个单词中运行它们。 有用吧? 随着您对Linux的逐渐熟悉,您将在论坛和教程中遇到非常复杂(又怪异)的命令。 请考虑以下示例,以在一列中打印文件列表:

ls -l --color | awk '{print $ 9}'

这为我们提供了以下输出:

到目前为止,一切都很好。 但是,如果您想经常使用此命令怎么办? 很难记住这封信的写法,不容易打印,而且篇幅太长。 现在添加其他数十个具有相似(或更高)难度级别的团队,很容易看出我们需要一个新的解决方案。

步骤1.使用名称文件在文本编辑器中打开文件

假设我们要命名新命令“文件”。 我们通过发出以下命令,使用文本编辑器“ vi”创建一个名为“ files”的新文件:

vi files

此命令将打开一个基本编辑器,您可以在其中输入文本。 默认情况下,它将处于“阅读”模式,并且您将无法添加新文本。 通过按键盘上的“ Insert”(插入)键来更改此模式以插入模式。

现在复制并粘贴以下文本。 您可以通过右键单击将其快速粘贴到终端中。

#!/bin/bash
# Print list of files in one column
ls -l --color | awk '{ print $9 }'

如您所见,当INSERT模式打开时,它被插入到vi中:

如何在Linux中创建自定义命令

这称为“脚本”,它包含三个部分:

  1. 它以“#!/ Bin / bash”开头
  2. 以井号(#)开头的行是注释
  3. 其余的团队。 用要简化的复杂命令替换第三行

现在,通过按“ Esc”键退出“插入”模式。 按Shift + Z + Z保存文件(按住Shift键并按z两次)。

该文件现在将保存在当前文件夹中。 您可以通过输入以下内容显示其内容:

cat files

这给出了以下输出:

如何在Linux中创建自定义命令

步骤2:为脚本分配正确的权限

如果我们仅列出目录中的文件,则可以看到我们的新文件就是其中之一。

如何在Linux中创建自定义命令

但是,这是一个常规文件,而不是可以执行的文件。 ls命令以绿色显示可执行文件。 因此,我们需要告诉Linux我们的新文件是可执行的。 为此,我们引入了以下内容:

chmod 755 files

这将更改文件权限并使它们可执行。 现在,“ ls”将文件显示为绿色:

如何在Linux中创建自定义命令

现在是时候启动我们的团队了!

步骤3:指定脚本的路径

不幸的是,我们不能只在当前目录中键入“文件”来运行我们的新脚本。 出现错误消息:“找不到命令”:

如何在Linux中创建自定义命令

这是因为Linux在$ PATH变量引用的一组特定目录中寻找常规命令。 而且我们的当前目录不在此列表中。

因此,我们有三个选择:

  1. 每次手动提供脚本文件的完整位置
  2. 在您的$ PATH变量中添加“当前目录”
  3. 将我们的脚本文件移动到$ PATH引用的现有文件夹中

让我们来看看如何做这三个:

方法1.手动输入完整的位置

当我们尝试更早地键入“文件”时,我们收到一条错误消息。 但是我们可以为脚本文件指定当前目录,如下所示:

./files

它的工作原理如下所示:

如何在Linux中创建自定义命令

不幸的是,如果我们在另一个文件夹中,它将无法正常工作。 我们必须展示完整的道路,这是痛苦的。

方法2.将“当前目录”添加到PATH变量

此方法与第一个方法有相同的问题。 我们可以说Linux总是在寻找脚本和命令的“当前目录”。 这样,我们不必使用“ ./”。 我们可以将当前目录临时添加到$ PATH中,如下所示:

PATH="$PATH:."

现在只需输入“文件”,如下所示:

如何在Linux中创建自定义命令

但是,此方法有两个问题:

  1. 如前所述,您不能从自己目录以外的任何目录访问脚本
  2. $ PATH中的更改是临时的。 用户会话结束后,它将被重置!

要永久更改$ PATH,我们需要编辑以下文件:

~/.bash_profile

和以前一样,我们可以使用vi编辑器:

vi ~/.bash_profile

再次按粘贴进入INSERT模式,并导航到带有PATH变量的行,如下所示:

如何在Linux中创建自定义命令

现在,将以下内容添加到PATH行的末尾:

:.

这是一个冒号(微笑然后是句点(。)。 像以前一样,通过按Esc和Shift + z + z将文件保存在vi中。 但是,这些更改在重新加载〜/ .bash_profile之前不会生效。 使用以下命令执行此操作:

source ~/.bash_profile

您可以通过调用$ PATH变量来检查是否已发生更改。 您应该在该行的末尾看到一个附加项,如下所示:

如何在Linux中创建自定义命令

现在,即使在用户会话结束之后,更改仍将保留。 但是,您仍然无法从任何文件夹执行命令。 为此,我们需要方法3。

方法3:将文件添加到现有的$ PATH目标位置(推荐)

我认为,这是添加自定义命令的最佳方法,以便您可以从任何地方访问它。

首先,使用echo $ PATH获取$ PATH位置的列表,如方法2所示。

每个文件夹位置都用冒号(微笑 您可以在上面的屏幕截图中看到/ usr / local / bin文件夹是路径之一。

如何在Linux中创建自定义命令

因此,我们只需使用以下命令将自定义命令移动到该位置(或$ PATH中的任何其他文件夹):

mv files/usr/local/bin

现在,我们可以更改工作文件夹并从任何地方访问脚本!

如何在Linux中创建自定义命令

在此屏幕快照中,我已将脚本移至/ usr / local / bin,并将一个文件夹移至“ cd ..”。 而且团队仍在工作!

这是在Linux中创建自定义命令的正确方法。 这只是Linux脚本编写中的冰山一角。 您可以编写复杂的逻辑循环并执行条件语句。 您也可以使用它为现有命令创建别名,或将它们组合在一起以自动执行! 如果这是您首次尝试Linux脚本,请准备在将来使用强大的功能。

快乐的脚本!

Sidebar