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內核進程調度、存儲管理等等,都是我不知道的。沒關系的,可以從簡單的開始入手,一步一步積累嘛