Linux系统博大精深,学习Linux的资料浩瀚如大海。本文档不打算再做重复造*的事情,我们尽量根据实践中很常见的技术要点进行讲解,同时列出一些操作范例:
#发行版
Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。后面Linux发展成为一个强大的生态体系,慢慢的就有一些专业公司基于内核再组合了一些应用软件,形成了多种分支,也就是发行版。
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
这些版本并非完全独立,它们之前有着共同的家族关系:
虽然版本繁多,实际上最流行的是:CentOS和Ubuntu这个两个发行版。
#安装
如果你没有使用云服务器或虚拟机,就需要安装Linux。下面只大体介绍Linux系统的安装流程:
- 下载Linux系统(一般是ISO文件)
- 制作启动盘
- 开机进入图形化的交互式安装界面
- 安装完成
#启动
Linux系统的启动过程分为如下几个阶段:
- 开机自检:打开电源,BIOS进行硬件自检
- 引导加载:自检通过后,进入MBR引导加载程序(MBR是硬盘中第一个扇区的前512个字节, 称为 main boot record)
- 内核初始化:加载内核(Kernel)代码,即读入 /boot 目录下的内核文件,监测设备并加载设备驱动程序
- Systemd初始化(替代init),获取系统控制权
- 执行Systemd程序,Systemd是一个管理进程的进程程序,也是操作系统的第一个进程,其PID=1
- 读取 /etc/systemd 下的配置文件
- 读取 /etc/systemd/system/default.target 下的运行级别文件
- 执行 /etc/rc.d/rc.local 文件中的程序
2-4 是由GRUB(Grand Unified Bootloader)负责的。其中GRUB boot loader 代码的一小部分(子集)被写入MBR,其余部分存储在/boot分区中
- Systemd 执行系统初始化
- 设置主机名
- 初始化网络
- 基于配置初始化 SElinux
- 显示欢迎标语
- 基于内核参数初始化硬件
- 加载文件系统
- 清除 /var 中的目录
- 启动交换分区
- 建立终端:系统打开6个终端,以便用户登录系统。
- 用户登录系统:用户登录使用Linux
#目录结构
通过下面的一张图(右键在新窗口中打开,图片效果更好),我们了解Linux系统的目录结构
#编码与字体
一个字符(不管是中文还是英文,或是其它文字)在计算机里都是以0101这样数字存放的,编码就是某个字符是以一个什么数字存放在计算机里的。
字符编码有名为字符集。其原理一句话解释:不同语言对应的机器编码。目前最常用的是UTF-8编码方式,下面就是通一个字符在不同字符编码下的机器代码:
语言 | 示例 | UTF-8编码 |
---|
编码决定字符的存放,字体决定字符的显示。
字体决定一个字符在界面上显示出来的形状,比如同样是‘A‘用不同的字体显示出来的形状是不一样的。
同样的文件内容,在屏幕上的输出同时取决于用什么编码和字体。
掌握了Linux就等于拿到了云计算领域的入场券。
#Linux命令
Linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是CPU、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。