设置bash命令行变量以启动我的应用程序

时间:2009-07-13 20:51:23

标签: linux bash command-line

我对Linux环境的编程很新,所以我不知道要搜索什么才能自己回答这个问题。我需要了解应用程序如何将shell设置为接受某个命令来启动它们。例如,您可以通过执行命令:firefox。

从命令行启动Firefox

我不知道这是在哪里定义的。 Makefile文件?配置脚本?在源代码本身?

任何有关这些Linux编程花絮的资源/阅读都将非常感谢!

谢谢。

6 个答案:

答案 0 :(得分:5)

Firefox由命令“firefox”启动,因为$ PATH环境变量中的一个文件夹中有一个名为“firefox”的可执行文件。

答案 1 :(得分:2)

你在谈论PATH变量吗?看起来你好像。

在linux中,您应该能够输入:“echo $ PATH”(不带引号)并获得一个“:” - 程序所在位置的分隔列表(如firefox)。

如果您需要在路径中添加内容,则应该可以:

export PATH=$PATH:/another/directory

在你的shell中(很可能是bash)

您也可以输入:

which firefox

显示firefox可执行文件的位置。

答案 2 :(得分:2)

通常,shell将有一个名为$ PATH set的环境变量。这只是有人键入命令时要查看的所有目录的有序列表。一旦找到一个可执行文件(我的意思是一个你有执行权限的文件,而不是一个以.exe结尾的文件),它与输入的内容同名,它就会运行该文件。 $ PATH中的公共目录可能是/ bin,/ usr / local / bin,〜/ bin等。

因此,当你输入'firefox'时,shell会查看$ PATH中的所有目录,直到它找到/ usr / local / bin / firefox,然后运行它。要使自己的程序以相同的方式运行,您需要将它们(或它们的符号链接)放在可能位于每个用户路径中的目录中(/ usr / local / bin /是一个不错的选择) ),或者您需要让您的用户将您的程序目录添加到$ PATH。

有关更完整的说明,请参阅Wikipedia article有关$ PATH变量。

答案 3 :(得分:0)

作为前面提到的修改$ PATH的替代方法,您还可以在$ PATH中已有的某个目录中复制或链接您的可执行文件。更具体地说,/usr/local/bin/在大多数UNIX系统上都可以用于此目的(在操作系统的默认包管理之外安装软件)。

答案 4 :(得分:0)

它必须像其他人提到的那样在路径中,但您可能还需要使用以下内容使其可执行:

chmod +x /path/to/file

如果它是一个脚本,顶部通常会有一个shebang告诉os使用什么来执行它:

#! /usr/bin/python

答案 5 :(得分:0)

通常,/opt中的大型软件包安装了PATH中的包装脚本或链接。例如,在我的系统上,Google Picasa安装了/opt/google/picasa/usr/bin/picasa/opt/google/picasa/3.0/picasa有一个符号链接

Firefox在我的系统上/usr/bin/firefox处,这是/usr/bin/firefox-3.0的符号链接,它本身是/usr/lib/firefox-3.0.11/firefox.sh的符号链接 - 该shell文件在最终运行之前摸索{ {1}}(除非它找到了做其他事情的理由)。最后,这是一个二进制可执行文件。所以/usr/lib/firefox-3.0.11/firefox是我安装/usr/lib的地方。

您可以使用此命令查找程序的位置:

firefox

然后,您可以找到它使用的文件类型:

type -a firefox

另请参阅Filesystem Heirarchy Standard以获取有关文件和程序的推荐位置的更多信息。