.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 ~/.bashrc
或 vi ~/.bashrc
或 vim ~/.bashrc
或 ed ~/.bashrc
或 joe ~/.bashrc
或 pico ~/.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'”开始