.bashrc
文件并执行写入其中的命令。这个文件是什么,它执行什么操作?#1 楼
实际上,是bash
专门读取.bashrc
(和/etc/bash.bashrc
)。有很多不同的外壳。bash手册页(由Brian Fox和Chet Ramey撰写;信息页“ Bash Startup Files”)是权威参考: br />当启动不是登录外壳的交互式外壳时,bash读取
~/.bashrc中的命令,如果该文件存在,则执行
。通过使用
--norc
选项可以禁止此操作。--rcfile
文件选项将强制bash从
文件而不是
~/.bashrc
读取并执行命令。例如,以非交互方式启动bash
时,要运行shell
脚本,它将在环境中查找
变量
BASH_ENV
,如果扩展其值,出现在此处,
并将扩展值用作要读取和执行的文件的名称。
Bash的行为就像执行了以下
命令:
if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
,但是
PATH
变量的值不用于搜索文件名称。文件只是shell命令。它通常用于更改提示,设置环境变量和定义Shell过程。传统上,文件
.profile
是用于此目的的,但是bash
具有很多扩展名,以至于想要将重载放入启动文件中的用户都需要自己的启动文件。诸如脚本启动以及通常由窗口管理器启动的终端窗口之类的东西。有时我将* nix系统设置为仅将.bashrc
用作BASH_ENV
和.profile
。只要您不偏离POSIX shell命令的范围,那么在任何shell中都将得到相同的初始化。为此,请使用:. .profile
这是如此复杂的原因之一是,有时人们将可以产生输出的内容放入shell启动文件中,或者无条件设置提示。在语言中运行外壳程序和反引号命令时,这会引起很多问题,更不用说C程序中的
sh
了。我认为,bash
的启动方式被设计为在输出和提示设置可以的情况下有一个文件,而在输出和提示设置没有问题的情况下有一个文件。传统上,将通过运行时测试来区分交互性,例如,检查是否设置了提示。评论
好答案。引用一下:该文件只是shell命令。它通常用于更改提示,设置环境变量和定义Shell过程。
–smwikipedia
2011-2-19的3:53
有谁知道.bashrc / .zshrc的rc部分是什么意思?
– WORMSS
15年6月19日在13:28
@WORMSS:好问题!您不是唯一对此感到好奇的人。
–许嘉莉
2015年8月18日,下午3:35
也许rc表示运行时配置。
–迈克·迪恩(Mike Diehn)
18年11月28日在21:59
.bashrc或.zshrc中的rc或任何其他方式运行命令
– Suryaa Jha先生
20-2-16在14:27
#2 楼
当Bash启动时,它以各种不同的脚本执行命令。
当Bash作为交互式登录Shell调用时,它首先从文件/ etc / profile中读取并执行命令。 ,如果该文件存在。读取该文件后,它将按此顺序查找〜/ .bash_profile,〜/ .bash_login和〜/ .profile,并从存在的且可读的第一个命令中读取并执行命令。
退出登录shell时,Bash从〜/ .bash_logout文件(如果存在)中读取并执行命令。
当启动非登录shell的交互式shell时,Bash读取并执行命令。来自〜/ .bashrc,如果该文件存在。使用--norc选项可以禁止这种情况。 --rcfile文件选项将强制Bash从文件而不是〜/ .bashrc读取并执行命令。
http://en.wikipedia.org/wiki/Bash_(Unix_shell )
以下是一些技巧和窍门:
http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt。 html
让我们尝试设置提示,使其可以显示今天的日期和主机名:
PS1="\d \h $ "
评论
为什么.bash_profile之后是.profile?有逻辑吗?
–起搏器
17年11月2日,12:58
#3 楼
它应该为您的shell包含各种“初始化”命令,例如:创建有用的别名(例如
alias ll='ls -l'
)。向PATH添加更多目录。
设置新的环境变量。
评论
别名的用途是什么?
–菠萝
09年9月30日在16:08
@pineapple:别名是一种运行命令的方法,该命令可能很长,但较短。例如,别名ll ='ls -l'允许您键入ll执行ls -l命令。
–苦难者
2011-2-19的3:53
评论
尝试在文本编辑器中打开文件-文件为纯文本。