版權聲明:本文為博主原創文章🍡,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明🌰。
前言
在了解了Linux的發展史(Linux的前世今生)之後,我們就得真正的開始接觸了Linux了。不過在這之前,我還是想跟大家聊一聊什麽是操作系統,讓大家對操作系統有個整體的認知。這對之後我們學習Linux很有幫助!
在本文講解完操作系統的概念之後⚽️,我會再給大家先介紹一些Linux操作系統內的基本指令,至於更多基本指令的講解可以只需關註我的Linux專欄。
好了🦚,話不多說,讓我們愉快的開啟本文的學習🔆👩🏿🏫,領略操作系統的魅力!
1. 什麽是操作系統🧑🏼💼?
在講這個之前🕯,為了給大家加深操作系統這個概念🅱️,我會先給大家介紹計算機的分層結構,相信認真看完這個分層結構的講解,你一定不會再忘記什麽是操作系統了💨。
1.1 計算機的分層結構
上來就先給大家看一幅圖🤘🏻:
我們都知道🙇🏽,計算機由各種硬件所組成,通過各種設備的協調配合來完成我們用戶期望的各種任務。那計算機就是由一塊塊硬件構成👌🏽,我們只用給這些硬件上電才能開始工作。
每個硬件啟動的方式都不一樣🟩,但是又讓它們相互協調的工作,該怎麽辦?
此時生產這些硬件的廠商就會開發出一款款驅動程序(所以設備驅動其實就是一款程序)用來作為硬件工作的鑰匙。相信這個現象大家是見過的,比如🛌🏿,當我們用錢買來了自己最喜歡的品牌的計算機時,一開機甚至可能連操作系統也沒有,我們就得為電腦安裝各種驅動🧎➡️,比如顯卡驅動、聲卡驅動🏃🏻♂️🏄🏽、接口驅動等等🫸👨🏼🚒。還有一種現象可以解釋設備驅動的存在,就是我們講有線的鼠標插入電腦中的USB結構時,如果我們直接移動鼠標會發現鼠標根本拖不動,大概過了1~2秒之後,鼠標就可以正常拖動了,那麽在這段時間中🤸🏿♀️🥑,電腦就是在執行這個驅動程序🍪。
有了設備驅動軟件,就相當於實現了硬件到軟件的一個過渡。接下來主角閃亮登場♧,操作系統統籌管理這些設備驅動程序,從而達到在邏輯上對硬件的集中管理。那麽操作系統對這些硬件的管理有什麽作用?
我們說電腦是給人使用的👱♀️,那人在電腦上個可能會在各種應用程序上來滿足自己的使用需求🤽,在使用的過程中我們希望這款應用程序能做
到"快速🫸🏻、穩定、安全"等各項指標。操作系統就是在幹這件事👩🏼✈️。
1.2 操作系統的概念
敲黑板,重點來了📱!操作系統的核心工作:通過向下管理著軟硬件資源,就是為了向上能夠提供穩定😪、快速📩、安全的操作/使用環境。
所以我們可以這樣說🥺🟡,操作系統其實就是一款管理軟硬件的程序。
這便是操作系統最本質的理解🧒🏻!!!
如果你還不理解計算機的分層結構📳,沒有關系🏛,我有用一個生活中的例子馬上就能給你講明白📩:
我們可以這樣比作🔺,將"操作系統👸🏻、設備驅動🌍、硬件"看作時一家公司的三個組成部分。其中“硬件”就代表著程序員,"設備驅動"就代表著產品經理0️⃣,"操作系統"就代表公司老板,而"應用程序"就代表廣大的消費者。有一天,老板向產品經理說,我們這個幾個月要開發出一款新的軟件,你馬上給我跟一下進度。產品經理大氣不敢出一聲地說,好的老板。過了一會🎵,產品經理就向程序們說老板要我們花幾個月的時間開發出一款新的軟件⇾,聽到這句的程序員們心裏面那是一萬個不爽啊,當時迫於生計©️,沒辦法只能開始程序員們的研發之旅了⛺️。過了幾個月後,程序終於研發出來,收到了廣大消費者的好評,都說這個軟件用的很流暢🤜。
那麽在這個過程中🪈,我們可以看到這麽一個關系鏈:老板向產品經理發布任務🌤,而產品經理又向程序員們布置任務🌀🏌️,最後程序員們只能乖乖照做。這就像極了🫗🧑⚕️,操作系統管理著設備驅動程序⭐️,而設備驅動程序又管理著各硬件設備🪔,最終的目的就是為了給用戶提供一個安全、快速、穩定的使用環境👩🏽💼🤴🏼。
1.3 如何理解我們現在在計算機上的各種操作?
我所學的知識最終還是要於實際生話掛鉤的🤙🏿,那我們就得想一下📢:迄今為止👩🏻🌾🧅,我們在計算機上所有的操作該怎麽理解呢?(比如🤞🏽:我們在電腦上打遊戲🕴🏼、用printf函數在屏幕上打印信息🕍、將文件寫入磁盤中等等…)
其實,我們在計算機上的一切行為,最終都會轉化為一條條機器指令,告訴計算機的硬件你現在該幹什麽事情了。
我們所有的軟件行為🥕,全部都要自頂向下貫穿計算機的軟硬件結構🏫。換句話說,我們的所有軟件行為,未來都要和操作系統有著直接或間接的聯系。
這裏有個動詞"貫穿"🚣♂️,該如何理解🙍?
在仔細回想一下計算機結構的分層圖👨🏿🚒:
我們用戶站在最高層,每當使用應用軟件時,都要經過操作系統,設備驅動,最後依靠硬件來幫助完成任務。才會把最終的結果顯示在我們的眼前🩴。可以看到這是一個一直向下的方向,貫穿到硬件這個層面!!🥙🫅🏿!
好了◽️,至此有關操作系統的概念我已經給大家全部講完了,希望大家能夠有所收獲🪞。
接下來,我就要給大家介紹在Linux操作系統之下,我們該如何使用指令完成一些基本操作👷。鑒於大家可能是學習Linux的小白,指令的講解我會結合Windows操作的效果給大家進行一個對比的學習,這樣大家才能更加深刻的理解👩🏻🦯➡️。
2. Linux的基本指令(部分)
2.1 mkdir 指令(重要)
這個就相當於我們在Windows環境下,自己創建了一個文件夾🪝,而文件夾的名字就叫做"dirname"。
使用演示♠️:
常用選項:
-
-p,後面是一個路徑名稱🖨。此時若是路徑中的某些目錄尚不存在,加上此選項之後,系統將自動建立那些尚不存在的目錄,即可以一次性創建多個目錄;
2.2 ls 指令
可能有人會問"選項"是個什麽東西👨🏻🎨🏌🏻?
大家其實可以這麽理解♒️,一個選項相當於大功能下的一個子功能。一般默認情況下,子功能需要自己去設置。
選項:
-
-a 列出目錄下的所有文件💞,包括以 . 開頭的隱含文件。
-d 將目錄象文件一樣顯示🛶,而不是顯示其下的文件🏄♀️◀️。 如:ls –d 指定目錄
-i 輸出文件的 i 節點的索引信息。 如 ls –ai 指定文件
-k 以 k 字節的形式表示文件的大小。ls –alk 指定文件
-l 列出文件的詳細信息。
-n 用數字的 UID,GID 代替名稱。 (介紹 UID, GID)
-F 在每個文件名後附上一個字符以說明該文件的類型,“*”表示可執行的普通文件;“/”表示目錄🤾👂🏻;“@”表
示符號鏈接;“|”表示FIFOs;“=”表示套接字(sockets)🈷️。(目錄類型識別)
-r 對目錄反向排序。
-t 以時間排序🧜🏽。
-s 在l文件名後輸出該文件的大小。(大小排序,如何找到目錄下最大的文件)
-R 列出所有子目錄下的文件。(遞歸)
-1 一行只輸出一個文件。
這個命令就相當於我們在Windows系統下,查找一個文件的屬性。文件的屬性包括文件名、文件大小🤙🏼、文件被創建的時間等等👩🏻🏭。
這裏給大家拓展一個小知識:如果我在電腦上創建了一個文本文件🎪,但是我沒有給這個文本文件輸入任何內容🖋,那這文件占據磁盤的空間嗎?
答案⛳️:肯定占用💍。原因是💙,文件 = 文件大小 + 屬性。
我們還可以這樣寫:
指令中的選項可以組合來顯示⚾️,可以看到上面兩種寫法帶來的效果是等價的。
2.2.1 .
和 ..
可能有眼尖的讀者看到了,有兩個目錄的命名竟然是 .
和 ..
👩🏿🍼,這究竟是什麽東西?
其實, .
和 ..
相當於Windows系統下的隱藏文件。而 .
則代表當前目錄,..
則代表上一級目錄🔽。
這個其實是可以證明的👨🎨,我們可以用cd命令來展示😮💨。
2.3 cd 指令
語法✋🏿:cd 目錄名
功能:改變工作目錄。將當前目錄改變到指定目錄下。
這個可以理解為,假設我在Windows系統下🧑🏻🦳,有一個文件名為test.txt。現在我想進入到這個文件裏面進行操作,在Windows視角下😏,我只需要雙擊鼠標的左鍵即可。而在Linux系統下,cd指令就相當於進入了一個文件。至於我們該如何查看自己當前所在的路徑,可以用pwd指令,這個我接下來就會講👮🏻♀️。
接下來,我們在深入的探討一下Linux系統中的一些知識📔:
在Linux系統中🤚🏼,磁盤上的文件和目錄會被組成一棵目錄樹🂠⛹🏽,每個節點都是目錄或文件。
可以看到上面這幅圖🤼♀️,呈現是一顆多叉樹🤵🏼♀️。
為此我們就可以理解cd以下的一些操作:
展示:
2.4 pwd 命令
語法👩🏽🚀:pwd
作用:顯示當前用戶所在的路徑
這個就相當於在Windows系統下🧑🏼🍼🥡,我可以直接查看文件的路徑一樣🈯️!
2.5 touch 指令
a 或–time=atime或–time=access或–time=use只更改存取時間🏄🏽♀️🪧。
-c 或–no-create 不建立任何文檔。
-d 使用指定的日期時間,而非現在的時間。
-f 此參數將忽略不予處理,僅負責解決BSD版本touch指令的兼容性問題。
-m 或–time=mtime或–time=modify 只更改變動時間。
-r 把指定文檔或目錄的日期時間,統統設成和參考文檔或目錄的日期時間相同🚔。
-t 使用指定的日期時間,而非現在的時間
2.6 rmdir 指令 && rm 指令
rmdir是一個於mkdir相應的命令,mkdir是建立目錄,rmdir是刪除命令📡。
rm命令可以同時刪除文件或目錄(比較常用)
-f 即使文件屬性為只讀(即寫保護),亦直接刪除
-i 刪除前逐一詢問確認
-r 刪除目錄及其下所有文件
2.7 clear 指令
好了本文,就先講這麽些Linux的基本指令。希望大家,能夠多加聯系熟悉靈活的使用🫲🏽!🫰🏼!!
如果覺得本文講得還不錯得話💇🏽♀️,麻煩給偶點個贊吧!👙👌🏽!!