1.什么是Shell
替我们工作的是【硬件】,控制硬件的是【核心】,我们利用【shell】控制一些kernel提供的【工具】来控制硬件替我们正确的工作。
kernel听不懂人类的语言,而人类也没有办法直接记得kernel的语言,所以两者的沟通就得由shell来支持了。
2.系统的shell与/etc/shells功能
1)/etc/shells文件记录了我们可以使用的shells
2)通过cat /etc/passwd可以查看我们登陆后默认使用的shell设定。
3.Bash shell功能
Bash shell是 GNU 计划中重要的工具软件之一,目前也是 GNU 操作系统中标准的shell。
1)命令编修能力
【上下键】找到前一个输入的指令
.bash_history记录前一次登陆以以前执行过的治疗你跟,而这一次登陆所执行的指令暂存在内存中,当注销系统后,该指令记忆才会记录到.bash_history中
2)命令与档案补全功能
[Tab]按键,一次是命令补齐,二次是文件补齐。
3)命令别名(alias)设定功能
4)工作控制(jobs)、背景前景控制
[ctrl] + c 发送信号给前景的进程,不会发送给背景工作的进程
5)Shell scripts 的强大功能
6)通配符(万用字符)
*等字符
4.Bash shell 的内建命令:type
内部命令,指写在bash源码里面的,其执行速度比外部命令快,因为解析内部命令shell不需要创建子进程。比如:exit,history,cd,jobs,bg,fg,echo。
外部命令,bash之外额外安装的,通常放在/bin,/usr/bin,/sbin/usr/sbin......等等。比如:ls,vi
我们可以通过type命令来分辨内部命令与外部命令。