如何创建我自己的终端命令

如何创建我自己的终端命令

我知道如何创建自定义终端命令,这对于我在文件夹中编译所有 Java 类非常有用。我还看到,为了做到这一点,人们通常会创建一个文件夹 ~/bin,并将文件 .sh 和他们希望运行的行放在其中,但我无法很好地理解它,例如,我创建了一个 compile.sh,其中包含一些行

-gcc file -o file
-gcc file1 -o file1

但是当我阅读时,我还需要在隐藏在主文件夹中的名为 .bashrc 的文件中添加一行,但我不知道该怎么做,有没有更简单的方法可以编辑此文件?执行此操作后,我的自定义命令将是 .sh 文件的名称(编译)?

答案1

让计算机的所有用户都可以使用 Bash 脚本的最简单方法是将它们放在 中/usr/local/bin。但这要求您具有管理员权限。

  1. 创建脚本:

    打开您最喜欢的文本编辑器并写下您希望脚本运行的所有命令,每行一个命令。

    您可以通过以 开始一行来向 Bash 脚本添加注释#

    完成后,将下面这一行作为脚本顶部的第一行添加。它被称为“shebang”,用于告诉 shell 使用哪个解释器来执行脚本。

    #!/bin/bash
    

    这是一个完整脚本的简单示例,运行您在问题中提到的两个命令:

    #!/bin/bash
    
    # Compile 'file':
    gcc file -o file
    # Compile 'file1':
    gcc file1 -o file1
    
  2. 将脚本移动到正确的位置:

    您应该为所有用户放置自己的脚本的位置是/usr/local/bin

    由于该目录归用户所有root,因此您必须是管理员并使用sudo才能将文件移动到那里。

    我假设您在主目录中创建了脚本~/my_script.sh。只需打开终端并输入以下命令,将其替换SCRIPTNAME为您想要的名称。此名称将是您必须输入才能运行它的命令。.sh文件扩展名不是必需的。

    sudo mv ~/myscript.sh /usr/local/bin/SCRIPTNAME
    
  3. 设置正确的所有者和权限:

    该脚本应由 拥有并可由 写入root,但每个人都可读取和执行。以下两个命令可确保这一点:

    sudo chown root: /usr/local/bin/SCRIPTNAME
    sudo chmod 755 /usr/local/bin/SCRIPTNAME
    
  4. 运行脚本并享受:

    现在您只需在终端上输入SCRIPTNAME(或无论您如何称呼它)即可执行脚本。

答案2

虽然编写脚本是一种非常方便的执行方式一个文件中的许多命令,我建议使用只需要一两个命令的函数。

以下面的函数定义为例

compile()
{
  gcc "$1" -o "${1%%.*}" && printf "<<< Compiled successfully\n"
}

通过将其放入您的.bashrc文件中(然后运行source ~/.bashrc或打开新的终端选项卡),您可以从任何地方运行此命令,而无需~/bin添加到您的PATH变量中,并提供文件名作为命令行参数,如下所示

compile somecode.c

附注:您只需从命令行调用即可编辑该gedit ~/.bashrc文件

对于那些想知道"$1"和是什么意思的人"${1%%.*}""$1"指的是第一个命令行参数(在本例中"somecode.c"),至于"${1%%.*}"- 那是参数扩展,特别是那个执行后缀删除的参数扩展,它会丢弃点后面的所有内容。换句话说, 变成了somecode.csomecode 有关更多信息,请阅读bash 手册页参数扩展部分

答案3

在开始之前,我想澄清一下,您不是在创建新的命令,而是在创建可以作为可执行文件运行的脚本。但它们的行为方式与命令相同,因为您可以从任何地方运行它们。

如果您的主文件夹中没有名为“bin”的文件夹,请创建一个。

现在打开一个终端窗口并输入nano ~/.bashrc

这将打开一个编辑器。在此文件的底部,添加一行新内容PATH="$HOME/bin:$PATH"

现在按 CTRL+O(字母 o,而不是零)保存文件,然后按 ENTER。按 CTRL+X 退出编辑器。注销并重新登录以使更改生效,或者如果不起作用,请重新启动计算机。

现在,您在 bin 文件夹中创建的任何脚本都可以在终端窗口的任何位置访问。

您可以使用 nano、gedit(Ubuntu 图形文本编辑器)或任何您想要的文本编辑器创建这些脚本。只需记住将脚本保存在 ~/bin 文件夹中并使文件可执行即可。有两种方法可以做到这一点:

GUI:右键单击文件并转到权限选项卡,然后选中“允许作为程序执行”框。

终端 :chmod +x /location/of/your/file

相关内容