在操作系统内核外有一层壳,而这层壳就是 shell,它是用户和操作系统交互的桥梁。这很好理解,shell 包住了系统,用户想要跟系统交互,就必须经过shell。后来,shell 还慢慢变成了内核与用户交互的脚本语言的总称。我们常见的 shell 有:bash、zsh、csh、ksh、ash 等等。
Linux 下默认的是 bash ,Bash是目前最通用、最常见的Shell,即终端,也是众多Linux发行版的标配。Zsh是一种更强大、功能更完善的终端。
MacOS 在 Catalina 之前的版本默认也是 bash ,后面随着 zsh 越来越流行,MacOS 开始将 zsh 作为默认的解释器了。
zsh 配置又多又乱又复杂,于是有个大牛在 Github 上制作了一个配置文件 oh-my-zsh,从此免去了我们复杂的配置。目前,oh-my-zsh是zsh最受欢迎的插件框架,它还带有许多内置插件和主题。
https://github.com/ohmyzsh/ohmyzsh/projects
安装oh-my-zsh才能为zsh自动创建.zshrc,直接手动创建.zshrc是不生效的。可以在.zshrc的配置文件中引用bash的配置文件,bash的配置文件则可以手动创建。
source ~/.bash_profile
Shell 作为系统内核的壳,是一种抽象的概念是摸不到看不到的,终端就是它的解释器,是一个可视化的软件,方便用户操作shell,然后得到shell的反馈。MacOS 系统的默认终端是 Terminal.
iTerm2 也是一款终端软件。
$ cat /etc/shells
比如:
/bin/bash
/bin/csh
/bin/zsh
//切换zsh
$ chsh -s /bin/zsh
//切换bash
$ chsh -s /bin/bash