bash和sh
bash和sh
什么是Shell
shell 单词的本意是“壳子”,在计算机领域一样可以理解为机器外面的一层壳,目的是进行用于人机交互,本质上是命令解释器。之所以叫壳,是为了和计算机的“核”来区分,用它表示“为使用者提供的操作界面”。
只要是人与电脑之间交互的接口,就可以称为 shell。Shell也会泛指所有为用户提供操作界面的程序,分为两类:命令行(CLI)与图形界面(GUI)。通常情况下说的shell指Linux的命令行界面。
shell有哪些
bash shell 是 Linux 中的默认 shell,通常也是所有用户首先熟悉的 shell。除此之外,也可以使用许多其他 shell 工具,例如 sh、zsh、ksh、csh 和 tcsh等。
sh: sh 的全称是 Bourne shell。sh 是 UNIX 上的标准 shell,很多 UNIX 版本都配有 sh。sh 是第一个流行的 shell。
bash: bash由 GNU 组织开发,保持了对 sh shell 的兼容性,是各种 Linux 发行版默认配置的 shell。在现代的 Linux 上,sh 已经被 bash 代替,/bin/sh往往是指向/bin/bash的符号链接。
zsh: Zsh对Bourne shell做出了大量改进,同时加入了Bash、ksh及tcsh的某些功能,它兼容 bash,还有自动补全等好用的功能。2019年起,macOS的默认Shell从Bash改为Zsh
Shell的命令
查看当前Linux的全部Shell:cat /etc/shells
1
2
3
4
5
6
7[heibanbai@heibanbai01 ~]$ cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/usr/bin/tmux
/bin/tmux查看当前使用的Shell:
echo $SHELL
或者echo $0
切换默认的Shell:
chsh -s [shell的二进制文件路径]
,之后要重新登陆Shell才能生效哈。例如:切换为Bash:chsh -s /bin/bas
或 切换为Zsh:chsh -s /bin/zsh
Bash的配置文件
/etc/profile
:为系统的每个用户设置环境信息,当用户第一次登录时会执行该文件里的命令。默认会直接调用/etc/bashrc
。该文件的改动需要重启才能生效。/etc/bashrc
:为每一个运行bash shell的用户执行此文件。当bash shell被打开时,会读取并执行该文件中的命令。所以修改该文件后,重新打开Shell即可生效。~/.bash_profile
:和/etc/profile
类似,但是只对当前用户生效。~/.bashrc
:和/etc/bashrc
类似,但是只对当前用户生效。~/.bash_logout
:当每次退出bash shell时,执行该文件。~/.bash_history
:保存了历史命令。在Shell为Bash时,每次敲击命令时,都会保存在这个文件里
加载顺序:/etc/profile
、/etc/bashrc
、~/.bash_profile
、~/.bashrc
/etc/profile
配置系统环境,如: PATH、USER等变量,同时还包含一些在用户登录时执行的脚本,这些脚本由/etc/profile
启动运行,当用户登录Linux系统时,bash将执行/etc/profile
文件中的命令,这些命令帮助用户设置工作环境,然后再将控制权交给用户主目录下的~/.profile
文件。当系统给出主提示符($PS1
)后,用户就可以开始自己的工作。
/etc/bashrc
/etc/bashrc
是一个全局的 Bash 配置文件,用于定义系统中所有用户的 Bash shell 的默认行为和环境变量。它在用户登录时被执行,为用户的交互式 Bash shell 提供一些全局的设置。
具体来说,/etc/bashrc
文件可以定义全局的环境变量,这些变量将在用户登录后的 Bash shell 中生效。通过在文件中添加 export 语句,可以设置全局的环境变量,例如 PATH、LANG、PS1 等。/etc/bashrc
文件还可以定义全局的别名和函数,供所有用户的 Bash shell 使用。通过在文件中添加 alias 或 function 语句,可以创建全局的别名和函数,以简化命令的输入和执行。
此外,/etc/bashrc
文件还可以配置全局的 Shell 行为,例如设置默认的提示符、设置历史命令记录和历史命令的数量限制、配置自动补全等。它还可以导入其他的配置文件,例如 /etc/profile.d/*.sh
或 /etc/bashrc.local
等。这些文件包含了更具体和个性化的设置,用于扩展和定制系统的全局 Bash 配置。
总的来说,/etc/bashrc
文件的作用是为系统中所有用户的 Bash shell 提供默认的环境变量、别名、函数和行为设置。它可以在用户登录时执行,确保所有用户共享相同的全局配置,并提供一致的 Shell 使用体验。
~/.bash_profile
在Shell中~/.bash_profile
文件主要用于配置用户环境变量和启动程序。它只对单一用户有效,位于用户的家目录(~)下~/.bash_profile
,当用户登录(login)时,~/.bash_profile
文件会被执行,用于设置环境变量和启动程序。这个文件可以用于配置用户的PATH、HISTSIZE、HISTFILESIZE等环境变量的值。
此外,~/.bash_profile
文件还可以包含一些用户专用的bash shell信息。它会在用户登录时由~/.bashrc
文件执行。
~/.bashrc
~/.bashrc
文件是bash shell的配置文件,用于定义用户登录后的Shell环境。它存储了用户特定的配置信息,例如自定义别名、环境变量、命令别名、Shell函数等。每个用户都可以在自己的家目录(~)下的~/.bashrc
文件中添加自己的配置,以满足其个性化的需求.
蚂蚁🐜再小也是肉🥩!
“您的支持,我的动力!觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”
微信支付
支付宝支付