-bash: /Users/myname/.bash_profile: 权限被拒绝

24

我安装了rvm(ruby版本管理器),成功了,但是我收到了以下警告:

警告:您有'〜/ .profile'文件,您可能希望加载它,
为此,请将以下行添加到'/Users/myname/.bash_profile'中:source ~/.profile

我是新手开发者,对于终端和所有这些都不太熟悉!但是迟到总比不来强?!

我在终端中输入:

'/Users/myname/.bash_profile'

并获得了以下的行

-bash: /Users/myname/.bash_profile: Permission denied
myname-MacBook-Pro:~ myname$

我卡在这里了!我需要为Drupal(Omega开发)获取VRM,并确保一切正常工作。谢谢你的帮助。


你只需要按照它告诉你的去做(参考警告)。 - devnull
尝试使用sudo gedit /Users/myname/.bash_profile命令。 - Uri Agassi
你可能想要添加一个RVM标签。 - Cary Swoveland
4个回答

33

通过在终端中运行以下命令来进入.bash_profile文件:

vim ~/.bash_profile

如果您仍然收到权限被拒绝的消息,请在vim命令之前运行sudo.

sudo vim ~/.bash_profile

然后,按下insert按钮。接着将文本source ~/.profile添加到.bash_profile中,按下esc,然后在键盘上按下:x以保存并关闭文件。打开一个新的终端窗口应该可以消除错误。


5
你在描述如何使用vim时漏掉了几个步骤(进入和退出插入模式)。我喜欢vim,但期望一个对命令行不熟悉的人使用它来编辑文件有点过分。 - chepner
4
谢谢,Bobby。我需要在你的回答周围进行一些谷歌搜索来进行翻译。如果有帮助其他人的话:打开bash_profile(使用vim)后,输入“i”(不要引号),你会看到屏幕底部出现消息-INSERT-。然后,输入你的行内容(source ~/.profile),按下Esc键,输入:w并最终按下Enter键保存。关闭并重新打开终端。这对我有用! - Zel
感谢@Booby和@Zel。我的情况有点不同,我的.bash_profile是只读的,当我输入“:wq”时,它显示错误:“只读,添加!以覆盖”(我记不清了)。所以我加了“:wq!”然后我的文件变得可编辑了,也不再显示错误了。 - samthui7

9

输入文件名会尝试执行它,但你想要的是编辑它。

打开TextEdit(或你喜欢的编辑器),并在其中打开文件/Users/myname/.bash_profile

你可以完全通过UI来完成这个操作,但如果你想要,也可以从终端开始一个编辑器:

open -a TextEdit /Users/myname/.bash_profile

您可以将以下命令行添加到文件并保存:

source ~/.profile

关闭终端并重新打开以应用更改。


谢谢。我按照您的建议操作,但是出现了警告:“您不拥有文件“.bash_profile”,也没有写入它的权限。”我尝试在open命令前加上sudo(我知道这没有意义,但是...),但还是不行。 - Zel
谢谢!@that_other_guy - 我发现你的答案最有帮助。 - ARTLoe

1
当我尝试使用ssh连接服务器时,遇到了以下错误: -bash: /home/user/.bash_logout: 权限被拒绝 为解决此问题,您的用户主目录必须具有执行权限。
chmod +x <user_home_directory>

0

下次必须重新登录。如果您添加了 .profile 文件

export PATH+=:$HOME/bin

不要像我一样一直使用 .bash_profile,你应该将 ~/bin 搜索目录插入到 PATH 的中间而不是末尾。这样 .profile 就会在本地配置文件形成之前被调用,并且一些其他系统目录将在其后添加。这是不好的,因此您的主目录二进制文件的优先级将高于某些系统二进制文件,并且可能会更改具有相同名称的不良行为。因此,您需要将 PATH 添加到 .bash_profile 而不是 .profile,这可以保证将您的主目录 bin 目录添加到 PATH 的末尾。但是绝不能删除 ~/.profile,因为它需要添加其他数据。此文件仅在第一次登录时调用,而 .bash_profile 则在第二次登录时每次都会调用 su without -l,然后返回。如果您不介意,在 PATH 中将获得两个主目录 bin 目录,接下来是树等。这不好,所以您必须进行以下更正:

p=:$HOME/bin && test `expr $PATH : '.*'"$p"` -gt 0 || export PATH+=$p || true

可以保证,home bin目录在您使用su更改有效用户后返回时只会添加一个独立的目录,无论您登录多少次。 最好在结尾处写上true,这样如果在导出PATH+=$p命令中发生了一些不可预测的错误(有时会发生这种情况),您的配置文件加载将停止,您将无法登录。可以保证此行将运行而不会生成任何错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接