Linux之认识BASH和Shell

前序:在Linux的环境下,如果你不清楚什么是Bash,那么我就只能说:兄弟,其他的东西先别学了,去赶紧补习一下这方面的知识吧,接下来,我要讲的关于BASH的内容,几乎是所有命令行格式与未来主机维护与管理的重要基础。加油吧老铁!!!**小二,给客人上硬菜!!!
**
一、硬件、内核与Shell
只要稍微有些计算机基础的人都知道,管理计算机硬件的是操作系统的内核(Kernel),这个内核是需要保护的,为什么需要保护?因为操作系统实际上是一些软件的集合体,由于这组软件在控制整个硬件与管理系统的活动检测,所以不是一般人可以去碰的,碰坏了怎么办?就像你的小女朋友一样,家里的事情是她做主,而你还要负有保护她的义务。既然内核被保护着,所以我们就需要一个媒介来与之沟通,这个时候我们普通用户就只能通过shell来跟内核进行沟通,借以让内核完成我们所要实现的任务。
简单举个例子,大家都会用电脑放音乐听歌对吧,那么对于电脑来说想要把一首歌放出来都需要什么呢?一是硬件,也即是声卡、扬声器等设备;二是操作系统的内核,它可以支持这个芯片组,同时提供芯片的驱动程序;三是应用程序,这个简单,可以理解为用户输入发出声音的命令。现在的问题是系统如何识别你的命令呢,硬件如何知道需要执行你的命令了呢?这个时候,就需要通过Shell将我们输入的命令与内核进行沟通,好让内核可以控制硬件准确地放出音乐。现在你应该知道为什莫会有应用程序了吧,因为无论如何总要给人去用,不可能所有人都有直接在系统中操作的权力,于是就开发出了应用程序,让广大用户通过使用应用程序来调用内核完成我们所需的硬件任务。
二、查看自己使用的Shell
咱们探讨一个比较深奥的问题,Linux使用的是哪种Shell?什么?哪种?难道不是一种?我也是懵逼了。哈哈,不要急,我给大家讲一讲。在早年,很久很久以前,UNIX年代发展着众多,所以Shell一句发展者的不同就有很多版本,比如C Shell,Bourne shell,以及K Shell等等,至于Linux使用的Shell就是Bourne Again Shell(bash),这个Shell是Bourne Shell的升级版。假如此刻你想要知道自己的Linux支持的Shell,那么我告诉你一个办法,进入系统然后检查一下/etc/shells这个文件
在这里插入图片描述
上图就是本人的系统输出的结果,有一点需要知道,/bin/sh已经被/bin/bash取代了。还有就是如果你想知道自己的这个用户默认的是使用什么shell该怎么办呢?再教你一次,同样是再/etc下,输入cat /passwd,在输出结果的每一行的最后一个数据,就是你登陆后可以使用的默认shell.这里有一个“怪怪的”Shell
在这里插入图片描述
三、Shell的功能
1)存储历史命令:他能记录使用过的命令,因为你只需要按【上下键】就可以调出之前使用过命令,就不用反反复复一直去敲了,是不是很爽,要不然遇到那种很长的命令,你就去自杀吧。在这个功能里面,默认记录的条目能达到1000条,几乎能记录下你在本次使用中的所有命令了,是不是很厉害?是不是又要问一下这个命令的记录存在哪里?存在你家目录下的.bash_history,特别要注意的是只有当本次登录结束注销之后,这些执行过的命令才会存储到这个文件里面,而在本次还没有注销的操作中,这些命令是暂时存储在内存中的。下图展示的就是我在自己的家目录中下的该文件中查到的部分信息。
在这里插入图片描述
但是有一点是要主义的,因为一旦被黑客入侵了,他能看到这个文件内的命令,恰恰又有与你的系统有关的命令,那你就惨了。所以这个文件里面是多存命令好一些还是少存好一些,没有定论。
2)命令与文件补充功能
【Tab】:接在一串命令的第一个字后面则为命令补全
【Tab】:接在一串命令的第二个字后面则为文件补全
3)别名设置功能
使用alias命令来给某个命令取别名,方便使用
在这里插入图片描述
4)通配符功能(*)
比如,我想要知道/usr/bin下有多少以x开头的文件
在这里插入图片描述
5)程序化脚本(极为重要)
关于脚本这部分不去细说了,后面会有大篇幅的讲解
关于shell的初级知识就讲到这里,下一篇内容会给大家讲解Shell的变量功能,欲知后事如何,请听下回分解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章