文章目錄
- Linux系統的目錄結構
- Linux路徑的描述方式
- Linux命令入門
- **什么是命令、命令行**
- Linux命令基礎格式
- ls命令入門
- HOME目錄和工作目錄
- ls命令的參數和選項
- ls命令的 -a選項
- ls命令的 -l選項
- ls命令選項的組合使用
- ls選項和參數的組合使用
- ls命令的 -h選項
- 目錄切換相關命令(cd/pwd)
- cd切換工作目錄
- pwd查看當前工作目錄
- 相對路徑和絕對路徑
- 特殊路徑符
- 創建目錄命令(mkdir)
- mkdir命令
- mkdir -p 選項
- 文件操作命令第一部分(touch、cat、more)
- touch創建文件
- cat命令 查看文件內容
- more命令查看文件內容
- 文件操作命令第二部分(cp、mv、rm)
- cp命令復制文件文件夾
- mv移動文件或文件夾
- rm刪除文件、文件夾
- rm刪除文件、文件夾 - 通配符
- 查找命令(which、find)
- which命令
- find命令 - 按文件名查找文件
- find命令 - 按文件大小查找文件
- grep、wc和管道符
- grep命令
- wc命令做數量統計
- 管道符
- echo、tail和重定向符
- echo命令
- 反引號`
- 重定向符
- tail命令
- vi編輯器
- vi\vim編輯器介紹
- vi\vim編輯器的三種工作模式
- 命令模式
- vi編輯器的快速體驗
- 命令模式快捷鍵
- 底線命令模式
Linux系統的目錄結構
Linux的目錄結構是一個樹形結構
Windows系統可以擁有多個盤符,如C盤、D盤、E盤
Linux沒有盤符這個概念,只有一個根目錄/,所有文件都在它下面
Linux路徑的描述方式
-
在Linux系統中,路徑之間的層級關系,使用 : / 來表示
-
在Windows系統中,路徑之間的層級關系,使用 : \ 來表示
Linux命令入門
什么是命令、命令行
學習Linux、本質上是學習在命令行下熟練使用Linux的各類命令。
- 命令行:即Linux終端(Terminal),是一種命令提示符頁面。以純“字符”的形式操作系統,可以使用各種字符化命令對系統發出操作命令。
- 命令:即Linux程序。一個命令就是一個Linux的程序。命令沒有圖形化頁面,可以在命令行(終端中)提供字符化的反饋。
Linux命令基礎格式
無論是什么命令,用于什么用途,在Linux中,命令有其通用的格式:
- command:命令本身
- -options:[可選,非必填]命令的一些選項,可以通過選項控制命令的行為細節
- parameter:[可選,非必填]命令的參數,多數用于命令的指向目標等
語法中的**[]**,表示可選的意思
示例:
- ls -l/home/itheima,ls是命令本身,-l是選項,/home/itheima是參數**(意思是以列表的形式,顯示/home/itheima目錄內的內容)**
- cp -r test1 test2,cp是命令本身,-r是選項,test1和test2是參數**(意思是復制文件夾test1成為test2)**
ls命令入門
ls命令的作用是列出目錄下的內容,語法細節如下:
- -a -l -h是可選的選項
- LInux路徑是此命令可選的參數
當不使用選項和參數,直接使用ls命令本體,表示:以平鋪形式,列出當前工作目錄下的內容
HOME目錄和工作目錄
直接輸入ls命令,表示列出當前工作目錄下的內容,當前工作目錄是?
LInux系統的命令行終端,在啟動的時候,默認會加載:
- 當前登錄用戶的HOME目錄作為當前工作目錄,所以ls命令列出的是HOME目錄的內容
- HOME目錄:每個LInux操作用戶在LInux系統的個人賬戶目錄,路徑在:/home/用戶名
- 如圖中的LInux用戶是itheima,其HOME目錄是:/home/itheima
- Windows系統和LInux系統,均設有用戶的HOME目錄,
ls命令的參數和選項
剛剛展示了,直接使用ls命令,并未使用選項和參數。
那么ls的選項和參數具體有什么作用呢?首先我們先來看參數。
- 當ls不使用參數,表示列出:當前工作目錄的內容,即用戶的HOME目錄
- 當使用參數,ls命令的參數表示:指定一個Linux路徑,列出指定路徑的內容
如:
通過ls / 列出了根目錄的內容,我們可以打開VMware,在Linux的圖形化中對照一下
對照一下命令行的結果和圖形化查看的結果
ls命令的 -a選項
- -a選項,表示:all的意思,即列出全部文件(包含隱藏的文件/文件夾)
可以看到,ls -a 對比ls列出的內容更多了。
- 圖中以 . 開頭的,表示是Linux系統的隱藏文件/文件夾(只要以 . 開頭,就能自動隱藏)
- 只有通過-a選項,才能看到這些隱藏的文件/文件夾
ls命令的 -l選項
- -l 選項,表示:以列表(豎向排列)的形式展示內容,并展示更多信息
-l選項其實和圖形化中,文件夾以列表形式排列是一個意思
ls命令選項的組合使用
語法中的選項是可以組合使用的,比如學習的 -a和 -l可以組合使用。
寫法:
- ls -l -a
- ls -la
- ls -al
上述三種寫法,都是一樣的,表示同時應用 -l和 -a的功能
ls選項和參數的組合使用
除了選項本身可以組合以外,選項和參數也可以一起使用。
ls命令的 -h選項
- -h表示以易于閱讀的形式,列出文件大小,如K、M、G
- -h選項必須要搭配 -l一起使用
目錄切換相關命令(cd/pwd)
cd切換工作目錄
當Linux終端(命令行)打開的時候,會默認以用戶的HOME目錄作為當前的工作目錄。
我們可以通過cd命令,更改當前所在的工作目錄。
cd命令來自英文:Change Directory
語法:
- cd命令無需選項,只有參數,表示要切換到哪個目錄下
- cd命令直接執行,不寫參數,表示回到用戶的HOME目錄
pwd查看當前工作目錄
通過ls來驗證當前的工作目錄,其實是不恰當的。
我們可以通過pwd命令,來查看當前所在的工作目錄。
pwd命令來自:Print Work Directory
語法:pwd
- pwd命令,無選項,無參數,直接輸入pwd即可
相對路徑和絕對路徑
如圖,通過pwd得知當前所在是HOME目錄:/home/itheima
現在想要通過cd命令,切換工作目錄到Desktop文件夾中去。那么,cd命令的參數(Linux路徑)如何寫呢?
- cd /home/itheima/Desktop 絕對路徑寫法
- cd Desktop 相對路徑寫法
上述兩種寫法,都可以正確的切換目錄到指定的Desktop中。
絕對路徑:以根目錄為起點,描述路徑的一種寫法,路徑描述以/開頭
相對路徑:以當前目錄為起點,描述路徑的一種寫法,路徑描述無需以/開頭
特殊路徑符
如圖,當前工作目錄處于:/home/itheima/Desktop
現在想要,向上回退一級,切換目錄到/home/itheima中,如何做?
- 可以直接通過cd,即可回到HOME目錄
- 也可以通過特殊路徑符來完成
特殊路徑符:
- . 表示當前目錄,比如 cd ./Desktop 表示切換到當前目錄下的Desktop目錄內,和cd Desktop效果一致
- … 表示上一級目錄,比如: cd … 即可切換到上一級目錄, cd …/… 切換到上二級的目錄
- ~ 表示HOME目錄,比如:cd ~ 即可切換到HOME目錄或cd ~/Desktop,切換到HOME內的Desktop目錄
創建目錄命令(mkdir)
mkdir命令
通過mkdir命令可以創建新的目錄(文件夾)
mkdir來自英文:Make Directory
語法:
- 參數必填,表示Linux路徑,即要創建的文件夾的路徑,相對路徑或絕對路徑均可
- -p選項可選,表示自動創建不存在的父目錄,適用于創建連續多層級的目錄
mkdir -p 選項
如果想要一次性創建多個層級的目錄,如下圖
會報錯,因為上級目錄itcast和good并不存在,所以無法創建666目錄。
可以通過 -p選項,將一整個鏈條都創建完成。
注意:創建文件夾需要修改權限,請確保操作均在HOME目錄內,不要在HOME外操作,會涉及到權限問題,HOME外無法成功,后續會講解權限管控的知識。
文件操作命令第一部分(touch、cat、more)
touch創建文件
可以通過touch命令創建文件
語法:
- touch命令無選項,參數必填,表示要創建的文件路徑,相對、絕對、特殊路徑符均可以使用
cat命令 查看文件內容
有了文件后,我們可以通過cat命令查看文件的內容。不過,現在我們還未學習vi編輯器,無法向文件內編輯內容,所以,暫時,我們先通過圖形化頁面,手動向文件內添加內容,以測試cat命令。
準備好文件內容后,可以通過cat查看內容。
語法:
- cat同樣沒有選項,只有必填參數,參數表示:被查看的文件路徑,相對、絕對、特殊路徑符都可以使用。
more命令查看文件內容
more命令同樣可以查看文件內容,同cat不同的是:
- cat是直接將內容全部顯示出來
- more支持翻頁,如果文件內容過多,可以一頁頁的展示
語法:
- 同樣沒有選項,只有必填參數,參數表示:被查看的文件路徑,相對、絕對、特殊路徑符都可以使用。
Linux系統內置有一個文件,路徑為: /etc/services,可以使用more命令查看
more /etc/services
- 在查看的過程中,通過空格翻頁
- 通過q退出查看
文件操作命令第二部分(cp、mv、rm)
cp命令復制文件文件夾
cp命令可以用于復制文件/文件夾,cp命令來自英文單詞:copy
語法:
- -r 選項,可選,用于復制文件夾使用,表示遞歸
- 參數1,Linux路徑,表示被復制的文件或文件夾
- 參數2,Linux路徑,表示要復制去的地方
mv移動文件或文件夾
mv命令可以用于移動文件\文件夾,mv命令來自英文單詞:move
語法:
- 參數1,Linux路徑,表示被移動的文件或文件夾
- 參數2,Linux路徑,表示要移動去的地方,如果目標不存在,則進行改名,確保目標存在
rm刪除文件、文件夾
rm命令可用于刪除文件、文件夾
rm命令來自英文單詞:remove
語法:
-
同cp命令一樣,-r選項用于刪除文件夾
-
-f 表示force,強制刪除(不會彈出提示確認信息)
- 普通用戶刪除內容不會彈出提示,只有root管理員用戶刪除內容會有提示
- 所以一般普通用戶用不到 -f 選項
-
參數1、參數2、……、參數N表示要刪除的文件或文件夾路徑,按照空格展開
-
刪除文件
-
刪除多個文件
- 刪除文件夾,如下圖,必須使用 -r 選項才可以
- 演示強制刪除,-f 選項
- 可以通過su -root,并輸入密碼123456(和普通用戶默認一樣)臨時切換到root用戶體驗
- 通過輸入exit命令,退回普通用戶。(臨時用root,用完記得退出,不要一直用,關于root后面會講)
注意:rm是一個危險的命令,特別是在處于root(超級管理員)用戶的時候。請謹慎使用。
如下命令,千萬不要在root管理員用戶下執行:
rm -rf/
rm -rf/*(從根目錄開始強制刪除文件夾)
效果等同于在Windows上執行C盤格式化。
在虛擬機上面執行上述命令后需要恢復快照或者重新裝個虛擬機。
rm刪除文件、文件夾 - 通配符
rm命令支持通配符 *,用來做模糊匹配
- 符號 * 表示通配符,即匹配任意內容(包含空),示例:
- test*,表示匹配任何以test開頭的內容
- *test,表示匹配任何以test結尾的內容
- *test *,表示匹配任何包含test的內容
演示:
- 刪除所有以test開頭的文件或文件夾
查找命令(which、find)
which命令
我們在前面學習的Linux命令,其實它們的本體就是一個個的二進制可執行程序。
和Windows系統中的 .exe文件,是一個意思。
我們可以通過which命令,查看所使用的一系列命令的程序文件存放在哪里
語法:
find命令 - 按文件名查找文件
在圖形化中,我們可以方便的通過系統提供的搜索功能,搜索指定的文件。
同樣,在Linux系統中,我們可以通過find命令去搜索指定的文件。
語法:
基于通配符的含義,可以結合find命令做文件的模糊查詢。
- 查找所有以test開頭的文件:find / -name “test*”
- 查找所有以test結尾的文件:find / -name “*test”
- 查找所有包含test的文件:find / -name “*test *”
find命令 - 按文件大小查找文件
語法:
- +、- 表示大于和小于
- n表示大小數字
- KMG表示大小單位,k(小寫字母)表示kb,M表示MB,G表示GB
示例:
- 查找小于10KB的文件:find / -size -10k
- 查找大于100MB的文件:find / -size +100M
- 查找大于1GB的文件:find / -size +1G
grep、wc和管道符
grep命令
可以通過grep命令,從文件中通過關鍵字過濾文件行。
語法:
- 選項 -n,可選,表示在結果中顯示匹配的行的行號。
- 參數,關鍵字,必填,表示過濾的關鍵字,帶有空格或其它特殊符號,建議使用“ ”將關鍵字包圍起來。
- 參數,文件路徑,必填,表示要過濾內容的文件路徑,可作為內容輸入端口。
現在,通過touch命令在HOME目錄創建itheima.txt,并通過圖形化頁面編輯并保存如下內容:
wc命令做數量統計
可以通過wc命令統計文件的行數、單詞數量等
語法:
- 選項,-c ,統計bytes數量
- 選項,-m,統計字符數量
- 選項,-l ,統計行數
- 選項,-w,統計單詞數量
- 參數,文件路徑,被統計的文件,可作為內容輸入端口
管道符
學習了grep命令后,我們再來學習一個新的特殊符號,管道符:|
管道符的含義是:將管道符左邊命令的結果,作為右邊命令的輸入
echo、tail和重定向符
echo命令
可以使用echo命令在命令行內輸出指定內容
語法:
- 無需選項,只有一個參數,表示要輸出的內容,復雜內容可以用“ ”包圍
演示:
- 在終端上顯示:Hello Linux
- 帶有空格或\等特殊符號,建議使用雙引號包圍。因為不包圍的話,空格后很容易被識別為參數2,盡管echo不受影響,但要養成習慣。
反引號`
如下命令:echo pwd
本意是想,輸出當前的工作路徑,但是pwd被作為普通字符輸出了。
我們可以通過將命令用反引號(通常也稱之為飄號)`將其包圍
被`包圍的內容,會被作為命令執行,而非普通字符。
重定向符
我們再來學習兩個特殊符號,重定向符:>和>>
① > ,將左側命令的結果,覆蓋寫入到符號右側指定的文件中
② >> ,將左側命令的結果,追加寫入到符號右側指定的文件中
演示:
tail命令
使用tail命令,可以查看文件尾部內容,跟蹤文件的最新更改,語法如下:
- 參數,Linux路徑,表示被跟蹤的文件路徑
- 選項,-f,表示持續跟蹤
- 選項,-num,表示查看尾部多少行,不填默認10行
vi編輯器
vi\vim編輯器介紹
vi\vim是visual interface的簡稱,是Linux中最經典的文本編輯器。同圖形化界面中的文本編輯器一樣,vi是命令行下對文本文件進行編輯的絕佳選擇。
vim是vi的加強版本,兼容vi的所有指令,不僅能編輯文本,而且還具有shell程序編輯的功能,可以不同顏色的字體來辨別語法的正確性,極大方便了程序的設計和編輯性。
vi\vim編輯器的三種工作模式
1、命令模式(Command mode):命令模式下,所敲的按鍵編輯器都理解為命令,以命令驅動執行不同的功能。此模型下,不能自由進行文本編輯。
2、輸入模式(Insert mode):也就是所謂的編輯模式、插入模式。此模式下,可以對文件內容進行自由編輯。
3、底線命令模式(Last line mode):以 : 開始,通常用于文件的保存、退出。
命令模式
如果需要通過vi/vim編輯器編輯文件,請通過如下命令:
vim兼容全部的vi功能,后續全部使用vim命令。
- 如果文件路徑表示的文件不存在,那么此命令會用于編輯新文件
- 如果文件路徑表示的文件存在,那么此命令會用于編輯已有文件
vi編輯器的快速體驗
通過vi/vim命令編輯文件,會打開一個新的窗口,此時這個窗口就是:命令模式窗口。命令模式是vi編輯器的入口和出口。
- 進入vi編輯器會進入命令模式
- 通過命令模式輸入鍵盤指令,可以進入輸入模式
- 輸入模式需要退回到命令模式,然后通過命令可以進入底線命令模式
快速體驗:
1、使用vim hello.txt,編輯一個新文件,執行后進入的是命令模式。
2、在命令模式內,按鍵盤i,進入輸入模式。
3、在輸入模式內輸入:itheima and itcast。
4、輸入完成后,按esc回退回命令模式。
5、在命令模式內,按鍵盤 : ,進入底線命令模式。
6、在底線命令內輸入:wq,保存文件并退出vi編輯器。
命令模式快捷鍵
在命令模式下的一些常見快捷鍵:
模式 | 命令 | 描述 |
---|---|---|
命令模式 | i | 在當前光標位置進入輸入模式 |
命令模式 | a | 在當前光標位置之后進入輸入模式 |
命令模式 | I | 在當前行的開頭,進入輸入模式 |
命令模式 | A | 在當前行的結尾,進入輸入模式 |
命令模式 | o | 在當前光標下一行進入輸入模式 |
命令模式 | O | 在當前光標上一行進入輸入模式 |
輸入模式 | esc | 任何情況下輸入esc都能回到命令模式 |
底線命令模式
編輯模式沒有什么特殊的,進入編輯模式后,任何快捷鍵都沒有作用,就是正常輸入文本而已。
唯一需要記住的就是:通過esc,可以退回到命令模式中。
在命令模式內,輸入 : ,即可進入到底線命令模式,支持如下命令: