我安装了一个从互联网上下载的应用程序,一切似乎都正常,但在我键入它的名称后,却总是得到一个“command not found”消息。我知道我键入的名称是正确的,它为什么无法启动呢?
如果你想从 shell 提示下启动一个应用程序却不奏效,试着在应用程序的可执行名称前面添加一个 ./(譬如 /usr/local/bin/my-executable)。
假设你下载了 setiathome 客户应用程序,你想试用它,并且你遵循了安装软件的所有指令,在你的主目录中创建了一个叫做 seti/ 的子目录。现在,使用该可执行文件的完整路径来启动这个应用程序,如下所示:
/home/joe/seti/setiathome |
你之所以要使用完整路径名来启动程序是由于,可执行文件没有被放置在你的用户 shell 环境所知的目录中(如 /usr/local/bin)。
你可以定制该设置,因此你便不必每次都键入应用程序的完整路径名。要达到这个目的,你必须编辑你的 PATH 变量。
如果你需要频繁地启动位于 shell 搜索的路径之外的程序,你就得编辑你的用户 shell 配置文件来添加包含你想运行的文件的目录。你可以通过在你的 PATH 环境变量中添加该目录来达到这个目的。
小心 | |
---|---|
这里的说明仅仅是用于普通用户帐号的。请避免修改根用户的 .bash_profile 之类的文件,因为它会造成潜在的安全危险。 |
在 shell 提示下启动一个文本编辑器,如 gedit 或 vi。你可以键入下面的命令来打开叫做 .bash_profile 的文件:
gedit .bash_profile |
你将会看到一条 PATH 声明,与下面的输出相似。
PATH=$PATH:$HOME/bin:/usr/local/bin: |
在声明的结尾处,添加 $HOME/seti,如下所示:
PATH=$PATH:$HOME/bin:/usr/local/bin/:$HOME/seti: |
保存文件并退出文本编辑器。
这时,你便可以键入下面的命令来使 .bash_profile 中的改变立即生效:
source .bash_profile |
通过在你的 .bash_profile 文件中添加路径,你可以在这些路径中保存工具和程序而不必在命令前键入 ./ 来执行它。
窍门 | |
---|---|
关于使用和配置 shell 提示的详细信息,请参阅第13章 。 |