【问题标题】:Setting bash command-line variable to start my application设置 bash 命令行变量以启动我的应用程序
【发布时间】:2009-07-13 20:51:22
【问题描述】:

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

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

任何关于 Linux 编程花絮的资源/阅读都将不胜感激!

谢谢。

【问题讨论】:

    标签: linux bash command-line


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您是在谈论 PATH 变量吗?看来你是。

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

      如果你需要在你的路径中添加一些东西,你应该可以这样做:

      export PATH=$PATH:/another/directory
      

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

      您也可以输入:

      which firefox
      

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

      【讨论】:

        【解决方案3】:

        通常,shell 会设置一个名为 $PATH 的环境变量。这只是当有人键入命令时要查看的所有目录的有序列表。一旦它找到一个与键入的名称相同的可执行文件(我的意思是您具有执行权限的文件,而不是以 .exe 结尾的文件),它就会运行该文件。 $PATH 中的常用目录可能是 /bin、/usr/local/bin、~/bin 等。

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

        有关更完整的描述,请参阅有关 $PATH 变量的Wikipedia article

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

            它必须像其他人提到的那样位于路径中,但您可能还需要通过以下方式使其可执行:

            chmod +x /path/to/file
            

            如果它是一个脚本,通常在顶部有一个 shebang,告诉操作系统使用什么来执行它:

            #! /usr/bin/python
            

            【讨论】:

              【解决方案6】:

              通常,大型软件包安装在/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 文件不断摸索,直到它最终运行 /usr/lib/firefox-3.0.11/firefox(除非它找到原因做其他事情)。最后,这是一个二进制可执行文件。所以/usr/lib 是安装firefox 的位置,对我来说。

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

              type -a firefox
              

              然后,你可以看看它使用的是什么类型的文件:

              file /usr/bin/firefox
              

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

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2017-09-18
                • 2012-08-30
                • 2014-06-04
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-04-24
                相关资源
                最近更新 更多