24

我尝试在 vagrant 中处理一个项目。我已经发出命令vagrant ssh,并连接到虚拟机。现在我需要编辑.bashrc文件来设置源代码的路径。但首先我找不到那个文件。所以我google了一下,发现方法是 call command ~/.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 之间的关系。 在此处输入图像描述

4

4 回答 4

41

.bashrc不是要执行的,而是有来源的。试试这个:

. ~/.bashrc

或者,等效地

source ~/.bashrc

请参阅有关.(aka source) 内置的参考。


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

exec bash

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

于 2013-11-02T12:44:47.197 回答
23

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

nano ~/.bashrc

或者

gedit ~/.bashrc

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

xdg-open ~/.bashrc

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

source ~/.bashrc

或简单:

. ~/.bashrc 
于 2013-11-02T12:55:40.887 回答
9

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

sudo nano .bashrc

chmod 777 .bashrc 

一文不值

于 2013-11-02T21:59:49.727 回答
0

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

你有两个简单的选择:

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

    六.bashrc

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

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

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

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

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

于 2013-11-09T16:20:26.323 回答