.bashrc
文件,我想知道它的用途/功能。还要如何以及何时使用?#1 楼
.bashrc
是一个Shell脚本,只要它以交互方式启动,它就会运行。它初始化一个交互式外壳会话。您可以在该文件中放置任何可在命令提示符下键入的命令。放置在.bashrc
中的一个常见问题是您希望始终可用的别名。如果您说:$ bash ; bash ; bash
然后按Ctrl-D 3次,则
.bashrc
将运行3次。但是,如果您这样说:$ bash -c exit ; bash -c exit ; bash -c exit
则
.bashrc
根本不会运行,因为.bashrc
使Bash调用成为非交互式。从文件运行外壳程序脚本时也是如此。仅在新登录外壳程序的开头运行
-c
和.bash_profile
。 (.profile
)您可以选择要在bash -l
还是.bashrc
中运行命令,具体取决于它是希望运行一次还是针对每个交互式shell启动。 .bash_profile
,您要改为在.bashrc
中进行PATH
调整,因为这些更改通常不是幂等的:交互式子外壳,.bash_profile
会再次固定在.bashrc
的末尾,从而在您键入错误的命令时为该外壳带来了额外的工作。例如带有:/some/addition
的PATH
。评论
次要问题:与大多数其他shell不同,bash作为登录shell启动时不会自动加载按实例配置文件.bashrc。有时这可能导致意外行为。通常的解决方法是从.profile或.bash_profile中获取.bashrc。
–伊尔马里·卡洛宁(Ilmari Karonen)
14年5月13日在11:14
@IlmariKaronen由于.bashrc不适合其他shell使用,因此最好不要从.profile中获取它(其他非bash shell可能会使用)。
–chepner
2014年5月14日下午2:32
@chepner这就是为什么大多数发行版默认情况下都会在.profile中进行检查的原因,他们在采购.bashrc之前会检查外壳是否具有BASH_VERSION。
–寡核苷酸
20 Sep 23 '13:05
@oligofren我不认为这是要依靠的解决方案,因为默认设置是假设我使用bash而不是其他可能使用.profile的shell。
–chepner
20 Sep 23 '13:08
@chepner不,它不对您的shell承担任何责任,这就是为什么它进行检查以进行特殊处理(如果您应该运行bash)的原因。请参阅以下要点:gist.github.com/fatso83/0621870b4e9c0ef75f938160d9ad8b3e。这是我自己的.profile,可与任何shell一起使用。
–寡核苷酸
20/09/24在14:22
#2 楼
.bashrc
文件的目的是提供一个地方,您可以在其中设置变量,函数和别名,定义(PS1)提示以及定义每次打开新终端窗口时要使用的其他设置。每次打开新的终端,窗口或窗格时,都可以运行它。
最小的超级终端可能具有以下内容: />
这就是您真正要入门的全部信息。
这里是“过大杀手”版本,对有经验的开发人员有用:通常还有很多。
您可以在这里看到我的(带有语法突出显示的图片):
export CLICOLOR=1
export LANG="en_US.UTF-8"
alias cp="cp -i"
alias ls="ls --color=auto"
export PS1="\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[00m\]$ "
export EDITOR="vim"
说明:
- 1。将我的历史记录文件设置为忽略重复项,并且比默认文件大得多。
-2。
ls
的颜色选项取决于您使用的是Linux还是OSX -3。功能“
md
”使用一个命令-4将其制作并CD进入目录。如果在git repo中找到当前的git分支,然后...
-5。 -9。定义一个很棒的PS1提示,如
-10所示。改进了PS2提示
-11。在命令行上将vi设置为编辑器
-12。将vi设置为默认编辑器
-13。如果存在,请执行我的
.bash_aliases
文件-14。如果存在,请执行我的git选项卡完成脚本(用于远程和分支)。
-15。如果存在,请执行自动跳转
= 4
-17,则允许在不键入cd的情况下进行cd'ing。执行bash完成脚本(如果存在的话)
-18。如果有TMUX,请使用
-19。将rvm添加到我的PATH
我已经将此便携式计算机制成了它,使其可以在我的任何Linux或OSX机器上运行而无需自定义-因此,在使用某些功能和其他脚本之前,需要对存在性进行大量测试。
这也使在新计算机上立即使用整个文件变得更容易,而不会出现影响
打开新终端窗口的问题。
提醒-如果您更改.bashrc,请确保启动新的终端窗口以确保它在重新启动之前起作用(最佳实践-更改后立即进行操作)。如果您弄乱了.bashrc并重新启动,则可能无法登录!我个人还在个人计算机上创建了另一个“管理员”用户,这样,在紧急情况(登录失败)中,我可以登录并使用sudo修复其他登录.bashrc文件。
#3 楼
这是一个bash
配置文件。交互式(非登录)shell,然后从以下文件读取配置:
$HOME/.bashrc
对于Login shell,从这些文件中读取配置:
/etc/profile
(始终提供)$HOME/.bash_profile
(其余的这些文件依次检查文件,直到找到一个文件,然后再读取其他文件)。下图显示了如何/何时加载它们的简单图示。
$HOME/.bash_login
$HOME/.profile
br />
我在
echo
和.bashrc
中添加了.bash_profile
有关详细信息,请参阅
man bash
评论
superuser.com/questions/49289/what-is-the-bashrc文件您将其作为$ bash myFile.bashrc运行。我发现这不见了:)