hello~ 很高興見到大家! 這次帶來的是C++中關于Linux基本指令這部分的一些知識點,如果對你有所幫助的話,可否留下你寶貴的三連呢?
個 人 主 頁: 默|笙
文章目錄
- 一、認識Linux
- 二、操作系統(OS)
- 三、基本指令
- 1. 目錄與普通文件
- 1.1 目錄
- 1.2 普通文件
- 2. pwd 與 whoami
- 3. mkdir 與 touch
- 3.1 mkdir
- 3.2 touch
- 4. ls
- 5. 絕對路徑和相對路徑
- 6. tree 與 cd
- 6.1 tree
- 6.2 cd
- 7. rmdir 與 rm
- 7.1 rmdir
- 7.2 rm
- 8. 關于類型 與 file
一、認識Linux
- Linux 本身是一個強大、穩定、安全、開源且免費的操作系統內核。而我們通常所說的Linux是基于Linux這個操作系統內核構建的完整操作系統。
- 為什么要學習Linux?
因為它很牛:它在服務器領域是絕對的霸主,又在超級計算、嵌入式設備和開發領域占據主導地位。在桌面系統這塊,雖然市場份額不如windows和macOS,但它也是一個非常不錯可供替代的選擇。(我們平常電腦上看到的桌面就是桌面系統)。
- 為什么這么牛?
因為它開源且免費->安全->強大與穩定。基石是它的開源與免費,任何人都能瞧見它的底層代碼,像windows這樣的不開源的商用系統,微軟搞點小動作我們是完全不知道的,而且一旦發現問題也能夠及時解決,修復速度是遠超閉源系統的。開源與免費能保證它的安全,同時又能吸引全球各種大佬為其貢獻代碼,久而久之,Linux變得強大與穩定。
-
Linux 的名字來源于其創始人 林納斯?托瓦茲(Linus Torvalds) 的名字與 “Unix” 的結合,關于Unix:它是一切現代操作系統的思想源頭和技術基礎,當然它和Linux沒有繼承關系,Linux不是它的直系后代。也有人認為Linux名字的由來是 Linux是 Linux is not Unix 的縮寫(這是為了諷刺Unix的商業化即收費而有的幽默調侃)。
-
Linux分為技術版本和商業版本:
技術版本:操作系統源代碼版本即內核版本。由開發者社區主導,免費開源,技術更新快,適合學習、開發和個人使用。
商業版本:在社區版(技術版本)基礎上進行企業級加固(如安全合規、熱補丁、長周期支持),通過付費訂閱提供SLA(技術保險合同)保障的技術支持與穩定性承諾。
二、操作系統(OS)
操作系統是管理計算機硬件與軟件資源的系統軟件,扮演用戶/應用與硬件之間的橋梁角色。它基于操作系統內核。
- 它就像我們人體的大腦一樣,大腦可以協調各個器官,它可以協調管理各個系統(設備驅動、文件管理、內存管理)。因為有它,我們才可以正常使用計算機。正如沒有大腦的軀體只是肉體,沒有操作系統的計算機只是一堆硅片與金屬,是它讓計算機“活”了起來。
三、基本指令
先來了解一些基本指令:
ls:羅列該目錄下的所有子目錄與文件。
pwd:查看用戶當前所在絕對路徑。
whoami:顯示當前誰在訪問Linux系統。
mkdir:創建一個子目錄。
cd:改變工作目錄。將當前工作目錄改變到指定的目錄下。
touch:touch命令參數可更改文檔或目錄的日期時間,包括存取時間和更改時間,或者新建?個不存在的文件。
rmdir:刪除空目錄,不是空的它還刪不了。
rm:
1. 目錄與普通文件
1.1 目錄
我們先來認識一下什么是目錄:
目錄(Directory) 是計算機文件系統中用于分類存儲文件和其他目錄的容器,也就是文件夾。
- 根目錄:符號 ‘/ ‘,它是整個Linux文件系統的起點(就像樹的根部,這個系統的結構就像一棵多叉樹,tree命令會講到)。
- 家目錄:符號 ‘~ ’,這是用戶的私人空間。
普通用戶:家目錄在 /home/用戶名(如 /home/alice),我是alice這個普通用戶。
管理員(root):家目錄是 /root(您當前所在位置),我是root這個管理員。
1.2 普通文件
普通文件是存儲數據的基礎單元(文本/圖片/程序等),在windows系統中就是名字帶有后綴的文件(如.h、.cpp等)。
- 文件 = 文件的內容 + 文件的屬性。文件的屬性也會占用內存,比如我在windows系統中創造一個空文件,它沒有內容,但是也會占據磁盤空間。
- 有隱藏文件的存在。Linux系統里的隱藏文件往往以.開頭。(之后會講)
2. pwd 與 whoami
語法: pwd
作用:查看用戶當前所在絕對路徑。
- 它的意思是:我目前在根目錄下的root子目錄。
語法: whoami
作用:顯示當前誰在訪問Linux系統,我是誰。
- 我當前是root管理員。
3. mkdir 與 touch
3.1 mkdir
- 語法: mkdir [-p] [文件]
- 作用:創造一個子目錄。
- 在root目錄下創建一個test子目錄。
- 加上選項 -p,我們可以創建一系列的目錄。
3.2 touch
- 語法:touch [選項] [文件]
- 作用:touch命令參數可更改文檔或目錄的日期時間,包括存取時間和更改時間,或者新建?個不存在的文件。
- 在test目錄下,創造一個test.c的普通文件。
4. ls
- 語法:ls [選項] [目錄或文件]
- 作用:羅列該目錄下的所有子目錄與文件。對于文件,將列出文件名以及其他信息。
- 選項:選項(Options) 是用于修改命令行為的特殊參數,通常以 - 或 – 開頭。它們像“開關”一樣,讓用戶精細控制命令的執行方式。
常用選項有:
- -a: 列出目錄下的所有文件,包括以 . 開頭的隱含文件。
- -d:將目錄像文件?樣顯示,而不是顯示其下的文件。如:ls -d 指定目錄。
- -l:列出文件的詳細信息。ls -l 寫法等同于 ll。
選項可以組合使用。
我在root目錄下面用mkdir指令創建了一個 test普通子目錄和一個 .youcanseeme的隱藏子目錄:
- 補充:這里的 . 的意思是當前目錄,ls -d -l 顯示的是當前目錄以及它的屬性。
5. 絕對路徑和相對路徑
絕對路徑:是從根目錄(/)開始的完整路徑。參照點與起點固定唯一。
相對路徑:是從當前目錄開始的路徑。參照點與起點隨當前所在位置改變而改變。
- 絕對路徑的唯一性:無論你當前在文件系統的哪個位置(哪個工作目錄),同一個文件或目錄的絕對路徑永遠不變。
- 相對路徑的相對性:路徑是否有效要取決于當前所在目錄。一旦自己所處目錄改變,原來的相對路徑很可能會失效,沒有失效往往也會指向完全不同的地方。
- 絕對路徑其實也能算是相對路徑以root為參照點的一種情況。
- 相對路徑依賴特殊符號:
- ‘ . ’ : 代表當前目錄。
- ’ .. ':代表上一級目錄。
- ’ ~ ‘ :代表家目錄。
- 之前有提到過,Linux下的文件系統的結構就像一棵多叉樹,事實也確實如此。其中,目錄是樹形結構的基礎。
其中每一個目錄都有著不同的功能和職責,比如/bin存放二進制文件,/usr存放安裝程序。
- 結論1:這棵多叉樹,葉子節點一定是空的目錄或者普通文件。
- 結論2:路上的非葉子節點,本質上是目錄。
- 無論是絕對路徑還是相對路徑,它們標識文件都是具有唯一性的(一個全局唯一,一個上下唯一),所以才能根據路徑來找到文件。而這依賴于每個目錄都只有一個父節點(從后往前推只有一條路到起點,這是因為只有一個父節點,那么反推回來也是如此)。
- Linux的任何目錄下,都要隱藏存在 . 和 .. ,可以把目錄理解為一個節點,而這兩個是兩個節點自帶的指針,一個指向它自己,一個指向自己的父節點。根節點的 .. 也指向自己。
6. tree 與 cd
6.1 tree
默認系統下,tree是沒有安裝的,安裝需要一條指令,輸入指令,它會自動為你安裝:
centos: yum install -y tree
ubuntu: apt install -y tree
- 輸入指令,它就會以當前目錄為起點,為你生成一棵數來顯示結構。
6.2 cd
- 語法:cd [指定目錄路徑或相對路徑依賴的特殊符號]
- 作用:改變工作目錄。將當前工作目錄改變到指定的目錄下。
- 第一個切換到家目錄,第二個切換到根目錄,第三個切換到test目錄,使用絕對路徑和相對路徑都可以。
- 還有一個:cd - ,這個是切換到上一次所處路徑。比如我現在 /root/test這里,我用 cd / 切換到根目錄,之后我使用 cd - 就能切換回去到 /root/test。
7. rmdir 與 rm
7.1 rmdir
語法:rmdir [-p] [dirName]
作用:刪除空目錄,不是空的它還刪不了。不太好用,主要了解rm。
7.2 rm
語法:rm [-f-i-r-v] [dirName/dir]
作用:刪除文件或目錄。
- 常用選項:
-f:即使文件屬性為只讀(即寫保護),亦直接刪除。不會詢問你是否要刪除。
-i:刪除前逐?詢問確認。
-r:刪除目錄及其下所有文件。它的本質是遞歸刪除,如果一個目錄不為空,它會進入這個目錄,若這個目錄中有子目錄,再查看這個子目錄是否為空然后根據情況再進入,一直到葉子節點(空目錄或文件),再開始刪除,然后回歸,然后刪除,直到刪完為止。
- 可以試試刪除根目錄,不過之后需要重裝一遍系統。一般只有root管理員賬戶才有這個權利。
8. 關于類型 與 file
在Linux系統里面,文件的類型與后綴是沒有關系的。但是一些Linux里的工具比如gcc編譯器就要看后綴,所以一般都會加上后綴。
- 我們可以通過屬性來查看它的類型,看它是目錄還是普通文件。
- 要查看一個文件的具體類型,需要file指令。
今天的分享就到此結束啦,如果對讀者朋友們有所幫助的話,可否留下寶貴的三連呢~~
如果可以, 那就讓我們共同努力, 一起走下去!