查看目錄及文件
ls 命令列出目錄及文件
ls是英文單詞list的簡寫,其功能為列出目錄的內容,是用戶最常用的命令之一,它類似於DOS下的dir命令。
Linux文件或者目錄名稱最長可以有265個字符,“.”代表當前目錄,“..”代表上一級目錄,以“.”開頭的文件為隱藏文件,需要用 -a 參數才能顯示。
語法格式:ls 選項
選項說明:
-a 表示全部的文件
-l 表示以長格式顯示詳細信息
-h 配合 -l 以人性化的方式顯示文件大小
詳細信息含義如下圖所示:
與DOS下的文件操作類似,在Unix/Linux系統中,也同樣允許使用特殊字符來同時引用多個文件名,這些特殊字符被稱為通配符
通配符 | 含義 |
---|---|
* | 文件代表文件名中所有字符 |
ls te* | 查找以te開頭的文件 |
ls*html | 查找結尾為html的文件 |
? | 代表文件名中任意一個字符 |
ls ?.c | 只找第一個字符任意,后綴為.c的文件 |
ls a.? | 只找只有3個字符,前2字符為a.,最后一個字符任意的文件 |
[] | [”和“]”將字符組括起來,表示可以匹配字符組中的任意一個。“-”用於表示字符范圍。 |
[abc] | 匹配a、b、c中的任意一個 |
[a-f] | 匹配從a到f范圍內的的任意一個字符 |
ls [a- f]* | 找到從a到f范圍內的的任意一個字符開頭的文件 |
ls a-f | 查找文件名為a-f的文件,當“-”處於方括號之外失去通配符的作用 |
\ | 如果要使通配符作為普通字符使用,可以在其前面加上轉義字符。“?”和“*”處於方括號內時不用使用轉義字符就失去通配符的作用。 |
ls *a | 查找文件名為*a的文件 |
Linux 下命令有哪幾種可使用的通配符?分別代表什么含義?
“?”可替代單個字符。
“”可替代任意多個字符。
方括號“[charset]”可替代 charset 集中的任何單個字符,如[a-z],[abABC]
Linux 怎么區分一個文件還是文件夾
ls -F 在顯示名稱的時候會在文件夾后添加“/”,在文件后面加“*”。
切換工作目錄
在使用Unix/Linux的時候,經常需要更換工作目錄。
cd是Change Directory的縮寫,cd命令可以幫助用戶切換工作目錄。
Linux所有的目錄和文件名大小寫敏感
cd后面可跟絕對路徑,也可以跟相對路徑。如果省略目錄,則默認切換到當前用戶的主目錄。
語法格式:
cd 目錄名稱
命令 | 含義 |
---|---|
cd | 切換到當前用戶的主目錄(/home/用戶目錄),用戶登陸的時候,默認的目錄就是用戶的主目錄。 |
cd ~ | 切換到當前用戶的主目錄(/home/用戶目錄) |
cd . | 切換到當前目錄 |
cd .. | 切換到上級目錄 |
cd - | 可進入上次所在的目錄 |
注意:如果路徑是從根路徑開始的,則路徑的前面需要加上 “ / ”,如 “ /mnt ”,通常進入某個目錄里的文件夾,前面不用加 “ / ”。
查看當前工作目錄路徑
pwd 是 Print Working Directory 的縮寫,也就是顯示當前所在工作目錄徑路的命令。
pwd
絕對路徑:
路徑的寫法,由根目錄"/"寫起, 例如:/usr/share
相對路徑:
路徑的寫法,不是由"/"寫起, 例如:/usr/share/doc 要到 /usr/share/man底下時,可以寫成:cd ../man 這就是相對路徑的寫法
創建目錄
mkdir 是make directory的縮寫,表示創建新的目錄
語法格式:
mkdir 選項 目錄名稱
選項說明:
- p 創建多層目錄
需要注意的是新建目錄的名稱不能與當前目錄中已有的目錄或文件同名,並且目錄創建者必須對當前目錄具有寫權限。
mkdir test1
mkdir -p test2/test3/test4/test5
刪除空目錄
rmdir 命令表示刪除空目錄
語法格式:
rmdir 目錄名稱
rmdir test1
刪除非空目錄
rm 命令表示刪除非空目錄
可通過rm刪除文件或目錄。使用rm命令要小心,因為文件刪除后不能恢復。為了防止文件誤刪,可以在rm后使用-i 參數以逐個確認要刪除的文件。
語法格式:
rm -選項 目錄名稱
選項說明:
-i 以進行交互式方式執行
-f 忽略不存在的文件,不會出現警告信息
-r 遞歸刪除
rm -rf test1
rm -r test1
創建文件
touch 命令表示創建一個新的空白文件
語法格式:
touch 文件名稱
touch test.txt
touch test1.txt test2.txt
touch t1.txt t2.sql t3.doc
說明:
則會在當前路徑下創建空文件
Linux系統中沒有嚴格的后綴(格式),所以創建文件時可以命名為任意的文件名
編輯文件
vi是“Visual interface”的簡稱,它在Linux上的地位就仿佛Edit程序在DOS上一樣。它可以執行輸出、刪除、查找、替換、塊操作等眾多文本操作,而且用戶可以根據自己的需要對其進行定制。Vi不是一個排版程序,它不象Word 或WPS那樣可以對字體、格式、段落等其他屬性進行編排,它只是一個文本編輯程序。 vi沒有菜單,只有命令, 且命令繁多
語法格式:
vi 文件名稱
vi test.txt
說明:基本上vi/vim共分為三種模式,分別是命令模式(Command mode),輸入模式(Insert mode)和底線命令模式(Last line mode)
說明:按下i進入輸入模式,開始編輯文字
在輸入模式中,你可以發現在左下角狀態欄中會出現 -INSERT- 的字樣,那就是可以輸入任意字符的提示。
按下 ESC 按鈕回到命令模式
在命令模式中輸入 : 進入底線命令模式
在底線命令模式輸入 wq 保存離開!
命令行模式
任何時候,不管用戶處於何種模式,只要按一下ESC鍵,即可使Vi進入命令模式;我們在shell環境(提示符為$)下輸入啟動Vi命令,進入編輯器時,也是處於該模式下。在該模式下,用戶可以輸入各種合法的Vi命令,用於管理自己的文檔。此時從鍵盤上輸入的任何字符都被當做編輯命令來解釋,若輸入的字符是合法的Vi命令,則Vi在接受用戶命令之后完成相應的動作。但需注意的是,所輸入的命令並不在屏幕上顯示出來。若輸入的字符不是Vi的合法命令,Vi會響鈴報警。
文本輸入模式
在命令模式下輸入插入命令i、附加命令a 、打開命令o、修改命令c、取代命令r或替換命令s都可以進入文本輸入模式。在該模式下,用戶輸入的任何字符都被Vi當做文件內容保存起來,並將其顯示在屏幕上。在文本輸入過程中, 若想回到命令模式下,按鍵ESC即可。
末行模式
末行模式也稱ex轉義模式。在命令模式下,用戶按“:”鍵即可進入末行模式下,此時Vi會在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個“:”作為末行模式的提示符,等待用戶輸入命令。多數文件管理命令都是在此模式下執行的(如把編輯緩沖區的內容寫到文件中等)。末行命令執行完后,Vi自動回到命令模式。例如:
:sp newfile
則分出一個窗口編輯newfile文件。如果要從命令模式轉換到編輯模式,可以鍵入命令a或者i;如果需要從文本模式返回,則按Esc鍵即可。在命令模式下輸入“:”即可切換到末行模式,然后輸入命令。
vim基礎操作
vim是從 vi 發展出來的一個文本編輯器 。代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富進入插入模式:
i: 插入光標前一個字符
I: 插入行首
a: 插入光標后一個字符
A: 插入行未
o: 向下新開一行,插入行首
O: 向上新開一行,插入行首
進入命令模式:
ESC:從插入模式或末行模式進入命令模式
移動光標:
h: 左移
j: 下移
k: 上移
l: 右移
M: 光標移動到中間行
L: 光標移動到屏幕最后一行行首
G: 移動到指定行,行號 -G
w: 向后一次移動一個字
b: 向前一次移動一個字
{: 按段移動,上移
}: 按段移動,下移
Ctr-d: 向下翻半屏
Ctr-u: 向上翻半屏
Ctr-f: 向下翻一屏
Ctr-b: 向上翻一屏
gg: 光標移動文件開頭
G: 光標移動到文件末尾
刪除命令:
x: 刪除光標后一個字符,相當於 Del
X: 刪除光標前一個字符,相當於 Backspace
dd: 刪除光標所在行,n dd 刪除指定的行數 D: 刪除光標后本行所有內容,包含光標所在字符
d0: 刪除光標前本行所有內容,不包含光標所在字符
dw: 刪除光標開始位置的字,包含光標所在字符
撤銷命令:
u: 一步一步撤銷
Ctr-r: 反撤銷
重復命令:
.: 重復上一次操作的命令
文本行移動:
>>: 文本行右移
<<: 文本行左移
復制粘貼:
yy: 復制當前行,n yy 復制 n 行
p: 在光標所在位置向下新開辟一行,粘貼
可視模式:
v: 按字符移動,選中文本
V: 按行移動,選中文本可視模式可以配合 d, y, >>, <<實現對文本塊的刪除,復制,左右移動
替換操作:
r: 替換當前字符
R: 替換當前行光標后的字符,直到按esc
查找命令:
/: str查找
n: 下一個
N:上一個
查看或者合並文件內容
cat 命令表示查看或者合並文件內容
語法格式:
cat 文件名稱
cat 文件名稱1 文件名稱2
cat day02.py
cat tedu/day01.sql
日志以什么格式,存放在哪里?
日志以文本可以存儲在“/var/log/”目錄下后綴名為.log。
輸出重定向命令 >
Linux允許將命令執行結果重定向到一個文件,本應顯示在終端上的內容保存到指定文件中
ls > test.txt ( test.txt 如果不存在,則創建,存在則覆蓋其內容 )
注意: >輸出重定向會覆蓋原來的內容,>>輸出重定向則會追加到文件的尾部。
cal > day02.txt
cat day02.txt
date >> day02.txt
cal 12 2016 >> day02.txt
cat day02.txt
Linux 重定向命令有哪些?有什么區別
重定向> Linux 允許將命令執行結果重定向到一個文件,本應顯示在終端上的內容保存到指定文件中。如:ls > test.txt ( test.txt 如果不存在,則創建,存在則覆蓋其內容 )。
重定向>> >>這個是將輸出內容追加到目標文件中。如果文件不存在,就創建文件;如果文件存在,則將新的 內容追加到那個文件的末尾,該文件中的原有內容不受影響。
分屏顯示
more
查看內容時,在信息過長無法在一屏上顯示時,會出現快速滾屏,使得用戶無法看清文件的內容,此時可以使用
more命令,每次只顯示一頁,按下空格鍵可以顯示下一頁,按下q鍵退出顯示,按下h鍵可以獲取幫助
語法格式:
more 文件名
怎樣一頁一頁地查看一個大文件的內容呢?
通過管道將命令”cat file_name.txt”和’more’連接在一起可以實現這個需要.
[root@localhost ~]# cat file_name.txt | more
管道符"|"
管道:一個命令的輸出可以通過管道做為另一個命令的輸入
道我們可以理解現實生活中的管子,管子的一頭塞東西進去,另一頭取出來,這里“ | ”的左右分為兩端,左端塞東西(寫),右端取東西(讀)。
"|"是管道命令操作符,簡稱管道符。可以通過管道符“|”將兩個命令連接,管道符左邊命令的輸出就會作為管道符右邊命令的輸入
ls -l | more
touch test01.txt
date > test01.txt | cat test01.txt
ifconfig | head -2
說明:
cat 表示從第一行開始顯示文件內容
tac 表示從最后一行開始顯示文件內容
nl 表示顯示時輸出行號
more 表示一頁一頁的顯示文件內容
less 表示more類似,可以往前翻頁!
head 表示看開頭幾行
tail 表示看結尾幾行
文本搜索
Linux系統中grep命令是一種強大的文本搜索工具,grep允許對文本文件進行模式查找。如果找到匹配模式, grep打印包含模式的所有行。
grep表示用於過濾/搜索特定字符,常配合管道命令使用
語法格式:
grep [-選項] ‘搜索內容串’文件名
在grep命令中輸入字符串參數時,最好引號或雙引號括起來。
常用選項說明:
選項 | 含義 |
---|---|
-v | 顯示不包含匹配文本的所有行(相當於求反) |
-n | 顯示匹配行及行號 |
-i | 忽略大小寫 |
grep搜索內容串可以是正則表達式。
正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯。
grep常用正則表達式:
參數 | 含義 |
---|---|
^a | 行首,搜尋以 m 開頭的行;grep -n '^a' 1.txt |
ke$ | 行尾,搜尋以 ke 結束的行;grep -n 'ke$' 1.txt |
[Ss]igna[Ll] | 匹配 [] 里中一系列字符中的一個;搜尋匹配單詞signal、signaL、Signal、SignaL的行;grep-n '[Ss]igna[Ll]' 1.txt |
. | (點)匹配一個非換行符的字符;匹配 e 和 e 之間有任意一個字符,可以匹配 eee,eae, eve,但是不匹配 ee,eaae;grep -n 'e.e' 1.txt |
grep 'a' 1.txt
ls -l | grep test
ps -ef | grep ssh
netstat -ant | grep 8888
netstat -anp | grep ssh
建立鏈接文件
Linux鏈接文件類似於Windows下的快捷方式。鏈接文件分為軟鏈接和硬鏈接。
軟鏈接:軟鏈接不占用磁盤空間,源文件刪除則軟鏈接失效。
硬鏈接:硬鏈接只能鏈接普通文件,不能鏈接目錄。使用格式:
硬鏈接
ln 源文件 鏈接文件
軟鏈接軟連接類似 Windows 的快捷方式,當刪除源文件時,那么軟鏈接也失效了。硬鏈接可以理解為源 文件的一個別名,多個別名所代表的是同一個文件。當 rm 一個文件的時候,那么此文件的硬鏈接數減 1,當硬鏈接數為 0 的時候,文件被刪除
ln -s 源文件 鏈接文件
如果 沒有-s 選項代表建立一個硬鏈接文件,兩個文件占用相同大小的硬盤空間,即使刪除了源文件,鏈接文件還是存在,所以-s選項是更常見的形式。
注意:如果軟鏈接文件和源文件不在同一個目錄,源文件要使用絕對路徑,不能使用相對路徑。
軟連接和硬鏈接的區別
軟連接類似 Windows 的快捷方式,當刪除源文件時,那么軟鏈接也失效了。硬鏈接可以理解為源 文件的一個別名,多個別名所代表的是同一個文件。當 rm 一個文件的時候,那么此文件的硬鏈接數減 1,當硬鏈接數為 0 的時候,文件被刪除
統計文件
wc 命令表示統計文件中的字節數、字符數、行數等
語法格式:
wc -選項 文件名稱
選擇說明:
-c 表示文件的字節數
-l 表示文件的行數
-w 表示統計字數
wc day01.txt
wc -l day01.txt
wc -w day01.txt
wc -c day01.txt day02.txt
用什么命令對一個文件的內容進行統計?(行號、單詞數、字節數)?
wc 命令- c 統計字節數- l 統計行數- w 統計字數。
拷貝文件
cp命令的功能是將給出的文件或目錄復制到另一個文件或目錄中,相當於DOS下的copy命令。
語法格式:
cp -選項 源文件路徑 新文件路徑
選項說明:
選項 | 含義 |
---|---|
-a | 該選項通常在復制目錄時使用,它保留鏈接、文件屬性,並遞歸地復制目錄,簡單而言,保持文件原有屬性。 |
-f | 覆蓋已經存在的目標文件而不提示 |
-i | 交互式復制,在覆蓋目標文件之前將給出提示要求用戶確認 |
-r | 若給出的源文件是目錄文件,則cp將遞歸復制該目錄下的所有子目錄和文件,目標文件必須為一個目錄名。 |
-v | 顯示拷貝進度 |
cp -r test1 /root/tedu
cp -r /root/test1 /root/test3
移動文件
用戶可以使用mv命令來移動文件或目錄,也可以給文件或目錄重命名。
語法格式:
mv 源文件路徑 新文件路徑
常用選項說明:
選項 | 含義 |
---|---|
-f | 禁止交互式操作,如有覆蓋也不會給出提示 |
-i | 確認交互方式操作,如果mv操作將導致對已存在的目標文件的覆蓋,系統會詢問是否重寫,要求用戶回答以避免誤覆蓋文件 |
-v | 顯示移動進度 |
---- |
# mv ttt/day02.txt kkk
說明:使用mv也可以重命名
mv day01.txt /root/tedu/test01.doc
練習:在root(~)目錄下,進行如下操作:
(a)創建1個目錄,名稱為tsd2002
cd
mkdir tsd2002
ls
(b)在tsd2002目錄中,在創建2個目錄,分別是qa,dev
cd tsd2002
mkdir qa dev
ls
(c)在tsd2002目錄中,創建多層目錄,test1/test2/test3
cd tsd2002
mkdir -p test1/test2/test3
ls
(d)在qa目錄下,新建文件qa01.txt、qa02.txt
cd qa
touch qa01.txt qa02.txt
ls
(e)編輯qa01.txt文件,將i am qa寫入文件中,並退出
vi qa01.txt
i
i am qa
esc
:
wq
cat qa01.txt
(f)將2020年日歷,追加到qa02.txt文件中
cal 2020 >> qa02.txt
cat qa02.txt
(g)將qa02.txt拷貝到dev目錄下
cd qa
cp qa02.txt ../dev
cd ../dev
ls
cd qa
cp /root/tsd2002/qa/qa01.txt ../dev
ls
(h)在dev目錄下,修改qa02.txt文件名,修改為dev02.txt
cd ../dev
mv qa02.txt dev02.txt
ls