计算机硬件的直接控制者是操作系统的内核(kernel),因为内核的重要性,所以作为用户的我们是无法直接操作内核的,所以我们需要shell调用应用程序或者双击打开安装的应用软件与内核之间进行通信。 shell就相当于是一个接口,连接程序与内核;或者可以说shell是一个办公桌,给工作的人以必要办公环境。
如今的shell大多数是命令行界面的形式。不同的操作系统的shell是不同的,Linux系统默认运用的是bash。
因为shell是与内核的接口,故可以通过不给一些用户shell来控制用户操作的权限,如/etc/shells 中的/sbin/nologin ,在用户登录终端后,Linux会根据/etc/passwd文件的设置给用户一个shell,如果用户的shell被分配为/sbin/nologin(默认为/bin/bash)那么该用户就无法登录。
bash 功能优点:
1、history
命令记忆功能:记录下曾经执行过的命令,再注销系统后会将这一次的操作记录从内存写到~/.bash_history中,下次登录后即可查看到上次的操作记录。
2、Tab按键自动补全命令行
3、alias
设置别名:alias hsnn='ls -al' 输入执行hsnn 则会执行ls -al 命令
4、shell script
程序脚本,能够轻松便捷管理系统
5、作业控制、前台、后台控制
6、通配符(Wildcard)
* _
bash内置了许多命令:cd umask ,可通过type 命令来查看是否为内置命令
type -t name
file:外部命令
alias:为命令所用的别名
builtin:bash 内置命令
type -p name name为外部命令时会显示命令路径相当于which
type -a name 列出PATH中所有包含name的命令,包括alias