給初學者,講講關於Linux操作系統的一些簡單介紹。。。

Linux系統一般有4個主要部分:內核、shell、文件系統和應用程序。

① Linux內核:內核是系統的“心臟”,是運行程序和管理磁盤等硬件設備的核心程序。

② Linux Shell:Shell是系統的用戶界面,提供了用戶與內核進行交互操作的一種接口。它接受用戶輸入的命令,並對其進行解釋,最後送入內核去執行,實際上就是一個命令解釋器。人們也可以使用Shell編程語言編寫Shell程序,這些Shell程序與用其他程序設計語言編寫的應用程序具有相同的效果。

③ Linux 文件系統:文件系統是文件存放在磁盤等存儲設備上的組織方法。Linux的文件系統呈樹型結構,同時它也能支持目前流行的文件系統,如:EXT2、EXT3、FAT、VFAT、NFS、SMB等。

④ Linux 應用程序:同Windows操作系統一樣,標準的Linux也提供了一套滿足人們上網、辦公等需求的程序集即應用程序,包括文本編輯器、X Windows、辦公套件、Internet工具、數據庫等。

其中,Linux內核主要由五個子系統組成:進程調度,內存管理,虛擬文件系統,網絡接口,進程間通信。

linux開機的幾個流程
POST(加電自檢)–>加載BIOS(Basic Input/Output System)–>確定啓動設備(Boot sequence)、加載Boot Loader–>加載內核(kernel)初始化init–>運行/sbin/init初始化系統–>打印用戶登錄提示符

Linux系統有7個運行級別(runlevel):
運行級別0:系統停機狀態,系統默認運行級別不能設爲0,否則不能正常啓動
運行級別1:單用戶工作狀態,root權限,用於系統維護,禁止遠程登陸
運行級別2:多用戶狀態(沒有NFS)
運行級別3:完全的多用戶狀態(有NFS),登陸後進入控制檯命令行模式
運行級別4:系統未使用,保留
運行級別5:X11控制檯,登陸後進入圖形GUI模式
運行級別6:系統正常關閉並重啓,默認運行級別不能設爲6,否則不能正常啓動

一般來說,用戶的登錄方式有三種:

(1)命令行登錄
(2)ssh登錄(SSH是一種網絡協議,用於計算機之間的加密登錄,這個一般用於遠程操作)
(3)圖形界面登錄

Linux文件權限基本屬性
我們可以使用ls -l 命令可以顯示文件的屬性以及文件所屬的用戶和組
如:ls -l
drwxrwxr-x 2 linuxidc linuxidc 4096 2月 18 10:59 listem.com
其基本構成是:文件屬性 鏈接數 所有者 所屬用戶組 最後修改時間 文件名
1.第一個字符代表文件類型,具體字符有:
d 目錄

  • 普通文件
    I 軟鏈接,即鏈接文檔(link file)
    b 塊設備,裝置文件中可供存儲的接口設備(可隨機存儲裝置)
    c 字符設備,裝置文件中串行端口設備(一次性讀取裝置)
    s 網絡套接字(socket)
    p 管道(piep)
    由此,上面的開頭第一個字符爲d,說明是一個目錄

2.文件權限
Linux 文件的基本權限就有九個,文件類型其後的九個字符三個一組,分別是 owner / group / others 三種身份;各組各有自己的 read / write / execute 權限,均爲 r w x 的三個參數的組合。其中, r 代表可讀(read)、 w 代表可寫(write)、 x 代表可執行(execute),這三個權限的位置不會改變,若沒有權限,僅會出現 - 符號。
在這裏插入圖片描述
想要修改文件權限,我們可以用如下方式修改:
用數字更改
用數字來代表各個權限,則:
讀,權限是二進制的100,十進制是4;

寫,權限是二進制的010,十進制是2;

執行,權限是二進制的001,十進制是1;

即:各權限的對應數字爲:r:4,w:2,x:1

每種身份( owner / group / others )各自的三個權限( r / w / x )數字是需要累加的。

當權限爲: [ -rwxrwx— ] 時分數爲:

owner = rwx = 4+2+1 = 7

group = rwx = 4+2+1 = 7

others = --- = 0+0+0 = 0

所以當設定權限的變更時,該文件的權限數字就是770。

變更權限的命令的語法爲:chmod [選項] xyz 文件名或目錄名
以前,我經常很粗暴地一個方法就是直接:chmod 777 XXX

還有就是用字符更改:由於九個權限分別是 user、group、others 三種身份的權限,那麼可用 u、g、o 來代表三種身份的權限,此外,用 a 代表 all 表示所有的身份。
則變更權限的命令的語法爲:chmod 身份 符號 權限 文件名或目錄名,不過我這個沒用過,在這裏就不說了;有知道這個就好。

Linux的內核裁剪
在Linux內核中增加程序需要完成以下三項工作:

1.將編寫的源代碼複製到Linux內核源代碼的相應目錄
(/usr/src/linux-headers-2.6.32-31-generic/drivers/X,其中X爲相對應的源碼類型:
a.字符設備存在於drivers/char/目錄下
b.塊設備存放在drivers/block/目錄下
c.USB設備則存放在drivers/usb/目錄下)
2.在目錄的Kconfig文件中增加新源代碼對應項目的編譯配置選項
3.在目錄的Makefile文件中增加對新源代碼的編譯條目

