這篇文章由 Hiyoung 撰寫
(參考影片: https://www.bilibili.com/video/BV1WY4y1H7d3?p=1 )
一、基礎篇
1.1 Linux 檔案系統目錄結構
圖中小箭頭表示該檔案實際位置在別處
- /bin: bin 是 Binaries (二進位檔案) 的縮寫, 這個目錄存放著最經常使用的指令。
- /boot:
這裡存放的是啟動 Linux 時使用的一些核心檔案,包括一些連結檔案以及映像檔。 - /dev :
dev 是 Device (裝置) 的縮寫, 該目錄下存放的是 Linux 的外部裝置,在 Linux 中存取裝置的方式和存取檔案的方式是相同的。 - /etc:
etc 是 Etcetera (等等) 的縮寫, 這個目錄用來存放所有的系統管理所需要的設定檔和子目錄。 - /home:
使用者的家目錄,在 Linux 中,每個使用者都有一個自己的目錄,一般該目錄名是以使用者的帳號命名的,如上圖中的 alice、bob 和 eve。 - /lib:
lib 是 Library (函式庫) 的縮寫,這個目錄裡存放著系統最基本的動態連結共享函式庫,其作用類似於 Windows 裡的 DLL 檔案。幾乎所有的應用程式都需要用到這些共享函式庫。 - /lost+found:
這個目錄一般情況下是空的,當系統非法關機後,這裡就存放了一些檔案。 - /media:
Linux 系統會自動辨識一些裝置,例如 USB 隨身碟、光碟機等等,當辨識後,Linux 會把辨識的裝置掛載到這個目錄下。 - /mnt:
系統提供該目錄是為了讓使用者臨時掛載別的檔案系統的,我們可以將光碟機掛載在 /mnt/ 上,然後進入該目錄就可以檢視光碟機裡的內容了。 - /opt:
opt 是 optional (可選) 的縮寫,這是給主機額外安裝軟體所擺放的目錄。比如你安裝一個 ORACLE 資料庫則就可以放到這個目錄下。預設是空的。 - /proc:
proc 是 Processes (程序) 的縮寫,/proc 是一種偽檔案系統(也即虛擬檔案系統),儲存的是當前核心執行狀態的一系列特殊檔案,這個目錄是一個虛擬的目錄,它是系統記憶體的映射,我們可以透過直接存取這個目錄來獲取系統資訊。
這個目錄的內容不在硬碟上而在記憶體裡,我們也可以直接修改裡面的某些檔案,比如可以透過下面的指令來阻擋主機的 ping 指令,使別人無法 ping 你的機器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all - /root:
該目錄為系統管理員,也稱作超級權限者的使用者家目錄。 - /sbin:
s 就是 Super User 的意思,是 Superuser Binaries (超級使用者的二進位檔案) 的縮寫,這裡存放的是系統管理員使用的系統管理程式。 - /selinux:
這個目錄是 Redhat/CentOS 所特有的目錄,Selinux 是一個安全機制,類似於 Windows 的防火牆,但是這套機制比較複雜,這個目錄就是存放 selinux 相關的檔案的。 - /srv:
該目錄存放一些服務啟動之後需要提取的資料。 - /sys:這是 Linux 2.6 核心的一個很大的變化。該目錄下安裝了 2.6 核心中新出現的一個檔案系統 sysfs 。sysfs 檔案系統整合了下面 3 種檔案系統的資訊:針對程序資訊的 proc 檔案系統、針對裝置的 devfs 檔案系統以及針對虛擬終端機的 devpts 檔案系統。該檔案系統是核心裝置樹的一個直觀反映。當一個核心物件被建立的時候,對應的檔案和目錄也在核心物件子系統中被建立。
- /tmp:
tmp 是 temporary (臨時) 的縮寫,這個目錄是用來存放一些臨時檔案的。 - /usr:
usr 是 unix shared resources (共享資源) 的縮寫,這是一個非常重要的目錄,使用者的很多應用程式和檔案都放在這個目錄下,類似於 Windows 下的 program files 目錄。 - /usr/bin:
系統使用者使用的應用程式。 - /usr/sbin:
超級使用者使用的比較高級的管理程式和系統守護程序。 - /usr/src:
核心原始碼預設的放置目錄。 - /var:
var 是 variable (變數) 的縮寫,這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種紀錄檔。 - /run:
是一個臨時檔案系統,儲存系統啟動以來的資訊。當系統重新啟動時,這個目錄下的檔案應該被刪掉或清除。如果你的系統上有 /var/run 目錄,應該讓它指向 run。
1.2 檔案基本屬性
1.2.1 基本屬性
在 Linux 中第一個字元代表這個檔案是目錄、檔案或連結檔案等等。
- 當為 d 則是目錄
- 當為 – 則是檔案;
- 若是 l 則表示為連結檔案 (link file);
- 若是 b 則表示為裝置檔案裡面的可供儲存的介面裝置 (可隨機存取裝置);
- 若是 c 則表示為裝置檔案裡面的序列埠裝置,例如鍵盤、滑鼠 (一次性讀取裝置)。
接下來的字元中,以三個為一組,且均為 rwx 的三個參數的組合。其中, r 代表可讀 (read)、 w 代表可寫 (write)、 x 代表可執行 (execute)。 要注意的是,這三個權限的位置不會改變,如果沒有權限,就會出現減號 – 。

每個檔案的屬性由左邊第一部分的 10 個字元來確定(如下圖)。

從左至右用 0-9 這些數字來表示。
第 0 位確定檔案類型,第 1-3 位確定擁有者(該檔案的所有者)擁有該檔案的權限。第 4-6 位確定所屬群組(所有者的同組使用者)擁有該檔案的權限,第 7-9 位確定其他使用者擁有該檔案的權限。
其中,第 1、4、7 位表示讀權限,如果用 r 字元表示,則有讀權限,如果用 – 字元表示,則沒有讀權限;
第 2、5、8 位表示寫權限,如果用 w 字元表示,則有寫權限,如果用 – 字元表示沒有寫權限;第 3、6、9 位表示可執行權限,如果用 x 字元表示,則有執行權限,如果用 – 字元表示,則沒有執行權限。
1.2.2 Linux 檔案擁有者和群組
1、chgrp:更改檔案群組
語法:
| |
參數選項
- -R:遞迴更改檔案群組,就是在更改某個目錄檔案的群組時,如果加上 -R 的參數,那麼該目錄下的所有檔案的群組都會更改。
2、chown:更改檔案擁有者,也可以同時更改檔案群組
語法:
| |
進入 /root 目錄(~)將 install.log 的擁有者改為 bin 這個帳號:
| |
將 install.log 的擁有者與群組改回為 root:
| |
3、chmod:更改檔案 9 個屬性
Linux 檔案屬性有兩種設定方法,一種是數字,一種是符號。
Linux 檔案的基本權限就有九個,分別是 owner/group/others (擁有者/群組/其他) 三種身份各有自己的 read/write/execute 權限。
先複習一下剛剛上面提到的數據:檔案的權限字元為: -rwxrwxrwx , 這九個權限是三個三個一組的!其中,我們可以使用數字來代表各個權限,各權限的分數對照表如下:
- 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 : 就是剛剛提到的數字類型的權限屬性,為 rwx 屬性數值的相加。
- -R : 進行遞迴 (recursive) 的持續變更,以及連同次目錄下的所有檔案都會變更
舉例來說,如果要將 .bashrc 這個檔案所有的權限都設定啟用,那麼指令如下:
| |
那如果要將權限變成 -rwxr-xr– 呢?那麼權限的分數就成為 [4+2+1][4+0+1][4+0+0]=754。
4、符號類型改變檔案權限
還有一個改變權限的方法,從之前的介紹中我們可以發現,基本上就九個權限分別是:
- user:使用者
- group:群組
- others:其他
那麼我們就可以使用 u, g, o 來代表三種身份的權限。
此外, a 則代表 all,即全部的身份。讀寫的權限可以寫成 r, w, x,也就是可以使用下表的方式來看:
如果我們需要將檔案權限設定為 -rwxr-xr– ,可以使用 chmod u=rwx,g=rx,o=r 檔案名 來設定:
| |
而如果是要將權限去掉而不改變其他已存在的權限呢?例如要拿掉全部人的可執行權限,則:
| |
1.3 vim 文字編輯
1.3.1 vim 的三種模式
基本上 vi/vim 共分為三種模式,分別是命令模式、編輯模式和一般模式

1.3.2 vim 快捷指令
參考外部網站: https://www.runoob.com/linux/linux-vim.html
1.4 網路配置
1.4.1 VMware 的三種網路連接模式
橋接模式:虛擬機器直接連接外部網路(對外部網路可見),主機起到橋接器的作用,虛擬機器的地位和主機相同,從路由器分配獨立的 IP 位址。
NAT 模式:主機和虛擬機器建構一個專用網路,使用 NAT 對虛擬機器進行 IP 轉換(虛擬機器對外部網路不可見)。此時虛擬機器單獨組成一個區域網路,此時主機和虛擬機器並不在一個網段,無法進行通訊,所以又虛擬一個網路卡(VMnet8)來連接至虛擬機器所在的區域網路。
僅主機模式:這種模式僅僅只讓虛擬機器與主機通訊,不連接至 Internet。

1.4.2 配置靜態 IP
參考站內文章: 在虛擬機器中設置靜態 IP(以 CentOS 為例)
1.4.3 配置主機名稱
| |
| |
1.5 系統管理
1.5.1 service 服務管理
一個正在執行的程式或指令,稱為「程序」(Process)
啟動後一直存在、常駐記憶體的程序,一般稱為「服務」
| |