[Linux Bible] Linux命令行和Shell代码圣经学习之路1
本帖最后由 旧城欺烟 于 2017-7-18 19:14 编辑第一章: 从Linux shells开始
1. 在开始学习Linux指令行和shells之前,你应该先了解什么是Linux,它从哪里来,它是怎么样工作的。如果你以前没用过Linux,你可以会疑惑为什么会存在这么多不同的Linux版本,你可能也会因为不同的项目如分布,LiveCD,以及GNU。这一章会在你开始使用指令和代码之前为你解答一部分这些Linux的秘密。
首先Linux系统的四个主要构成部分:Linux 内核(kernel), GNU utilities(应该是GNU系统工具吧),图形桌面环境(graphical desktop environment), 以及应用软件(application software), 每一部分在Linux系统中都有其作用。
这一部分主要详细描述这四部分,给你一个总体的概念关于他们如何一起工作从而建立起Linux系统。
Linux kernel(内核)
内核是Linux系统的核心,因为它控制着系统的所有硬件软件,必要时分配硬件,需要时执行软件。
内核负责四个主要功能:系统内存管理(system memory management),软件程序管理(software program management),硬件管理(hardware management),文件系统管理(filesystem management).
- 系统内存管理
内核不仅管理着服务器上的物理内存(physical memory),而且还能创建管理实际不存在的虚拟内存(virtual memory)。内核用硬盘上的空间(叫swap space)来实现。内核来回地在swap space和实际物理内存之间交换虚拟存储单元(virtual memory locations)内容。这能允许系统去思考这里有更多的可用地址相较于物理存在的地址。如下图所示:
存储单元形成的块(blocks)叫pages。内核在物理内存和swap space上都要确定内存每个page的位置。然后内核会形成一个关于memory pages的表来显示哪些pages在物理内存哪些交换出去到硬盘。
-系统程序管理
Linux操作系统叫一个运行的程序process,一个process能运行在前端去显示输出,也能运行在后端。而内核控制着Linux系统如何管理所有的processes在系统上运行。内核创建第一个process,叫init process,去启动所有在系统的其他程序。当内核启动,它载入init process到虚拟内存。当内核启动其他的process,它会给process一个在虚拟内存上的地方去存储process所使用的数据和代码。一些Linux应用包含了一个processes表为了从启动磁盘(bootup)自动启动这些processes。这个表一般储存在一个特殊的文件/etc/inittabs。(for Ubuntu, 在/etc/init.d文件夹)。
Linux系统分为5个运行等级。level 1,只有管理人员能够进入系统进行数据操作。level 3,大部分软件,如网络支持软件,已经启动。level 5,允许使用图形桌面窗口。系统通过控制初始运行等级来控制系统的总体功能。在第4章,你会看到如何使用ps指令来浏览现在运行的processes。
-硬件管理
和windows一样,设备需要驱动来运行。但是Linux把硬件设备看作成特殊的文件,叫设备文件(device files)。总共有三类设备文件:character,block,network。character主要用于那些一次只能处理一字节的数据的设备。block用于那些一次能处理在large blocks的数据的设备。network文件用于那些收发数据的设备,包括网卡和其他特殊的环回网卡等能让Linux系统用网络编程协议来和其通信的设备。Linux创建特殊的文件叫nodes,所有使用设备(device)的通信都通过device node来实现。
-文件系统管理
Linux使用VFS(virtual file system)文件系统。它给内核提供了基本的交互接口,使得内核能够和任何其他类型的文件系统进行通信。
GNU Utilities
主要提供给Linux系统的utilies被称为coreutils package。主要包含3个部分:用于处理文件(Utilities for handling files),用于处理数据(Utilities for manipulating text),以及用于管理进程(Utilities for managing processes)。
-shell
shell是一种特别的交互工具。使用者能用它来启动程序,管理文件,管理进程(process)。shell的核心是命令提示符(command prompt),它能让用户进入文本命令,然后它翻译命令以及在内核里执行这些命令。shell包含了内部命令的集合,你可以使用这些内部命令来进行文件操作,如复制文件,移动文件等。同样,你也可以把这些指令组合后写成一个文件,当成程序来执行。而这些文件就叫做shell scripts(shell 代码)。而Linux默认的shell是bash shell(Bourne again shell)。除了bash shell,我们还会讲一些其他的shell。如:ash shell,korn shell,tcsh shell, zsh shell。
Linux desktop environment(桌面环境)
主要取决于你的系统(CentOS,Ubuntu等)。
Linux distributions(完整系统)
如redhat,centos,ubuntu等
Linux LiveCD
即把linux写入CD里,可以不用安装linux系统而通过CD直接运行linux。
下一章将学习如何从你的桌面环境来获取shell工具,从而开始你的命令行以及shell代码的学习。
很好!我喜欢这个{:10_256:}
页:
[1]