Skip to content

Shell

Shell 是一个命令行解释器,是外层应用程序和 Linux 内核的桥梁,它接收应用程序 / 用户 命令,然后调用操作系统内核。

Linux 提供的 Shell 解析器

cat /ect/shells

/bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin

脚本格式

指定解析器 #!/bin/bash

执行

方式一 bash /sh + 脚本绝对或相对路径(不用赋予脚本执行权限 x)

方式二 直接输入脚本绝对或相对路径(必须赋予脚本执行权限 x) ./foo.sh

这么写会当成命令执行,然后报错。 foo.sh

方式三 在脚本路径前加上 . 或 source . foo.sh source foo.sh

区别 方式一和方式二会在当前环境打开了一个子 Shell,然后解释执行,执行完后关闭子 Shell,回到 父 Shell。

source 和 . 不启动子 Shell,直接在当前 Shell 下解释执行,这也就是为什么修改完 /ect/profile 后,需要 source 一下的原因。

开启子 Shell 与不开启子 Shell 的区别在于:环境变量的继承关系,如在子 Shell 中设置的 当前变量,在父 Shell 中是不可见的。