如何在unix中向所有用户发布命令

时间:2015-01-22 23:10:48

标签: bash unix command

如果我使用我的ID登录Unix,我的命令无效。

$ db2licm -l
-bash: db2licm: command not found

但是如果root以./db2licm -l格式给出相同的命令,他会得到有效的结果。

root如何发布命令以便我也可以使用它?

2 个答案:

答案 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