目录
前言
在 Linux 中我们经常会看见用户家目录下存在 .bash_history、.bash_logout、.bash_profile、.bashrc、.cshrc、.tcshrc、.viminfo 这写文件,那它们区别是什么呢?又有什么作用呢? 实际上,这些文件是 Linux 系统中的用户配置文件,负责存储用户的历史记录、shell 环境和行为定制等设置,不同的文件有不同的作用和用法。
.bash_history
-
作用:存储用户在 Bash shell 中输入的历史命令。
-
位置 :位于用户的主目录(
~/.bash_history
)。 -
用法 :当你在 Bash 中输入命令后,系统会将其记录到
.bash_history
文件中。下次打开 shell 时,可以通过上下箭头或history
命令查看命令历史。 -
案例:
sh# 限制历史记录条数 export HISTSIZE=1000 # 内存中保留的条数 export HISTFILESIZE=2000 # 文件中保存的条数
.bash_logout
-
作用:在用户退出登录 shell 时执行,用于执行一些清理操作。
-
位置 :位于用户的主目录(
~/.bash_logout
)。 -
用法 :当用户退出 Bash 登录 shell 时(例如在远程登录后输入
exit
),.bash_logout
文件中的命令将被执行。可以在此处放置一些清理操作,如删除临时文件或清空缓存。 -
案例:
sh# 清空屏幕 clear
.bash_profile
-
作用 :用于配置用户的登录 shell 环境。当用户通过登录终端启动一个新的 shell 时(登录 shell),
.bash_profile
会被加载。 -
位置 :位于用户的主目录(
~/.bash_profile
)。 -
用法 :通常用于设置环境变量、启动其他配置文件(如
.bashrc
),或自定义 shell 的行为。 -
案例:
bash# 设置环境变量 export PATH=$PATH:/usr/local/bin # 调用 .bashrc if [ -f ~/.bashrc ]; then source ~/.bashrc fi
.bashrc
-
作用:定义交互式 shell(非登录 shell)的配置,用于设置别名、函数、提示符等。
-
位置 :位于用户的主目录(
~/.bashrc
)。 -
用法 :每当你打开一个新的终端窗口时,
.bashrc
会被加载。通常用来配置与 shell 交互相关的内容。 -
案例:
bash# 别名定义 alias ll='ls -l' # 自定义提示符 export PS1='\u@\h:\w\$ '
注意 :这里要明确两个概念,登录 shell
和非登录shell
。
- 登录 shell:指用户通过登录终端(如 xshell 工具)启动一个新的 shell,系统会执行
.bash_profile
。登录 shell 是指用户需要输入用户名和密码的情况,例如通过 SSH 登录或在控制台登录; - 非登录 shell:指用户打开一个非登录终端,比如在已经登录的系统中,通过终端程序(如 GNOME Terminal)打开一个新的 shell 窗口时,
.bashrc
会被加载。
.cshrc
-
作用 :用于 C Shell(
csh
)的初始化配置。每次用户启动csh
时,.cshrc
文件会被执行。 -
位置 :位于用户的主目录(
~/.cshrc
)。 -
用法 :设置
csh
环境中的别名、路径、环境变量等。它类似于 Bash 中的.bashrc
,但用于csh
shell。 -
案例:
sh# 设置路径 set path = (/usr/local/bin $path) # 设置别名 alias ll 'ls -l'
.tcshrc
-
作用 :用于
tcsh
(改进版 C Shell)的初始化配置。和.cshrc
类似,它在用户启动tcsh
时执行。 -
位置 :位于用户的主目录(
~/.tcshrc
)。 -
用法 :配置
tcsh
shell 的环境变量、别名和其他行为设置。 -
案例:
sh# 设置路径 set path = (/usr/local/bin $path) # 设置别名 alias ll 'ls -l'
.viminfo
-
作用:存储 Vim 编辑器的历史信息,包括光标位置、最近编辑过的文件、搜索记录等。
-
位置 :位于用户的主目录(
~/.viminfo
)。 -
用法 :Vim 会自动读取并写入
.viminfo
文件,保存用户的编辑历史,使得下次使用 Vim 时可以恢复上一会话的部分状态(如最近编辑过的文件)。 -
案例:
sh# vimrc 文件中可以设置 .viminfo 的行为 set viminfo='20,\"100 # 保存最近 100 条命令
总结
.bash_history
:Bash 命令的历史记录。.bash_logout
:用户退出 Bash 登录 shell 时执行的脚本。.bash_profile
:登录 shell 的配置文件,通常用于设置环境变量。.bashrc
:非登录 shell 的配置文件,通常用于设置别名、提示符等交互行为。.cshrc
:C shell 的配置文件。.tcshrc
:tcsh shell 的配置文件。.viminfo
:Vim 编辑器的历史记录,保存编辑器的状态。
这些文件共同帮助用户定制和管理 Linux 系统中 shell 和编辑器的行为。
---END