文章目录
-
- Linux发行版简介
- 学习Linux的必备硬件知识
-
- 关键硬件器件——CPU
- 关键硬件器件——存储
- 关键硬件器件——内存
- 其他一些查看硬件信息的命令
- Linux开机过程(以Ubuntu16.04为例)
-
- 阶段1:BIOS
- 阶段2:boot Loader
- 阶段3:kernel
- 阶段4:systemd
- 阶段5:应用软件
- Linux常用命令
-
- 基本命令
-
- 文件管理
- 文本操作
- 磁盘管理
- 系统管理
- 网络通信
- 压缩解压
- 查询硬件信息的命令
- 多命令协作
- git操作命令
- Reference
-
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核的操作系统。
-
Linux 的发行版简单说就是将 Linux 内核与应用软件做一个打包。知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux
-
Linux发行版主要有Debian与Redhat两大系列
Debian
Redhat
发行版代表
Debian,Ubuntu,Linux Mint
Redhat,CentOS,Fedora
软件包管理方式
dpkg(管理本地的软件包,无法处理依赖关系)、 apt(联网下载软件包,自动处理依赖关系)
rpm(管理本地的软件包,无法处理依赖关系)、 yum(联网下载软件包,自动处理依赖关系)
安装包格式
deb
rpm
关键硬件器件——CPU
CPU是计算机的运算核心和控制核心,部分CPU内置核芯显卡
- x86架构:Intel、AMD、海光、兆芯等芯片
- ARM架构:飞腾、鲲鹏等
- 固态硬盘(SSD):读写速度快,价格较高
- 机械硬盘(HDD):读写速度慢,价格便宜,容量大
- EMMC:多用于低端嵌入式设备,容量较小,云终端的EMMC有4GB、8GB、32GB几种规格
分为板载和插槽两种接口
云桌面的瘦终端采用1-2GB内存,胖终端标配4G或8GB内存,服务器一般是16GB*N的内存
查看内存的命令
其他一些查看硬件信息的命令
DMI
-
DMI (Desktop Management Interface)是帮助收集电脑系统信息的管理系统。通过DMI可以在Linux中查询到包括CPU、内存、扩展槽等在内的系统配置信息。DMI通常将上述信息存储在BIOS中一个大小的DMI数据区中
-
云终端的产品ID、产品型号、硬件版本、SN都存储在DMI中,可通过命令查看。
BIOS与boot loader
- MBR与GPT
MBR:Master Boot Record,主引导扇区,它在硬盘上的三维地址为**(柱面,磁头,扇区)=(0,0,1)**。MBR中存放着boot loader(446字节)、分区表(64字节)和硬盘有效标志(55AA) 。MBR最多只能支持4个主分区,无法支持超过2T的硬盘。
GPT: GUID Partition Table ,是一个实体硬盘的分区结构。最多支持 128 个分区,允许大于 2 TB 的卷容量
Legacy BIOS 与UEFI BIOS
Legacy BIOS:传统BIOS。Legecy BIOS从MBR中寻找boot loader。目前云桌面的服务器大多还是用Legacy BIOS。
UEFI BIOS:只支持64位系统且磁盘分区必须为GPT模式,可引导大于2T的硬盘,更快的启动速度。 UEFI BIOS会自动搜索硬盘根目录的EFI目录,而boot loader就在EFI文件夹中。目前云终端都采用UEFI BIOS。
**总结:**BIOS从硬盘的特定位置寻找boot loader
阶段2:boot Loader
主要功能
- 提供选择菜单,让使用者选择不同的开机项
- 加载内核,启动操作系统
- 将开机管理功能转交其他boot loader负责
常见的boot loader有、、,云桌面的终端和服务器都使用GRUB
为什么平时一般见不到BootLoader的界面?因为超时时间被设为0了,直接从默认的启动项启动
-
修改终端的grub超时时间:vim.tiny /boot/grub/custom.cfg,将第一行的set timeout=0改为set timeout=3
-
查看grub.cfg:vi /boot/grub/grub.cfg
修改grub配置以及grub配置文件的各种设置选项:
https://help.ubuntu.com/community/Grub2/Setup
https://www.jianshu.com/p/a24d51276a82
https://blog.csdn.net/mr_zing/article/details/41055617
https://blog.csdn.net/dc_show/article/details/47396649
https://blog.csdn.net/shana_8/article/details/81455657
gurb.cfg
中,会用到和两个文件
是可引导的、压缩的内核。“vm”代表 “Virtual Memory”,z代表用gzip压缩
是个RAM Disk(通过软件将一部分RAM模拟为硬盘的技术)的映像文件,里面包含了linux启动时需要的目录、可执行文件、内核驱动模块等。
阶段3:kernel
-
载入和到内存中
-
kernel启动后自解压,将的内容挂载为根文件系统
-
kernel从init根文件系统中加载所需功能模块
-
kernel会根据中“root=XXX”部分所指定的内容创建一个根设备,然后将根文件系统以只读的方式挂载,并切换到真正的根文件系统上
-
调用systemd程序,进入系统初始化阶段。
详细流程可以参考
Bootloader引导内核后,进入第三个阶段:内核。这边并不打算介绍内核的函数调用流程,因为目前我自己在工作中还没遇到需要解决的问题。今天想要介绍的是内核阶段可能存在两个根文件系统。
阶段4:systemd
是 系统中最新的初始化系统,它主要的设计目标是克服 固有的缺点,提高系统的启动速度。
在硬件驱动成功后,kernel 会主动呼叫 systemd 。从右图可以看出,、、、存在依次依赖的关系,按照依赖关系并发启动包含的服务后,完成图形界面的启动
会执行,自研脚本可以从中进行启动
阶段5:应用软件
使用可以查看进程树。可以看到的PID为1,所有应用软件都是从派生出来的
学习完linux开机的5个阶段,请大家思考下,我们学习这部分知识的目的是什么,能解决什么问题?
1 开机速度的优化
2 定位BUG在哪个阶段发生
3 调试,例如grub选择内核,编辑启动参数
基本命令
文件管理
ls, mv, cp, rm, chown, chmod, mkdir, find, touch, ln
-
ls
-
mv
-
mv参数设置与运行结果
命令格式
运行结果
mv 文件名 文件名
将源文件名改为目标文件名
mv 文件名 目录名
将文件移动到目标目录
mv 目录名 目录名
目标目录已存在,将源目录 移动到目标目录;目标 目录不存在则改名
mv 目录名 文件名
出错
-
-
cp
-
rm
-
chown
-
chmod
-
mkdir
-
find
-
touch
-
ln
文本操作
grep, cat, wc, cut, awk, sed, tr
-
grep
-
cat
-
wc
-
cut
-
awk
https://www.runoob.com/linux/linux-comm-awk.html
-
sed
-
tr
磁盘管理
cd, pwd, df, du, dd, fdisk, mount/umount, mkfs
-
cd
-
pwd
-
df
-
du
-
dd
-
fdisk
-
mount/umount
-
mkfs
系统管理
top, ps, pstree, date, shutdown, reboot, passwd
-
top
-
ps
-
pstree
-
date
-
shutdown
-
reboot
-
passwd
网络通信
ping, ssh, scp, ifconfig
-
ping
-
ssh
-
scp
-
ifconfig
压缩解压
tar, gzip/gunzip, zip/unzip
-
tar
-
gzip/gunzip
-
zip/unzip
查询硬件信息的命令
-
lscpu
-
free
-
lspci
-
lsusb
多命令协作
-
管道:
http://c.biancheng.net/view/3131.html
https://www.jianshu.com/p/9c0c2b57cb73
-
输入输出重定向:,,
git操作命令
-
git是一个开源的分布式版本控制系统,Linux的开源代码一般都采用git管理
-
git常用命令