.bashrc
-
在
Linux
系统中,.bashrc
是一个常见的shell配置文件,主要用于定义bash shell
启动时或用户登录新shell会话时要执行的命令、别名、函数和环境变量。当用户打开一个新的终端窗口或启动一个新的bash shell
时,.bashrc
文件中的设置会被加载和执行。 -
.bashrc
文件通常位于用户的家目录(home directory
)下,文件名为~/.bashrc
(~
代表当前用户的家目录)。这是一个隐藏文件,因为文件名以点(.
)开头。
在 .bashrc
文件中,你可以设置各种bash shell
的行为和外观,例如:
- 设置环境变量:定义像
PATH
、EDITOR
或其他用户特定的环境变量。 - 定义别名:为常用命令创建简短的别名,以便更快地输入。
- 设置提示符:自定义shell提示符的外观。
- 加载其他脚本或函数:从其他文件或脚本中加载函数和设置。
- 修改shell选项:调整
bash shell
的行为和特性。
例如,一个常见的 .bashrc
文件片段可能如下所示:
# 设置PATH环境变量以包含额外的目录
export PATH="$PATH:/usr/local/bin"
# 定义一个别名
alias ll='ls -l'
# 自定义提示符
export PS1="\u@\h:\w\$ "
# 加载其他脚本
source /path/to/some/script.sh
要应用 .bashrc
文件中的更改,你可以:
- 在当前shell会话中:运行
source ~/.bashrc
或. ~/.bashrc
(.
是source
命令的简写)。 - 在新shell会话中:当你打开一个新的终端窗口或启动一个新的
bash shell
时,.bashrc
文件会自动加载。
注意:.bashrc
文件仅影响bash shell
,而不影响其他shell(如zsh、fish等)。如果你使用的是其他类型的shell
,你可能需要查看和编辑与该shell
相关的配置文件。
.bash_profile
-
在
Linux
系统中,.bash_profile
是一个在登录shell(login shell)
启动时执行的配置文件。与.bashrc
不同,.bash_profile
主要在用户登录时(无论是图形界面登录还是远程SSH登录)执行一次,而不是在每次打开新的非登录shell(non-login shell)时都执行。 -
.bash_profile
通常位于用户的家目录下,文件名为~/.bash_profile
。当用户首次登录系统时,bash shell
会检查这个文件是否存在,如果存在,则执行其中的命令。 -
在
.bash_profile
文件中,用户通常会设置一些登录时需要执行的命令和环境变量。这些设置通常只在登录时执行一次
,并且会影响整个登录会话。
在一些Linux发行版中,如果 .bash_profile
文件不存在,bash shell
会尝试读取 ~/.bash_login
或 ~/.profile
文件作为替代。
这里是一个 .bash_profile
文件的示例:
# 设置一些环境变量
export PATH="$PATH:/usr/local/bin"
export EDITOR="vim"
# 加载 .bashrc(可选)
# 如果你的 .bashrc 中包含了你希望在登录时运行的命令或设置,
# 你可以在这里加载它。但是请注意,这会导致 .bashrc 中的命令在每次登录时都执行一次。
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
# 其他登录时需要执行的命令或设置
- 在上面的示例中,
.bash_profile
设置了PATH
和EDITOR
环境变量,并检查.bashrc
文件是否存在,如果存在则加载它。这样,你就可以在.bashrc
中放置一些不需要在登录时运行的命令或设置,而只在每次打开新的非登录shell时执行。
请注意,由于 .bash_profile
只在登录时执行一次,因此其中的命令和设置只会影响整个登录会话。如果你希望在每次打开新的shell窗口或执行新的shell命令时都运行某些命令或设置,你应该将它们放在 .bashrc
文件中。
.bash_logout
-
在Linux系统中,
.bash_logout
是bash shell
在用户退出登录shell
时执行的脚本文件。当用户从登录shell
(无论是图形界面登录还是远程SSH登录)注销时,bash shell
会检查用户的家目录下是否存在.bash_logout
文件,如果存在,则会执行该文件中的命令。 -
.bash_logout
文件通常用于执行一些清理任务,如清除临时文件、重置环境变量等,以便在用户注销后,系统可以恢复到一个干净的状态。这个文件中的命令只会在用户注销时执行一次,并且不会影响用户的其他登录会话或新启动的shell。
下面是一个.bash_logout
文件的示例:
# 示例 .bash_logout 文件
# 清除历史记录(可选)
# 注意:这可能会删除你所有的bash历史记录,请谨慎使用
# history -c
# 清理临时文件(如果有的话)
# rm -f /tmp/mytempfile.txt
# 其他注销时需要执行的命令或设置
echo "Goodbye, $USER. You have logged out."
- 在上面的示例中,
.bash_logout
文件执行了一个简单的echo
命令,向用户显示一条注销消息。你可以根据需要添加其他命令或设置来执行清理任务或记录注销活动等。
需要注意的是,.bash_logout
文件只会在用户注销登录shell
时执行,而不是在每次关闭终端窗口或退出非登录shell时执行。如果你希望在每次退出终端窗口或关闭shell时执行某些命令或设置,你应该将它们放在.bashrc
文件的exit
函数或trap
命令中,或者使用其他shell的特性来实现。
.bash_history
-
在
Linux
系统中,.bash_history
文件是bash shell
用来记录用户之前输入的命令历史的文件。当你在bash shell
中执行命令时,这些命令会被追加到~/.bash_history
文件中(假设你使用的是bash shell
并且默认设置没有改变)。这样,你可以通过查看.bash_history
文件来回顾之前执行过的命令。 -
.bash_history
文件通常位于用户的家目录下,文件名就是~/.bash_history
。这是一个隐藏文件,因为它以点(.
)开头。
你可以使用文本编辑器(如 nano
, vim
, emacs
等)来查看 .bash_history
文件的内容,或者简单地使用 cat
、less
或 more
命令来查看它:
cat ~/.bash_history
或者
less ~/.bash_history
bash shell
还提供了内建的命令历史管理功能,比如:
history
命令:在shell提示符下输入history
可以查看最近执行的命令历史。HISTSIZE
和HISTFILESIZE
环境变量:HISTSIZE
控制了shell内部可以保存的命令历史条数,而HISTFILESIZE
则控制.bash_history
文件中可以保存的命令历史条数。HISTCONTROL
环境变量:用于控制哪些命令会被保存到历史文件中。例如,你可以设置HISTCONTROL=ignorespace
,这样以空格开头的命令就不会被保存到历史中。HISTIGNORE
环境变量:这是一个模式列表,用于指定哪些命令不应该被保存到历史文件中。
默认情况下,.bash_history
文件在每次用户注销时都会被更新,并且新的命令会被追加到文件的末尾。但是,如果你在新的shell会话中执行了命令并立即退出了shell(比如使用 exit
命令或关闭终端窗口),那么这些命令可能不会立即写入 .bash_history
文件。通常,bash shell
会在会话结束时,或者达到一定的时间间隔后,才将命令写入历史文件。
如果你想要立即将命令写入 .bash_history
文件,可以使用 history -w
命令来强制写入。但是请注意,这通常不是必要的,因为bash shell
会自动处理历史文件的更新。