我正在阅读MySQL的手册 。
他们build议我这个命令
cd /usr/local/mysql sudo ./bin/mysqld_safe // it seems that sudo = . + master rights
是相同的
. /usr/local/mysql/bin/mysql // only ., no master rights
这两个命令是一样的吗?
. /some/path
执行[或包含 – 执行]你指向的shell脚本。
./some/path
[注意点后缺less空格]使用相对path[从当前目录,而不是从文件系统的顶部]执行程序/脚本]
sudo用其他[通常是root]用户的权限执行给定的命令。
之间有区别
cd /usr/local/mysql ./bin/mysqld_safe
和
/usr/local/mysql/bin/mysqld_safe
不同之处在于当前的工作目录。 对于mysql可能不会计量,但对于其他/使用相对path写得不好的程序 – 它可能会计量。
不,这些命令是完全不同的。 你可能有一个错字 – 下面的两个命令是等价的:
cd /usr/local/mysql sudo ./bin/mysqld_safe
和:
sudo /usr/local/mysql/bin/mysqld_safe
来自Freshmeat :
Sudo(su“do”)允许系统pipe理员授权某些用户(或用户组)以权限运行某些(或全部)命令,同时提供命令及其参数的审计跟踪。
我不确定你对此感到困惑,但是你可能会基于这个问题。
如果你只是为什么而困惑
cd /usr/local/mysql ./bin/mysqld_safe
是相同的
/usr/local/mysql/bin/mysqld_safe
这是因为在UNIX中, 表示当前目录。 所以用这种方法,你不会search你最近的mysqld_safe的PATHvariables并运行它,你将特别运行/ usr / local / mysql / bin /。
在这个命令中:
cd /usr/local/mysql sudo ./bin/mysqld_safe
启动mysql服务器。 正如其他人所说,这个时期代表了当前的目录。 以这种方式使用它,例如,覆盖$ PATH或执行不在$ PATH中的程序。 请记住,在bash等,当前目录不在$ PATH中,除非你添加“。” (不build议出于安全原因)。
那么这个命令允许你访问mysql :
/usr/local/mysql/bin/mysql
请注意,此命令中根本没有点(“。”)。