在linux操作系统下运行可执行文件需要这样操作【./test.sh】。这里有个关键符号【.】这是什么意思哪。要是看了前面我写了关于【.】与【..】的解释,这里似乎就明白了。【./test.sh】的意思就是执行当前目录下的test.sh文件。为啥为得加个【./】,其实是为了安全,如果我们的操作系统可以直接执行可执行文件的话。那么比如有人在当前目录写了个和系统命令【ls】一样的可执行文件,但是命令内容确实格式化分区,那可就惨啦。所以必须通过这种方式来运行我们的可执行文件。

那有没有方法把可执行文件变为系统命令哪?当然可以请参看下面的例子:

我想把nagios的命令作为系统命令来执行:

[root@monitor ~]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/nagios/bin/
[root@monitor ~]# cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/local/nagios/bin/

export PATH
unset USERNAME

 

这样root用户就可以直接执行nagios的命令了。