摘要:
Linux 概念
Linux 核心
核心(kennel)是系統的核心,是執行程式和管理磁碟和印表機等硬體裝置的核心程式
核心版本又分為穩定版和開發版,兩種版本相互關聯,相互迴圈
Linux 發行版
發行版通常包含桌面環境、辦公套件、媒體播放器、資料庫...
Linux 核心
- 核心(kennel)是系統的核心,是執行程式和管理磁碟和印表機等硬體裝置的核心程式
- 核心版本又分為穩定版和開發版,兩種版本相互關聯,相互迴圈
Linux 發行版
- 發行版通常包含桌面環境、辦公套件、媒體播放器、資料庫等應用軟體
- 常見發行版有:
Linux 目錄結構
- / :根目錄,一般根目錄只存放目錄
- /bin、/usr/bin :可執行二進位制檔案的目錄,如常用的命令:
ls
、 mv
、 cat
- /boot :放置Linux啟動時用到的一些檔案,如Linux的核心檔案:
/boot/vmlinuxz
,系統引導管理器: /boot/grub
- /dev :存放Linux系統下的外部裝置檔案
- /etc :系統配置檔案存放目錄
- /home :使用者的主目錄,目錄名是以使用者的賬號命名的
- /lib、/usr/lib、/usr/local/lib :系統使用的函式庫的目錄,程式在執行過程中,需要呼叫一些額外的引數時需要的函式庫的協助,類似Windows裡的DLL檔案
- /lost+fount :一般情況下是空的,當系統異常產生錯誤時,會將一些丟失片段放置在這(比如非法關機)
- /mnt、/media :光碟預設掛載點,通常掛在與/mnt/cdrom下
- /opt : 這是給主機額外安裝軟體所擺放的目錄。
- /proc :是一個虛擬的目錄,它是系統記憶體的對映,我們可以通過直接訪問這個目錄來獲取系統資訊。
- /root :系統管理員root的主目錄
命令 |
作用 |
ls |
檢視當前資料夾下的內容 |
pwd |
檢視當前所在資料夾 |
cd [目錄名] |
切換資料夾 |
touch |
如果檔案不存在,新建檔案 |
mkdir |
建立目錄 |
rm [檔名] |
****刪除指定的檔案 |
clear |
清屏 |
ctrl+shift + =
ctrl + -
Linux 終端命令格式
command [-options] [parameter]
查閱命令幫助資訊
因為查詢的都是英文的,如果工作中遇到問題可以藉助 網路搜尋 來查詢
命令 |
作用 |
command --help |
顯示 command 命令的幫助資訊顯示 command 命令的幫助資訊 |
man command |
查詢 command 的命令使用手冊 |
b |
回滾一屏 |
f |
前滾一屏 |
操作鍵 |
功能 |
q |
退出 |
空格鍵 |
顯示手冊的下一屏 |
Enter鍵 |
一次滾動手冊頁的一行 |
終端實用技巧
1> 自動補全
- 在敲出
檔案
/ 目錄
/ 命令
的前幾個字母之後,按下 tab
鍵
2> 曾經使用過的命令
- 按
上
/ 下
游標鍵可以在曾經使用過的命令之間來回切換
- 如果要推出選擇,並不想執行當前選中的命令,可以按
ctrl+c
檔案和目錄常用命令
- 檔案和目錄的特點
- Linux 檔案 或者 目錄 名稱最長可以有
256
個字元
- 以
.
開頭的檔案為隱藏檔案,需要用加-a引數才能顯示
-
./
代表當前目錄
-
../
代表上一級目錄
相對路徑和絕對路徑
- 相對路徑 表示相對 當前目錄 所在的目錄位置
- 絕對路徑 表示從 根目錄/home目錄 開始的 具體 位置
ls 常用選項
引數 |
含義 |
-a |
顯示指定目錄下所有子目錄和檔案,包括隱藏檔案 |
-l |
以列表方式顯示檔案的詳細資訊 |
-h |
配合-l 以人性化的方式顯示檔案大小 |
mkdir
新建目錄的名稱不能與當前目錄中 已有的目錄或檔案 同名
rm
引數 |
含義 |
-f |
強制刪除,忽略不存在的檔案,無需提示 |
-r |
遞迴地刪除目錄下的內容,刪除資料夾時必須加此引數 |
使用rm 命令需要小心,因為檔案刪除後不能恢復
tree
cp
-
cp
命令是將 檔案 或 目錄 複製到另一個 檔案 或 目錄 中
引數 |
含義 |
-f |
已經存在的目標檔案直接覆蓋,不會提示 |
-i |
覆蓋檔案前提示 |
-r |
遞迴複製該目錄下的所有子目錄和檔案,目錄檔案必須為一個目錄名 |
mv
-
mv
命令可以用來 移動 檔案或目錄,也可以給檔案或目錄 重新命名
cat
-
cat
命令可以用來 檢視檔案內容 、 建立檔案 、 檔案合併 、 追加檔案內容 等功能
-
cat
會一次顯示所有的內容,適合 檢視內容比較少 的文字檔案
引數 |
含義 |
-b |
對非空輸出行編號 |
-n |
對輸出的所有行編號 |
more
more
檢視內容較多
操作鍵 |
功能 |
b |
回滾一屏 |
f |
前滾一屏 |
q |
退出 |
空格鍵 |
顯示文字的下一屏 |
Enter鍵 |
一次滾動文字的一行 |
grep
引數 |
含義 |
-n |
顯示匹配行及行號 |
-v |
顯示不包含匹配文字的所有行 |
-i |
忽略大小寫 |
引數 |
含義 |
^a |
行首,搜尋以a開頭的行 |
a$ |
行尾,搜尋以a結尾的行 |
echo 文字內容
-
echo
會在終端中顯示引數指定的文字,通常是和 重定向 聯合使用
重定向 > 和 >>
其中
-
\>
表示輸出,會 覆蓋 檔案原有的內容
-
\>>
表示追加,會將內容 追加 到已有檔案的末尾
例:echo ls -lha >> a
管道 |
- Linux 允許將 一個命令的輸出可以通過管道 作為 另一個命令的輸入
- 可以理解現實生活中的管子,管子的一頭塞東西進去,另一頭取出來,這裡的
|
的左右分為兩端,左端- 寫 ,右端- 讀
常用的管道命令有:
more
grep
使用者許可權相關命令
- 使用者管理包括 使用者 與 組 管理
- 可以指定 每一個使用者 針對 不同的檔案和目錄 的 不同許可權
許可權 |
英文 |
縮寫 |
數字代號 |
讀 |
read |
r |
4 |
寫 |
write |
w |
2 |
執行 |
excute |
x |
1 |
chmod (重要)
-
chmod
可以修改 使用者/組 對 檔案/目錄 的許可權
命令 |
作用 |
chmod +/-rwx 檔名|目錄名 |
更改檔案/目錄的許可權 |
超級使用者
- Linux系統中的root賬戶通常用於系統的維護和管理,對作業系統的 所有資源具有訪問許可權
- 不建議使用root賬戶 直接登入系統
sudo
-
su
是 substitute use
的縮寫,表示使用另一個使用者的身份
-
sudo
命令是其他身份用來執行命令
- 使用者使用
sudo
時必須先輸入密碼,但有五分鐘的有效期限,超時必須重新輸入密碼
組管理
提示:建立組/刪除組的終端命令都需要通過 sudo
來執行
命令 |
作用 |
groupadd 組名 |
新增組 |
groupdel 組名 |
刪除組 |
cat /etc/group |
確認組資訊 |
**chgrp -R **組名 檔案/目錄名 |
修改檔案/目錄的所屬組 |
使用者管理
建立使用者/刪除使用者/修改其他使用者密碼的終端命令都需要通過 sudo
執行
命令 |
作用 |
說明 |
useradd -m -g 組 新建使用者名稱 |
新增新使用者 |
-m 自動建立使用者目錄 -g 指定使用者所在組 |
passwd 使用者名稱 |
設定使用者密碼 |
如果是普通使用者,直接用 passwd 修改自己的賬戶密碼 |
userdel - r 使用者名稱 |
刪除使用者 |
-r 選項會自動刪除使用者目錄 |
cat /etc/passwd | grep 使用者名稱 |
確認使用者資訊 |
使用者資訊會儲存在 /etc/passwd 檔案中 |
-m
-g
檢視使用者資訊
命令 |
作用 |
id [使用者名稱] |
檢視使用者UID和GID資訊 |
who |
檢視當前所有登入的使用者列表 |
whoami |
檢視當前登入使用者的賬戶名 |
passwd檔案
/etc/passwd
檔案存放的是使用者的資訊,由6個分好組成的7個資訊,分別是
- 使用者名稱
- 密碼(x,表示加密的密碼)
- UID(使用者標識)
- GID (組標識)
- 使用者全名或本地賬戶
- 家目錄
- 登入使用的終端命令(預設是dash)
usermod
- usermod 可以用來設定使用者的主組 / 附加組 和 登入shell
- 主組:通常在新建使用者時指定,在/etc/passwd的第四列GID對應的組
- 附加組:在/etc/group 中最後一列表示該組的使用者列表,用於指定使用者的附加許可權
設定了使用者附加組後,需要重新登入才能生效
命令 |
作用 |
usermod -g 組 使用者名稱 |
修改使用者的主組 |
usermod -G 組 使用者名稱 |
修改使用者的附加組 |
usermod -s /bin/bash 使用者名稱 |
修改使用者登入的shell |
注意:預設使用useradd新增的使用者是沒有許可權使用sudo以root身份執行命令的,可以使用以下命令,將使用者新增到sudo 附加組中
usermod -G sudo 使用者名稱
which (重要)
- which 命令可以檢視執行命令的所在位置,例如:
whish ls
注意: cd
這個終端命令是內建在系統核心中的,沒有獨立的檔案,因此用 which
無法找到 cd
命令的位置
切換使用者
命令 |
作用 |
說明 |
su - 使用者名稱 |
切換使用者,並且切換目錄 |
- 可以切換到使用者目錄,否則保持位置不變 |
exit |
退出當前登入使用者 |
|
-
su
後不跟使用者名稱,預設切換到 root ,但是不推薦使用,因為不安全
修改檔案許可權
命令 |
作用 |
chown 使用者名稱 檔名|目錄名 |
修改擁有者 |
chgrp -R 組名 檔名|目錄名 |
修改組 |
chmod -R 755 檔名|目錄名 |
修改許可權 |
-
chmod
在設定許可權時,可以簡單使用三個數字分別對應 擁有者 / 組 和 其他 使用者的許可權
- 常用數字組合有
-
777
===> u= rwx,g=rwx,o=rwx
-
755
===> u=rwx,g=rx,o=rx
-
644
===> u=rw,g=r,o=r
遠端管理常用命令
shutdown 關機 / 重啟
-
shutdown
命令可以 安全關閉 或者 重新啟動 系統
命令 |
作用 |
shutdown [選項] [時間] |
關機/重新啟動 |
不指定選項和引數,預設表示 1分鐘後 關閉電腦
注意:遠端維護伺服器時,最好是 重新啟動 系統,而不是關機
ifconfig 檢視或配置網絡卡資訊
命令 |
作用 |
ifconfig |
檢視/配置計算機當前的網絡卡配置資訊 |
ping ip地址 |
檢測到目標 ip地址的連通性 |
ping 一般用於檢測當前計算機到目標計算機之間的網路 是否暢通、數值越大、速度越慢
#檢視網絡卡對應的IP地址
$ ifconfig | grep inet
ssh 遠端登入和複製檔案
- SSH客戶端 是一種使用
Secure Shell(SSH)
連線到遠端計算機的軟體程式
-
SSH
是目前較可靠, 專為遠端登入會話和其他網路服務提 供安全性的協議
- 利用
SSH協議
可以 有效防止遠端管理過程中的資訊洩露
- 通過
SSH協議
可以對所有傳輸的資料進行 加密 ,也能防止DNS欺騙和IP欺騙
- 使用
SSH協議
傳輸的資料是經過 壓縮 的,所以可以加快傳輸速度
命令 |
作用 |
ssh 使用者名稱@ip |
關機 / 重新啟動 |
scp 使用者名稱@ip:檔名或路徑 使用者名稱@ip:檔名或路徑 |
遠端複製檔案 |
- SSH這個終端命令只能在Linux和Unix系統下使用,在Windows上需要使用客戶端軟體才行
- SSH伺服器的埠號很可能不是22,那就使用-p選項,指定正確的埠號,否則無法連線伺服器
Windows下SSH客戶端的安裝
xshell
ofollow,noindex">http://www.xshellcn.com/
putty
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
SCP
-
scp
就是 secure copy
,是一個在Linux下用來進行 遠端拷貝檔案 的命令
- 它的 地址格式與ssh基本相同 , 需要注意的是 ,在指定埠時用的是大寫的-P而不是小寫的
選項 |
含義 |
-r |
複製該目錄下的所有子目錄和檔案,目標檔案必須是一個目錄名 |
-P |
若遠端SSH 伺服器的埠不是22 |
注意:‘:’後面的路徑如果不是絕對路徑,則以使用者的home目錄作為參照路徑
例:把本地的檔案上傳到伺服器
scp -P port test.txt user@remote:Desktop/test.txt
把遠端伺服器的檔案下載到本地
scp -P port user@remote:Desktop/test.txt
加上 -r 選項可以傳送資料夾到伺服器
scp -r demo user@remote:Desktop
把伺服器的資料夾下載到本地
scp -r user@remote:Desktop demo
-
scp
這個終端命令只能在 Linux 或者 Unix 系統下使用
- 如果在 Windows 系統中,可以安裝
FileZilla
使用 FTP
進行檔案傳輸
SSH 高階
有關SSH的配置資訊都儲存在使用者home目錄下的.ssh目錄下
01. 免密碼登入
- 配置公鑰
- 執行ssh-keygen即可生成SSH鑰匙,之後一路回車即可
- 上傳公鑰到伺服器
- 執行ssh-copy-id -p port user@remote,可以讓遠端伺服器儲存我們的公鑰
採用非對稱加密演算法
- 使用公鑰加密的資料,需要使用私鑰解密
- 使用私鑰加密的資料,需要使用公鑰解密
02. 設定別名
每次輸入 ssh -p port user@remote
,時間久了就會覺得很麻煩,而且不好記
當配置完別名後就可以偷懶,比如: ssh manjaro
來代替上面的一大串
儲存之後,即可用 ssh manjaro
實現遠端登入,scp同樣可以使用
系統資訊相關命令
通過遠端終端維護伺服器時,檢視伺服器當前 系統日期和時間 / 磁碟空間佔用情況 / 程式執行情況
時間和日期
命令 |
作用 |
date |
檢視系統時間 |
cal |
檢視日曆(預設當前月),-y 選項可以檢視一年的日曆 |
磁碟資訊
命令 |
作用 |
df -h |
disk free 顯示磁碟剩餘空間 |
du - h [目錄名] |
disk usage 顯示目錄下的檔案大小 |
程序資訊
命令 |
作用 |
ps aux |
process status 檢視程序的詳細狀況 |
top |
動態顯示執行中的程序並且排序 |
kill [-9] [PID] |
終止指定代號的程序,-9表示強行終止 |
ps
預設只會顯示當前使用者通過終端啟動的應用程式
命令 |
含義 |
a |
顯示終端上的所有程序,包括其他使用者的程序 |
u |
顯示程序的詳細狀態 |
x |
顯示沒有控制終端的程序 |
使用 kill
命令時,最好只終止當前使用者開啟的程序,不要終止 root
身份開啟的程序,否則會導致系統奔潰
查詢檔案
命令 |
作用 |
find [路徑] -name "*.py" |
查詢路徑下副檔名為py的檔案,包含子目錄 |
軟連結
命令 |
作用 |
ls -s [被連結的原始檔] [連結檔案] |
建立檔案的軟連結 |
- 沒有
-s
選項的建立的時一個 硬連結檔案
- 原始檔要 使用絕對路徑 ,為了方便移動連結檔案後能繼續正常使用
硬連結
命令 |
作用 |
ln [被連結的原始檔] [連結檔案] |
建立 |
在linux中, 檔名和檔案資料 時分開儲存的
打包壓縮
- 在不同系統中,常用的打包壓縮方式也是不同的
- linux 常用
tar.gz
- Mac 常用
zip
- Windows 常用
rar
-
tar
命令可以把一系列檔案打包到一個大檔案,也可以把大檔案恢復成一個系列檔案
打包
命令 |
作用 |
tar -cvf [打包後文件名.tar] [被打包的檔案/路徑] |
打包一個檔案/目錄 |
解包
命令 |
作用 |
tar -xvf 打包的檔案.tar |
解壓檔案 |
選項 |
含義 |
c |
生成檔案檔案,建立打包檔案 |
x |
解開檔案檔案 |
v |
列出歸檔解檔的詳細過程,顯示進度 |
f |
指定檔案檔名,f 後面要跟著 .tar 檔案 |
壓縮/解壓
gzip
-
tar
與 gizp
一起用可以實現打包和壓縮
- 在
tar
命令中有個選項 -z 可以直接呼叫 gzip
,實現快速打包壓縮解壓功能
命令 |
作用 |
tar -zcvf [打包後文件名.tar.gz] [被打包的檔案/路徑] |
壓縮檔案 |
tar -zxvf 打包的檔案.tar.gz |
解壓檔案 |
-
解壓選項說明
選項 |
含義 |
-C |
解壓縮到指定目錄(目錄必須存在) |
bzip2
-
tar
與 bzip2
也可以實現檔案打包壓縮(用法和 gzip
一樣)
命令 |
作用 |
tar -jcvf [打包後文件名.tar.gz] [被打包的檔案/路徑] |
壓縮檔案 |
tar -jxvf 打包的檔案.tar.gz |
解壓檔案 |
計算機中檔案大小的表示方式
單位 |
英文 |
含義 |
位元組 |
B (Byte) |
在計算機中作為一個數字單元,一般為8位二進位制數 |
千 |
K (Kibibyte) |
1KB = 1024B,千位元組 |
兆 |
M (Mebibyte) |
1MB = 1024KB,百萬位元組 |
千兆 |
G (Gigabyte) |
1GB = 1024MB,十億位元組,千兆位元組 |
太 |
T (Terabyte) |
1TB = 1024GB,萬億位元組,太位元組 |
拍 |
P (Petabyte) |
1PB = 1024TB,千萬億位元組,拍位元組 |
艾 |
E (Exabyte) |
1EB = 1024PB,百億億位元組,艾位元組 |
澤 |
Z (Zettabyte) |
1ZB = 1024EB,十萬億億位元組,澤位元組 |
堯 |
Y (Yottabyte) |
1YB = 1024ZB,一億億億位元組,堯位元組 |