$PATH 和可执行文件有问题

$PATH 和可执行文件有问题

我生成的目录中有一个 unix 可执行文件。我相信我需要在我的目录中获取此目录,$PATH以便 unix 可执行文件可执行,但源代码的文档表明我需要编辑我的 shell 配置文件以添加$home/meme/bin到我的 shell 路径。

答案1

如果您希望能够通过在命令行中键入程序名称来执行程序,则该程序可执行文件必须位于PATH环境变量中列出的目录之一中。您可以像这样查看变量的当前值(这$是您的提示,下面的值是一个示例):

$ echo $PATH
/home/drbunsen/bin:/usr/local/bin:/usr/bin:/bin

你有多种选择;虽然 #1 和 #2 涉及不太高级的概念,但我推荐 #3,它在实践中工作量较少:

  • 您可以将可执行文件放在PATH.例如,如果/home/drbunsen/bin已经在您的 上PATH,您可以将可执行文件放在那里。或者/usr/local/bin,如果您希望所有用户都可以使用该可执行文件,则可以将其放入其中。
  • 您可以添加可执行文件所在的目录PATH。编辑该文件~/.profile~/意味着该文件位于您的主目录中)(如果该文件不存在,则创建该文件)。添加这样一行:

    PATH=$PATH:$HOME/meme/bin
    

    (请注意,它是$HOME, ,而不是$home;unix 通常区分大小写。您也可以编写~/meme/bin, ,它是位于文件路径开头的~同义词。)更改将在您下次登录时生效。您可以键入以下内容$HOME终端中的同一行,它将影响该终端中运行的 shell 以及从该终端启动的任何程序。

  • 我建议的方法是将可执行文件与程序中的其他文件一起保留在其自己的目录中,但两者都不进行更改PATH
    保留可执行文件的$HOME/meme优点是,如果您想要删除或升级程序,一切都在一个地方。有些程序甚至需要这样做才能找到它们使用的文件。不更改的PATH优点是安装和卸载程序的工作量更少。
    为了获得两全其美的效果,请创建一个符号链接在您的目录中PATH,指向实际的可执行文件。从命令行运行如下命令:

    cd ~/bin
    ln -s ../meme/bin/* .
    

    假设它~/bin已经在你的PATH;上。如果不是,请~/.profile按照上面的说明添加。如果您愿意,请选择另一个位置。现在使程序可用只需创建符号链接即可;使它们不可用只需删除符号链接即可;通过查看符号链接,您可以轻松跟踪手动安装的程序以及它们所在的位置。

相关内容