shell配置文件
不同shell具有不同的配置文件,下面主要介绍bash和zsh两种shell所具备的配置文件。
在介绍配置文件之前,需要首先理解shell的两个属性:1. 是否为交互式 2. 是否需要登陆
bash
zsh
系统级别配置文件
/etc/zshenv:在所有用户的Zsh shell启动时执行,设置全局的环境变量,包括PATH、LANG、EDITOR等/etc/zprofile:在登录shell启动时执行一次,添加系统级别的路径、执行系统级别的配置文件等/etc/zshrc:每次新开一个交互式的Zsh shell时执行,定义个人级别的配置,如别名、函数、自定义命令等/etc/zlogin:登录shell结束时执行的脚本,用于启动窗口管理器或其他应用程序/etc/zlogout:交互式shell结束时执行的脚本,用户清理和收尾工作,例如关闭打开的文件、清理临时文件、发送通知等
用户级别配置文件
~/.zshenv:在每个用户的Zsh shell启动时执行~/.zprofile:在登录shell启动时执行一次~/.zshrc:每次新开一个交互式的Zsh shell时执行~/.zlogin:登录shell结束时执行的脚本~/.zlogout:交互式shell结束时执行的脚本
交互式shell和登录shell是两种不同的shell运行模式,它们有以下区别:
登录shell(Login Shell):
运行时机:当用户登录到系统时,会启动一个登录shell。
执行顺序:登录shell首先会执行系统级别的配置文件(如/etc/profile),然后执行用户级别的配置文件(如/.profile或/.bash_profile),最后才执行交互式shell的配置文件(如~/.bashrc)。
特点:登录shell在启动时只会执行一次配置文件,通常用于进行全局性的设置和初始化操作。
交互式shell(Interactive Shell):
运行时机:在登录后或通过终端程序打开新的命令行界面时,会启动一个交互式shell。
执行顺序:交互式shell只会执行用户级别的配置文件(如/.bashrc或/.zshrc),不会执行系统级别的配置文件。这些配置文件主要用于定义个人级别的别名、函数、自定义命令等。
特点:交互式shell会在每次启动时都执行相应的配置文件,以确保用户个性化的设置生效。
总结:登录shell和交互式shell的主要区别在于运行时机和执行的配置文件。登录shell在用户登录时启动,并且按照特定的顺序执行系统和用户级别的配置文件;而交互式shell在每次新开一个命令行界面时启动,并且只执行用户级别的配置文件。这种区分使得我们能够对系统级别和个人级别的设置进行灵活的管理和组织。