我对Linux环境的编程很新,所以我不知道要搜索什么才能自己回答这个问题。我需要了解应用程序如何将shell设置为接受某个命令来启动它们。例如,您可以通过执行命令:firefox。
从命令行启动Firefox我不知道这是在哪里定义的。 Makefile文件?配置脚本?在源代码本身?
任何有关这些Linux编程花絮的资源/阅读都将非常感谢!
谢谢。
答案 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以获取有关文件和程序的推荐位置的更多信息。