我在Windows 7 64位上安装了Cygwin,我在/.bashrc
位置的位置是C:/cygwin64/home/admin/bashrc
,但我无法从Cygwin看到它,它说:
bash:/.bashrc:没有这样的文件或目录
我尝试使用以下命令导航到该文件夹:
cd /cygdrive/c/cygwin64/home/admin/
然后使用:
/.bashrc
但它说:
没有这样的文件或目录
如何查看该文件?
答案 0 :(得分:2)
我的Cygwin安装遇到了同样的问题。
CYGWIN_NT-6.1 2.5.2(0.297 / 5/3)x86_64 Cygwin
我在我的(cygwin)主目录中创建了一个〜/ .bashrc文件,但我设置的别名不起作用。
问题是我的主目录中没有〜/ .bash_profile文件。它必须包含以下行才能识别所需的.bashrc
. ~/.bashrc
我通过追加所需的行
来创建它echo ". ~/.bashrc" >> ~/.bash_profile
答案 1 :(得分:0)
找到你的$HOME
并试试这个命令:
cd ~/
ls -la
如果他不存在则创建它。 或者查看这篇文章:Cygwin shell doesn't execute .bashrc
或尝试
cat ~/.bashrc
答案 2 :(得分:0)
只需澄清一下:这与Cygwin无关。这是正常的Bash行为。
〜/ .profile : / bin / sh 最初使用的登录脚本文件名。
〜/ .bash_profile :为登录shell执行的个人初始化文件
〜/ .bashrc :每个单独的交互式shell启动文件。
每个新的Cygwin窗口(每次调用 Cygwin.bat )都会打开一个登录外壳程序,因为没有 init 进程,并且您已经以Windows用户身份登录。在 Cygwin.bat 中,Bash的调用方式为:bash --login -i
。
因为--login
会执行〜/ .bash_profile 。更具体地说,Bash读取 / etc / profile ,然后读取〜/ .bash_profile ,〜/ .bash_login 和〜/ .profile ,并按照该顺序执行第一个可读的代码。
由于-i
也应执行〜/ .bashrc 。但这不是因为Bash仅针对交互式和非登录的Shell执行 .bashrc 。
请注意,bash --login -i --rcfile=C:/Cygin/home/%USERNAME%/.bashrc
也不起作用,因为在登录shell的情况下,--rcfile
会被忽略。
因此,在有一个真正的登录shell(文本登录shell)的情况下,挂钩 $ HOME / .bashrc 是一个很好的做法。这就是许多 .bash_profile 文件包含以下行的原因:
if [ -f "${HOME}/.bashrc" ]; then
source "${HOME}/.bashrc"
fi
当您将ssh / telnet到主机,将Linux引导至文本模式或...运行 Cygwin.bat 时,会出现文本登录Shell。
到目前为止,我想补充一点。在启动过程中,许多Linux桌面会自动由Display-Manager读取〜/ .profile (不是〜/ .bash_profile 或〜/ .bash_login )。进程桌面会话。因此也将〜/ .bashrc 钩在〜/ .profile 中:
if [ -n "$BASH_VERSION" ]; then
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
由于Bash在没有〜/ .bash_profile 的情况下执行〜/ .profile ,因此您可能只使用〜/ .profile 。 / p>
现在,您可以在〜/ .bashrc 中进行所有自定义。