Ubuntu 14.04
你能帮我理解一下这个区别是什么意思吗?我正在尝试查看 nginx(一个 Web 服务器)。我想启动它。它会自动启动,但我已将其停止。现在我想看看文档中有什么:
michael@michael:~$ /etc/init.d/nginx -h
Usage: nginx {start|stop|restart|reload|force-reload|status|configtest|rotate|upgrade}
michael@michael:~$ cd /etc/init.d/
michael@michael:/etc/init.d$ nginx -h
nginx version: nginx/1.8.1
Usage: nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]
Options:
-?,-h : this help
-v : show version and exit
-V : show version and configure options then exit
-t : test configuration and exit
-q : suppress non-error messages during configuration testing
-s signal : send signal to a master process: stop, quit, reopen, reload
-p prefix : set prefix path (default: /usr/share/nginx/)
-c filename : set configuration file (default: /etc/nginx/nginx.conf)
-g directives : set global directives out of configuration file
嗯,nginx start 可以工作了。但我有点困惑。
您能帮我理解为什么从不同文件夹调用帮助会导致不同的消息吗?为什么 man nginx 没有提到启动 nginx 的任何信息(也许我忽略了它)?
答案1
这是因为第一个例子正在执行位于 /etc/init.d/nginx 的启动脚本
在第二个示例中,你只需输入一个裸名称,它就会按照你的 $PATH 变量查找命令,以找到第一个引用,该引用将是位于 /usr/sbin/nginx 的实际 nginx 二进制文件
这是两件不同的事情,如果你想在当前目录中执行一个文件,而不是自动让 bash 搜索 $PATH 变量中的位置,你应该在它前面加上 ./ ,就像这样
复制代码