(编辑:jimmy 日期: 2024/12/23 浏览:2)
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
以下是几种shell版本,bash是默认的:
sh(全称 Bourne Shell): 是UNIX最初使用的 shell,而且在每种 UNIX 上都可以使用。
Bourne Shell 在 shell 编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种 shell。
bash(全称 Bourne Again Shell): LinuxOS 默认的,它是 Bourne Shell 的扩展。
与 Bourne Shell 完全兼容,并且在 Bourne Shell 的基础上增加了很多特性。可以提供命令补全,命令编辑和命令历史等功能。它还包含了很多 C Shell 和 Korn Shell 中的优点,有灵活和强大的编辑接口,同时又很友好的用户界面。
csh(全称 C Shell): 是一种比 Bourne Shell更适合的变种 Shell,它的语法与 C 语言很相似。
Tcsh: 是 Linux 提供的 C Shell 的一个扩展版本。
Tcsh 包括命令行编辑,可编程单词补全,拼写校正,历史命令替换,作业控制和类似 C 语言的语法,他不仅和 Bash Shell 提示符兼容,而且还提供比 Bash Shell 更多的提示符参数。
ksh (全称 Korn Shell): 集合了 C Shell 和 Bourne Shell 的优点并且和 Bourne Shell 完全兼容。
pdksh: 是 Linux 系统提供的 ksh 的扩展。
pdksh 支持人物控制,可以在命令行上挂起,后台执行,唤醒或终止程序。
下面看下Linux中Bash环境变量的配置
在Linux中,我们一般将环境变量信息配置到不同的文件中,常用的配置文件有
上面几个配置主要是在交互式登录Shell和交互式非登录Shell有区别,会加载不同的配置。
交互式登录Shell
就是登录Linux系统,你输入用户名和密码后执行的,或su -l.
用户名方式
非登录Shell
就是你进入系统后,开一个终端Bash执行的。
/etc/profile
一般为系统配置,为系统的每个用户设置环境信息, 当用户第一次登录时,该文件被执行, 并从/etc/profile.d
目录的配置文件中搜集shell的设置.
对 /etc/profile
的修改必须得重启才会生效,而且每个用户都是有效的。
/etc/profile.d/
可以理解为/etc/profile
的一部分,只不过可以根椐类别或功能将配置拆分成若干个文件,这样更清晰也便于维护。
/etc/bashrc
为每个运行 Bash Shell 的用户执行该文件,当Bash Shell打开时,该文件被执行,其配置对所有使用bash的用户打开的每个Bash都有效。当被修改后,不用重启只需要打开一个新的 Bash 即可生效。
~/.bash_profile
文件在用户目录下,为当前用户设置专属的环境信息和启动程序,当用户登录时该文件执行一次,并执行当前用户的 .bashrc
文件。如果有修改,也需要重启才能生效。
~/.bashrc
为当前用户设置专属的 Bash 信息,当每次打开新的Shell时,该文件被执行。如有修改,不需要重启只需要开一个新的Shell终端就行了。
~/.bash_logout
当前用户每次退出Bash Shell时执行该文件。
以上需要重启才能生效的文件,是通过类似 source ~/.bash_profile
这样的方式暂时生效的,并不是真的重启电脑。
总结