我正在执行一个命令
./startup.sh nginx:start
我收到了这个错误信息
zsh: permission denied: ./startup.sh
为什么会发生这种事
llmtgqce1#
一定要给予它执行权限。
cd ~/the/script/folder chmod +x ./startup.sh
这将给予用户、组和其他人执行权限,因此要注意可能的安全问题。要将权限限制为单个访问类,可以用途:
chmod u+x ./startup.sh
这将只向用户授予exec权限For reference
t3psigkw2#
你也可以使用bash:
bash startup.sh
那你不需要执行许可。在MacOS Catalina 中,苹果已经将bash替换为zsh作为默认shell。这可能意味着,他们打算在未来删除bash,所以这可能不是一个选择,但与 Catalina 它仍然有效。
s1ag04yj3#
**从macOS Catalina **开始,您的Mac使用zsh作为默认登录shell和交互式shell。您也可以在早期版本的macOS中将zsh设置为默认值。如何更改您的默认shell无论您的用户帐户是配置为使用zsh(推荐)、bash还是其他shell,您都可以从用户和组首选项或命令行更改默认shell。
1.从用户和组首选项1.选取Apple菜单>“系统偏好设置”,然后点按“用户与组”。1.单击锁,然后输入您的帐户名和密码。1.按住Control键点按左侧用户列表中的用户名,然后选取“高级选项”。1.从“登录shell”菜单中选择一个shell,然后单击确定保存更改。点击链接了解更多详情-https://support.apple.com/en-in/HT208050
du7egjpx4#
您需要授予文件执行权限。有个办法导航到包含您的文件的文件夹并运行此命令-
chmod 755 <filename>
数字755的三个数字表示三种类型的用户的权限-所有者、组和其他。所以,755代表-| 数字(八进制)|二进制|读|写|可执行的|为|| - -----|- -----|- -----|- -----|- -----|- -----|| 七个|一百一十一|1| 1| 1|业主|| 5个|一百零一|1| 0| 1|群|| 5个|一百零一|1| 0| 1|其他|因此,此命令将所有三个权限-读取,写入和可执行权限授予所有者,而仅读取和可执行权限授予组和其他人。有关MacOS/Linux中权限的更多详细信息,请参见此处-https://askubuntu.com/questions/932713/what-is-the-difference-between-chmod-x-and-chmod-755
xxb16uws5#
另一个恼人的错误可能是sh脚本中的n个拼写错误。在下面的示例中,ZSH错误消息确实令人困惑。ZSH确实告诉你zsh: permission denied: startup.sh。但您有脚本的访问权限。问题是脚本中的Shebang行无效:
zsh: permission denied: startup.sh
#!/usr/local/bin sh
右Shebang线可以是例如:
#!/usr/bin/env sh
wyyhbhjk6#
下面的工作对我来说,但我不知道为什么。在进行以下更改之前,我的文件权限是-rwxr-xr-x。即使我有执行权限,但我仍然得到了权限拒绝错误。我用的是VS代码编辑器。我执行了chmod +x filename,文件权限仍然保持不变。这次唯一的区别是我能够运行文件。文件发生了更改,但不可见。我说它不可见的原因是,在我的编辑器的源代码控制选项卡中,我的新文件和旧文件看起来100%相同。如果我隐藏我的更改并执行该文件,则再次出现相同的错误。我不知道为什么以及如何工作,但值得一试。如果有人能向我解释为什么它没有工作的原因,我会非常高兴,因为我有相同的权限?另外,什么改变了我的文件,这是不可见的我?
-rwxr-xr-x
chmod +x filename
kpbwa7wx7#
请在进入终端中的任何目录之前使用“cd”
a1o7rhls8#
在命令开始前添加sudo,将保存您的时间,如
sudo
sudo anyTemninalCommand
8条答案
按热度按时间llmtgqce1#
一定要给予它执行权限。
这将给予用户、组和其他人执行权限,因此要注意可能的安全问题。要将权限限制为单个访问类,可以用途:
这将只向用户授予exec权限
For reference
t3psigkw2#
你也可以使用bash:
那你不需要执行许可。
在MacOS Catalina 中,苹果已经将bash替换为zsh作为默认shell。这可能意味着,他们打算在未来删除bash,所以这可能不是一个选择,但与 Catalina 它仍然有效。
s1ag04yj3#
**从macOS Catalina **开始,您的Mac使用zsh作为默认登录shell和交互式shell。您也可以在早期版本的macOS中将zsh设置为默认值。
如何更改您的默认shell无论您的用户帐户是配置为使用zsh(推荐)、bash还是其他shell,您都可以从用户和组首选项或命令行更改默认shell。
1.从用户和组首选项
1.选取Apple菜单>“系统偏好设置”,然后点按“用户与组”。
1.单击锁,然后输入您的帐户名和密码。
1.按住Control键点按左侧用户列表中的用户名,然后选取“高级选项”。
1.从“登录shell”菜单中选择一个shell,然后单击确定保存更改。
点击链接了解更多详情-https://support.apple.com/en-in/HT208050
du7egjpx4#
您需要授予文件执行权限。有个办法
导航到包含您的文件的文件夹并运行此命令-
数字755的三个数字表示三种类型的用户的权限-所有者、组和其他。
所以,755代表-
| 数字(八进制)|二进制|读|写|可执行的|为|
| - -----|- -----|- -----|- -----|- -----|- -----|
| 七个|一百一十一|1| 1| 1|业主|
| 5个|一百零一|1| 0| 1|群|
| 5个|一百零一|1| 0| 1|其他|
因此,此命令将所有三个权限-读取,写入和可执行权限授予所有者,而仅读取和可执行权限授予组和其他人。
有关MacOS/Linux中权限的更多详细信息,请参见此处-https://askubuntu.com/questions/932713/what-is-the-difference-between-chmod-x-and-chmod-755
xxb16uws5#
另一个恼人的错误可能是sh脚本中的n个拼写错误。
在下面的示例中,ZSH错误消息确实令人困惑。ZSH确实告诉你
zsh: permission denied: startup.sh
。但您有脚本的访问权限。问题是脚本中的Shebang行无效:右Shebang线可以是例如:
wyyhbhjk6#
下面的工作对我来说,但我不知道为什么。
在进行以下更改之前,我的文件权限是
-rwxr-xr-x
。即使我有执行权限,但我仍然得到了权限拒绝错误。我用的是VS代码编辑器。我执行了
chmod +x filename
,文件权限仍然保持不变。这次唯一的区别是我能够运行文件。文件发生了更改,但不可见。我说它不可见的原因是,在我的编辑器的源代码控制选项卡中,我的新文件和旧文件看起来100%相同。如果我隐藏我的更改并执行该文件,则再次出现相同的错误。我不知道为什么以及如何工作,但值得一试。
如果有人能向我解释为什么它没有工作的原因,我会非常高兴,因为我有相同的权限?另外,什么改变了我的文件,这是不可见的我?
kpbwa7wx7#
请在进入终端中的任何目录之前使用“cd”
a1o7rhls8#
在命令开始前添加
sudo
,将保存您的时间,如