【读书笔记】Linux命令行与Shell脚本编程大全--初识Linux shell

1.什么是Linux?

Linux可分为四部分:

  1. Linux内核
  2. GNU工具
  3. 图形化桌面
  4. 应用软件

在这里插入图片描述

2.Linux内核做什么?

  1. 系统内存管理
  2. 软件程序管理
  3. 硬件设备管理
  4. 文件系统管理

内核职责一–系统内存管理

内核不仅管理物理内存,同时还可以创建和管理虚拟内存。(实际并不存在的内存)
在这里插入图片描述
何为交换空间?
内核通过硬盘上的存储空间来实现虚拟内存,这块区域称为交换空间(swap space)。

页面(page)作为内存存储单元。内存将每个内存页面放在物理内存或者交换空间。继而内核会维护一个内存页面表,指明哪些页面位于物理内存内,哪些页面被换到了磁盘上。

tips:只要Linux系统在运行,为运行中的程序换出内存页面的过程就不会停歇。

内核职责二–软件程序管理

Linux操作系统中运行中的程序称为进程,分为前台进程和后台进程。内核控制着Linux系统如何管理运行在系统上的所有进程。
内核在系统启动中创建了第一个进程–init,此后的启动系统上的其他进程都是由它执行。内核启动时会将init加载到虚拟内存。
ps:内核在启动任何其他进程时,都会在虚拟内存中给新进程分配一块专有区域来存储该进程用到的数据和代码。

一些Linux发行版中的/etc/inittab通常用来管理在系统开机时要自动启动的进程。
另外一些系统(比如现在流行的Ubuntu Linux发行版)则采用/etc/init.d目录,将开机时启动或停止某个应用的脚本放在这个目录下。这些脚本通过/etc/rcX.d目录下的入口(entry)①启动,这里的X代表运行级(run level)。

Linux操作系统的init系统采用了运行级。运行级决定了init进程运行/etc/inittab文件或/etc/rcX.d目录中定义好的某些特定类型的进程。

Linux操作系统有5个启动运行级。
运行级为1时,只启动基本的系统进程以及一个控制台终端进程。我们称之为单用户模式。单用户模式通常用来在系统有问题时进行紧急的文件系统维护。显然,在这种模式下,仅有一个人(通常是系统管理员)能登录到系统上操作数据。
标准的启动运行级是3。在这个运行级上,大多数应用软件,比如网络支持程序,都会启动。另一个Linux中常见的运行级是5。在这个运行级上系统会启动图形化的X Window系统,允许用户通过图形化桌面窗口登录系统。
Linux系统可以通过调整启动运行级来控制整个系统的功能。通过将运行级从3调整成5,系统就可以从基于控制台的系统变成更先进的图形化X Window系统。

内核职责三–硬件设备管理

谈到硬件都会联想到硬件的驱动程序。
在Linux内核中提供了两种方法用于插入驱动代码:

  1. 编译进内核的设备驱动代码。
  2. 可插入内核的设备驱动模块。

Linux下有一种概念–一切皆文件。
因此,在Linux中,硬件设备也是一种文件,特殊的而已,称之为设备文件。可分为如下三类:

类型 说明
字符型设备文件 处理数据时每次只能处理一个字符的设备,如:大多数的调制解调器和终端
块设备文件 处理数据时候每次能够处理大块数据的设备,如:硬盘
网络设备文件 采用数据包发送和数据接收的设备,如:网卡和自身的一个特殊的回环设备

何为节点?
Linux为系统上的每个设备都创建一种称为节点的特殊文件。与设备的所有通信都通过设备节点完成。
每个节点都有一个唯一的内核标识–设备号
设备号包括主次设备号:即同类型的设备拥有同样的主设备号,次设备号则对应同类型的设备下的不同特定设备。

内核职责四–文件系统管理

不同于其他一些操作系统,Linux内核支持通过不同类型的文件系统从硬盘中读写数据。
除了自身诸多文件系统,还支持其他操作系统的文件系统。如图所示:
在这里插入图片描述
Linux内核采用虚拟文件系统(Virtual File System,VFS)作为和每个文件系统交互的接口。
这为Linux内核同任何类型文件系统通信提供了一个标准接口。当每个文件系统都被挂载和使用
时,VFS将信息都缓存在内存中。
ps:因此当涉及到文件操作存储的时候,引申了sync的概念。这里只是提一下。

3.GNU工具

缩写须知:

缩写 全写
GNU GNU’s Not Unix
OSS open source software
coreutils core utilities

3.1 核心GNU工具(命令行工具)

GNU core utilities软件包由三部分组成:

  1. 用以处理文件的工具
  2. 用以操作文本的工具
  3. 用以管理进程的工具

3.2 shell

GNU/Linux shell是一种特殊的交互式工具。它为用户提供了启动程序、管理文件系统中的文件以及运行在Linux系统上的进程的途径。shell的核心是命令行提示符。命令行提示符是shell负责交互的部分。它允许你输入文本命令,然后解释命令,并在内核中执行。
在这里插入图片描述

3.3 Linux桌面环境

  1. x Window系统
  2. KDE桌面
  3. GNOME桌面
  4. Unity桌面
  5. 其他桌面
    在这里插入图片描述

3.4 Linux发行版

不同的Linux发行版通常归纳为3类:

  1. 完整的核心Linux发行版
  2. 特定用途的发行版
  3. liveCD测试发行版

核心Linux发行版:核心Linux发行版含有内核、一个或多个图形化桌面环境以及预编译好的几乎所有能见到的
Linux应用。它提供了一站式的完整Linux安装。
在这里插入图片描述

特定用途的Linux发行版:它们通常基于某个主流发行版,但仅包含主流发行版中一小部分用于某种特定用途的应用程序。
在这里插入图片描述
Linux liveCD发行版:Linux世界中一个相对较新的现象是可引导的Linux CD发行版的出现。它无需安装就可以看到Linux系统是什么样的。可以通过CD来启动PC,并且无需在硬盘安装任何东西就能运行Linux发行版。
在这里插入图片描述

申明:文中没特殊注明,图皆来自Linux命令行与shell脚本编程大全<第三版>。

发布了91 篇原创文章 · 获赞 17 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qq_23327993/article/details/104536715