我试图在cygwin中定义一些别名,但没有成功。我在.bashrc
文件末尾这样做。
alias foo='pwd'
我尝试在.bashrc
文件中添加此行,位于cygwin的home
文件夹内,以及我C:\Users\Nuno\
上的Windows用户的主文件夹中。在这两种情况下,我都将此行添加到/etc/skel/.bashrc
文件的副本中。在任何一种情况下,它都不起作用。
我之前有过这个工作。我不得不重新安装Cygwin,因为它再也没有正常工作。我删除了所有文件(或者至少在重新安装时这么认为)。我还注意到,在第一次安装(工作时),cygwin已经在home
文件夹中创建了.bash文件。现在,它没有。
我在运行Windows 7的计算机上。
编辑:我的cygwin主文件夹设置为Windows主文件夹C:\Users\Nuno\
。我已经放置了我认为有效的.bashrc
文件,但它仍然不起作用。
提前致谢。
答案 0 :(得分:9)
作为me_并且已经解释了发生了什么,我只想添加一个解决方法,如果您出于任何原因无法或不愿意删除Windows的HOME环境变量。
通常Cygwin的快捷方式执行
C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico -
相反,您可以创建一个包含以下内容的批处理文件,并从中开始:
@echo off
set HOME=
start C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico -
这将启动一个Cygwin窗口,其主目录设置不会被Windows环境变量覆盖。
答案 1 :(得分:7)
您的.bashrc
文件将从Cygwin Bash认为您的主目录启动时的任何位置加载。你在编辑中提到你已经改变了你的主目录,但没有改变你的主目录,所以你可能在那里犯了错误。
Cygwin将从两个地方之一加载您的主目录,如果它们不同,可能会导致问题:
HOME
环境变量。这将从您启动Cygwin中获取,通常来自Windows本身。您可以通过按 Win + 暂停,转到“高级系统设置”,“环境变量...”来查看已定义的环境变量。如果“HOME”在“用户变量”或“系统变量”中,则将其删除 - 这是不必要的,只会导致问题。
Cygwin的/etc/passwd
文件(通常来自Windows的C:\Cygwin\etc\passwd
)。这将包含许多行,其中包含系统上每个用户的详细信息;第七个:
分隔字段是主目录。您可以通过从Cygwin bash shell运行whoami
来判断它正在查看哪个用户。
如果whoami
报告nunos
,您应该在Cygwin的/etc/passwd
中有一行看起来如下所示:
nunos:unused:1001:513:U-System\nunos:S-1-2-34-567890-123456-7890123-1001:/home/nunos:/bin/bash
/home/nunos
这很重要;如果它有所不同,你可能应该将其重置为那个,此时你想在Cygwin的.bashrc
中使用/home/nunos/
。
您还应该非常警惕包含空格的目录。 C:\Users\nunos
应该没问题,但要特别注意C:\Documents and Settings\nunos
,这对Cygwin不起作用。
答案 2 :(得分:7)
我有同样的问题,添加到〜/ .bashrc的别名不起作用。 由于某种原因,似乎在启动控制台时没有执行〜/ .bashrc。
我偶然发现了解决问题的response
因此,您需要创建一个.bash_profile文件。这个似乎是默认脚本,并将此代码放入其中,以确保执行.bashrc。
# ~/.bash_profile: executed by bash for login shells.
if [ -e /etc/bash.bashrc ] ; then
source /etc/bash.bashrc
fi
if [ -e ~/.bashrc ] ; then
source ~/.bashrc
fi
这对我有用,只需确保.bash_profile是可执行的。 (chmod + x~ / .bash_profile)
答案 3 :(得分:2)
这是一种非常快速和肮脏的方法,但它适用于大多数的东西!
假设您想要始终运行'ls --color'而不仅仅是'ls'。你可以创建一个简单的.bat文件,而不是乱用.bashrc的东西,它本质上是盗取原始的ls命令。
这就是我的所作所为:
cd /bin
echo ls2.exe %* --color > lsNew.bat
mv ls.exe ls2.exe
mv lsNew.bat ls.bat
所以现在,无论何时从CMD输入ls,你实际上都在调用ls.bat,后者又调用ls2.exe --color,带有--color标志的原始ls命令,以及其余的参数,很好地通过%*。
答案 4 :(得分:0)
我有同样的问题,但我使用ConEmu来运行我的控制台。我不得不进入设置并更改设置:
设置CHERE_INVOKING = 1& %ConEmuDrive%\ Programs \ Cygwin \ bin \ sh.exe --login -i -new_console:C:“%ConEmuDrive%\ Programs \ Cygwin \ Cygwin.ico”
到此:
设置HOME =&设置CHERE_INVOKING = 1& %ConEmuDrive%\ Programs \ Cygwin \ bin \ bash.exe --login -i -new_console:C: “%ConEmuDrive%\程序\ Cygwin的\ Cygwin.ico”
然后它会正常工作。
答案 5 :(得分:0)
它的运作方式来自cygwin:
创建一个文件" .profile"在你家的窗户里。每次启动cygwin时都会加载。
您可以使用别名编辑文件,也可以使用.bashrc。
如果你来源,请插入" source .bashrc"并在你的windows home目录中保存.bashrc。 现在您可以开始编辑.bashrc。
答案 6 :(得分:0)
这对我有用在Windows 10上使用Cygwin64。不用担心,“ kubectl”只是我键入“ k”时要运行的程序。更改后重新启动Cygwin终端。
Smith @ NB-Smith-3〜echo“别名k = C:/ Users / Smith / kube / kubectl” >> $ HOME / .bash_profile
更改此文件 C:\ cygwin64 \ home \ Smith.bash_profile
答案 7 :(得分:-1)
我有同样的问题是为什么路径不正确,路径正确的是:D:\ C ++ \ cygwin \ home \ USER_WINDOWS.bash_profile