如果我使用我的ID登录Unix,我的命令无效。
$ db2licm -l
-bash: db2licm: command not found
但是如果root以./db2licm -l
格式给出相同的命令,他会得到有效的结果。
root如何发布命令以便我也可以使用它?
答案 0 :(得分:1)
./
命令开头的root
表示它位于当前目录(大概是root
的主目录)。为了使其可供其他用户访问,应将其移动或复制到其可执行搜索路径中的目录,例如/usr/bin
,并且应设置其权限位以便任何人都可以执行它(通常模式0755)
通常这种事情应该通过程序的安装程序完成,而不是手动完成。
答案 1 :(得分:0)
你的问题没有一个答案,因为这取决于很多因素。
使用强>
首先,为了从您的帐户运行程序,您需要对可执行文件具有执行权限。您可以使用ls -l
检查您确实拥有执行权:
$ ls -l /bin/bash
-rwxr-xr-x 1 root root 934336 2014-09-27 04:01 /bin/bash
这里,字符rwxr-xr-x
分别用于用户(root),组(root)和其他访问(每个用户的三个字符/标志)。在我的情况下,任何人都可以执行/bin/bash
,因为在最后三个字符块(rwxr-xr- x )上设置了x
标志。
查找可执行文件
其次,系统需要能够找到可执行文件。在您的示例中,您指定root
通过在命令名前添加./
来启动可执行文件,这基本上意味着“执行位于当前目录中的此程序”。在文件系统的树结构中的任何其他位置导航,命令将不再执行。
要在不指定其确切路径的情况下执行命令,此命令必须位于PATH
环境变量中包含的目录中。您可以将命令的目录添加到PATH
变量,将该命令移动到PATH
变量中已存在的目录(如/usr/bin
),或者创建一个已存在的目录的符号链接在PATH
变量中,指向当前目录中的命令。
添加到路径
如果您想永久性地将可执行文件的目录添加到PATH
环境变量中,则只需修改您的个人资料(如果您使用~/.bashrc
,通常需要bash
或~/.profile
)添加以下行:
export PATH="/the/directory/to/add:$PATH"
请注意您的路径与:
变量之间的$PATH
。