文章目錄
- 一、為什麼要使用 Linux 指令
-
- 01. 常用 Linux 指令與技巧
- 02. 自動補全
- 二、Linux 終端指令格式與幫助
-
- 01. 終端指令格式
- 02. 查閱指令幫助資訊
-
- 2.1 --help
- 2.2 man
- 三、檔案和目錄常用指令
-
- 01. 檢視目錄内容
-
- 1.1 `ls` 指令說明
-
- Linux 下檔案和目錄的特點
- 1.3 ls 常用選項
-
- 計算機中檔案大小的表示方式
- 1.4 ls 通配符的使用(類似正規表達式)
- 02. 切換目錄
-
- 2.1 `cd`
- 2.2 相對路徑和絕對路徑
- 03. 建立和删除操作
-
- 3.1 `touch`
- 3.2 `mkdir`
- 3.3 `rm`
- 04. 拷貝和移動檔案
-
- 4.1 `tree`
- 4.2 `cp`
- 4.3 `mv`
- 05. 檢視檔案内容
-
- 5.1 `cat`
- 5.2 `more`
- 5.3 `grep`
- 06. 其他
-
- 6.1 `echo 文字内容`
- 6.2 重定向 `>` 和 `>>`
- 6.3 管道 `|`
- 四、遠端管理常用指令
-
- 01. 關機/重新開機
-
- 1.1 `shutdown`
- 02. 檢視或配置網卡資訊
-
- 2.1 網卡 和 IP 位址
-
- 網卡
- IP 位址
- 2.2 `ifconfig`
- 2.3 `ping`
- 03. 遠端登入和複制檔案
-
- 3.1 `ssh` 基礎
-
- 1) 域名 和 端口号
-
- 域名
- 端口号
- 2) SSH 用戶端的簡單使用
- 3) Windows 下 SSH 用戶端的安裝
- 3.2 `scp`
-
- `FileZilla`
- 3.3 SSH 進階
-
- 1)免密碼登入
-
- 步驟
- 示意圖
- 2) 配置别名
- 五、使用者權限相關指令
-
- 01. **使用者** 和 **權限** 的基本概念
-
- 1.1 基本概念
- 1.2 組
- 1.3 ls -l 擴充
- 1.4 `chmod` 簡單使用
- 1.5 超級使用者
-
- sudo
- 02. **組管理** 終端指令
- 03. **使用者管理** 終端指令
-
- 3.1 建立使用者/設定密碼/删除使用者
- 3.2 檢視使用者資訊
-
- passwd 檔案
- usermod
- which
-
- `bin` 和 `sbin`
- 3.3 切換使用者
- 04. 修改檔案權限
- 六、系統資訊相關指令
-
- 01. 時間和日期
- 02. 磁盤資訊
- 03. 程序資訊
- 七、其他指令
-
- 01. 查找檔案
-
- 演練目标
- 02. 軟連結
-
- 硬連結簡介
-
- 檔案軟硬連結的示意圖
- 03. 打包壓縮
-
- 3.1 打包 / 解包
- 3.2 壓縮/解壓縮
-
- 1) `gzip`
- 2) `bzip2(two)`
- 04. 軟體安裝
- 4.1 通過 apt 安裝/解除安裝軟體
- 4.2 配置軟體源
一、為什麼要使用 Linux 指令
- Linux 剛面世時并沒有圖形界面,所有的操作全靠指令完成,如 磁盤操作、檔案存取、目錄操作、程序管理、檔案權限 設定等
- 大量的 伺服器維護工作 都是在 遠端 通過 SSH 用戶端 來完成的,并沒有圖形界面,所有的維護工作都需要通過指令來完成
- 作為後端程式員,必須要或多或少的掌握一些 Linux 常用的終端指令
- Linux 發行版本的指令大概有 200 多個,但是常用的指令隻有 10 多個而已
學習終端指令的技巧:
- 不需要死記硬背,對于常用指令,用的多了,自然就記住了
- 不要嘗試一次學會所有的指令,有些指令是非常不常用的,臨時遇到,臨時百度即可
01. 常用 Linux 指令與技巧
序号 | 指令 | 對應英文 | 作用 |
---|---|---|---|
01 | ls | list | 檢視目錄,即目前檔案夾下的内容 |
02 | pwd | print work directory | 列印目前所在檔案夾目錄 |
03 | cd [目錄名] | change directory | 切換檔案夾目錄 |
04 | touch [檔案名] | touch | 若檔案不存在,建立檔案(摸一下) |
05 | mkdir [目錄名] | make directory | 建立目錄 |
06 | rm [檔案名] | remove | 删除指定的檔案 |
07 | clear | clear | 清屏 |
注:
放大終端視窗的字型顯示
ctrl + shift + =
縮小終端視窗的字型顯示
ctrl + -
02. 自動補全
- 在敲出
/檔案
/目錄
的前幾個字母之後,按下指令
鍵tab
- 如果輸入的沒有歧義,系統會自動補全
- 如果還同時存在其他
/檔案
/目錄
,則連續按兩下指令
鍵,系統會提示可能存在的指令tab
注:
- 按
/
上
光标鍵可以在曾經使用過的指令之間來回切換
下
- 如果想要退出選擇,并且不想執行目前選中的指令,可以按
ctrl + c
二、Linux 終端指令格式與幫助
01. 終端指令格式
說明:
-
:指令名,相應功能的英文單詞或單詞的縮寫command
-
:選項,可用來對指令進行控制,也可以省略[-options]
-
:傳給指令的參數,可以是 零個、一個 或者 多個parameter
[]
代表可選
02. 查閱指令幫助資訊
2.1 --help
command --help
說明:
- 顯示
指令的幫助資訊command
如:
apt --help
2.2 man
說明:
- 查閱
指令的使用手冊command
man
是 manual 的縮寫,是 Linux 提供的一個 手冊,包含了絕大部分的指令、函數的詳細使用說明
使用
man
時的操作鍵:
操作鍵 | 功能 |
---|---|
空格鍵 | 顯示手冊頁的下一屏 |
Enter 鍵 | 一次滾動手冊頁的一行 |
b | 復原一屏 |
f | 前滾一屏 |
q | 退出 |
/word | 搜尋 word 字元串 |
三、檔案和目錄常用指令
01. 檢視目錄内容
1.1 ls
指令說明
ls
-
是英文單詞 list 的簡寫,其功能為列出目錄的内容,是使用者最常用的指令之一,類似于 DOS 下的ls
指令dir
Linux 下檔案和目錄的特點
- Linux 檔案 或者 目錄 名稱最長可以有
個字元256
- 以
開頭的檔案為隐藏檔案,需要用 -a 參數才能顯示.
- . 代表目前目錄
- … 代表上一級目錄
1.3 ls 常用選項
參數 | 含義 |
---|---|
-a | (all)顯示指定目錄下所有子目錄與檔案,包括隐藏檔案 |
-l | 以清單方式顯示檔案的詳細資訊 |
-h | 配合 -l 以人性化的方式顯示檔案大小 |
注:
一定要配合
-h
使用,即
-l
-lh
計算機中檔案大小的表示方式
機關 | 英文 | 含義 |
---|---|---|
位元組 | B(Byte) | 在計算機中作為一個數字單元,一般為 8 位二進制數 |
千 | K(Kibibyte) | 1 KB = 1024 B,千位元組 (1024 = 2 ** 10) |
兆 | M(Mebibyte) | 1 MB = 1024 KB,百萬位元組 |
千兆 | G(Gigabyte) | 1 GB = 1024 MB,十億位元組,千兆位元組 |
太 | T(Terabyte) | 1 TB = 1024 GB,萬億位元組,太位元組 |
拍 | P(Petabyte) | 1 PB = 1024 TB,千萬億位元組,拍位元組 |
艾 | E(Exabyte) | 1 EB = 1024 PB,百億億位元組,艾位元組 |
澤 | Z(Zettabyte) | 1 ZB = 1024 EB,十萬億億位元組,澤位元組 |
堯 | Y(Yottabyte) | 1 YB = 1024 ZB,一億億億位元組,堯位元組 |
1.4 ls 通配符的使用(類似正規表達式)
通配符 | 含義 |
---|---|
* | 代表任意個數個字元 |
? | 代表任意一個字元,至少 1 個 |
[] | 表示可以比對字元組中的任一一個 |
[abc] | 比對 a、b、c 字元組中的任意一個 |
[a-f] | 比對從 a 到 f 範圍内的的任意一個字元 |
02. 切換目錄
2.1 cd
cd
-
是英文單詞 change directory 的簡寫,其功能為更改目前的工作目錄,也是使用者最常用的指令之一cd
注意:Linux 所有的 目錄 和 檔案名 都是大小寫敏感的
指令 | 含義 |
---|---|
cd | 切換到目前使用者的主目錄(/home/使用者目錄) |
cd ~ | 切換到目前使用者的主目錄(/home/使用者目錄) |
cd . | 保持在目前目錄不變 |
cd … | 切換到上級目錄 |
cd - | 可以在最近兩次工作目錄之間來回切換 |
2.2 相對路徑和絕對路徑
- 相對路徑 在輸入路徑時,最前面不是 / 或者 ~,表示相對 目前目錄 所在的目錄位置
- 絕對路徑 在輸入路徑時,最前面是 / 或者 ~,表示從 根目錄/家目錄 開始的具體目錄位置
03. 建立和删除操作
3.1 touch
touch
- 建立檔案或修改檔案時間
- 如果檔案 不存在,可以建立一個空白檔案
- 如果檔案 已經存在,可以修改檔案的末次修改日期
3.2 mkdir
mkdir
- 建立一個新的目錄
選項 | 含義 |
---|---|
-p | 可以遞歸建立目錄 |
建立目錄的名稱 不能與目前目錄中 已有的目錄或檔案 同名
3.3 rm
rm
- 删除檔案或目錄
使用 rm
指令要小心,因為檔案删除後不能恢複
選項 | 含義 |
---|---|
-f | 強制删除,忽略不存在的檔案,無需提示 |
-r | 遞歸地删除目錄下的内容,删除檔案夾 時必須加此參數 |
04. 拷貝和移動檔案
序号 | 指令 | 對應英文 | 作用 |
---|---|---|---|
01 | tree [目錄名] | tree | 以樹狀圖列出檔案目錄結構 |
02 | cp 源檔案 目标檔案 | copy | 複制檔案或者目錄 |
03 | mv 源檔案 目标檔案 | move | 移動檔案或者目錄/檔案或者目錄重命名 |
4.1 tree
tree
-
指令可以以樹狀圖列出檔案目錄結構tree
選項 | 含義 |
---|---|
-d | 隻顯示目錄,不顯示檔案 |
4.2 cp
cp
-
指令的功能是将給出的 檔案 或 目錄 複制到另一個 檔案 或 目錄 中,相當于 DOS 下的cp
指令copy
選項 | 含義 |
---|---|
-i | 覆寫檔案前提示 |
-r | 若給出的源檔案是目錄檔案,則 cp 将遞歸複制該目錄下的所有子目錄和檔案,目标檔案必須為一個目錄名 |
4.3 mv
mv
-
指令可以用來 移動 檔案 或 目錄,也可以給 檔案或目錄重命名mv
選項 | 含義 |
---|---|
-i | 覆寫檔案前提示 |
05. 檢視檔案内容
序号 | 指令 | 對應英文 | 作用 |
---|---|---|---|
01 | cat 檔案名 | concatenate | 檢視檔案内容、建立檔案、檔案合并、追加檔案内容等功能 |
02 | more 檔案名 | more | 分屏顯示檔案内容 |
03 | grep 搜尋文本 檔案名 | grep | 搜尋文本檔案内容 |
5.1 cat
cat
-
指令可以用來 檢視檔案内容、建立檔案、檔案合并、追加檔案内容 等功能cat
-
會一次顯示所有的内容,适合 檢視内容較少 的文本檔案cat
選項 | 含義 |
---|---|
-b | 對非空輸出行編号 |
-n | 對輸出的所有行編号 |
Linux 中還有一個的指令和
nl
的效果等價
cat -b
5.2 more
more
-
指令可以用于分屏顯示檔案内容,每次隻顯示一頁内容more
- 适合于 檢視内容較多的文本檔案
使用
more
的操作鍵:
操作鍵 | 功能 |
---|---|
空格鍵 | 顯示手冊頁的下一屏 |
Enter 鍵 | 一次滾動手冊頁的一行 |
b | 復原一屏 |
f | 前滾一屏 |
q | 退出 |
/word | 搜尋 word 字元串 |
5.3 grep
grep
- Linux 系統中
指令是一種強大的文本搜尋工具grep
-
允許對文本檔案進行 模式查找,所謂模式查找,又被稱為正規表達式。grep
選項 | 含義 |
---|---|
-n | 顯示比對行及行号 |
-v | 顯示不包含比對文本的所有行(相當于求反) |
-i | 忽略大小寫 |
- 常用的兩種模式查找
參數 | 含義 |
---|---|
^a | 行首,搜尋以 a 開頭的行 |
ke$ | 行尾,搜尋以 ke 結束的行 |
06. 其他
6.1 echo 文字内容
echo 文字内容
-
會在終端中顯示參數指定的文字,通常會和 重定向 聯合使用echo
6.2 重定向 >
和 >>
>
>>
- Linux 允許将指令執行結果 重定向到一個 檔案
- 将本應顯示在終端上的内容 輸出/追加 到指定檔案中
其中
-
表示輸出,會覆寫檔案原有的内容>
-
表示追加,會将内容追加到已有檔案的末尾>>
6.3 管道 |
|
- Linux 允許将 一個指令的輸出 可以通過管道 做為 另一個指令的輸入
- 可以了解管子的一頭塞東西進去,另一頭出來直接輸入下一個管道,這裡
的左右分為兩端,左端塞東西(寫),右端取東西(讀)|
常用的管道指令有:
-
:分屏顯示内容more
-
:在指令執行結果的基礎上查詢指定的文本grep
四、遠端管理常用指令
01. 關機/重新開機
序号 | 指令 | 對應英文 | 作用 |
---|---|---|---|
01 | shutdown 選項 時間 | shutdown | 關機/重新啟動 |
1.1 shutdown
shutdown
-
指令可以 安全 關閉 或者 重新啟動系統shutdown
選項 | 含義 |
---|---|
-r | 重新啟動 |
注意:
- 不指定選項和參數,預設表示 1 分鐘之後 關閉電腦
- 遠端維護伺服器時,最好不要關閉系統,而應該重新啟動系統
- 常用指令示例
# 重新啟動作業系統,其中 now 表示現在
$ shutdown -r now
# 立刻關機,其中 now 表示現在
$ shutdown now
# 系統在今天的 20:25 會關機
$ shutdown 20:25
# 系統再過十分鐘後自動關機
$ shutdown +10
# 取消之前指定的關機計劃
$ shutdown -c
02. 檢視或配置網卡資訊
序号 | 指令 | 對應英文 | 作用 |
---|---|---|---|
01 | ifconfig | configure a network interface | 檢視/配置計算機目前的網卡配置資訊 |
02 | ping ip位址 | ping | 檢測到目标 ip位址 的連接配接是否正常 |
2.1 網卡 和 IP 位址
網卡
- 網卡是一個專門負責網絡通訊的硬體裝置
- IP 位址是設定在網卡上的位址資訊
我們可以把 電腦 比作 電話,網卡 相當于 SIM 卡,IP 位址 相當于 電話号碼
IP 位址
- 每台聯網的電腦上都有 IP 位址,是保證電腦之間正常通訊的重要設定
注意:每台電腦的 IP 位址不能相同,否則會出現 IP 位址沖突,并且沒有辦法正常通訊
2.2 ifconfig
ifconfig
-
可以檢視/配置計算機目前的網卡配置資訊ifconfig
# 檢視網卡配置資訊
$ ifconfig
# 檢視網卡對應的 IP 位址
$ ifconfig | grep inet
提示:一台計算機中有可能會有一個 實體網卡 和 多個虛拟網卡,在 Linux 中實體網卡的名字通常以 ensXX
表示
-
被稱為 本地回環/環回位址,一般用來測試本機網卡是否正常127.0.0.1
2.3 ping
ping
# 檢測到目标主機是否連接配接正常
$ ping IP位址
# 檢測本地網卡工作正常
$ ping 127.0.0.1
-
一般用于檢測目前計算機到目标計算機之間的網絡 是否通暢,數值越大,速度越慢ping
的工作原理與潛水艇的聲納相似,
ping
這個指令就是取自 聲納的聲音
ping
- 網絡管理者之間也常将
用作動詞 —— ping 一下計算機X,看他是否開着
ping
原理:網絡上的機器都有 唯一确定的 IP 位址,我們給目标 IP 位址發送一個資料包(56 byte),對方就要傳回一個資料包(64 byte),根據傳回的資料包以及時間,我們可以确定目标主機的存在
注意:在 Linux 中,想要終止一個終端程式的執行,絕大多數都可以使用 CTRL + C
03. 遠端登入和複制檔案
序号 | 指令 | 對應英文 | 作用 |
---|---|---|---|
01 | ssh 使用者名@ip | secure shell | 關機/重新啟動 |
02 | scp 使用者名@ip:檔案名或路徑 使用者名@ip:檔案名或路徑 | secure copy | 遠端複制檔案 |
3.1 ssh
基礎
ssh
在 Linux 中 SSH 是 非常常用 的工具,通過 SSH 用戶端 我們可以連接配接到運作了 SSH 伺服器 的遠端機器上
- SSH 用戶端是一種使用
協定連接配接到遠端計算機的軟體程式Secure Shell(SSH)
-
是目前較可靠,專為遠端登入會話和其他網絡服務 提供安全性的協定SSH
- 利用
可以有效防止遠端管理過程中的資訊洩露SSH 協定
- 通過
可以對所有傳輸的資料進行加密,也能夠防止 DNS 欺騙和 IP 欺騙SSH 協定
- 利用
-
的另一項優點是傳輸的資料可以是經過壓縮的,是以可以加快傳輸的速度SSH
1) 域名 和 端口号
域名
- 由一串 用點分隔 的名字組成,例如:
www.itcast.cn
- 是 IP 位址 的别名,友善使用者記憶
端口号
- IP 位址:通過 IP 位址 找到網絡上的 計算機
- 端口号:通過 端口号 可以找到 計算機上運作的應用程式
- SSH 伺服器 的預設端口号是
,如果是預設端口号,在連接配接的時候,可以省略22
- SSH 伺服器 的預設端口号是
- 常見服務端口号清單:
序号 | 服務 | 端口号 |
---|---|---|
01 | SSH 伺服器 | 22 |
02 | Web 伺服器 | 80 |
03 | HTTPS | 443 |
04 | FTP 伺服器 | 21 |
2) SSH 用戶端的簡單使用
ssh [-p port] [email protected]
-
是在遠端機器上的使用者名,如果不指定的話預設為目前使用者user
-
是遠端機器的位址,可以是 IP/域名,或者是 後面會提到的别名remote
-
是 SSH Server 監聽的端口,如果不指定,就為預設值port
22
注意:
- 使用
退出目前使用者的登入
exit
這個終端指令隻能在
ssh
或者
Linux
(如mac)系統下使用
UNIX
- 如果在
系統中,可以安裝
Windows
或者
PuTTY
用戶端軟體即可
XShell
- 在工作中,SSH 伺服器的端口号很有可能不是 22,如果遇到這種情況就需要使用
選項,如21,指定正确的端口号,否則無法正常連接配接到伺服器
-p
3) Windows 下 SSH 用戶端的安裝
-
http://www.chiark.greenend.org.uk/~sgtatham/putty/latest.htmlPutty
-
https://www.netsarang.com/zhXShell
建議從官方網站下載下傳正版的安裝程式
- XShell可以選擇家庭 / 學校免費下載下傳安裝
- PuTTY登入到Ubuntu虛拟機時若顯示Network error: Connection refused,可參考這篇解決https://blog.csdn.net/yatoo505163549/article/details/59586467
3.2 scp
scp
- scp 就是
,是一個在 Linux 下用來進行 遠端拷貝檔案 的指令secure copy
- 它的位址格式與 ssh 基本相同,需要注意的是,在指定端口時用的是大寫的
而不是小寫的-P
# 把本地目前目錄下的 01.py 檔案 複制到 遠端 家目錄下的 Desktop/01.py
# 注意:`:` 後面的路徑如果不是絕對路徑,則以使用者的家目錄作為參照路徑
scp -P port 123.txt [email protected]:Desktop/123.txt
# 把遠端 家目錄下的 Desktop/01.py 檔案 複制到 本地目前目錄下的 01.py
scp -P port [email protected]:Desktop/123.txt 123.txt
# 加上 -r 選項可以傳送檔案夾
# 把目前目錄下的 aaa 檔案夾 複制到 遠端home目錄下的 Desktop
scp -r aaa [email protected]:Desktop
# 把遠端 home目錄下的 Desktop 複制到 目前目錄下的 demo 檔案夾
scp -r [email protected]:Desktop demo
選項 | 含義 |
---|---|
-r | 若給出的源檔案是目錄檔案,則 scp 将遞歸複制該目錄下的所有子目錄和檔案,目标檔案必須為一個目錄名 |
-P | 若遠端 SSH 伺服器的端口不是 22,需要使用大寫字母 -P 選項指定端口 |
注意:
這個終端指令隻能在
scp
或者
Linux
系統下使用
UNIX
- 如果在
系統中,可以安裝
Windows
,使用
PuTTY
指令行工具或者安裝
pscp
使用
FileZilla
進行檔案傳輸,也很友善。
FTP
FileZilla
FileZilla
- 官方網站:https://www.filezilla.cn/download/client
-
在傳輸檔案時,使用的是FileZilla
而不是FTP 服務
.SSH 服務
3.3 SSH 進階
- 免密碼登入
- 配置别名
提示:有關 SSH 配置資訊都儲存在使用者家目錄下的 .ssh
目錄下
1)免密碼登入
步驟
- 配置公鑰
- 執行
即可生成 SSH 鑰匙,一路回車即可ssh-keygen
- 執行
- 上傳公鑰到伺服器
- 執行
,可以讓遠端伺服器記住我們的公鑰ssh-copy-id -p port [email protected]
- 執行
示意圖
非對稱加密算法
- 使用 公鑰 加密的資料,需要使用 私鑰 解密
- 使用 私鑰 加密的資料,需要使用 公鑰 解密
2) 配置别名
每次都輸入
ssh -p port [email protected]
,時間久了會覺得很麻煩,特别是當
user
,
remote
和
port
都得輸入,而且還不好記憶
而 配置别名 可以讓我們進一步偷懶,譬如用:
ssh mac
來替代上面這麼一長串,那麼就在
~/.ssh/config
裡面追加以下内容:
Host mac
HostName ip位址
User itheima
Port 22
儲存之後,即可用
ssh mac
實作遠端登入了,
scp
同樣可以使用
五、使用者權限相關指令
01. 使用者 和 權限 的基本概念
1.1 基本概念
- 使用者 是 Linux 系統工作中重要的一環,使用者管理包括 使用者 與 組 管理
- 在 Linux 系統中,不論是由本機或是遠端登入系統,每個系統都必須擁有一個賬号,并且對于不同的系統資源擁有不同的使用權限
- 在 Linux 中,可以指定 每一個使用者 針對 不同的檔案或者目錄 的 不同權限
- 對 檔案/目錄 的權限包括:
序号 | 權限 | 英文 | 縮寫 | 數字代号 |
---|---|---|---|---|
01 | 讀 | read | r | 4 |
02 | 寫 | write | w | 2 |
03 | 執行 | excute | x | 1 |
1.2 組
- 為了友善使用者管理,提出了 組 的概念,如下圖所示
- 在實際應用中,可以預先針對 組 設定好權限,然後 将不同的使用者添加到對應的組中,進而不用依次為每一個使用者設定權限
1.3 ls -l 擴充
-
可以檢視檔案夾下檔案的詳細資訊,從左到右依次是:ls -l
- 權限,第 1 個字元如果是
表示目錄d
- 硬連結數,通俗地講,就是有多少種方式,可以通路到目前目錄/檔案
- 擁有者,家目錄下 檔案/目錄 的擁有者通常都是目前使用者
- 組,在 Linux 中,很多時候,會出現組名和使用者名相同的情況,後續會講
- 大小
- 時間
- 名稱
- 權限,第 1 個字元如果是
1.4 chmod
簡單使用
chmod
-
可以修改 使用者/組 對 檔案/目錄 的權限chmod
- 指令格式如下:
chmod +/-rwx 檔案名|目錄名
注意:以上方式會一次性修改/
擁有者
權限,有關
組
的進階用法,後續會講
chmod
1.5 超級使用者
- Linux 系統中的
賬号通常 用于系統的維護和管理,對作業系統的所有資源 具有所有通路權限root
- 在大多數版本的 Linux 中,都不推薦 直接使用 root 賬号登入系統
- 在 Linux 安裝的過程中,系統會自動建立一個使用者賬号,而這個預設的使用者就稱為“标準使用者”
sudo
-
是su
的縮寫,表示 使用另一個使用者的身份substitute user
-
指令用來以其他身份來執行指令,預設的身份為sudo
root
- 使用者使用
時,必須先輸入密碼,之後有 5 分鐘的有效期限,超過期限則必須重新輸入密碼sudo
若其未經授權的使用者企圖使用 sudo
,則會發出警告郵件給管理者
02. 組管理 終端指令
注:建立組 / 删除組 的終端指令都需要通過 sudo
執行
序号 | 指令 | 作用 |
---|---|---|
01 | groupadd 組名 | 添加組 |
02 | groupdel 組名 | 删除組 |
03 | cat /etc/group | 确認組資訊 |
04 | chgrp -R 組名 檔案/目錄名 | 遞歸修改檔案/目錄的所屬組 |
提示:
- 組資訊儲存在
檔案中
/etc/group
目錄是專門用來儲存 系統配置資訊 的目錄
/etc
- 在實際應用中,可以預先針對 組 設定好權限,然後 将不同的使用者添加到對應的組中,進而不用依次為每一個使用者設定權限
03. 使用者管理 終端指令
注:建立使用者 / 删除使用者 / 修改其他使用者密碼 的終端指令都需要通過 sudo
執行
3.1 建立使用者/設定密碼/删除使用者
序号 | 指令 | 作用 | 說明 |
---|---|---|---|
01 | useradd -m -g 組 建立使用者名 | 添加新使用者 |
|
02 | passwd 使用者名 | 設定使用者密碼 | 如果是普通使用者,直接用 passwd 可以修改自己的賬戶密碼 |
03 | userdel -r 使用者名 | 删除使用者 | -r 選項會自動删除使用者家目錄 |
04 | cat /etc/passwd | grep 使用者名 | 确認使用者資訊 | 建立使用者後,使用者資訊會儲存在 /etc/passwd 檔案中 |
注意:
- 建立使用者時,如果忘記添加
選項指定新使用者的家目錄 —— 最簡單的方法就是删除使用者,重新建立
-m
- 建立使用者時,預設會建立一個和使用者名同名的組名
- 使用者資訊儲存在
檔案中
/etc/passwd
3.2 檢視使用者資訊
序号 | 指令 | 作用 |
---|---|---|
01 | id [使用者名] | 檢視使用者 UID 和 GID 資訊 |
02 | who | 檢視目前所有登入的使用者清單 |
03 | whoami | 檢視目前登入使用者的賬戶名 |
passwd 檔案
/etc/passwd
檔案存放的是使用者的資訊,由 6 個分号組成的 7 個資訊,分别是
- 使用者名
- 密碼(x,表示加密的密碼)
- UID(使用者辨別)
- GID(組辨別)
- 使用者全名或本地帳号
- 家目錄
- 登入使用的 Shell,就是登入之後,使用的終端指令,
預設是ubuntu
dash
usermod
-
可以用來設定 使用者 的 主組 / 附加組 和 登入 Shell,指令格式如下:usermod
- 主組:通常在建立使用者時指定,在
的第 4 列 GID 對應的組etc/passwd
- 附加組:在
中最後一清單示該組的使用者清單,用于指定 使用者的附權重限etc/group
提示:設定了使用者的附加組之後,需要重新登入才能生效!
# 修改使用者的主組(passwd 中的 GID)
usermod -g 組 使用者名
# 修改使用者的附加組
usermod -G 組 使用者名
# 修改使用者登入 Shell
usermod -s /bin/bash 使用者名
注意:預設使用添加的使用者是沒有權限使用
useradd
以
sudo
身份執行指令的,可以使用以下指令,将使用者添加到
root
附加組中
sudo
usermod -G sudo 使用者名
which
注意
是用于儲存使用者資訊的檔案
/etc/passwd
是用于修改使用者密碼的程式
/usr/bin/passwd
-
指令可以檢視執行指令所在位置,例如:which
which ls
# 輸出
# /bin/ls
which useradd
# 輸出
# /usr/sbin/useradd
bin
和 sbin
bin
sbin
- 在
中,絕大多數可執行檔案都是儲存在Linux
、/bin
、/sbin
、/usr/bin
/usr/sbin
-
(/bin
)是二進制執行檔案目錄,主要用于具體應用binary
-
(/sbin
)是系統管理者專用的二進制代碼存放目錄,主要用于系統管理system binary
-
(/usr/bin
)後期安裝的一些軟體user commands for applications
-
(/usr/sbin
)超級使用者的一些管理程式super user commands for applications
提示:
這個終端指令是内置在系統核心中的,沒有獨立的檔案,是以用
cd
無法找到
which
指令的位置
cd
3.3 切換使用者
序号 | 指令 | 作用 | 說明 |
---|---|---|---|
01 | su - 使用者名 | 切換使用者,并且切換目錄 | - 可以切換到使用者家目錄,否則保持位置不變 |
02 | exit | 退出目前登入賬戶 |
-
不接使用者名,可以切換到su
,但是不推薦使用,因為不安全root
-
示意圖如下:exit
04. 修改檔案權限
序号 | 指令 | 作用 |
---|---|---|
01 | chown | 修改擁有者 |
02 | chgrp | 修改組 |
03 | chmod | 修改權限 |
- 指令格式如下:
# 修改檔案|目錄的擁有者
chown 使用者名 檔案名|目錄名
# 遞歸修改檔案|目錄的組
chgrp -R 組名 檔案名|目錄名
# 遞歸修改檔案權限
chmod -R 755 檔案名|目錄名
-
在設定權限時,可以簡單地使用三個數字分别對應 擁有者 / 組 和 其他 使用者的權限,我的了解是3個二進制組成8種可能的權限,類似38譯碼器。chmod
# 直接修改檔案|目錄的 讀|寫|執行 權限,但是不能精确到 擁有者|組|其他
chmod +/-rwx 檔案名|目錄名
- 常見數字組合有(
表示使用者/u
表示組/g
表示其他):o
-
===>777
u=rwx,g=rwx,o=rwx
-
===>755
u=rwx,g=rx,o=rx
-
===>644
u=rw,g=r,o=r
-
六、系統資訊相關指令
系統資訊指令主要是為了友善通過遠端終端維護伺服器時,檢視伺服器上目前 系統日期和時間 / 磁盤空間占用情況 /
程式執行情況
01. 時間和日期
序号 | 指令 | 作用 |
---|---|---|
01 | date | 檢視系統時間 |
02 | cal | 檢視月曆, 選項可以檢視一年的月曆 |
02. 磁盤資訊
序号 | 指令 | 作用 |
---|---|---|
01 | df -h | 顯示磁盤剩餘空間 |
02 | du -h [目錄名] | 顯示目錄下的檔案大小 |
- 選項說明
參數 | 含義 |
---|---|
-h | 以人性化的方式顯示檔案大小 |
03. 程序資訊
- 所謂 程序,通俗地說就是 目前正在執行的一個程式
序号 | 指令 | 作用 |
---|---|---|
01 | ps aux | 檢視程序的詳細狀況 |
02 | top | 動态顯示運作中的程序并且排序 |
03 | kill [-9] 程序代号 | 終止指定代号的程序, 表示強行終止 |
ps
預設隻會顯示目前使用者通過終端啟動的應用程式
-
選項說明ps
選項 | 含義 |
---|---|
a | 顯示終端上的所有程序,包括其他使用者的程序 |
u | 顯示程序的詳細狀态 |
x | 顯示沒有控制終端的程序 |
注意:使用指令時,最好隻終止由目前使用者開啟的程序,而不要終止
kill
身份開啟的程序,否則可能導緻系統崩潰
root
- 要退出
可以直接輸入
top
q
七、其他指令
01. 查找檔案
-
指令功能非常強大,通常用來在 特定的目錄下 搜尋 符合條件的檔案find
序号 | 指令 | 作用 |
---|---|---|
01 | find [路徑] -name “*.py” | 查找指定路徑下擴充名是 的檔案,包括子目錄 |
- 如果省略路徑,表示在目前檔案夾下查找
- 之前學習的通配符,在使用
指令時同時可用find
演練目标
- 搜尋桌面目錄下,所有以
為擴充名的檔案.txt
02. 軟連結
序号 | 指令 | 作用 |
---|---|---|
01 | ln -s 被連結的源檔案 連結檔案 | 建立檔案的軟連結,用通俗的方式講類似于 Windows 下的快捷方式 |
- 注意:
- 沒有
選項建立的是一個 硬連結檔案-s
- 兩個檔案占用相同大小的硬碟空間,工作中幾乎不會建立檔案的硬連結
- 源檔案要使用絕對路徑,不能使用相對路徑,這樣可以友善移動連結檔案後,仍然能夠正常使用
硬連結簡介
- 在使用
建立連結時,如果沒有ln
選項,會建立一個 硬連結,而不是軟連結-s
檔案軟硬連結的示意圖
在 Linux 中,檔案名 和 檔案的資料 是分開存儲的
- 注意:
- 在 Linux 中,隻有檔案的
才會被删除硬連結數 == 0
- 使用
可以檢視一個檔案的硬連結的數量ls -l
- 在日常工作中,幾乎不會建立檔案的硬連結,知道即可
- 在 Linux 中,隻有檔案的
03. 打包壓縮
- 打包壓縮 是日常工作中備份檔案的一種方式
- 在不同作業系統中,常用的打包壓縮方式是不同的
-
常用Windows
rar
-
常用Mac
zip
-
常用Linux
tar.gz
-
3.1 打包 / 解包
-
是 Linux 中最常用的 備份工具,此指令可以 把一系列檔案 打包到 一個大檔案中,也可以把一個 打包的大檔案恢複成一系列檔案tar
-
的指令格式如下:tar
# 打封包件
tar -cvf 打封包件.tar 被打包的檔案/路徑...
# 解封包件
tar -xvf 打封包件.tar
-
選項說明tar
選項 | 含義 |
---|---|
c | 生成檔案檔案,建立打封包件 |
x | 解開檔案檔案 |
v | 列出歸檔解檔的詳細過程,顯示進度 |
f | 指定檔案檔案名稱,f 後面一定是 .tar 檔案,是以必須放選項最後 |
注意: f
選項必須放在最後,其他選項順序可以随意
3.2 壓縮/解壓縮
1) gzip
gzip
-
與tar
指令結合可以使用實作檔案 打包和壓縮gzip
-
隻負責打封包件,但不壓縮tar
- 用
壓縮gzip
打包後的檔案,其擴充名一般用tar
xxx.tar.gz
-
在中,最常見的壓縮檔案格式就是
Linux
xxx.tar.gz
- 在
指令中有一個選項 -z 可以調用tar
,進而可以友善的實作壓縮和解壓縮的功能gzip
- 指令格式如下:
# 壓縮檔案
tar -zcvf 打封包件.tar.gz 被壓縮的檔案/路徑...
# 解壓縮檔案
tar -zxvf 打封包件.tar.gz
# 解壓縮到指定路徑
tar -zxvf 打封包件.tar.gz -C 目标路徑
選項 | 含義 |
---|---|
-C | 解壓縮到指定目錄,注意:要解壓縮的目錄必須存在 |
2) bzip2(two)
bzip2(two)
-
與tar
指令結合可以使用實作檔案 打包和壓縮(用法和bzip2
一樣)gzip
-
隻負責打封包件,但不壓縮,tar
- 用
壓縮bzip2
打包後的檔案,其擴充名一般用tar
xxx.tar.bz2
-
- 在
指令中有一個選項 -j 可以調用tar
,進而可以友善的實作壓縮和解壓縮的功能bzip2
- 指令格式如下:
# 壓縮檔案
tar -jcvf 打封包件.tar.bz2 被壓縮的檔案/路徑...
# 解壓縮檔案
tar -jxvf 打封包件.tar.bz2
04. 軟體安裝
4.1 通過 apt 安裝/解除安裝軟體
- apt 是
,是 Linux 下的一款安裝包管理工具Advanced Packaging Tool
- 可以在終端中友善的 安裝/解除安裝/更新軟體包
# 1. 安裝軟體
$ sudo apt install 軟體包
# 2. 解除安裝軟體
$ sudo apt remove 軟體名
# 3. 更新已安裝的包
$ sudo apt upgrade
4.2 配置軟體源
- 如果希望在
中安裝軟體,更加快速,可以通過設定鏡像源,選擇一個通路網速更快的伺服器,來提供軟體下載下傳/安裝服務ubuntu
- 提示:更換伺服器之後,需要一個相對比較長時間的更新過程,需要耐心等待。更新完成後,再安裝軟體都會從新設定的伺服器下載下傳軟體了
所謂鏡像源,就是所有伺服器的内容是相同的(鏡像),但是根據所在位置不同,國内伺服器通常速度會更快一些!
到此Linux常用指令基本就總結完了,熟練掌握這些應付日常的操作應該沒問題,之後在學習的過程中可以再查詢。
接下來想嘗試優化ubuntu系統和掌握一些日常使用的技巧和軟體,路途遙遠,慢慢學習吧!