linux启动流程
⑴ linux系统启动及定制过程
CentOS的启动流程总体顺序如下:
POST --> Boot Sequence --> bootloader(MBR) --> Kernel --> 加载rootfs --> switchroot --> /sbin /init --> (配置文件:/etc/inittab, /etc/init/*.conf) --> 根据init配置文件设置默认运行级别 --> 运行系统初始化脚本/etc/rc.d/rc.sysinit,完成系统初始化 --> 开启或关闭用户选定的对应运行级别下所对应的服务 --> 启动终端,打印登录提示符。
注:前面加粗部分代表内核空间的系统启动流程,后面未加粗部分代表用户空间的系统启动流程。
第一步:硬件启动过程
POST加电自检
主要实现的功能是检测各个外围硬件设备是否存在而且能够正常运行起来,实现这一自检功能的是固化在主板上的ROM(主要代表为CMOS)芯片上的BIOS(Basic Input/Output System)程序;例如BIOS会检测CPU、Memory以及I/O设备是否能够正常运行,如果是个人计算机的话可能还会检测一下显示器。只要一通电,CPU就会自动去加载ROM芯片上的BIOS程序,是这样来实现的。而检测完成之后就进行硬件设备的初始化。
选择启动设备以加载MBR
主要实现的功能是选择要启动的硬件设备,选择了之后就可以读取这个设备上位于MBR里头的bootloader了。这一步的实现是这样的:根据BIOS中对启动顺序的设定,BIOS自己会依次扫描各个引导设备,然后第一个被扫描到具有引导程序(bootloader)的设备就被作为要启动的引导设备。
MBR(Main Boot Record),是硬盘的0柱面,0磁道、1扇区(第一个扇区),称为主引导扇区,也称为主引导记录。它由三部分组 成:主引导程序(BootLoader)、硬盘分区表DPT(Disk Partition table)和硬盘有效标志(55AA)。
注:硬盘默认一个扇区大小为512字节。
第一部分,主引导程序(BootLoader)占446个字节,负责从活动分区中装载,并运行系统引导程序。
第二部分,硬盘分区表DPT占64个字节,有4个分区表项,每个分区表项占16个字节,硬盘中分区有多少以及每一个分区的大小都记 录在其中。
第三部分,硬盘有效标志,占2个字节,固定为55AA。如果这个标志位0xAA55,就认为这个是MB
第二步:GRUB引导阶段
不同的系统有不同的主引导程序(BootLoader)。Windows使用的是NTLDR(NT Loader,Windows NT系列操作系统)、Bootmgr(Boot Manager,Windows Vista,7,8,10),Linux一般使用的是grub(也叫grub legacy)和grub2。GRUB程序加载执行并引导kernel(内核)程序,其中有三个阶段,Grub引导阶段的文件都在/boot/grub/目录下。
stage1: 这一阶段执行的就是系统安装时预先写入到MBR的Bootloader程序,即是存放在MBR的前446字节里的程序。它的任务仅是读取(加载)硬盘的0柱面,0磁道,2扇区的内容(/boot/grub/stage1)并执行。
stage1.5: 这一阶段是Stage1阶段和Stage2阶段的桥梁,功能是加载stage2所在分区的文件系统驱动,让stage1中的bootloader能识别stage2所在分区的文件系统,此后grub程序便有能力去访问/boot/grub/stage2。
stage2: 这一阶段读取并解析grub的配置文件/boot/grub/grub.cnf,根据配置文件加载内核镜像到内存中,通过initrd程序建立虚拟根文件系统,最后调用(转交)内核。
第三步:内部引导阶段
加载内核,核心开始解压,启动一些最核心的程序。为了让内核足够的轻小,硬件驱动并没放在内核文件里面。系统仅探测可识别到的所有硬件设备,加载硬件驱动程序,即加载真正的根文件系统所在设备的驱动程序(有可能会借助于ramdisk加载驱动),以只读方式挂载根文件系统,运行用户空间的第一个应用程序:/sbin/init。
第四步:init初始化阶段(系统初始化阶段)
虽然CentOS 5、CentOS 6以及CentOS 7的/etc/init配置文件内容各不相同,但总体的启动流程相同:/sbin/init --> 根据/etc/inittab配置文件设置默认运行级别 --> 运行系统初始化脚本/etc/rc.d/rc.sysinit,完成系统初始化 --> 关闭或启动用户选定的默认运行级别所对应的服务 。
对于CentOS 5来说,初始化程序init是SysV init,其配置文件为:/etc/inittab; 对于CentOS 6来说,初始化程序init是upstart,其配置文件为:/etc/inittab, /etc/init/ .conf,也就是upstart将配置文件拆分成多个,在/etc/init/目录下以conf结尾的都是upstart风格的配置文件,而/etc/inittab仅用于设置默认运行级别; 对于CentOS 7来说,初始化程序init是systemd,其配置文件:/usr/lib/system/systemd/, /etc/systemd/system/ ;
具体执行过程:/sbin/init程序会读取/etc/inittab文件确认运行级别,然后执行/etc/rc.d/rc脚本,根据确认的运行级别启动对应/etc/rc.d/rc#.d/目录下的服务(#为0~6),与此同时执行系统初始化脚本/etc/rc.sysinit(软链接,指向/etc/rc.d/rc.sysinit),还会加载/etc/rc.local(软链接,指向/etc/rc.d/rc.local文件)用户自定义服务(脚本)。
CentOS7中初始化进程变为了systemd,systemd即为system daemon,是Linux下的一种init软件,开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell系统开销的效果,最终代替现在常用的System V与BSD风格的init程序。与多数发行版使用的System V风格的init相比,systemd采用了以下的新技术:A.采用Socket激活式与总线激活式服务,以提高相互依赖的各服务的并行运行性能;B.用Cgroup代替PID来追踪进程,即使是两次fork之后生成的守护进程也不会脱离systemd的控制。
第五步:启动终端
根据前面获取的运行级别来启动终端,mingetty程序是用于启动终端的,它会调用登录程序login,这样就能显示出登录提示符了,类似mingetty这种用于打开终端的程序还有getty等。而如果默认运行级别为5,则会打开图形界面。
第一步:硬件启动过程
这一步和CentOS6差不多,详细请看1.1内容。
第二步:GRUB引导阶段
从这一步开始,CentOS6和CentOS7的启动流程区别开始展现出来了。CentOS7的主引导程序使用的是grub2,执行过程是先加载boot.img、core.img两个镜像,再加载MOD模块文件,把grub2程序加载执行,接着解析配置文件/boot/grub/grub.cfg,根据配置文件加载内核镜像到内存,之后构建虚拟根文件系统,最后转到内核。
CentOS7中使用命令进行配置,而不直接去修改配置文件了。grub.cfg配置文件开头注释部分说明了由/etc/grub.d/目录下文件和/etc/default/grub文件组成。改好配置后都需要使用命令grub2-mkconfig -o /boot/grub2/grub.cfg,将配置文件重新生成。
第三步:内部引导阶段
这一步与CentOS6也差不多,加载驱动,切换到真正的根文件系统,唯一不同的是执行的初始化程序变成了/usr/lib/systemd/systemd。
第四步:init初始化阶段(系统初始化阶段)
CentOS7中我们的初始化进程变为了systemd。执行默认target配置文件/etc/systemd/system/default.target(这是一个软链接,与默认运行级别有关)。然后执行sysinit.target来初始化系统和basic.target来准备操作系统。接着启动multi-user.target下的本机与服务器服务,并检查/etc/rc.d/rc.local文件是否有用户自定义脚本需要启动。最后执行multi-user下的getty.target及登录服务,检查default.target是否有其他的服务需要启动。
注意:/etc/systemd/system/default.target指向了/lib/systemd/system/目录下的graphical.target或multiuser.target。而graphical.target依赖multiuser.target,multiuser.target依赖basic.target,basic.target依赖sysinit.target,所以倒过来执行。
unit对象:unit表示不同类型的systemd对象,通过配置文件进行标识和配置;文件中主要包含了系统服务、监听socket、保存的系统快照以及其他与init相关的信息。(也就是CentOS6中的服务器启动脚本)
第五步:启动终端
systemd执行sysinit.target
systemd启动multi-user.target下的本机与服务器服务
systemd执行multi-user.target下面的/etc/rc.d/rc.local
Systemd执行multi-user.target下的getty.target及登录服务
getty.target是启动终端的systemd对象。如果到此步骤,系统没有指定启动图形桌面,到此就可以结束了,如果需要启动图形界面,要在此基础上启动桌面程序。
从 CentOS 7 版本之后,系统开始用 systemd 实现init进程,系统启动和服务器守护进程管理器功能,负责在系统启动或运行时,激活系统资源,服务器进程和其它进程。
unit表示不同类型的systemd对象,通过配置文件进行标识和配置;文件中主要包含了系统服务、监听socket、保存的系统快照以及其它与init相关的信息。
3.2 system unit文件格式
/usr/lib/systemd/system:发行版打包者使用,每个服务最主要的启动脚本设置,类似于之前的/etc/init.d/
/etc/systemd/system:系统管理员和用户使用,管理员建立的执行脚本,类似于/etc/rcN.d/Sxx的功能,比上面目录优先运行
/lib/systemd/system::ubutun的对应目录
/run/systemd/system:系统执行过程中所产生的服务脚本,比上面目录优先运行
unit 格式说明:
service unit file文件通常由三部分组成:
Unit段的常用选项:
Service段的常用选项:
Install段的常用选项:
注意:对于新创建的unit文件,或者修改了的unit文件,要通知systemd重载此配置文件,而后可以选择重启。
首先在启动界面按e编辑启动参数,
将ro参数更改为rw init=/sysroot/bin/sh,按ctr + x启动系统
按下图执行命令更改root密码
⑵ linux字符界面与图形界面在启动过程有什么不同希望在启动流程上做解释,不要教两者如何切换
站在服务器的角度: 字符界面与图形界面无本质上的区别,图形界面能做的工作在字符界面都可以做,linux 下的图形界面只是在linux下装了一个图形化的应用软件(就好比winxp 是字符界面,你为了玩cs,就安装了cs并设置为开机自动启动,一开机就能玩cs一样) linux 没有图形界面一样可以完成工作需要。
linux的启动流程比较复杂 : 大至可以分为几个阶段
1、通电硬件自检
2、按bios的设置找找引导设备
3、从引导设备上找到mbr引导分区
4、按照mbr的设置 找到boot分区,并加载系统内核。驱动硬件
5、建立虚拟linux 。后执行init时程
6、 字符界面启动级别 3 图形化模式启动级别 5 。 根据不同的启动级别会执行 /etc/下不同启动级别的脚本
abc@localhost:~$ cd /etc/rc
rc0.d/ rc1.d/ rc2.d/ rc3.d/ rc4.d/ rc5.d/ rc6.d/ rcS.d/l
你明白了没
⑶ Linux之三Linux的启动过程/关机
man ls
man pages手册页
显示说明
数字说明
Ctrl+Alt+F1/F2......F6
Ctrl+Alt+F7,回到图形化界面
who,看看那几个tty连接着
Linux系统有7个运行级别(runlevel):常用的是3和5
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS),没有网络服务
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11表示控制台,进入图形界面
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
运行级别
接通电源BIOS自检,按照BIOS中设置的启动设备(通常是硬盘)来启动,操作系统接管硬件以后,
首先读入 /boot 目录下的内核文件。
init 进程是系统所有进程的起点,你可以把它比拟成系统所有进程的老祖宗,没有这个进程,系统中任何进程都不会启动。
init 程序首先是需要读取配置文件 /etc/inittab
许多程序需要开机启动。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。
init进程的一大任务,就是去运行这些开机启动的程序。
但是,不同的场合需要启动不同的程序,比如用作服务器时,需要启动Apache,用作桌面就不需要。
Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。
也就是说,启动时根据"运行级别",确定要运行哪些程序。
============================================================
Linux系统有7个运行级别(runlevel):
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
在init的配置文件中有这么一行: si::sysinit:/etc/rc.d/rc.sysinit它调用执行了/etc/rc.d/rc.sysinit,
而rc.sysinit是一个bash shell的脚本,它主要是完成一些系统初始化的工作,rc.sysinit是每一个运行级别都要首先运行的重要脚本
它主要完成的工作有:激活交换分区,检查磁盘,加载硬件模块以及其它一些需要优先执行任务
rc执行完毕后,返回init。这时基本系统环境已经设置好了,各种守护进程也已经启动了。
init接下来会打开6个终端,以便用户登录系统。在inittab中的以下6行就是定义了6个终端:
一般来说,用户的登录方式有三种:
(1)命令行登录
(2)ssh登录
(3)图形界面登录
在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机 。
正确的关机流程为:sync > shutdown > reboot > halt
sync 将数据由内存同步到硬盘中
shutdown –h 10 ‘This server will shutdown after 10 mins’ 这个命令告诉大家,计算机将在10分钟后关机,并且会显示在登陆用户的当前屏幕中
Shutdown –h now 立马关机
Shutdown –r now 系统立马重启
reboot 就是重启,等同于 shutdown –r now
halt 关闭系统,等同于shutdown –h now 和 poweroff
最后总结一下,不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中。
重新安装系统吗?当然不用!进入单用户模式更改一下root密码即可。
1 重启Linux,见到下图,在3秒钟之内按下回车
2 三秒之内要按一下回车,出现如下界面
3 按下e键就可以进入下图
4 移动到下一行,再次按e键
5 移动到下一行,进行修改
修改完成后回车键,然后按b键进行重新启动进入系统
6 移动到下一行,进行修改
最终修改完密码,reboot一下即可。
⑷ 嵌入式linux系统的启动流程是什么样的
1)
初始化
RAM
因为
Linux
内核一般都会在
RAM
中运行,所以在调用
Linux
内核之前
Bootloader
必须设置和初始化
RAM,为调用
Linux内核
做好准备。初始化
RAM
的任务包括设置
CPU
的控制寄存器参数,以便能正常使用
RAM
以及检测RAM
大小等。
2)
初始化串口端口
在
Linux
的启动过程中有着非常重要的作用,它是
Linux内核和用户交互的方式之一。Linux
在启动过程中可以将信息通过串口输出,这样便可清楚的了解
Linux
的启动过程。虽然它并不是
Bootloader
必须要完成的工作,但是通过串口输出信息是调试
Bootloader
和Linux
内核的强有力的工具,所以一般的
Bootloader
都会在执行过程中初始化一个串口作为调试端口。
3)
检测
处理器类型
Bootloader在调用
Linux内核前必须检测系统的处理器类型,并将其保存到某个常量中提供给
Linux
内核。Linux
内核在启动过程中会根据该处理器类型调用相应的初始化程序。
4)
设置
Linux启动参数
Bootloader在执行过程中必须设置和初始化
Linux
的内核启动参数。
5)
调用
Linux内核映像
Bootloader完成的最后一项工作便是调用
Linux内核。如果
Linux
内核存放在
Flash
中,并且可直接在上面运行(这里的
Flash
指
Nor
Flash),那么可直接跳转到内核中去执行。但由于在
Flash
中执行代码会有种种限制,而且速度也远不及
RAM
快,所以一般的
嵌入式系统
都是将
Linux内核拷贝到
RAM
中,然后跳转到
RAM
中去执行。
⑸ Linux基本配置和管理---- Linux系统启动详解
linux基本配置和管理----
linux系统启动详解1
系统启动的流程
BIOS
->
MBR+boot
code
->
执行引导程序:
GRUB
->
加载内核
->
执行init
->
运行runlevel2
启动详解
1
BIOS
1
BIOS
指的是基本的输入输出系统(basic
input
output
system),一般保存在主板上的BIOS芯片中
2
计算机启动的第一步一般都是先启动BIOS,然后BIOS去检查硬件以及查找可启动的设备
3
可启动的设备可以在BIOS中进行设置,包括USB
,
CDROM
,
HD等
2
MBR
1
MBR是512字节的,前446字节为引导代码
2
BIOS通过第一个扇区的512字节中最后两个字节为55aa来判断设备为启动设备
3
MBR只是去加载引导程序GURB
3
GRUB
1
GRUB是现在linux使用的主流的引导程序
2
GRUB可以引导几乎所有的操作系统
3
GRUB的相关文件保存在/boot/grub中
4
KERNEL
1
MBR的引导代码将负责找到并加载linux的内核
2
linux内核保存在
/boot/vmlinuz......
3
一般还会加载内核模块的打包文件
/boot/init.....
4
linux为了保持内核的精简会将一些不常用的驱动,功能编译为模块,然后在要用的时候动态的加载,而这些模块被保存为initrmfs文件
5
早期的linux是使用initrd文件,但是现在的绝大多数的linux版本都是使用initrmfs,这样能够更节省空间,更加灵活
6
命令dmesg可以用来查看被次启动内核的输出信息
5
INIT
1
init
是linux运行的第一个进程,init是所有进程的父进程,编号为1
2
调用/etc/rc.d/rc.sysinit来对系统进行初始化,挂载文件系统,并且根据运行级别启动相应的程序
3
linux的运行级别
0
关机
1
单用户模式
2
不带网络的多用户模式
3
命令行的多用户模式
4
未使用
5
图形界面多用户模式
6
重启
4
我们可以通过runlevel查看之前和当前的运行级别
5
命令init可以用来查看改变当前的运行级别
6
单用户修改root密码
1
为内核传递参数1或者是single可使系统进入单用户模式
2
单用户模式不启动任何的服务
3
单用户模式直接以root登录,不需要密码
4
我们可以通过passwd来修改root的密码
5
由于任何接近我们这个物理机的人都有可能修改我们的root密码,因此我们可以通过GRUB加密来防止密码被修改
6
我们在grub.conf中的启动设置里面添加一行password
--md5
加密后的串
密码我们可以通过grub-md5-crypt
生成
⑹ 嵌入式linux系统的启动流程是什么样的
1) 初始化 RAM
因为 Linux 内核一般都会在 RAM 中运行,所以在调用 Linux 内核之前 Bootloader 必须设置和初始化 RAM,为调用 Linux内核做好准备。初始化 RAM 的任务包括设置 CPU 的控制寄存器参数,以便能正常使用 RAM 以及检测RAM 大小等。
2) 初始化串口端口
在 Linux 的启动过程中有着非常重要的作用,它是 Linux内核和用户交互的方式之一。Linux 在启动过程中可以将信息通过串口输出,这样便可清楚的了解 Linux 的启动过程。虽然它并不是 Bootloader 必须要完成的工作,但是通过串口输出信息是调试 Bootloader 和Linux 内核的强有力的工具,所以一般的 Bootloader 都会在执行过程中初始化一个串口作为调试端口。
3) 检测处理器类型
Bootloader在调用 Linux内核前必须检测系统的处理器类型,并将其保存到某个常量中提供给 Linux 内核。Linux 内核在启动过程中会根据该处理器类型调用相应的初始化程序。
4) 设置 Linux启动参数
Bootloader在执行过程中必须设置和初始化 Linux 的内核启动参数。
5) 调用 Linux内核映像
Bootloader完成的最后一项工作便是调用 Linux内核。如果 Linux 内核存放在 Flash 中,并且可直接在上面运行(这里的 Flash 指 Nor Flash),那么可直接跳转到内核中去执行。但由于在 Flash 中执行代码会有种种限制,而且速度也远不及 RAM 快,所以一般的嵌入式系统都是将 Linux内核拷贝到 RAM 中,然后跳转到 RAM 中去执行。
⑺ 新手学Linux系统有哪些要学的知识
第0章计算机硬件与组成基础 / 1
0.1计算机硬件分类 / 1
0.2运维与服务器 / 2
0.3互联网公司的服务器品牌 / 5
0.4服务器品牌详解及对应型号 / 6
0.5服务器(计算机)核心零部件介绍 / 8
0.6计算机和服务器的主要构成图解 / 20
0.7计算机系统基础 / 21
0.8 计算机中数据的表示 / 26
0.9计算机硬件基础问题小结 / 29
0.10本章相关资料 / 29
第1章Linux系统介绍与环境搭建准备 / 30
1.1Linux简介 / 30
1.2Linux的起源 / 32
1.3Linux核心概念知识 / 36
1.4Linux的特点 / 38
1.5Linux的应用领域 / 39
1.6如何选择Linux的发行版本 / 41
1.7搭建学习Linux的运维环境 / 44
1.8本章重点 / 57
1.9本章相关问题 / 58
1.10本章参考资料 / 58
第2章企业级CentOS7.6操作系统的安装 / 59
2.1下载CentOS系统ISO镜像 / 59
2.2CentOS7.6操作系统的安装准备 / 62
2.3开始安装CentOS7.6操作系统 / 63
2.4系统安装后的基本配置 / 80
2.5本章相关问题 / 90
第3章远程连接管理Linux实践 / 91
3.1远程连接Linux系统管理 / 91
3.2SSH客户端常用工具Xshell / 95
3.3克隆VMware下的虚拟机 / 110
3.4本章重点 / 113
3.5本章相关问题 / 113
第4章Linux系统命令行入门基础 / 114
4.1Linux命令行概述 / 114
4.2在Linux命令行下查看命令帮助 / 118
4.3Linux关机重启注销命令 / 122
4.4本章相关问题 / 126
第5章Linux文件及目录管理命令基础 / 127
5.1操作Linux必知必会基础知识 / 127
5.2Linux文件及目录核心命令 / 129
5.3Linux文件及目录命令核心知识的试题及详解 / 156
5.4有关Linux命令的思维 / 159
5.5本章相关问题 / 159
第6章Linux目录文件与系统启动知识 / 160
6.1Linux系统目录结构介绍 / 160
6.2Unix系统目录结构的历史典故 / 162
6.3Linux的目录结构详解 / 164
6.4重要的Linux系统文件介绍 / 167
6.5Linux(CentOS6)系统启动流程说明(重点) / 179
6.6Linux(CentOS7)系统启动流程说明(重点) / 184
6.7本章重点 / 186
第7章Linux文件过滤及内容编辑处理 / 187
7.1vi/vim:纯文本编辑器 / 187
7.2echo:显示输出文本内容 / 193
7.3cat:合并文件或查看文件内容 / 195
7.4more:分页显示文件内容 / 203
7.5less:分页显示文件内容 / 205
7.6head:显示文件头部内容 / 208
7.7tail:显示文件内容尾部 / 210
7.8grep:文本过滤工具 / 211
7.9tr:替换或删除字符 / 214
7.10 有关vi/vim/cat/echo及特殊重点符号的考试题 / 216
7.11有关grep/head/sed/awk及特殊重点符号的考试题 / 222
7.12有关mkdir命令的考试题 / 223
7.13有关cp/alias/unalias命令的考试题 / 224
7.14本章知识总结 / 226
第8章Linux文件类型及查找命令实践 / 227
8.1Linux文件属性概述 / 227
8.2Linux文件类型及文件扩展名 / 228
8.3文件及目录查找命令 / 234
8.4tar:打包压缩命令 / 254
8.5date:显示与设置系统时间 / 258
8.6本章重点 / 262
第9章Linux文件核心属性知识 / 263
9.1回顾Linux文件属性知识 / 263
9.2用户及用户组 / 263
9.3文件的权限列 / 268
9.4文件的修改时间属性列 / 270
9.5索引节点 / 270
9.6硬链接及软链接数知识 / 276
9.7chattr:改变文件的扩展属性 / 287
9.8lsattr:查看文件扩展属性 / 289
9.9本章重点 / 290
9.10本章相关问题 / 290
第10章Linux通配符与特殊符号知识应用实践 / 291
10.1Linux通配符与特殊符号简介 / 291
10.2Linux通配符知识与实践 / 291
10.3Linux特殊符号知识与实践 / 294
10.4Linux通配符与特殊符号知识小结 / 301
第11章Linux正则表达式与三剑客知识应用实践 / 304
11.1正则表达式介绍 / 304
11.2正则表达式的分类 / 306
11.3基本正则表达式实践 / 307
11.4扩展正则表达式实践 / 312
11.5预定义特殊中括号表达式 / 315
11.6元字符表达式 / 316
11.7sed:流编辑器 / 317
11.8awk命令 / 322
11.9本章重点 / 327
第12章Linux系统权限知识及应用实践 / 328
12.1文件权限介绍 / 328
12.2Linux文件及目录权限核心知识说明 / 329
12.3Linux权限体系核心知识实践 / 330
12.4设置及更改文件及目录权限命令chmod / 337
12.5企业环境下文件和目录的安全核心知识 / 341
12.6默认权限掩码及设置命令umask / 342
12.7Linux系统特殊权限位知识 / 345
12.8改变文件或目录的用户和用户组命令chown / 352
12.9chattr:改变文件的扩展属性 / 354
12.10lsattr:查看文件的扩展属性 / 356
12.11本章重点 / 357
第13章Linux系统定时任务Cron(d)服务应用实践 / 358
13.1Cron(d)介绍 / 358
13.2用户定时任务Cron(d)使用说明 / 362
13.3用户定时任务Cron实例说明 / 365
13.4生产环境下用户Cron配置专业实践案例 / 366
13.5生产环境下的定时Cron书写要领 / 369
13.6调试Cron定时任务的技巧总结 / 372
13.7crontab生产案例故障分析及解决 / 374
13.8有关Cron定时任务的企业面试题 / 376
13.9定时任务知识逻辑图(学习方法) / 376
13.10本章重点 / 376
第14章Linux用户管理知识与应用实践 / 378
14.1用户及用户组配置文件介绍 / 378
14.2Linux用户及用户组命令介绍 / 382
14.3添加用户命令useradd / 383
14.4用户信息修改命令usermod / 390
14.5 删除用户命令userdel / 392
14.6添加用户组命令groupadd / 394
14.7删除用户组命令groupdel / 394
14.8修改用户密码命令passwd / 395
14.9批量更新用户的密码命令chpasswd / 398
14.10修改用户密码有效期命令chage / 398
14.11用户查询相关命令 / 400
14.12Linux用户身份切换命令su / 402
14.13visudo:编辑sudoers文件的工具 / 406
14.14以另一个用户身份执行命令:sudo / 407
14.15CentOS7系统找回root密码的方法精讲 / 411
第15章Linux系统权限集中管理项目案例实践 / 415
15.1sudo配置文件/etc/sudoers深入介绍 / 415
15.2企业环境中用户权限集中管理项目案例 / 419
15.3记录所有用户执行sudo命令的操作日志 / 424
附录A用户权限授权规划表格参考 / 427
附录BLinux服务器系统权限申请表 / 429
更多:
16.磁盘管理。
17.进程管理
18.软件包管理(yum与rpm)
19.网络基础
入门的话这些就差不多了。
以上内容对应的入门Linux书籍:
https://item.jd.com/12568747.html
免费配套精品视频。
https://ke.qq.com/course/2806831
最后祝你好运,谢谢!
⑻ 有stm32基础,学习linux开发要多久
linux开发是指:硬件开发?驱动开发?应用程序开发?
STM32是cortex-M内核,一般能跑linux的都是cortex-A核,架构差异蛮大的。
STM32单片机 = cortex-M内核 + 外设
arm soc = cortex-A内核 + 外设
先说结论:单片机开发基础对linux开发有帮助,但是很有限
STM32基础:我个人认为是一定的code能力+寄存器配置能力 + 小型程序开发能力 + 外设驱动能力
先大概说一下linux启动流程吧:
1、FSBL:引导程序,厂家固化的,不用管;
2、SSBL:bootloader程序,一般用u-boot,厂家会提供一个可用版本,定制裁剪功能看个人需求;
3、linux内核 + linux驱动
4、跟文件系统rootfs,可能需要增添删改
linux毕竟是庞大的操作系统,开发起来当然也非常复杂,需要的技术栈十分庞大,比如:
makefile、链接脚本、交叉编译、shell脚本、设备树、驱动框架等等
即使是linux驱动开发也是基于框架的开发,与单片机开发差距较大。既然想进入linux世界,先从空杯心态开始吧。
写这么多,不是说linux很难,其实任何东西入门容易,精通难,比如Linux内核进程调度、存储管理等等,都是我不知道的。没关系的,可以从简单的开始入手,一步一步积累嘛