Linux指令學習
Linux命令格式:命令名 選項 引數
Linux 剛面世時並沒有圖形介面,所有的操作全靠命令完成,如 磁碟操作、檔案存取、目錄操作、程序管理、檔案許可權 設定等,在職場中,大量的伺服器維護工作都是在遠端通過SSH 客戶端來完成的,並沒有圖形介面,所有的維護工作,都需要通過命令來完成,在職場中,作為後端程式設計師,必須要或多或少的掌握一些 Linux 常用的終端命令,Linux 發行版本的命令大概有 200 多個,但是常用的命令只有 10 多個而已。
檔案及目錄操作
linux下,我們是看不到硬體碟符的,我們只能看到資料夾(目錄)
linux主要目錄速查表
/ :根目錄,Ubuntu只有一個根目錄,所有檔案都在它下面
/home/user:使用者工作目錄或者家目錄。
/bin、/usr/bin:可執行二進位制檔案的目錄
/boot:放置 linux 系統啟動時用到的一些檔案,如 linux 的核心檔案:/boot/vmlinuz;系統引導管理器:/boot/grub
/dev:存放linux系統下的裝置檔案,訪問該目錄下某個檔案,相當於訪問某個裝置,常用的是掛載光碟機mount /dev/cdrom /mnt
/etc:系統配置檔案存放的目錄,不建議在此目錄下存放可執行檔案,重要的配置檔案有
/home:系統預設的使用者家目錄,新增使用者賬號
- ~ 表示當前使用者的家目錄
- ~edu 表示使用者 edu 的家目錄
/root:系統管理員root的家目錄
/tmp:一般使用者或正在執行的程式臨時存放檔案的目錄,任何人都可以訪問,重要資料不可放置在此目錄下
/srv:服務啟動之後需要訪問的資料目錄,如 www 服務需要訪問的網頁資料存放在 /srv/www 內
/usr:應用程式存放目錄
- /usr/bin:存放應用程式
- /usr/share:存放共享資料
- /usr/lib:存放不能直接執行的,卻是許多程式執行所必需的一些函式庫檔案
- /usr/local:存放軟體升級包
- /usr/share/doc:系統說明檔案存放目錄
- /usr/share/man:程式說明檔案存放目錄
/var:放置系統執行過程中經常變化的檔案
- /var/log:隨時更改的日誌檔案
- /var/spool/mail:郵件存放的目錄
- /var/run:程式或服務啟動後,其 PID 存放在該目錄下
小技巧
- ctrl + shift + = 放大終端視窗的字型顯示
- ctrl + - 縮小終端視窗的字型顯示
- 自動補全:在敲出 檔案/目錄/命令 的前幾個字母之後,按下tab鍵,如果輸入的沒有歧義,系統會自動補全
- 按 上 / 下 游標鍵可以在曾經使用過的命令之間來回切換
- 如果想退出,並且不想執行當前選中的命令,可以按 ctrl+ c
目錄檔案操作
檢視當前目錄:pwd
顯示目錄內容:ls
- 作用:ls命令用來檢視當前資料夾的檔案和子目錄
- 引數:
- ls -l 以列表方式顯示檔案的詳細資訊
- ls -a 顯示全部(包括隱藏檔案)
- ls -t 按照修改時間排序
- ls -l -h 配合-l以人性化的方式顯示檔案大小
ls -l 執行結果:
說明:執行結果從左到右含義分別為:檔案許可權、連線數或子目錄數、檔案擁有者、檔案所在組、檔案大小、最後修改時間、檔名稱
切換目錄:cd 目錄
符號 | 含義 |
cd | 切換到當前使用者的主目錄(/home/使用者目錄) |
cd ~ | 切換到當前使用者的主目錄(/home/使用者目錄) |
cd . | 當前目錄 |
cd .. | 上級目錄 |
cd - | 上一次所在目錄 |
相對路徑和絕對路徑
- 相對路徑 在輸入路徑時,最前面不是 / 或者 ~,表示相對 當前目錄 所在的目錄位置
- 絕對路徑 在輸入路徑時,最前面是 / 或者 ~,表示從 根目錄/家目錄 開始的具體目錄位置
建立目錄:mkdir 目錄
- 引數:mkdir -p 如果父目錄不存在,同時建立父目錄
檔案操作
建立空檔案:touch
例如:touch test.txt temp.p
向檔案寫入內容:echo
格式:echo>檔名
例如:echo 'abc' > test1.txt (將abc字串寫入test1.txt,會覆蓋原來的內容;如果不想覆蓋原來的內容,使用兩個大於符號>>)
檢視檔案內容:cat 檔名
以樹狀圖的形式檢視目錄檔案結構:tree [目錄名]
檢視檔案前幾行:head -n 行數 檔名
- 搜尋檔名包含1的檔案 find -name "*1*"
- 搜尋所有以.txt為副檔名的檔案 find -name "*.txt"
- 搜尋以數字1開頭的檔案 find -name "1*"
檢視檔案最後幾行:tail -n 行數 檔名
檔案查詢:find 查詢路徑 -name 檔名/目錄名
檔案複製:cp 原檔案 新檔案
檔案移動:mv 原檔名 新檔名
檔案刪除:rm [選項] 檔名|目錄名
- 選項
- -f 強制刪除(慎用!)
- -i 互動模式,在刪除前詢問
- -r 遞迴刪除目錄下的內容,刪除資料夾時必須的加此引數
打包壓縮
windows常用rar,Mac常用zip,Linux常用tar.gz。linux中常使用tar命令進行打包、壓縮、解壓操作,gz字尾名錶示進行了壓縮,tar字尾名錶示進行了打包,加字尾名是為了清晰、易於理解,而不是必須的。
打包/解包
# 打包檔案 tar -cvf 打包檔案.tar 被打包的檔案/路徑... # 解包檔案 tar -xvf 打包檔案.tar
引數:
- c 建立打包檔案
- x 解開打包檔案
- v 列出詳細過程,顯示進度
- f 執行打包的檔名稱,f後面一定是.tar檔案,所以必須放在選項後面
壓縮與解壓
1、gzip
tar與gzip命令結合可以實現檔案 打包和壓縮
- tar只負責打包檔案,但不壓縮,
- 用gzip壓縮tar打包後的檔案,其副檔名一般用xxx.tar.gz
壓縮:tar -zcvf 壓縮包名字.tar.gz 檔案1 檔案2 目錄3
- 引數:
- z 使用gzip方式壓縮
- c 建立包 create
- v 顯示操作檔案的細節,顯示進度
- f 要操作的檔名,f後面一定是.tar檔案,所以必須放在選項後面
解壓:tar -zxvf 壓縮包名字.tar.gz
- 引數:
- z 使用gzip方式壓縮
- c 建立包 create
- v 顯示操作檔案的細節
- f 要操作的檔名 file
解壓檔案到指定路徑:tar -zxvf 打包檔案.tar.gz -C 目標路徑
解壓縮到指定目錄,注意:要解壓縮的目錄必須存在
2、bzip2(two)
tar與bzip2命令結合可以實現檔案打包和壓縮,tar只負責打包檔案,但不壓縮。用bzip2壓縮tar打包後的檔案,其副檔名用xxx.tar.bz2
在tar命令中有一個選項-j可以呼叫bzip2,從而可以實現實現壓縮和解壓縮的功能
- 壓縮的檔案:tar -jcvf 打包檔案.tar.bz2 被壓縮的檔案
- 解壓縮檔案:tar -jxvf 打包檔案.tar.bz2
網路操作
檢視本機網路地址:ifconfig
測試網路連通性:ping [對方主機地址]
檔案許可權管理
三個許可權引數:讀 寫 執行
- 引數:r可讀,w可寫,x可執行,-什麼都不行
在rwx三個許可權中,從右至左依次用值4、2、1來表示,所以擁有某個檔案的讀、寫、執行許可權也可以用三個許可權值累加的方式來表示,如下表所示:
許可權 | 含義 | 對應值 |
rwx | 可讀、可寫、可執行 | 4+2+1=7 |
rw- | 可讀、可寫、不可執行 | 4+2+0=6 |
r-x | 可讀、不可寫、可執行 | 4+0+1=5 |
r-- | 可讀、不可寫、不可執行 | 4+0+0=4 |
-wx | 不可讀、可寫、可執行 | 0+2+1=3 |
-w- | 不可讀、可寫、不可執行 | 0+2+0=2 |
--x | 不可讀、不可寫、可執行 | 0+0+1=1 |
--- | 不可讀、不可寫、不可執行 | 0+0+0=0 |
修改檔案權重:chmod {許可權值} {檔案/目錄名}
- 例如:給檔案test1.txt新增可執行許可權 chmod +x test.txt
- 例如:設定檔案,擁有者有讀、寫、執行許可權,其他使用者沒有訪問許可權 chmod 700 test1.txt
萬用字元
萬用字元 | 含義 |
* | 代表任意個數字元 |
? | 代表任意一個字元,至少1個 |
[] | 表示可以匹配字元組中的任意一個 |
[abc] | 匹配a、b、c中的任意一個 |
[a-f] | 匹配從a到f範圍內的任意一個字元 |
遠端管理常用命令
關機/重啟:shutdown 選項 時間
- shutdown now 現在就關閉電腦
- shutdown 20:10 時間20:10分關閉電腦
- shotdown -r +10 十分鐘後重啟電腦
- shotdown -c 取消之前指定的關機計劃
- -r 重新啟動
- 不設定選項和引數:預設1分鐘後 關閉電腦
檢視或匹配網絡卡資訊
- ifconfig :檢視/配置計算機當前的網絡卡配置資訊
- ping ip地址 :檢查目標 ip地址 的連線是否正常,數值越大,速度越慢
遠端登入和複製檔案
- 關機/重新啟動 ssh 使用者名稱@ip
- 遠端複製檔案: scp 使用者名稱@ip:檔名或路徑 使用者名稱@ip:檔名或路徑
軟體安裝
通過apt安裝/解除安裝軟體
安裝軟體:sudo apt install 軟體包
解除安裝軟體:sudo apt remove 軟體包
更新軟體:sudo apt upgrade 軟體包
&n