1.认识bash这个shell
计算机与内核、外壳的关系:
首先,管理整个计算机硬件的其实是操作系统的内核(kernel),这个内核是需要保护的,所以我们一般的用户就只能通过shell(外壳)来跟内核通信,以让内核达到我们所想要的工作。
什么是shell?
操作系统其实是一组软件,由于这组软件在控制整个硬件与管理系统的活动监测,如果这组软件能够被用户随意操作,若用户应用不当,将会使得整个系统奔溃,但是我们总是要让用户操作系统的,所以就有了在操作系统上面发展的应用程序,用户可以通过这些应用程序来指挥内核,让内核完成所需要的硬件任务。
应用程序在最外层,因此被称为shell。
shell的功能只是提供用户操作系统的一个接口,因此这个shell要能够调用其他软件。
在linux系统上用到的许多命令如:man、chmod、chown、vi等命令,其实都是独立的应用程序,但是我们可以通过shell(就是命令行模式)来操作这些应用程序,让这些应用程序调用内核来运行所需要的工作。
只要能够操作应用程序的接口都成为shell。狭义的shell是指命令行方面的软件,包括bash等。广义的shell则包括图形界面的软件。
在linux下可以使用的shell种类可以查看/etc/shells文件:
系统某些服务在运行过程中,会去检查用户能够使用的shells,这些shells的查询就是用过/etc/shells这个文件
当系统不希望某些用户使用某个shell以外的主机资源时,就会给予该用户一些怪怪的资源,使其无法以其他服务登录主机,例如:
![](https://images2015.cnblogs.com/blog/815679/201510/815679-20151026144614466-1935180982.png)
圈1、3为root、richapm、oamonitor账户默认的shell为bash,圈2为怪怪的资源。。