Linux實操-實用指令
1.1 指定執行級別
-
執行級別說明:
0 : 關機
1 : 單使用者[召回丟失密碼]
2 : 多使用者狀態沒有網路服務
3 : 多使用者狀態有網路服務
4 : 系統未使用保留給使用者
5 : 圖形介面
6 : 系統重啟
常用執行級別是 3 和 5 ,要修改預設的執行級別可改檔案 /etc/inittab 的 id:5:initdefault:這一行中的數字
1.2 切換到指定執行級別的指令
1.2.1 基本語法
init [012356]
vim /etc/inittab
id: 5: initdefault:
1.2.2 應用例項
案例 1: 通過 init 來切換不同的執行級別,比如動 5->3 , 然後關機
1.2.3面試題
如何找回 root 密碼,如果我們不小心,忘記 root 密碼,怎麼找回。
思路: 進入到 單使用者模式,然後修改 root 密碼。因為進入單使用者模式,root 不需要密碼就可以登入。
開機->在引導時輸入 回車鍵-> 看到一個介面輸入 e -> 看到一個新的介面,選中第二行(編輯 核心)在輸入 e-> 在這行最後輸入 1 ,再輸入 回車鍵->再次輸入 b ,這時就會進入到單使用者模式。這時,我們就進入到單使用者模式,使用 passwd 指令來修改 root 密碼。
1.2.4課堂練習
- 假設我們的 root 密碼忘記了,請問如何找回密碼
-
請設定我們的 執行級別,linux 執行後,直接進入到 命令列介面,即進入到 3 執行級別
vim /etc/inittab
將 id:5:initdefault:這一行中的數字, 5 這個數字改成對應的執行級別即可。
1.3 幫助指令
1.3.1 介紹
當我們對某個指令不熟悉時,我們可以使用 Linux 提供的幫助指令來了解這個指令的使用方法。
1.3.2 man獲得幫助資訊
-
基本語法
man [命令或配置檔案] (功能描述:獲得幫助資訊)
1.3.3 help指令
-
基本語法
help 命令 (功能描述:獲得 shell 內建命令的幫助資訊) -
應用例項
案例:檢視 cd 命令的幫助資訊
help cd
1.3.4 當一個指令不熟悉如何學習的建議
百度幫助更直接
雖然上面兩個都可以來獲取指令幫助,但是需要英語功底,如果英語不太好的,我還是推薦大家 直接百度靠譜。 ifconfig
1.4 檔案目錄類
1.4.1 pwd指令
-
基本語法
pwd (功能描述:顯示當前工作目錄的絕對路徑) -
應用例項
案例:顯示當前工作目錄的絕對路徑
pwd
1.4.2 ls指令
-
基本語法
ls [選項] [目錄或是檔案] -
常用選項
-a :顯示當前目錄所有的檔案和目錄,包括隱藏的。
-l :以列表的方式顯示資訊 -
應用例項
案例:檢視當前目錄的所有內容資訊
ls
ls -l
ls -al
1.4.3 cd 指令
- 基本語法
cd [引數] (功能描述:切換到指定目錄)
- 常用引數
絕對路徑和相對路徑
如何理解絕對路徑和相對路徑:
cd ~ 或者 cd :回到自己的家目錄
cd .. 回到當前目錄的上一級目錄
- 應用例項
案例 1:使用絕對路徑切換到 root 目錄
cd /root
案例 2: 使用相對路徑到/root 目錄 這裡我們需要知道該使用者目錄在哪個目錄下,才能寫出這個指令,假設在/usr/lib
cd ../../root
案例 3:表示回到當前目錄的上一級目錄
cd ..
案例 4:回到家目錄
cd ~
1.4.4 mkdir指令
mkdir 指令用於建立目錄(make directory)
-
基本語法
mkdir [選項] 要建立的目錄
-
常用選項
-p :建立多級目錄
-
應用例項
案例 1:建立一個目錄 /home/dog
mkdir /home/dog #表示在/home目錄下,建立dog目錄
案例 2:建立多級目錄 /home/animal/tiger
mkdir -p /home/animal/tiger
1.4.5 rmdir指令
-
介紹
rmdir 指令刪除空目錄 -
基本語法
rmdir [選項] 要刪除的空目錄 -
應用例項
案例 1:刪除一個目錄 /home/dog
rmdir /home/dog
-
使用細節
rmdir 刪除的是空目錄,如果目錄下有內容時無法刪除的。 提示:如果需要刪除非空目錄,需要使用 rm -rf 要刪除的目錄
rmdir /home/dog #rmdir不能刪除非空的目錄 rm -rf /home/dog #如果希望刪除非空的目錄,可以使用rm -rf 目錄即可
1.4.6 touch指令
touch 指令建立空檔案
-
基本語法
touch 檔名稱 -
應用例項
案例 1: 建立一個空檔案 hello.txt
touch hello.txt
touch ok1.txt ok2.txt
1.4.7 cp指令[重要]
cp 指令拷貝檔案到指定目錄
-
基本語法
cp [選項] source dest
-
常用選項
-r :遞迴複製整個資料夾
-
應用例項
案例 1: 將 /home/aaa.txt 拷貝到/home/bbb目錄[拷貝單個檔案]
cd /home touch aaa.txt mkdir bbb cp aaa.txt bbb/#表示當前目錄的aaa.txt檔案拷貝到當前目錄的bbb這個目錄
案例 2: 遞迴複製整個資料夾,舉例 將/home/test 整個目錄拷貝到 /home/zwj 目錄
cd /home cp -r test/ zwj/#注意: 一定要注意你當前的目錄位置,然後要準確的定位 源目錄和目標目錄
-
使用細節
強制覆蓋不提示的方法:\cp
cp -r test/ zwj/#這個指令,當發現目標目錄下有相同檔案,會提示你是否覆蓋 \cp -r test/ zwj/#這個指令會強制覆蓋原來的檔案,不會提示
技術小技巧:
可以通過 上下箭頭的鍵,調出原來使用過的指令。
1.4.8 rm指令
rm 指令移除【刪除】檔案或目錄
-
基本語法
rm [選項] 要刪除的檔案或目錄
-
常用選項
-r :遞迴刪除整個資料夾
-f : 強制刪除不提示
-
應用例項
案例 1: 將 /home/aaa.txt 刪除
rm /home/aaa/txt
案例 2: 遞迴刪除整個資料夾 /home/bbb
rm -rf bbb/
-
使用細節
強制刪除不提示的方法:帶上 -f 引數即可
rm -f ok1. txt
1.4.9 mv指令
mv移動檔案 與目錄或重新命名
- 基本語法
mv oldNameFile newNameFile (功能描述:重新命名)
mv /temp/movefile /targetFolder (功能描述:移動檔案)
- 應用例項
案例 1: 將 /home/aaa.txt 檔案 重新命名為 pig.txt
mv aaa.txt pig.txt
案例 2:將 /home/pig.txt 檔案 移動到 /root 目錄下
mv /home/pig.txt /root/
1.4.10 cat指令
cat 檢視檔案內容,是以只讀的方式開啟
-
基本語法
cat [選項] 要檢視的檔案 -
常用選項
-n :顯示行號 -
應用例項
案例 1: /etc/profile 檔案內容,並顯示行號
cat -n /etc/profile | more#以cat指令開啟檔案,並分頁顯示
-
使用細節
cat 只能瀏覽檔案,而不能修改檔案,為了瀏覽方便,一般會帶上 管道命令 | more
cat 檔名 | more [分頁瀏覽]
1.4.11 more指令
more 指令是一個基於 VI 編輯器的文字過濾器,它以全螢幕的方式按頁顯示文字檔案的內容。more 指令中內建了若干快捷鍵,詳見操作說明
-
基本語法
more 要檢視的檔案 - 操作說明
-
應用例項
案例: 採用 more 檢視檔案 /etc/profile
more /etc/profile
快捷一欄
操作 | 功能說明 |
---|---|
空白鍵(space) | 代表向下翻一頁 |
Enter | 代表向下翻[一行] |
q | 代表立刻離開more,不再顯示該檔案內容 |
Ctrl+F | 向下滾動一屏 |
Ctrl+B | 返回上一屏 |
= | 輸出當前行的行號 |
:f | 出書檔名和當前行的行號 |
1.4.12 less 指令
less 指令用來分屏檢視檔案內容,它的功能與 more 指令類似,但是比 more 指令更加強大,支援 各種顯示終端。less 指令在顯示檔案內容時,並不是一次將整個檔案載入之後才顯示,而是根據顯示 需要載入內容,對於顯示大型檔案具有較高的效率
-
基本語法
less 要檢視的檔案 - 操作說明
-
應用例項
案例: 採用 less 檢視一個大檔案檔案 /opt/金庸-射鵰英雄傳 txt 精校版.txt
less /opt/金庸-射鵰英雄傳 txt 精校版.txt
快捷鍵
操作 | 功能說明 |
---|---|
空白鍵 | 向下翻動一頁 |
[pagedown] | 向下翻動一頁 |
[pageup] | 向上翻動一頁 |
/字串 | 向下搜尋[字串]的功能; n:向下查詢; N:向上查詢; |
?字串 | 向上搜尋[字串]的功能; n:向上查詢; N:向下查詢; |
q | 離開less這個程式 |
1.4.13 >指令和>>指令
指令 和 >> 指令
輸出重定向 : 會將原來的檔案的內容覆蓋
追加: 不會覆蓋原來檔案的內容,而是追加到檔案的尾部。
- 基本語法
- ls -l >檔案 (功能描述:列表的內容寫入檔案 a.txt 中(覆蓋寫))
ls -l > a.txt
說明:ls -l > a.txt , 將 ls -l 的顯示的內容覆蓋寫入到 a.txt 檔案,如果該檔案不存在,就建立該文 件。
- ls -al >>檔案 (功能描述:列表的內容追加到檔案 aa.txt 的末尾)
ls -l >> b.txt
- cat 檔案 1 > 檔案 2 (功能描述:將檔案 1 的內容覆蓋到檔案 2)
cat /etc/profile > c.txt
- echo "內容" >> 檔案
-
應用例項
案例 1: 將 /home 目錄下的檔案列表 寫入到 /home/info.txt 中
ls -l /home/ > /home/info.txt
案例 2: 將當前日曆資訊 追加到 /home/mycal 檔案中 [提示 cal ]
cal >> /home/mycal
1.4.14 echo指令
echo 輸出內容到控制檯
-
基本語法
echo [選項] [輸出內容] •應用例項
案例: 使用 echo 指令輸出環境變數,輸出當前的環境路徑。
echo $PATH
案例: 使用 echo 指令輸出 hello,world!
echo hello, word!
1.4.15 head指令
head 用於顯示檔案的開頭部分內容,預設情況下 head 指令顯示檔案的前 10 行內容
-
基本語法
head檔案 (功能描述:檢視檔案頭10行內容)
head -n 5 檔案 (功能描述:檢視檔案頭 5 行內容,5 可以是任意行數) -
應用例項
案例: 檢視/etc/profile 的前面 5 行程式碼
head -n 5 /etc/profile
1.4.16 tail指令
tail 用於輸出檔案中尾部的內容,預設情況下 tail 指令顯示檔案的後 10 行內容
- 基本語法
- tail 檔案 (功能描述:檢視檔案後 10 行內容)
- tail -n 5 檔案 (功能描述:檢視檔案後 5 行內容,5 可以是任意行數)
- tail -f 檔案 (功能描述:實時追蹤該文件的所有更新,工作經常使用)
-
應用例項
案例 1: 檢視/etc/profile 最後 5 行的程式碼
tailf -n 5 /etc/profile
案例 2:實時監控 mydate.txt , 看看到檔案有變化時,是否看到, 實時的追加日期
tail -f mydate.txt
1.4.17 ln指令
軟連結也叫符號連結,類似於 windows 裡的快捷方式,主要存放了連結其他檔案的路徑
-
基本語法
ln -s [原檔案或目錄] [軟連結名] (功能描述:給原檔案建立一個軟連結) -
應用例項
案例 1: 在/home 目錄下建立一個軟連線 linkToRoot,連線到 /root 目錄
ln -s /root linkToRoot
案例 2: 刪除軟連線 linkToRoot
rm -rf linkToRoot
-
細節說明
當我們使用 pwd 指令檢視目錄時,仍然看到的是軟連結所在目錄。
1.4.18 history指令
檢視已經執行過歷史命令,也可以執行歷史指令
-
基本語法
history (功能描述:檢視已經執行過歷史命令) -
應用例項
案例 1: 顯示所有的歷史命令
history
案例 2: 顯示最近使用過的 10 個指令
history 10
案例 3:執行歷史編號為 5 的指令
!178
1.5 時間日期類
1.5.1 date指令-顯示當前日期
- 基本語法
- date (功能描述: 顯示當前時間)
- date + %Y (功能描述: 顯示當前年份)
- date + %m (功能描述: 顯示當前月份)
- date + %d (功能描述: 顯示當前是哪一天)
- date "+%Y-%m-%d %H:%M:%S" (功能描述:顯示年月日時分秒)
-
應用例項
案例 1: 顯示當前時間資訊
date
案例 2:顯示當前時間年月日
date "+%Y-%m-%d"
案例 3: 顯示當前時間年月日時分秒
date "+%Y-%m-%d %H:%M:%S"
1.5.2 date指令 - 設定日期
-
基本語法
date -s 字串時間 -
應用例項
案例 1: 設定系統當前時間 , 比如設定成 2018-10-10 11:22:22
date -s '2018-10-10 11:22:22'
cal 指令
檢視日曆指令
-
基本語法
cal [選項] (功能描述:不加選項,顯示本月日曆) -
應用例項
案例 1: 顯示當前日曆
cal
案例 2: 顯示 2020 年日曆
cal 2020
1.6 搜尋查詢類
1.6.1 find指令
find 指令將從指定目錄向下遞迴地遍歷其各個子目錄,將滿足條件的檔案或者目錄顯示在終端。
-
基本語法
find [搜尋範圍] [選項] - 選項說明
選項 | 功能 |
---|---|
-name<查詢方式> | 按照指定的檔名查詢模式查詢檔案 |
-user<使用者名稱> | 查詢屬於指定使用者名稱所有檔案 |
-size<檔案大小> | 按照指定的檔案大小查詢檔案 |
-
應用例項
案例 1: 按檔名:根據名稱查詢/home 目錄下的 hello.txt 檔案
find /home -name hello.txt
案例 2:按擁有者:查詢/opt 目錄下,使用者名稱稱為 nobody 的檔案
find /opt -user nobody
案例 3:查詢整個 linux 系統下大於 20m 的檔案(+n 大於 -n 小於 n 等於)
find / -size +20m find / -size -20m find / -size 20m
1m = 2024k
find / -size +20480k
案例4: 查詢 / 目錄下,所有 .txt 的檔案
find / -name *.txt
1.6.2 locate指令
locate 指令可以快速定位檔案路徑。locate 指令利用事先建立的系統中所有檔名稱及路徑的 locate 資料庫實現快速定位給定的檔案。Locate 指令無需遍歷整個檔案系統,查詢速度較快。為了保 證查詢結果的準確度,管理員必須定期更新 locate 時刻。
-
基本語法
locate 搜尋檔案 -
特別說明
由於 locate 指令基於資料庫進行查詢,所以第一次執行前,必須使用 updatedb 指令建立 locate 數 據庫。 -
應用例項
案例 1: 請使用 locate 指令快速定位 hello.txt 檔案所在目錄
updatedb #建立locate資料庫 locate hello.txt
1.6.3 grep 指令和 管道符號 |
grep 過濾查詢 , 管道符,“|”,表示將前一個命令的處理結果輸出傳遞給後面的命令處理。
-
基本語法
grep [選項] 查詢內容 原始檔 - 常用選項
選項 | 功能 |
---|---|
-n | 顯示匹配行及行號 |
-i | 忽略字母大小寫 |
-應用例項
案例 1: 請在 hello.txt 檔案中,查詢"yes" 所在行,並且顯示行號
cat hello.txt | grep -n yes #區分大小寫 cat hello.txt | grep -in yes #不區分大小寫
1.7壓縮和解壓類
1.7.1 gzip/gunzip指令
gzip 用於壓縮檔案, gunzip 用於解壓的
-
基本語法
gzip 檔案 (功能描述:壓縮檔案,只能將檔案壓縮為*.gz 檔案)
gunzip 檔案.gz (功能描述:解壓縮檔案命令) -
應用例項
案例 1: gzip 壓縮, 將 /home 下的 hello.txt 檔案進行壓縮
cd /home gzip hello.txt
案例 2: gunzip 壓縮, 將 /home 下的 hello.txt.gz 檔案進行解壓縮
cd /home gunzip hello.txt.gz
細節說明
當我們使用 gzip 對檔案進行壓縮後,不會保留原來的檔案。
1.7.2 zip/unzip指令
zip 用於壓縮檔案, unzip 用於解壓的,這個在專案打包釋出中很有用的
-
基本語法
zip [選項] XXX.zip 將要壓縮的內容(功能描述:壓縮檔案和目錄的命令)
unzip [選項] XXX.zip (功能描述:解壓縮檔案)
-
zip 常用選項
-r :遞迴壓縮,即壓縮目錄
-
unzip 的常用選項
-d <目錄> :指定解壓後文件的存放目錄
-
應用例項
案例 1: 將 /home 下的 所有檔案進行壓縮成 mypackage.zip
zip -r mypackage.zip /home
案例 2: 將 mypackge.zip 解壓到 /opt/tmp 目錄下
unzip -d /opt/tmp/ /home/mypackage.zip
1.7.3 tar 指令
tar 指令 是打包指令 ,最後打包後的檔案是 .tar.gz 的檔案
-
基本語法
tar [選項] XXX.tar.gz 打包的內容 (功能描述:打包目錄,壓縮後的檔案格式.tar.gz) - 選項說明
選項 | 功能 |
---|---|
-c | 產生.tar打包檔案 |
-v | 顯示詳細資訊 |
-f | 指定壓縮後的檔名 |
-z | 打包同時壓縮 |
-x | 解包.tar檔案 |
- 應用例項
案例 1:壓縮多個檔案,將 /home/a1.txt 和 /home/a2.txt 壓縮成a.tar.gz
tar -zcvf a.tar.gz /home/a1.txt /home/a2.txt
案例 2: 將/home 的資料夾 壓縮成 myhome.tar.gz
tar -zcvf myhoe.tar.gz /home/
案例 3: 將a.tar.gz解壓到當前目錄
tar -zxvf a.tar.gz
案例 4: 將 myhome.tar.gz 解壓到 /opt/ 目錄下
tar -zxvf myhome.tar.gz /opt/
指定解壓到的那個目錄,事先要存在才能成功,否則會報錯。