本文是来自《Linux命令行与shell脚本编程大全》的读书笔记,虽然笔者是一名前端工程师,但是系统学习linux命令行已经势在必行,刻不容缓。
基础不牢,地动山摇。每次和终端、服务器打交道,除了cd、mkdir、ping、vim等简单的命令,就是用啥百度啥,现学现用,有时候病急乱投医,很让人苦恼。痛定思痛,还是要扎实系统地学习。
1.1 什么是linux
linux可划分为以下4个部分:
- linux内核
- GNU工具
- 图形化桌面环境
- 应用软件 每一部分在Linux系统中各司其职,相互协作,构成整个Linux系统。
1.1.1 Linux内核
内核主要负责以下四种功能:
- 系统内存管理: 内核不仅管理服务器上的可用物理内存,还可以创建和管理虚拟内存。(内存的分页算法)
- 软件程序管理: 内核创建了第一个进程(init进程)来启动系统上所有其他进程。一些Linux发行版使用一个表(/etc/inittab)来管理启动时要开启的进程。Linux的init采用了运行级,通过调整启动运行级来控制整个系统的功能。从3调整成5,系统可以从基于控制台的系统变成更先进的图形化X window系统。
- 硬件设备管理: 任何Linux系统需要与之通信的设备,都需要在内核代码中加入其驱动程序代码。驱动程序是应用程序和硬件设备的中间人。Linux将硬件设备当成特殊的文件,称为设备文件。
- 文件系统管理
1.1.2 GNU工具
GNU‘s Not Unix的缩写,开发了一套完整的Unix工具,执行一些标准功能,比如控制文件和程序。与Linux内核整合起来,产生了一款完整的操作系统。
供Linux系统使用的这组核心工具称为coreutils软件包。GNU coreutils(core utilities)软件包由三个部分组成:
- 处理文件的工具
- 操作文件的工具
- 管理进程的工具
GNU/Linux shell是一种特殊的交互工具,它为用户提供了启动程序、管理文件系统的问以及运行在Linux系统上的进程的途径。 shell的核心是命令提示符。将多个shell放入文件中作为程序执行,这样的文件被称作shell脚本。
在Linux系统上,通常有好几种shell 可用。不同的shell有不同的特性,默认的shell是Bash shell。
1.1.3 Linux桌面环境
X Window软件是图形显示的核心部分,是直接和PC上的显卡及显示器打交道的底层程序。它控制着Linux程序如何在电脑上显示出漂亮的窗口和图形。
供用户操作文件或事开启程序的是桌面环境。
- KDE桌面
- GNOME桌面
- Unity桌面
1.2 Linux 发行版
Linux系统需要4个关键部件,将完整的Linux系统包称为发行版。不同的Linux发行版通常归为3种:
-
完整的核心Linux发行版
Red Hat:主要用于Internet服务器的商业发行版
Debian:在Linux专家和商用Linux产品种流行的发行版
-
特定用途的发行版
CentOS:一款基于Red Hat企业版Linux源代码构建的免费发行版
Ubuntu:一款用于学校和家庭的免费发行版
-
LiveCD测试发行版
不弄乱PC就体验各种Linux发行版的方法,只需要插入CD就能引导了。
1.3 小结
Linux内核是系统的核心,控制内存、程序和硬件之间的交互。Linux shell 是GNU核心工具集中的一部分。现今的Linux可以支持多种图形化桌面环境。
Linux就是把Linux系统的各个不同部分汇集起来组成一个易于安装的包。Linux LiveCD则是一种无需将Linux安装到硬盘就能体验Linux的发行版。