在 Oracle® Solaris 11.2 中排除系统管理问题

退出打印视图

更新时间: 2014 年 9 月
 
 

解决搜索路径的问题 (Command not found)

    "Command not found" 消息表示存在以下情况之一:

  • 命令在系统中不可用。

  • 命令目录不在搜索路径中。

要解决搜索路径问题,您需要知道存储命令的目录的路径名。

如果找到了该命令的错误版本,则一个包含同名命令的目录会出现在搜索路径中。在这种情况下,正确的目录可能稍后会出现在搜索路径中,或者根本不会出现。

使用 echo $PATH 命令可以显示当前的搜索路径。

使用 type 命令可以确定您所运行的命令是否是错误版本的命令。例如:

$ type acroread 
acroread is /usr/bin/acroread

如何诊断和更正搜索路径问题

  1. 显示当前搜索路径,以验证命令的目录是否不在路径中,或验证该路径是否有拼写错误。
    $ echo $PATH 
  2. 请检查以下内容:
    • 搜索路径是否正确?

    • 该搜索路径是否在找到了该命令另一个版本的其他搜索路径之前列出?

    • 命令是否位于其中一个搜索路径中?

    如果需要更正路径,请转到步骤 3。否则,请转到步骤 4。

  3. 将路径添加到相应文件,如下表所示。
    Shell
    文件
    语法
    备注
    bash 和 ksh93
    $HOME/.profile
    $ PATH=$HOME/bin:/sbin:/usr/local /bin ...
    $ export PATH
    用冒号分隔路径名。
  4. 按以下方式激活新路径:
    Shell
    路径位置
    激活路径的命令
    bash 和 ksh93
    .profile
    . $HOME/.profile
    .login
    hostname$ source $HOME/.login
  5. 验证新路径。
    $ which command
示例 3-1  诊断和更正搜索路径问题

此示例显示执行 type 命令后发现 mytool 可执行文件不在搜索路径中的任何目录内。

 $ mytool
  -bash: mytool: command not found
  $ type mytool
  -bash: type: mytool: not found
  $ echo $PATH
  /usr/bin:
  $ vi $HOME/.profile
  (Add appropriate command directory to the search path)
  $ . $HOME/.profile
  $ mytool

如果找不到某一命令,请在手册页中查看其目录路径。