Makefile,Kconfig和配置工具組成了Linux內核的配置系統。
其中Makefile定義了Linux內核的編譯規則,它是大型項目開發的產物。Linux環境下的大型項目開發中,系統被分爲很多模塊,而這些模塊一般會經歷幾次修改,而在修改後的編譯過程中,由於某些文件中存在依賴關係,人工編譯效率低(有些文件不需要重新編譯)且易出錯,Makefile文件便應運而生。Makefile文件定義了模塊間的依賴關係,指定文件的編譯順序,以及編譯所使用的命令。它和make命令使得項目的源程序文件可以自動編譯,提高了軟件開發效率。

到此,再談一下make,它是用來維護程序模塊關係和生成可執行程序的工具,它可以根據程序模塊的修改情況重新編譯鏈接生成中間代碼或最終的可執行程序,省去那些重複的不必要的編譯工作,提高編譯效率。

Kconfig給用戶提供配置選擇的功能。通常配置內核會有四種方法,makeconfig(字符界面配置),makemenuconfig(菜單界面配置),makexconfig(依賴QT),makegconfig(依賴GTK+)。makeconfig比較適合專業人員,像初學者比較適合makemenuconfig,讓我們重點關注一下它。我之前在學校做過的嵌入式實驗就是用makemenuconfig去配置內核的。

當我們運行makemenuconfig時,配置工具會首先分析與體系結構相對應的/arch/xxx/Kconfig文件(xxx爲傳入的arch參數),它裏面包含了除一些與體系結構相關的配置項和配置菜單外,還通過source語句引入了一系列Kconfig,配置工具依據這些Kconfig包含的菜單和項目就可以描繪出一個分層結構。

例如當我們運行makezImagine、makebzImagine等生成映像的命令時,會先檢索頂層的Makefie(在arch/xxx/目錄下的Makefile爲頂層Makefile補充體系結構相關的信息),頂層Makefile的兩個主要任務是:產生內核映像文件和內核模塊。接着頂層Makefile會去遞歸地進入內核的各個子目錄,然後分別調用子目錄中的Makefile(這些Makefile記錄編譯目標),而進入哪些子目錄取決於內核的配置。

當使用makemenuconfig,makeconfig命令時,生成的.config會在源碼目錄下記錄哪些部分被編譯入內核,哪些部分被編譯爲內核模塊。簡而言之,它是保存內核配置結果的文件。當我們裝上Linux系統時,第一次查看源碼下的所有文件,會發現沒有.config文件,那是因爲從來沒配置過內核。當你運行makemenuconfig保存並退出時,再次查看就有這個文件了。

配置工具,包括配置命令解釋器(對配置腳本中使用的命令進行解釋)和配置用戶界面(提供字符界面和圖形界面),配置工具都是用腳本語言編寫的。
關於內核裁剪的具體流程可以去參考這位大佬的博客:https://blog.csdn.net/ds1130071727/article/details/80507813

Linux的系統目錄:樹狀圖
在這裏插入圖片描述
由於目錄太多了,這裏挑幾個主要的來講就好了:
●root — 啓動Linux時使用的一些核心文件。如操作系統內核、引導程序Grub等。
●home — 存儲普通用戶的個人文件;系統默認的用戶家目錄,新增用戶賬號時,用戶的家目錄都存放在此目錄下,~表示當前用戶的家目錄,~test表示用戶test的家目錄。
●bin — 系統啓動時需要的執行文件(二進制)
●sbin — 可執行程序的目錄,但大多存放涉及系統管理的命令。只有root權限才能執行
●proc — 虛擬,存在linux內核鏡像;保存所有內核參數以及系統配置信息
●usr — 用戶目錄,存放用戶級的文件
●boot — 引導加載器所需文件,系統所需圖片保存於此
●lib — 根文件系統目錄下程序和核心模塊的公共庫
modules — 可加載模塊,系統崩潰後重啓所需模塊
●dev — 設備文件目錄;存放linux系統下的設備文件,訪問該目錄下某個文件,相當於訪問某個設備,常用的是掛載光驅mount /dev/cdrom /mnt。
●etc — 配置文件;不建議在此目錄下存放可執行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前記得備份。
●var–放置系統執行過程中經常變化的文件,如隨時更改的日誌文件/var/log,/var/log/message:所有的登錄文件存放目錄,/var/spool/mail:郵件存放的目錄,/var/run:程序或服務啓動後,其PID存放在該目錄下。
●mnt — 臨時用於掛載文件系統的地方。一般情況下這個目錄是空的,而在我們將要掛載分區時在這個目錄下建立目錄,再將我們將要訪問的設備掛載在這個目錄上,這樣我們就可訪問文件了。
●tmp — 臨時文件目錄,系統啓動後的臨時文件存放在/var/tmp
●lost+found — 在文件系統修復時恢復的文件
●/opt:給主機額外安裝軟件所擺放的目錄。如:FC4使用的Fedora 社羣開發軟件,如果想要自行安裝新的KDE 桌面軟件,可以將該軟件安裝在該目錄下。以前的 Linux 系統中,習慣放置在 /usr/local 目錄下

路徑說明
絕對路徑:
由根目錄(/)開始寫起的文件名或目錄名稱, 例如 /home/dmtsai/.bashrc;
相對路徑:
相對於目前路徑的文件名寫法。 例如 ./home/dmtsai ;反正開頭不是 / 就屬於相對路徑的寫法

如何先進入/var/spool/mail/目錄,再進入到/var/spool/cron/目錄內?
命令:

cd /var/spool/mail
cd ../cron
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章