Linux 中 .bash_history、.bash_logout 等用户配置文件


目录


前言

在 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

相关推荐
HLC++4 小时前
Linux的进程间通信
android·linux·服务器
华清远见IT开放实验室5 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
groundhappy8 小时前
idalib安装和codex ida-mcp配置
linux·开发语言·python
通信小小昕8 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu
张小姐的猫9 小时前
【Linux】网络编程 —— HTTP协议(上)
linux·运维·服务器·网络·http·单例模式·策略模式
栩栩云生10 小时前
AI 写代码犯的错,早被写进了错题集
linux·安全·ai编程
imc.1111 小时前
linux基础IO
linux·运维·服务器
BelongPanda13 小时前
Linux Nginx 纯手动 Let‘s Encrypt 泛域名证书配置教程
linux·nginx
酷可达拉斯13 小时前
Linux操作系统-shell编程(0)
linux·运维·服务器·python·云计算
2301_7779983413 小时前
Linux中断机制:操作系统如何高效运行
linux·运维·服务器