Answers:
简短的答案是,要运行该程序,无论您使用什么目录,都需要在搜索路径中包含该程序的目录。可以通过将程序放入该路径中已经存在的文件夹中或将新文件夹添加到该路径中来解决该问题,无论哪种方法都可以。最佳答案取决于:
该程序是您从源代码编译而来的已下载程序吗?
它很可能已经具有安装机制。在以根用户身份编译程序的文件夹中,运行“ make install”
该程序是否为您要下载的程序,可以作为计算机上标准程序的一部分使用?
将此类应用程序放入标准文件夹中很有意义。对于此类程序,通常使用/ usr / local / bin等目录。您将需要root用户访问权限才能执行此操作。
这是您为自己编写的程序,并且/或者您在计算机上没有特殊特权。
在主目录中创建一个名为“ bin”的文件夹,并将程序放在该文件夹中。您可能需要编辑登录脚本以将完整路径添加到此文件夹(例如/ usr / home / jeremy / bin)
尽管您可以仅将其当前目录添加到搜索路径,但是您必须继续对每个新程序执行此操作-从长远来看,这将需要更多工作。
/bin
出于多种原因,最好不要在目录中放置指向该文件的链接。
/bin
目录是应该保留其所需的运行系统程序(之类的东西chmod
,mkdir
等等)。您实际上可以将可执行文件放置在/usr/bin/
甚至/usr/local/bin/
。当然,您已经在那时手动安装了该程序。您的发行版将不会像其他程序那样跟踪它-您必须在必要时手动升级它,并在需要时手动删除它。另外,您还必须知道它所依赖的程序包(听起来您已经在使用该程序了,所以已经解决了,但总的来说……)。
除非我设置一个我希望其他用户使用的程序,否则我通常不会这样做:我仅在主目录中为我创建一个bin目录,然后编辑shell配置文件以添加~/bin/
到我的PATH
环境变量中。我发现跟踪以这种方式安装的程序更加容易,因为它与系统的其余部分是分开的。
如果要foo
在shell当前所在的目录中运行命令,则基本上有两个选择:
键入./foo
在shell提示符。
将.
目录(.
是“当前目录”的名称)添加到PATH
环境变量;如何执行此操作取决于您使用的shell:
请注意2.在多用户系统上存在安全风险:想象您cd
要建立目录,/tmp
并且恶意用户在其中创建了一个名为的恶意软件二进制文件ls
。