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

相关推荐
Komorebi.py9 分钟前
【Linux】-学习笔记05
linux·笔记·学习
Mr_Xuhhh15 分钟前
重生之我在学环境变量
linux·运维·服务器·前端·chrome·算法
内核程序员kevin3 小时前
TCP Listen 队列详解与优化指南
linux·网络·tcp/ip
朝九晚五ฺ8 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
自由的dream8 小时前
Linux的桌面
linux
xiaozhiwise8 小时前
Makefile 之 自动化变量
linux
Beekeeper&&P...9 小时前
git bash是什么,git是什么,git中的暂存区是什么,git中的本地仓库是什么,git中工作目录指的是什么
开发语言·git·bash
意疏10 小时前
【Linux 篇】Docker 的容器之海与镜像之岛:于 Linux 系统内探索容器化的奇妙航行
linux·docker
BLEACH-heiqiyihu11 小时前
RedHat7—Linux中kickstart自动安装脚本制作
linux·运维·服务器