.bashrc:权限被拒绝

Posted

技术标签:

【中文标题】.bashrc:权限被拒绝【英文标题】:.bashrc: Permission denied 【发布时间】:2013-11-13 13:17:13 【问题描述】:

我尝试在 vagrant 中处理一个项目。 我已经发出命令vagrant ssh,并连接到VM。现在我需要编辑.bashrc 文件来设置源代码的路径。但首先我找不到那个文件。所以我google了一下,发现方法是调用命令~/.bashrc。但是这样做我会收到消息,我无法访问它:

[vagrant@nupic-vagrant:~]$ ~/.bashrc
-bash: /home/vagrant/.bashrc: Permission denied

那么现在该怎么办?

UPD。 我找不到 .bashrc 文件。 当我尝试发出命令 ls -a 时,我得到以下信息:

[vagrant@nupic-vagrant:~]$ ls -a
.              .bash_logout   cleanup.sh   sshd.sh        .veewee_params
..             .bash_profile  minimize.sh  vagrant.sh     .veewee_version
.bash_history  .bashrc        .ssh         .vbox_version  .zsh_profile
[vagrant@nupic-vagrant:~]$ locate .bashrc
/etc/skel/.bashrc
/home/vagrant/.bashrc
/var/chef/backup/etc/skel/.bashrc.chef-20130614181911
/var/chef/backup/home/vagrant/.bashrc.chef-20130614181912
[vagrant@nupic-vagrant:~]$

但只有我能找到其中一些文件的地方是安装 cygwin 的目录。请看插图,它们反映了目录 vagrant 和 cygwin 之间的关系。

【问题讨论】:

【参考方案1】:

.bashrc 不是要执行的,而是要获取的。试试这个:

. ~/.bashrc

或者,等价

source ~/.bashrc

请参阅有关 .(又名 source)内置函数的参考。


请注意,如果您要在修改 ~/.bashrc 文件后重新启动 Bash 会话,您不妨使用:

exec bash

这将替换您当前的 Bash 会话(感谢 exec)由一个新会话。

【讨论】:

我做到了,但似乎什么也没发生。只显示下一个输入:**[vagrant@nupic-vagrant:~]$ ** 那么如何编辑它? @srgg6701 没有似乎发生,但它是有源的!要编辑它,错误,只需使用您最喜欢的编辑器进行编辑。如果你喜欢vim,就做vim ~/.bashrc,如果你喜欢nano,就做nano ~/.bashrc,如果你喜欢ed,你可能知道该怎么做:) 是的,它看起来很愚蠢,我知道。但我从未使用过 vagrant、linux env 等。我从未遇到过文件存在的情况,但我只能在从命令行运行一些文本编辑器后才能编辑它。请考虑我只在 Windows 上工作。我这里有一些编辑器,比如 notepad++,但不知道如何在命令行中使用它。我应该设置一个路径变量以使其成为可能吗? @srgg6701 就是一个普通文件,用你最喜欢的编辑器编辑吧!您根本不需要任何命令行来编辑它。只需在您的资源管理器中找到它并进行编辑。 我看不到那个文件 (.bashrc)。我检查了整个 vagrant 目录。或者它可能在其他地方?如果我尝试命令 ls (或 dir),它只会显示那些:cleanup.sh minimize.sh sshd.sh vagrant.sh【参考方案2】:

如果您想编辑该文件(或一般的任何文件),您不能简单地在终端中写入其名称来编辑它。您必须使用文本编辑器的命令来执行此操作。例如:

nano ~/.bashrc

gedit ~/.bashrc

一般来说,对于任何类型的文件:

xdg-open ~/.bashrc

在终端中仅写入~/.bashrc,这将尝试执行该文件,但.bashrc 文件并不意味着是可执行文件。如果你想执行其中的代码,你可以像下面这样获取它:

source ~/.bashrc

或简单:

. ~/.bashrc 

【讨论】:

我没有 nano/gedit。我的操作系统是windows。如果理解正确,如果在 env 路径变量中设置了这些编辑器的路径,这可以工作吗?还是有其他方法可以达到结果? 您指出的两个命令都没有结果 - 它只是显示下一个输入行。 试试xdg-open ~/.bashrc。 ...您应该安装了一个文本编辑器。 [vagrant@nupic-vagrant:~]$ 。 〜/ .bashrc [vagrant@nupic-vagrant:〜] $ xdg-open〜/ .bashrc /usr/bin/xdg-open:第402行:htmlview:找不到命令/usr/bin/xdg-open:第402行: firefox:找不到命令 /usr/bin/xdg-open:第 402 行:mozilla:找不到命令 /usr/bin/xdg-open:第 402 行:netscape:找不到命令 /usr/bin/xdg-open:第 402 行:链接:找不到命令 /usr/bin/xdg-open:第 402 行:lynx:找不到命令 xdg-open:没有可用于打开“/home/vagrant/.bashrc”的方法 @srgg6701 怎么样:nano ~/.bashrcvi ~/.bashrcvim ~/.bashrced ~/.bashrcjoe ~/.bashrcpico ~/.bashrc... 应该安装一个编辑器。如果没有,请尝试安装一个。【参考方案3】:

如果您无法访问该文件并且您的操作系统是任何 linux 发行版或 mac os x,那么这些命令中的任何一个都应该可以工作:

sudo nano .bashrc

chmod 777 .bashrc 

一文不值

【讨论】:

【参考方案4】:

.bashrc 文件位于您的用户主目录中(~/.bashrc 或 ~vagrant/.bashrc 都解析到相同的路径),在 VM 的文件系统中。此文件在主机上是不可见的,因此您不能使用任何 Windows 编辑器直接对其进行编辑。

你有两个简单的选择:

    了解如何使用基于控制台的文本编辑器。我最喜欢的是 vi(或 vim),它需要 15 分钟来学习基础知识,而且对于简单的编辑来说比其他任何东西都快。

    vi .bashrc

    将 .bashrc 复制到 /vagrant(这是一个共享目录)并使用 Windows 编辑器对其进行编辑。确保不要使用任何扩展程序将其保存回来。

    cp .bashrc /vagrant ...使用您的主机编辑... cp /vagrant/.bashrc .

我建议您了解基于命令行的编辑器。一旦你在虚拟机内部工作,最好呆在那里,否则你可能会感到困惑。

您(流浪用户)是您家 .bashrc 的所有者,因此您有权对其进行编辑。

编辑完成后,您可以通过键入执行它 源.bashrc 我更喜欢注销并再次登录(登录时可能会执行多个文件)。

【讨论】:

以上是关于.bashrc:权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

让我们加密 SSL 无法以“错误:EACCES:权限被拒绝,打开 '/etc/letsencrypt/live/domain.net/privkey.pem'”开始

iOS 审核被拒问题总结

程序员面试被拒,问清原因后愣了,网友:这么拒绝人就过分了吧

iOS APP上架被拒重新提交审核教程

testflight上架被拒重新提交APP审核教程

github提交用户权限被拒