最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

模块七 Linux的核心与shell

XAMPP教程 中文小张 697浏览 0评论

(1) 概括:
对于linux系统,我们经常听到一些专业的术语,比如最常见的核心(kernel),壳(shell),shell脚本(shell script),那么这些术语究竟是什么意思,计算机总体上又是怎样运作的,我们在这一模块就来看一看这些基础的知识。

模块目标:明白什么是核心,什么是shell,什么是bash。

(2) 核心
我们知道,购买了计算机需要安装操作系统之后才能使用,如果没有操作系统,计算机不过是一堆废铁。那么什么是操作系统呢?操作系统(Operating System, OS)其实也是一组程序,这组程序的重点在于管理计算机的所有活动以及驱动系统中的所有硬件。操作系统直接控制计算机的底层硬件,比如控制CPU进行算数逻辑运算,控制存储器存储数据等,实现这部分功能的就是操作系统的核心了。核心主要用来管理硬件和提供相关的能力,但是我们并不能直接来操作核心,一是因为核心依然是底层的软件,直接管理需要极高的技术,枯燥而乏味;二是因为核心涉及硬件的操作,一旦出错计算机就很容易崩溃。因此核心程序所放置到内存中的区块是受保护的!而且开机后就一直常驻在内存当中。

为了保护核心,并且让程序设计师比较容易开发软件,因此操作系统除了核心程序之外,通常还会提供一整组开发接口,那就是系统呼叫层。系统呼叫接口就是一整套的标准,软件开发人员只要按照这个标准开发软件,就可以调用核心的相关功能来管理计算机和完成相应的运算。调用核心的功能之后,我们不需要关心核心是如何实现的,这样核心和系统呼叫层就会在我们与计算机硬件之间建立一个桥梁,一端是我们操作的软件,另一端是计算机实际工作的硬件。

软件与核心有比较大的关系,与硬件关系则不大!硬件也与核心有比较大的关系!至于与用户有关的,那就是应用程序啦。操作系统从本质上来讲,就是指核心和系统呼叫层两个部分。

(3) 应用程序
参考操作系统提供的开发接口所开发出来软件,就是应用程序,这些软件可以让用户操作,以达到某些计算机的功能利用。举例来说,办公软件(Office)主要是用来让使用者办公,进行文档ppt等的处理;图像处理软件主要是让用户用来处理影音资料;浏览器软件主要是让用户用来上网浏览用的等等。

需要注意的是,应用程序是与操作系统有关系的,或者说是一一对应的,在linux下开发的应用程序遵守的是linux核心系统呼叫层的标准,而在windows开发的应用程序遵守的是windows的标准,因此,如果你想要购买新软件,请一定要参考软件上面的说明,看看该软件是否能够支持你的操作系统。

(4) Shell
在计算机科学中,Shell俗称壳(用来区别于核),是指”为使用者提供操作界面”的软件(命令解析器),它接收用户命令,然后调用相应的应用程序。什么意思呢?通俗地讲,shell就是一种与计算机的交互方式,也就是我们如何来控制计算机中的应用程序,在图形用户界面下,我们用鼠标单击,双击就可以调用程序来运行,这就是一种shell。而在linux字符终端下,我们需要输入命令才能调用相应的程序,这也是一种shell。Shell的意思是壳,与核心kernel相对应,表示是我们直接面对和操作的东西。

基本上shell分两大类:
一:图形界面shell(Graphical User Interface shell 即 GUI shell)

例如:应用最为广泛的 Windows Explorer (微软的windows系列操作系统),还有也包括广为人知的 Linux shell,其中linux shell 包括 X window manager,以及功能更强大的CDE、GNOME、KDE、 XFCE。

二:命令行式shell(Command Line Interface shell,即CLI shell)

比如bash / sh / ksh / csh(Unix/linux 系统);MS-DOS系统;cmd.exe/命令提示字符(Windows系统)等。

壳的功能只是提供用户操作系统的一个接口,因此这个壳需要可以呼叫其他软件才可以。比如在bash下我们可以用各种指令:ls、chmod、cp等,这些指令就是一些程序,我们用输入命令的方式来调用它们,这就是壳(shell)的作用。

(5) Bash
第一个流行的shell是由Steven Bourne 发展出来的,为了纪念他所以就称为Bourne shell,或简称为sh!而后来另一个广为流传的shell 是由伯克莱大学的Bill Joy设计的依附于BSD版的Unix系统中的shell,这个shell 的语法有点类似C语言,所以才得名为C shell,简称为csh!由于在学术界Sun主机势力相当庞大,而Sun主要是BSD的分支之一,所以C shell也是另一个很重要而且流传很广的shell。

Linux 使用的这一种版本就称为Bourne Again SHell (简称bash),这个Shell是Bourne Shell的增强版本,也是基于GNU的架构下发展出来的。

Bash shell的功能:(优点)

命令记录的功能(history):bash可以记录你所使用过的指令,按上下键就可以来切换不同的指令。这些内容记录在~/.bash_history,当次登录的指令储存在内存中,而每次退出bash的时候都会都会将历史指令计入这个文档。

命令与档案的补全功能(table键):当输入命令的前面几个字符然后两次按下table键,就可以显示所有的以字符开头的命令,而如果输入档案的时候,也可以用talbe键来补齐档案,这是非常好用的功能。

命令别名设定功能(alias):直接输入alias,就可以看到目前有多少命令别名,也可以输入例如alias lm=’ls -al’这样的指令来指定命令别名。

工作控制和前景背景控制:也就是可以让执行的指令可以在后台运行。

程序化脚本(shell scripts):可以自动化运行bash指令,达到管理系统,处理档案等目的。

通配符(wildcard):使用*表示一串字符,通常用于查找包含某些字符串的文件等,可以让程序更加灵活。
(6) Shell脚本(shell script)
Shell Script,Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。换一种说法也就是,shell script是利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell的语法与指令写在里面,然后用正规表示法,管道命令以及数据流重导向等功能,用来自动运行,以达到我们所想要的处理目的。

转载请注明:XAMPP中文组官网 » 模块七 Linux的核心与shell

您必须 登录 才能发表评论!