MinGW Bash个人资料


37

我在Windows 7上使用MinGW。我有一个.bashrc别名。该文件位于MinGW启动我的主文件夹中,因此它也认为该文件夹是我的主文件夹。它不会自动加载文件夹的内容。我必须运行bash命令以使别名正常工作。

我尝试将其重命名为.bash_profile。这只会使事情变得更糟,因为它不会自动加载,也不会在我bash手动运行时加载。

我该如何解决这个问题?


抱歉,路径应该是:C:\ MinGW \ msys \ 1.0 \ home \ Your_Username_Here \ .profile

Answers:


48

bash可能是作为登录Shell入门的,在这种情况下,它不会.bashrc自动读取。相反,它显示为.bash_profile。从Bash手册

因此,通常,您的〜/ .bash_profile中包含以下行

if [ -f ~/.bashrc ]; then . ~/.bashrc; fi

在任何特定于登录的初始化之后(或之前)。

因此,总而言之,请.bash_profile在您的homedir中创建一个文件,并添加上面引用的行。

如果您bash实际上是作为调用的sh,则您需要使用.profile而不是.bash_profile(请参见上方Bash手册链接的“使用名称sh调用”部分)。


1
谢谢你的想法,但是没有用。就像我在问题中说的那样,将别名命令放在.bash_profile中根本不起作用,因此似乎无法读取。
KurToMe 2012年

5
这给了我一个想法,使其完全按照您所说的去做,只是将其放在.profile文件中。由于某些原因(例如,MinGW默认不使用Bash或疯狂的方式)。如果您将此选项添加到答案中,我会将其标记为已接受。
KurToMe 2012年

1
啊,有我的问题一个错字,我定的,我在呼唤它.bash_rc的问题,但我的意思.bash_profile
KurToMe 2012年

更为简洁:[ -f ~/.bashrc ] && . ~/.bashrc
Rich Homolka'3

1
我编辑了@KurToMe,以介绍您的情况。
jjlin 2012年

8

我正在运行Windows XP,并且遇到了同样的问题。我发现如何创建MSYS构建环境

这是重要的一行:

为了帮助识别运行时版本和当前工作目录,可以将以下内容添加到~/.profile文件中。

在MinGW shell中,我创建了.profile

cd ~
touch .profile

我使用Notepad ++将其编辑为Unix格式的文本文件.profile,并将其保存在主目录中,C:\MinGW\msys\1.0\home\Your_Username_Here\.profile

然后我添加了我的别名并保存:

alias n='nano -w'

然后我从开始菜单启动了MinGW Shell快捷方式,然后欢呼,它起作用了!纳米,没有文字换行。

我希望这可以帮助你。


您在说的内容并没有变化...〜表示用户的主目录...然后您声明的c:\ MinGW \ msys \ 1.0 \ home ...对波浪号没有任何意义在%userprofile%的Windows上的USERS主页...
Eddie B

2

我没有找到.bash_profile对我有用(未被读取),所以我采用了.profile方法并将其放入其中:

exec bash

这用bash的新开头替换了我当前的shell,该bash读取了我的.bashrc

我认为使用.profile建议在登录时使用sh,而不是bash。


1

对我来说,对于安装了GIT的MINGW,它的工作方式是:.bash_profile C:\Users\[user_name]

这也是〜指向shell(pwd)中的目录。

就像这样:)


0

与@Koshmarr相似,但略有不同。mingw64git-scm.com下载的My 会/c/Users/[user-name]在启动时加载。但是我的驾车(由cd ~)找到了/h/。我将.bashrc.bash_profile插入~驱动器,一切正常。

.bash_profile

    source ~/.bashrc;

只需弄清楚MINGW在哪里考虑住所并放在.bash_profile那里。


0

如何设置MSYS Bash初始化文件

在Windows操作系统中,与Linux操作系统相比,您指向Bash使用的初始化文件(即profile,bash_profile,bashrc)的方式有所不同。

Windows和Linux OS的区别在于它们的文件系统结构,这导致Bash文件位置和文件命名约定不同。

