Shell配置与使用技巧全解析
1. 交互式非登录shell配置
在shell使用中,交互式非登录shell的配置十分重要。不同的shell在配置交互式非登录shell时,读取的配置文件有所不同,具体如下表所示:
| Shell | 读取的配置文件 |
| — | — |
| bash | ~/.bashrc,若以sh调用则与sh相同 |
| csh | /etc/csh.cshrc,~/.cshrc |
| sh | 若设置了$ENV则读取该文件,否则不读取 |
| tcsh | /etc/csh.cshrc,若存在~/.tcshrc则读取,否则读取~/.cshrc |
| ksh | /etc/ksh.kshrc,~/.kshrc |
| zsh | /etc/zsh/zshenv,$ZDOTDIR/.zshenv,/etc/zshrc,$ZDOTDIR/.zshrc |
Bourne shell会在设置了$ENV环境变量时,读取该变量指定的文件,这与bash的~/.bashrc文件类似,但更具灵活性,用户可以为非登录shell会话选择任意文件。若bash以sh的名称被调用,为了与Bourne shell兼容,也会在设置了$ENV时读取该文件,这对一些假设/bin/sh为Bourne shell并读取$ENV文件的旧脚本很有用。
2. 非交互式shell配置
非交互式shell不直接与终端关联,如shell脚本、cron和at等工具会产生非交互式shell会话。各shell对非交互式shell的配置如下表:
| Shell | 读取的配置文件 |
| —