Shell、bashrc 和 fish
内容提要
Bash是Bourne-Shell的替代品,使用时需注意登录shell和非登录shell的配置文件加载顺序。应在~/.bash_profile中引用~/.bashrc。fish shell也值得尝试,但存在一些问题。
关键要点
-
Bash是Bourne-Shell的替代品,称为Bourne-Shell-Again-Shell。
-
Bash和其他shell(如dash)在以sh名称调用时会变得更符合POSIX标准。
-
登录shell的配置文件加载顺序为:/etc/profile -> ~/.bash_profile -> ~/.bash_login -> ~/.profile。
-
非登录shell的配置文件为:/etc/bash.bashrc -> ~/.bashrc。
-
使用bash作为登录shell时,~/.bashrc不会被加载,需要在~/.bash_profile中引用。
-
fish shell值得尝试,但存在一些问题。
延伸解读
Bash与其他Shell的比较
Bash作为Bourne-Shell的替代品,具有更强的功能和灵活性。与dash等其他Shell相比,Bash在以sh名称调用时更符合POSIX标准,这使得它在脚本兼容性方面表现更佳。用户在选择Shell时,应考虑其对POSIX标准的支持程度,以确保脚本的可移植性。
配置文件的加载顺序
Bash的配置文件加载顺序复杂,尤其是在登录Shell和非登录Shell之间。用户需要在~/.bash_profile中引用~/.bashrc,以确保在登录时加载必要的配置。这一细节对新手用户尤为重要,忽视可能导致环境配置不当,影响工作效率。
Fish Shell的使用注意事项
虽然Fish Shell提供了现代化的用户体验,但也存在一些问题。用户在考虑将Fish设置为默认Shell时,应了解这些潜在问题,并评估其对工作流程的影响。建议在非登录Shell中使用Fish,以避免与其他Shell的兼容性问题。
延伸问答
Bash和Bourne-Shell有什么关系?
Bash是Bourne-Shell的替代品,称为Bourne-Shell-Again-Shell。
登录shell和非登录shell的配置文件加载顺序是什么?
登录shell的加载顺序为:/etc/profile -> ~/.bash_profile -> ~/.bash_login -> ~/.profile;非登录shell为:/etc/bash.bashrc -> ~/.bashrc。
如何在Bash中加载~/.bashrc?
在~/.bash_profile中添加以下行:[[ -f ~/.bashrc ]] && . ~/.bashrc。
fish shell有什么优缺点?
fish shell值得尝试,但存在一些问题。
Bash在以sh名称调用时有什么变化?
当Bash和其他shell(如dash)以sh名称调用时,会变得更符合POSIX标准。
如何区分登录shell和非登录shell?
登录shell通常读取用户的配置文件,而非登录shell则读取不同的配置文件。