如何设置MSYS Bash初始化文件(即配置文件,bash_profile和bashrc)

1)在WINOS中,打开位于'C:\ msys \ 1.0 \ etc \'此处的'etc'文件夹。注意。您应该在“ etc”文件夹中看到一个文件“ profile”。

2)保存一个无文件扩展名的文件(即,当您保存时,将保存类型设置为“ .all files”),文件名“ .bash_profile”为“ C:\ msys \ 1.0 \ home \ USERNAME”。注意。正如您在Linux OS Bash设置中所期望的那样,文件名(例如'.bash_profile')的前缀是点。

2)保存一个无文件扩展名的文件(即,当您保存时,将保存类型设置为“ .all files”),文件名“ .bashrc”为“ C:\ msys \ 1.0 \ home \ USERNAME”。注意。正如您在Linux OS Bash设置中所期望的那样,文件名(例如'.bash_profile')的前缀是点。

4)在文本编辑器中打开“配置文件”文件(升华文字x表示满意)注意:“配置文件”的文件位置为“ C:\ msys \ 1.0 \ etc \”

在“配置文件”文件中,滚动到文件末尾的文本行(即,滚动到底部),您应该看到一行测试,指示Bash将其当前目录更改为HOME(在MSYS中,HOME的定义如“配置文件”文件)

CD $HOME

5)在带有文本“ CD $ HOME”的行之前,复制以下代码-在“ profile”中添加此脚本将告诉MSYS bash运行bash_profile#---------------- -------------------------------------------------- --------- #modified BEGIN

# Note. -f is a flag in the file-test operator set of bash commands
#       that test whether file exists
echo '[i] INFO loading personal environment variables and startup   programs.... '
BASHRC="$HOME/.bash_profile"
if [ -f "$BASHRC" ]; then
  source "$BASHRC"
fi

#modified END
#---------------------------------------------------------------------------

6)在文本编辑器中打开“ bash_profile”文件(Sublime Text x很好),文件的末尾(在文件底部)

7)在文件末尾复制以下代码-在'.bash_profile'中添加此脚本将告诉Bash运行'.bashrc'

#---------------------------------------------------------------------------
#modified BEGIN

# Note. -f is a flag in the file-test operator set of bash commands
#       that test whether file exists
BASHRC="$HOME/.bashrc"
if [ -f "$BASHRC" ]; then
  source "$BASHRC"
fi

#modified END

#------------------------------------------------- --------------------------

8)好的,现在让我们在“ .bashrc”中编写一个小脚本,以查看“ profile”是否正在调用“ bash_profile”以及“ bash_profile”是否正在调用“ .bashrc”。

8.1)考虑要创建的命令名称。让我们用“ t”表示测试

8.2)打开Bash终端并输入't'。Bash应该回复“ t:未找到命令”-如果未显示“ t:未找到命令”,则重复8.1和8.2,直到您的命令名称显示“未找到命令”。您不想为分配给bash BAD!的命令名称加上别名,因此它必须是“找不到命令”

8.3)好的,“ t”给了我一个“ t:找不到命令”。现在让我们将脚本写入“ .bashrc”

8.4)在“ .bashrc”中写

# Use double quotes or bash will not write it
alias t="echo passed test"

8.5)将文件'.bashrc'保存在'C:\ msys \ 1.0 \ home \ USERNAME'中

9)快到了。现在重新启动Bash终端,并确保关闭任何以前打开的Bash终端

10)输入端子“ t”。它应该回复“通过测试”。如果没有,请仔细检查代码是否正确编写(首先检查引号)

一些注意事项1)'源文件名'与'相同。文档名称'

2)“”双引号允许变量被其内容替换单引号不允许

3)$ HOME是/ home / USERNAME,与〜是/ home / USERNAME相同

4)函数总是比别名2更受青睐

有关更多详细信息,请参见BASH参考。

我是Bash的新手。因此,不能保证我做到了最好的方法。

祝好运!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.