shell有哪些?Zsh和Bash的区别是什么?

 我来答
天罗网17
2022-06-16 · TA获得超过6191个赞
知道小有建树答主
回答量:306
采纳率:100%
帮助的人:73.3万
展开全部

使用Mac系统的朋友应该比较熟悉Zsh和Bash这两个shell,但是对二者具体有什么区别可能不太了解。本文将从这两个shell入手,对相关概念以及二者区别进行解释。

shell 单词的本意是 “壳子” ,在计算机领域一样可以理解为机器外面的一层壳,目的是进行用于人机交互,本质上是 命令解释器 。只要是人与电脑之间交互的接口,就可以称为 shell。
需要说明的是,常见的概念包括shell脚本,其指的是采用shell语言编写的脚本,可以使用shell程序来进行执行,而本文所说的shell均指的是shell程序。二者之间的关系可见下图:

在现代的 Linux 上,sh 已经被 bash 代替, /bin/sh 往往是指向 /bin/bash 的符号链接。如果你希望查看当前 Linux或MacOS的默认shell,那么可以输出 shell 环境变量:

如果想知道自己系统安装了哪些shell,使用如下命令可得到如下所示的信息。

如上所说,shell 在启动时都会去找配置文件,然后运行它。你安装的一些脚本,如果想让它能够全局运行,就需要在配置文件中设置路径。有过设置路径后还是不管用的经历吗?多半是因为把配置写在了错误的配置文件里。* 应该在配置shell(最常见的是配置默认命令)之前,使用 echo $SHELL ,确认自己现在用的是什么shell后,再去编辑对应的配置文件 *。

一句话,二者均是shell的一种,zsh能基本完美兼容bash的命令,并且使用起来更加优雅。由于bash或zsh本质上都是解释器,他们所共同服务的是shell语言,因此在命令语法上基本相同,部分兼容性差异可参考: zsh和bash的兼容性差异 。
二者切换:

在配置文件方面:

当从bash切换为zsh时,如果不想重新配置一遍 .zshrc 文件,可以__在 .zshrc 文件中加上 source ~/.bash_profile ,从而直接从 .bash_profile 文件读取配置。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式