如何在不指定路径的情况下运行我自己的程序

nac*_*o4d 11 command-line path executable

假设我已经编译了一些东西,然后像这样运行它:

$ /path/to/my/executable/mycmd
Hello World
Run Code Online (Sandbox Code Playgroud)

我需要做什么来运行它

$ mycmd
Hello World 
Run Code Online (Sandbox Code Playgroud)

从我电脑的任何地方?

roz*_*acz 15

您正在寻找的是PATH环境变量。它告诉shell,它需要在哪里寻找程序。您可以使用以下命令查看该变量的当前值echo

echo "$PATH"
Run Code Online (Sandbox Code Playgroud)

现在... 如果您想使用一些新程序,最佳做法是使用您的发行版的包管理程序安装它。但在这种情况下,我假设您正在处理的程序不是由任何可用软件包提供的。对于此类程序,您有两种选择:

  1. 安装程序的全系统,在您的系统没有一个地方把从包中安装任何文件。在大多数系统上,此类“安全”文件夹包括/usr/local/bin//opt/bin/- 这些应该已经在您的PATH. (看看这些文件夹里面,如果里面有很多文件,那么把你自己的程序放地方,你必须看看你的PATH. 中列出的其他文件夹。)
  2. 修改你的PATH变量。这不太安全,因为它定义了可以保存程序的附加文件夹,有人可能会欺骗您,将他自己的程序放在那里供您运行。

    您可以PATH临时修改变量,使用

    export PATH="$PATH:/path/to/your/executable"
    
    Run Code Online (Sandbox Code Playgroud)

    (注意$PATH after =),或者通过将上述行添加到您的.bashrc文件中(假设您使用bash)来永久。