我正在尝试在我的 Ubuntu 12.04.2 LTS 中安装 VMware Workstation。如果我执行以下命令:
sudo ./VMware-Workstation-9.0.1-894247.x86_64.bundle
Run Code Online (Sandbox Code Playgroud)
它立即完成并且安装永远不会开始。
如果我执行这个命令:
sudo sh ./VMware-Workstation-9.0.1-894247.x86_64.bundle
Run Code Online (Sandbox Code Playgroud)
安装程序可以成功启动。
为什么这会有所作为?
Bru*_*ira 17
如果文件未标记为可执行文件,则需要调用命令外壳解释器来执行它。
例子:
sudo sh foo
将打开FOO与sh
使用sudo的特权。
sudo bash foo
将打开FOO与bash
使用sudo的特权。
sh foo
将打开FOO与sh
使用用户的权限。
bash foo
将打开FOO与bash
使用用户的权限。
如果你将一个文件标记为可执行文件,你只需要调用它,./foo
并且因为它被标记为这样,它将被定义的命令 shell 解释器读取并执行,而无需定义一个。
ls -F
将列出文件并用*标记可执行文件。
要在文件上启用执行位(并使其可执行),请使用命令chmod +x foo
.
在您的情况下,要使您正在使用的文件可执行,您将使用该命令
chmod +x VMware-Workstation-9.0.1-894247.x86_64.bundle
然后你就可以运行它
sudo sh ./VMware-Workstation-9.0.1-894247.x86_64.bundle
或只需键入sudo ./VMware-Workstation-9.0.1-894247.x86_64.bundle
.
w4e*_*wet 14
Sh 是用于运行命令的 shell,因此使用 sudo 执行 sh 会为您提供一个 root shell。这意味着该 shell 中的所有命令都以 root 身份执行。我的猜测是脚本执行其他需要 root 的东西,但是当你只使用 sudo 而不是 sudo sh 时,其他东西会以普通用户身份执行,但是使用 sh 一切都将以 root 身份执行。
归档时间: |
|
查看次数: |
46994 次 |
最近记录: |