更新時(shí)間:2020-03-12 來源:黑馬程序員 瀏覽量:
學(xué)習(xí)目標(biāo)
1、了解文件命名規(guī)則和工作中的建議命名規(guī)則
2、會(huì)創(chuàng)建和刪除目錄mkdir/rmdir
3、會(huì)創(chuàng)建和刪除文件touch/rm
4、了解復(fù)制cp和移動(dòng)mv的區(qū)別會(huì)使用tar命令進(jìn)行壓縮和解壓縮
5、掌握VIM的保存退出wq和不保存強(qiáng)制退出q!掌握VIM的快捷鍵yy,dd,gg,G,u
6、會(huì)使用tail命令查看文件
7、會(huì)使用find命令按文件名稱查找文件
本文目錄
除了字符“/”之外,所有的字符都可以使用,但是要注意,在目錄名或文件名中,不建議使用某些特殊字符,例如, <、>、?、* 等,盡量避免使用。
如果一個(gè)文件名中包含了特殊字符,例如空格,那么在訪問這個(gè)文件時(shí)就需要使用引號(hào)將文件名括起來。
建議文件命名規(guī)則:
由于linux嚴(yán)格區(qū)分大小寫,所以盡量都用小寫字母
如果必須對(duì)文件名進(jìn)行分割,建議使用"_",例如:itheima_bj_2020.log
a.txt
001.txt
002.txt
tongxunlu.txt
tongxunlu_bj_caiwu.txt
目錄名或文件名的長(zhǎng)度不能超過 255 個(gè)字符
Linux目錄名或文件名是區(qū)分大小寫的。如 itheima、ITheima、yunwei 和 Yunwei ,是互不相同的目錄名或文件名。
不要使用字符大小寫來區(qū)分不同的文件或目錄。
建議文件名一律使用小寫字母
Linux文件的擴(kuò)展名對(duì) Linux 操作系統(tǒng)沒有特殊的含義,Linux 系統(tǒng)并不以文件的擴(kuò)展名開分區(qū)文件類型。例如,itheima.exe 只是一個(gè)文件,其擴(kuò)展名 .exe 并不代表此文件就一定是可執(zhí)行的。
在Linux系統(tǒng)中,文件擴(kuò)展名的用途為了使運(yùn)維人員更好的區(qū)分不同的文件類型。
在日常工作中,我們經(jīng)常需要對(duì)Linux的文件或目錄進(jìn)行操作,常見操作包括新建,刪除,更改,查看,復(fù)制,移動(dòng)等。
在實(shí)際應(yīng)用中,與目錄相關(guān)的操作主要有兩個(gè):創(chuàng)建目錄與刪除目錄
① mkdir創(chuàng)建目錄
命令: mkdir (make directory,創(chuàng)建目錄)
作用:創(chuàng)建目錄
語法:#mkdir [參數(shù)選項(xiàng)] 路徑(包含目錄名)
常見參數(shù):
-p:遞歸創(chuàng)建所有目錄,如果想創(chuàng)建多層不存在的路徑,可以使用-p參數(shù)實(shí)現(xiàn)。-p表示parents,父級(jí)的意思
用法一:mkdir 不加參數(shù),路徑(需要包含目錄名稱)
示例代碼:
#mkdir /usr/local/nginx
含義:在/usr/local目錄下,創(chuàng)建一個(gè)文件夾名為nginx
特別注意:mkdir命令默認(rèn)不能隔級(jí)創(chuàng)建目錄,必須要求要?jiǎng)?chuàng)建的目錄所在的目錄一定要存在
用法二:mkdir 加-p參數(shù),路徑(需要包含目錄名稱)
用法三:mkdir 路徑1 路徑2 路徑3
示例代碼:
#mkdir /usr/local/a /usr/local/b /usr/local/c
含義:在/usr/local目錄下,同時(shí)創(chuàng)建a,b,c文件夾
mkdir命令總結(jié)
問題:一臺(tái)剛剛安裝好的Centos系統(tǒng),小明想建立/xiaoming/zuoye/shuxue,應(yīng)該使用mkdir還是mkdir -p?
答案A mkdir
答案B mkdir -p
② 刪除目錄
命令: rmdir(remove directory縮寫)
作用:刪除空目錄
語法:#rmdir [參數(shù)選項(xiàng)] 路徑(包含目錄名)
常見參數(shù):
-p:遞歸刪除所有空目錄
用法一:rmdir 不加參數(shù),路徑(需要包含目錄名稱)
示例代碼:
#rmdir /usr/local/nginx
用法二:rmdir 路徑1 路徑2 路徑3
示例代碼:
#rmdir /usr/local/a /usr/local/b /usr/local/c
含義:同時(shí)刪除a,b,c三個(gè)空目錄
用法三:rmdir -p 路徑(需要包含目錄名稱)
示例代碼:
#rmdir -p itheima/tomcat
含義:遞歸刪除目錄,刪除tomcat和itheima目錄
首先刪除子目錄,刪除成功后,刪除上級(jí)目錄,直至結(jié)束。
rmdir命令總結(jié)
在實(shí)際應(yīng)用中,與文件相關(guān)的操作主要有兩個(gè):創(chuàng)建文件與刪除文件
① 創(chuàng)建文件
命令:touch
作用:創(chuàng)建文件
語法:# touch 文件路徑 [文件路徑2 文件路徑3 …]
用法一:touch 路徑(包含文件名)
示例代碼:
#touch readme.txt
含義:在當(dāng)前路徑下創(chuàng)建一個(gè)文件 readme.txt
用法二:touch 路徑1(包含文件名) 路徑2(包含文件名) 路徑3(包含文件名)
示例代碼:
#touch 1.txt 2.txt 3.txt
含義:在當(dāng)前路徑下創(chuàng)建1.txt 2.txt 3.txt三個(gè)文件
用法三(了解):touch 路徑1(包含文件名){1..n}
示例代碼:
#touch {1..5}.txt
含義:在當(dāng)前路徑下創(chuàng)建1.txt 2.txt 3.txt 4.txt 5.txt三個(gè)文件
其中
1表示開始的數(shù)字
..表示連續(xù)的
5表示結(jié)束的數(shù)字
touch命令總結(jié)
#touch readme.txt 在當(dāng)前目錄下創(chuàng)建文件
#touch /readme.txt 在根目錄下創(chuàng)建文件
② 刪除文件
命令:rm(remove縮寫)
作用:刪除文件或文件夾
語法:rm [參數(shù)選項(xiàng)] 文件或文件夾
選項(xiàng):-r :遞歸刪除,主要用于刪除目錄,可刪除指定目錄及包含的所有內(nèi)容,包括所有子目錄和文件-f :強(qiáng)制刪除,不提示任何信息。操作前一定要慎重!!!
用法一:rm 路徑(包含文件名)
示例代碼:
#rm readme.txt
含義:刪除當(dāng)前路徑下文件 readme.txt
提示信息:remove regular empty file 'readme.txt' ?
用法二:rm -r 路徑(通常為目錄名)
示例代碼:
#rm -r itheima
含義:刪除當(dāng)前文件夾下的itheima文件夾及其包含的所有子文件夾/文件
提示信息:descend into directory 'itheima/'?
含義:是否進(jìn)入itheima目錄?
rm命令總結(jié)
#rm readme.txt 帶確認(rèn)的刪除文件
#rm -r shop 帶確認(rèn)的刪除目錄
#rm -rf shop 不帶確認(rèn)刪除目錄及其所有子目錄和文件
① 復(fù)制操作
命令:cp (copy縮寫,復(fù)制操作)
作用:復(fù)制文件/文件夾到指定的位置
語法:#cp [參數(shù)選項(xiàng)] 源路徑(含文件名) 目標(biāo)路徑(如不指定文件名,則文件名不變)
常見參數(shù):-r:recursion,遞歸,用于復(fù)制目錄
用法一:cp 源路徑 目標(biāo)路徑(不指定文件名)
示例代碼:
#cp /root/itheima.txt /usr/local/
含義:將/root目錄下的itheima.txt文件拷貝到/usr/local下,文件名不變
用法二:cp 源路徑 目標(biāo)路徑(指定文件名)
示例代碼:
#cp /root/itheima.txt /usr/local/heimayunwei.txt
含義:將/root目錄下的itheima.txt文件拷貝到/usr/local下,重命名為heimayunwei.txt
用法三:cp -r 源路徑(包含目錄名) 目標(biāo)路徑
示例代碼:
#cp -r /root/chuanzhiboke /usr/local/
含義:將/root目錄下的chuanzhiboke目錄完整拷貝到/usr/local下
cp命令總結(jié)
#cp readme.txt /usr/local/ 當(dāng)前目錄下的readme.txt 拷貝到/usr/local下
#cp readme.txt /usr/local/readme.txt
#cp readme.txt /usr/local/readhis.txt
#cp readme.txt readme.aaa
#cp -r /root/chuanzhiboke /usr/local/
② 剪切操作
命令:mv (move,移動(dòng),剪切)
作用:可以在不同的目錄之間移動(dòng)文件或目錄,也可以對(duì)文件和目錄進(jìn)行重命名
語法:#mv [參數(shù)] 源文件 目標(biāo)路徑(不指定文件名)
mv與cp的區(qū)別:
☆ mv 與 cp 命令不一樣,不管是針對(duì)文件還是針對(duì)文件夾都不需要加類似 -r 的選項(xiàng)。
☆ 默認(rèn)在移動(dòng)的過程中文檔名稱名稱是不變的,變的是路徑
用法一:mv 源文件 目標(biāo)路徑(不指定文件名)
示例代碼:
#mv readme.txt /usr/local/
含義:將當(dāng)前目錄下的readme.txt文件移動(dòng)到/usr/local下,文件名不變
③ 重命名操作
命令:mv (move,移動(dòng),剪切)
語法:#mv [參數(shù)] 源文件 目標(biāo)路徑(指定文件名)
用法三:mv 當(dāng)前文件名 新文件名
示例代碼:
#mv itheima.txt heimacxy.txt
含義:將當(dāng)前目錄下的itheima.txt文件重命名成 heimacxy.txt
前面我們說過,默認(rèn)情況下文件名稱不變,但如果我們指定目標(biāo)文件名稱,就變成了重命名操作。
用法四:mv 當(dāng)前目錄名 新目錄名
示例代碼:
#mv shop shopping
含義:將當(dāng)前目錄下的shop目錄重命名成 shopping
mv命令總結(jié)
#mv readme.txt /tmp/ 移動(dòng)當(dāng)前目錄下的readme.txt 到 /tmp目錄下,文件名不變
#mv /root/shop /tmp 移動(dòng)root目錄下的 shop目錄 到 /tmp目錄下
#mv hello.txt readme.txt
#mv /root/shop1 /usr/local/shop2
新建目錄的時(shí)候,不要加點(diǎn),或者說,不要建立一個(gè)類似 shop.txt這樣的目錄
打包,指的是一個(gè)文件或目錄的集合,而這個(gè)集合被存儲(chǔ)在一個(gè)文件中。歸檔文件沒有經(jīng)過壓縮,占用的空間是其中所有文件和目錄的總和。
1.txt 5MB
2.txt 10MB
3.txt 20MB
123.tar 35MB
壓縮文件也是一個(gè)文件和目錄的集合,且這個(gè)集合也被存儲(chǔ)在一個(gè)文件中,但它們的不同之處在于,壓縮文件所占用的磁盤空間比集合中所有文件大小的總和要小。
123.tar.gz 不是35MB,是壓縮后的大小。
1)打包
命令:tar
作用:將多個(gè)文件打包成一個(gè)文件
語法:tar 選項(xiàng) 打包文件名 要打包的文件或目錄
常見參數(shù):
-c,create 創(chuàng)建的意思
-v,顯示打包文件過程
-f,指定打包的文件名,此參數(shù)是必須加的。
-u,update縮寫,更新原打包文件中的文件(了解)
-t,查看打包的文件內(nèi)容(了解)
注意:
在使用 tar 命令指定選項(xiàng)時(shí)可以不在選項(xiàng)前面輸入“-”。例如,使用“cvf”選項(xiàng)和 “-cvf”起到的作用一樣。使用 tar 命令歸檔的包通常稱為 tar 包(tar 包文件都是以“.tar”結(jié)尾的)。
示例代碼:
#tar -cvf abc.tar a.txt b.txt c.txt
含義:將當(dāng)前目錄下的a.txt b.txt c.txt 打包成abc.tar文件,大小是三個(gè)文件的總合重點(diǎn)掌握CVF就可以了
用法二:tar -uf 現(xiàn)有包文件名 要追加的文件
示例代碼:
#tar -uf abc.tar d.txt
含義:將當(dāng)前目錄下的d.txt 追加到abc.tar文件,大小是四個(gè)文件的總合
用法三:tar -tf 包文件名
示例代碼:
#tar -tf abc.tar
含義:查看abc.tar文件內(nèi)容
2)打包并壓縮(重點(diǎn))
Linux下,常用的壓縮工具有很多,比如 gzip、zip、bzip2、xz 等
tar 在打包的時(shí)候,是支持壓縮的,gzip 、bzip2 、xz 壓縮工具都可以在 tar 打包文件中使用。
命令:tar
作用:將多個(gè)文件打包并壓縮成一個(gè)文件,其實(shí)就是tar命令的三個(gè)壓縮參數(shù)
語法:tar 選項(xiàng) 打包文件名 要壓縮的文件或目錄
常見參數(shù):
-z,壓縮為.gz格式
-j,壓縮為.bz2格式
-J,壓縮為.xz格式
-c,create 創(chuàng)建的意思
-x,解壓縮
-v,顯示打包文件過程
-f,file指定打包的文件名,此參數(shù)是必須加的。
-u,update縮寫,更新原打包文件中的文件(了解)
-t,查看打包的文件內(nèi)容(了解)
替換c
替換f
注意:此處打包后的文件名叫做 abc.tar.gz,其中.gz表示使用gzip壓縮的tar文件,目的是方便運(yùn)維人員識(shí)別文件
3)解壓
解壓的時(shí)候,把壓縮命令中的 c 換成 x 即可
1)zip壓縮
命令:zip
作用:兼容類unix與windows,可以壓縮多個(gè)文件或目錄
用法一:文件壓縮
用法一:zip 壓縮后的文件名 要壓縮的文件(一個(gè)或多個(gè))
命令:unzip
作用:解壓文件
語法:unzip 要解壓的壓縮文件 [-d] 解壓目錄
選項(xiàng):-d,directory縮寫,代表解壓文件到指定目錄下
用法一:解壓到當(dāng)前目錄
用法二:解壓到指定目錄
zip命令總結(jié)
zip是壓縮
unzip是解壓縮
Vim文本編輯器,是由 vi 發(fā)展演變過來的文本編輯器,使用簡(jiǎn)單、功能強(qiáng)大、是 Linux 眾多發(fā)行版的默認(rèn)文本編輯器
vi(visual editor)編輯器通常被簡(jiǎn)稱為vi,它是Linux和Unix系統(tǒng)上最基本的文本編輯器,類似于Windows系統(tǒng)下的notepad(記事本)編輯器。
Vim(Vi improved)是vi編輯器的加強(qiáng)版,比vi更容易使用。vi的命令幾乎全部都可以在vim上使用。
Centos通常都已經(jīng)默認(rèn)安裝好了 vi 或 Vim 文本編輯器
當(dāng)命令行中輸入“Vim”顯示如下 所示的畫面時(shí),視為 Vim 安裝成功
如果在命令行模式下輸入“vim”,輸出結(jié)果為“Command not found”,則表示此系統(tǒng)中未安裝 Vim。
錯(cuò)誤信息:command not found...
含義:找不到這條命令,通常表示沒有安裝這條命令或者可能敲錯(cuò)了命令
如果沒有安裝,可通過以下命令進(jìn)行安裝
#yum install vim
后面會(huì)詳細(xì)介紹關(guān)于yum的使用,這里大家默認(rèn)都已經(jīng)安裝了vim。
Vim 中存在四種模式:
命令模式
編輯模式(輸入/插入模式)
可視化模式
末行模式(尾行模式)
①命令模式:使用VIM編輯器時(shí),默認(rèn)處于命令模式。在該模式下可以移動(dòng)光標(biāo)位置,可以通過快捷鍵對(duì)文件內(nèi)容進(jìn)行復(fù)制、粘貼、刪除等操作。
②編輯模式:在該模式下可以對(duì)文件的內(nèi)容進(jìn)行編輯
③末行模式:可以在末行輸入命令來對(duì)文件進(jìn)行查找、替換、保存、退出等操作
④可視化模式:可以做一些列選操作
四種模式之間的關(guān)系:
命令:vim
作用:編輯文件
語法:vim 文件名
在任何模式下,都可以按兩下ESC回到命令模式,在命令模式輸入:wq 按回車鍵
在任何模式下,都可以按兩下ESC回到命令模式,在命令模式輸入:q! 按回車鍵
☆ 光標(biāo)移動(dòng)到首與尾
光標(biāo)移動(dòng)到文件第一行的行首,按鍵: gg
光標(biāo)移動(dòng)到文件最后一行的行首,按鍵:G [Capslk 再加 G 鍵] / [Shift + G 鍵]
#vim /var/log/boot.log-20200219
☆ 翻屏
向上 翻屏,按鍵: ctrl + b (before) 或 PgUp
向下 翻屏,按鍵: ctrl + f (after) 或 PgDn
向上翻半屏,按鍵: ctrl + u (up)
向下翻半屏,按鍵: ctrl + d (down)
☆ 快速定位到指定行(重點(diǎn))
數(shù)字 + G
150G
注意:常用于錯(cuò)誤定位
#vim /var/log/boot.log-20200219
① 復(fù)制光標(biāo)所在行
按鍵:yy
粘貼:在想要粘貼的地方按下p 鍵【將粘貼在光標(biāo)所在行的下一行】,如果想粘貼在光標(biāo)所在行之前,則使用P鍵
② 以光標(biāo)所在行為準(zhǔn)(包含當(dāng)前行),向下復(fù)制指定的行數(shù)按鍵:數(shù)字yy,如5yy
#vim 1.txt 在其中輸入如下,可以用來測(cè)試5yy,比較清晰
① 剪切/刪除光標(biāo)所在行
按鍵:dd (刪除之后下一行上移)
注意:dd 嚴(yán)格意義上說是剪切命令,但是如果剪切了不粘貼就是刪除的效果。
② 剪切/刪除光標(biāo)所在行為準(zhǔn)(包含當(dāng)前行),向下刪除/剪切指定的行
按鍵:數(shù)字dd (刪除之后下一行上移)
③ 剪切/刪除光標(biāo)所在的當(dāng)前行(光標(biāo)所在位置)之后的內(nèi)容,但是刪除之后下一行不上移
按鍵:D (刪除之后當(dāng)前行會(huì)變成空白行)
撤銷:u(undo)
恢復(fù):ctrl + r 恢復(fù)(取消)之前的撤銷操作【重做,redo】
進(jìn)入方式:由命令模式進(jìn)入,按下: 或者/ (表示查找)即可進(jìn)入末行模式
退出方式:
① 按下Esc鍵
② 連按 2 次Esc鍵
③ 刪除末行全部輸入字符
那末行模式有哪些作用?我們能使用末行模式做什么呢?
① 保存操作(write)
輸入: :w 保存文件 (了解)
輸入: :w 路徑 另存為(了解)
② 退出(quit)
輸入: :q 退出文件(了解)
默認(rèn)情況下,退出的時(shí)候需要對(duì)已經(jīng)進(jìn)行修改的文件進(jìn)行保存:w ,然后才能退出
③ 保存并退出(掌握,常用)
輸入: :wq 保存并且退出
④ 強(qiáng)制(!)(掌握,常用)
輸入: :q! 表示強(qiáng)制退出,剛才做的修改操作不做保存
備注:以后我們?cè)诟南到y(tǒng)配置文件時(shí),很多時(shí)候不想保存之前的更改,甚至我們只想查看,沒想更改。這時(shí)候一律使用q!退出,可以保證我們的文件不被誤更改
⑤ 搜索/查找
輸入: /關(guān)鍵詞,再按下回車 【按下/也是進(jìn)入末行模式的方式之一】
在搜索結(jié)果中切換上/下一個(gè)結(jié)果:N/n (大寫N代表上一個(gè)結(jié)果,小寫n代表next)
如果需要取消高亮,則需要在末行模式中輸入: :noh 【no highlight】
⑥替換(了解)
通常在修改配置文件的時(shí)候,不建議大家批量替換,避免替換了一些自己不知道的內(nèi)容
:s/搜索的關(guān)鍵詞/新的內(nèi)容 替換光標(biāo)所在行的第一處符合條件的內(nèi)容(只替換1次)
:s/搜索的關(guān)鍵詞/新的內(nèi)容/g 替換光標(biāo)所在行的全部符合條件的內(nèi)容
:%s/搜索的關(guān)鍵詞/新的內(nèi)容 替換整個(gè)文檔中每行第一個(gè)符合條件的內(nèi)容
:%s/搜索的關(guān)鍵詞/新的內(nèi)容/g 替換整個(gè)文檔中所有符合條件的內(nèi)容
⑦ 顯示行號(hào)
輸入: :set nu ,nu代表number
如果想取消顯示,則輸入: :set nonu
⑧ set paste與set nopaste(了解)
為什么要使用paste模式?
問題:在終端Vim中粘貼代碼時(shí),發(fā)現(xiàn)插入的代碼會(huì)有多余的縮進(jìn),而且會(huì)逐行累加。原因是終端把粘貼的文本存入鍵盤緩存(Keyboard Buffer)中,Vim則把這些內(nèi)容作為用戶的鍵盤輸入來處理。導(dǎo)致在遇到換行符的時(shí)候,如果Vim開啟了自動(dòng)縮進(jìn),就會(huì)默認(rèn)的把上一行縮進(jìn)插入到下一行的開頭,最終使代碼變亂。
在粘貼數(shù)據(jù)之前,輸入下面命令開啟paste模式
:set paste
粘貼完畢后,輸入下面命令關(guān)閉paste模式
:set nopaste
按字母i進(jìn)入編輯模式,按ESC鍵退出編輯模式,回到命令模式
按鍵:ctrl + v(可視塊)或V(可視行)或v(可視),然后按下↑ ↓ ← →方向鍵來選中需要
復(fù)制的區(qū)塊,按下y 鍵進(jìn)行復(fù)制(不要按下yy),最后按下p 鍵粘貼
退出可視模式按下Esc
a.首先按esc進(jìn)入命令行模式下,按下Ctrl + v,進(jìn)入列(也叫區(qū)塊)模式;
b.在行首使用上下鍵選擇需要注釋的多行;
c.按下鍵盤(大寫)“I”鍵,進(jìn)入插入模式;
d.然后輸入注釋符(“#”);
e.最后按 兩下“Esc”鍵。
a.首先按esc進(jìn)入命令行模式下,按下Ctrl + v, 進(jìn)入列模式;
b.選定要取消注釋的多行的第一列
c.按del鍵即可
之前說過vim 是vi 的升級(jí)版本,其中比較典型的區(qū)別就是vim 更加適合coding,因?yàn)関im比vi 多一個(gè)代碼著色的功能,這個(gè)功能主要是為程序員提供編程語言升的語法顯示效果,如下:
在實(shí)際應(yīng)用中,我們?nèi)绾慰刂浦@示與否?
syntax:語法,臨時(shí)調(diào)整
開啟顯示: :syntax on
關(guān)閉顯示: :syntax off
什么是異常退出:在編輯文件之后并沒有正常的去wq(保存退出),而是遇到突然關(guān)閉終端或者斷電的情況,則會(huì)顯示下面的效果,這個(gè)情況稱之為異常退出:
解決辦法:將交換文件(在編程過程中產(chǎn)生的臨時(shí)文件)刪除掉即可【在上述提示界面按下D 鍵,或者使用rm 指令刪除交換文件】
回顧:在vim中,退出正在編輯的文件可以使用:q 或者:wq
除了上面的這個(gè)語法之外,vim 還支持另外一個(gè)保存退出(針對(duì)內(nèi)容)方法:x
說明:
① :x 在文件沒有修改的情況下,表示直接退出(等價(jià)于:q),在文件修改的情況下表示保存并退出(:wq)
② 如果文件沒有被修改,但是使用wq 進(jìn)行退出的話,則文件的修改時(shí)間會(huì)被更新;但是如果文件
猜你喜歡:
linux云計(jì)算+運(yùn)維開發(fā)課程