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

相关推荐
cominglately1 小时前
centos单机部署seata
linux·运维·centos
魏 无羡1 小时前
linux CentOS系统上卸载docker
linux·kubernetes·centos
CircleMouse1 小时前
Centos7, 使用yum工具,出现 Could not resolve host: mirrorlist.centos.org
linux·运维·服务器·centos
木子Linux2 小时前
【Linux打怪升级记 | 问题01】安装Linux系统忘记设置时区怎么办?3个方法教你回到东八区
linux·运维·服务器·centos·云计算
mit6.8242 小时前
Ubuntu 系统下性能剖析工具: perf
linux·运维·ubuntu
鹏大师运维2 小时前
聊聊开源的虚拟化平台--PVE
linux·开源·虚拟化·虚拟机·pve·存储·nfs
watermelonoops2 小时前
Windows安装Ubuntu,Deepin三系统启动问题(XXX has invalid signature 您需要先加载内核)
linux·运维·ubuntu·deepin
滴水之功3 小时前
VMware OpenWrt怎么桥接模式联网
linux·openwrt
ldinvicible3 小时前
How to run Flutter on an Embedded Device
linux
yylの博客4 小时前
Windows通过git-bash安装zsh
windows·git·bash·zsh