技术周边

Shell

2021-12-07  本文已影响0人  沉江小鱼

1. Shell

shell单词的本意是壳子,可以理解为机器外面的一层壳,用于人机交互,本质上是命令解释器。只要是人与电脑之间交互的接口,就可以成为shell。

需要说明的是,常见的概念包括shell脚本,指的是采用shell语言编写的脚本,可以使用shell程序来执行,而本文所说的shell均指shell程序,二者的关系如下:


image.png

2. shell的类型

3. shell的分类

3.1 查看安装的shell

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

# zzzz @ zzzzdeMacBook-Pro in ~ [17:27:23]
$ echo $SHELL
/bin/zsh

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

# zzzz @ zzzzdeMacBook-Pro in ~ [17:40:41]
$ cat /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

3.2 切换shell

chsh -s [shell类型]

以切换到zsh为例:

chsh -s /bin/zsh

zsh能基本完美兼容bash的命令,并且使用起来更加优雅。由于bash或zsh本质上都是解释器,他们所共同服务的是shell语言,因此在命令语法上基本相同。

4. shell的配置

shell在启动时会去找配置文件,然后运行。我们安装的一些脚本,如果想让它全局运行,就需要在shell对应的配置文件中设置路径。

我们应该在配置shell之前,使用echo $SHELL命令,确认自己现在用的是哪种shell后,再去编辑对应的配置文件。

比如:
bash读取的配置文件:~/.bash_profile
zsh读取的配置文件:~/.zshrc

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

上一篇 下一篇

猜你喜欢

热点阅读