Linux命令行与shell脚本学习笔记
第一章 初识Linux shell
什么是Linux
简单地说就是一个操作系统。包括:Linux内核
,GNU工具
,图形化桌面环境
,应用软件
四部分。
Linux内核:Linux系统的核心,内核控制着计算机系统上的所以硬件和软件,在必要时分配硬件,并根据需要执行软件。内核主要负责以下四种功能:
-
系统内存管理:
内核不仅管理服务器上的可用物理内存,还可以创建和管理虚拟内存(实际并不存在的内存)。内核通过硬盘上的存储空间来实现虚拟内存,这块区域称为交换空间(swap space)
,内核不断在交换空间和实际物理内存之间反复交换虚拟内存中的内容。这使得系统以为它拥有比物理内存更多的可用内存。内存存储单元按组划分为很多块,这些块成为页面(page)
。内核将每个内存页面放在物理内存或交换空间。然后,内核会维护一个内存页面表,指明哪些页面位于物理内存内,哪些被换到磁盘上。内核会记录哪些内存页面正在使用,并自动把一段时间未访问的内存页面复制到交换空间区域(成为换出,swapping out)
即使还有可用内存。当程序要访问一个已被还出的内存页面时,内核必须从物理内存换出另外一个内存页面给他让出空间,然后从交换空间换入请求的内存页面。只要linux系统在运行,为运行中的程序换出内存页面的过程就不会停歇。 -
软件程序管理:
Linux操作系统将运行中的程序称为进程
。进程可以在前台运行,将输入显示在屏幕上,也可以在后台运行,隐藏到幕后。内核控制着Linux系统如何管理运行在系统上的所有进程。内核创建了第一个进程(称为init进程
)来启动系统上所有其他进程。当内核启动时,他会将init进程加载到虚拟内存中。内核在启动任何其他进程时,都会在虚拟内存中给新进程分配一块专有区域来存储该进程用到的数据和代码。一些Linux发行版本使用一个表来管理在系统开机时要自动启动的进程。在linux系统上,这个表通常位于专门文件/etc/inittab
中。另外一些系统则采用/etc/init.d
目录,将开机时启动或停止某个应用的脚本放在这个目录下。另外Linux采用了运行级,运行级为1时,只启动基本的系统进程以及一个控制终端,称为单用户模式
。标准的启动运行级是3,此时可以运行大多数应用软件。另一个常见的运行级是5,此时Linux会启动图形化的X Window系统,允许用户通过图形化桌面窗口
登录系统。 -
硬件设备管理:
任何Linux系统需要与之通信的设备,都需要在内核代码中加入其驱动程序代码。驱动程序代码相当于应用程序和硬件设备的中间人,允许内核与设备之间交换数据。在Linux内核中有两种方法用于插入设备驱动代码,编译进内核设备驱动代码
和插入内核的设备驱动模块
,现在使用多为后者,它允许将驱动代码插入到运行中的内核而无需重新编译内核,当设备不需要时可以将内核模块从内核中移走,极大地简化和扩展了硬件设备在Linux上的使用。Linux系统将硬件设备当成特殊文件,成为设备文件
,主要包括三类:字符型设备文件
,块设备文件
,网络设备文件
。 -
文件系统管理:
不同与其他一些操作系统,Linux内核支持通过不同类型的文件系统从硬盘中读写数据。除了自有的诸多文件系统外,Linux还支持从其他操作系统(如Windows
)采用的文件系统中读写数据。常见的文件系统如ext系列
,VFS(Virtual File System)
。
GNU工具
GNU组织(即GNU’s Not Unix)开发了一套完整的Unix工具,但是没有可以运行他们的内核系统。这些工具是在名为开源软件(open source software,OSS)
的软件理念下开发的。顺其自然,将Linux内核和GNU操作系统工具整合起来,就产生了一款完整的免费操作系统。GNU工具的核心工具被称为coreutils(core utilities)
,主要由三部分构成:处理文件的工具
,操作文本的工具:
,管理进程的工具
。GNU/Linux shell
是一种特殊的交互式工具
,为用户提供了启动程序,管理文件系统中的文件以及运行在Linux系统上的进程的途径。shell的核心是命令提示符
,命令行提示符是shell负责交互的部分,允许用户输入文本命令,然后解释命令,并在内核中执行。**所有Linux发行版默认的shell都是bash shell。**除了bash shell,还有一些其他shell,如ash,korn,tcsh等。
图形化桌面环境
图形化桌面环境就是用图形化的形式表示操作,方便用户操作Linux系统。Linux提供的图形化桌面环境如下:
X Windows:
是图形显示的核心,控制着Linux程序如何在电脑显示窗口和图形。
KDE桌面:
即K Desktop Environment,K桌面环境,会生成一个类似于Windows的图形化桌面环境,方便Windows用户。
GNOME桌面:
即the GNU Network Object Model Environment,GNU图形对象模型环境,是另一个流行的Linux桌面环境。
Unity桌面:
Ubuntu发行版本使用该桌面环境。
Linux发行版
通常将Linux发行版归为三类:
完整的核心发行版:
含有内核,图形化桌面环境,预编译好的Linux应用。如Red Hat(商业服务器),Debian(Linux专家版本)。
特定用途的发行版:
基于某个主流发行版,但是仅包含主流发行版本的一小部分用于特殊用途的应用程序。如CentOS(基于Red Hat的免费版本),Ubuntu(个人学校使用,免费)等。
LiveCD测试发行版:
可引导的Linux CD发行版,特点是无需安装就可以使用。现在带光驱的电脑很少了吧,略。
本章小结
- 介绍了Linux的四大组成部分:内核,GNU工具,桌面环境,应用软件。
- 探讨了各种Linux各种发行版本。
参考文献:Linux命令行与shell脚本编程大全(第三版)Richard Blum Christine Bresnahan著 门佳 武海峰译