$PATH 和可执行文件的问题

dr.*_*sen 8 path executable

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

Gil*_*il' 10

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

$ echo $PATH
/home/drbunsen/bin:/usr/local/bin:/usr/bin:/bin
Run Code Online (Sandbox Code Playgroud)

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

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

    PATH=$PATH:$HOME/meme/bin
    
    Run Code Online (Sandbox Code Playgroud)

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

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

    cd ~/bin
    ln -s ../meme/bin/* .
    
    Run Code Online (Sandbox Code Playgroud)

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