鱼C论坛

 找回密码
 立即注册
查看: 3392|回复: 1

[学习笔记] [Linux Bible] Linux命令行和Shell代码圣经学习之路1

[复制链接]
发表于 2017-7-18 16:51:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 旧城欺烟 于 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系统中都有其作用。
                            Untitled.png

这一部分主要详细描述这四部分,给你一个总体的概念关于他们如何一起工作从而建立起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)内容。这能允许系统去思考这里有更多的可用地址相较于物理存在的地址。如下图所示:

Untitled.png

存储单元形成的块(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)文件系统。它给内核提供了基本的交互接口,使得内核能够和任何其他类型的文件系统进行通信。

Untitled.png


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代码的学习。

评分

参与人数 2荣誉 +5 鱼币 +11 贡献 +5 收起 理由
小甲鱼 + 6
alltolove + 5 + 5 + 5 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-18 17:09:09 | 显示全部楼层
很好!我喜欢这个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 23:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表