蘇州無錫外貿(mào)網(wǎng)站建設(shè)/優(yōu)化大師是什么
Linux文件部分的學(xué)習(xí),有這一篇的博客足矣!
目錄
一、文件的命名規(guī)則
1、可以使用哪些字符?
2、文件名的長(zhǎng)度
3、Linux文件名的大小寫
4、Linux文件擴(kuò)展名
二、文件管理命令
1、目錄的創(chuàng)建/刪除
(1)、目錄的創(chuàng)建
① mkdir創(chuàng)建目錄
② mkdir -p遞歸創(chuàng)建目錄
③ 使用mkdir同時(shí)創(chuàng)建多個(gè)目錄
總結(jié):
擴(kuò)展:Linux快捷鍵(方向鍵上下)
(2)、目錄刪除(必須是空目錄)
① rmdir移除空目錄
② rmdir -p遞歸刪除空目錄
③ 使用rmdir同時(shí)刪除多個(gè)空目錄
總結(jié):
2、文件的創(chuàng)建/刪除
(1)、創(chuàng)建文件
① touch創(chuàng)建文件
② 使用touch命令同時(shí)創(chuàng)建多個(gè)文件
③ {1…5}根據(jù)序號(hào)同時(shí)創(chuàng)建多個(gè)文件
總結(jié):
(2)、刪除文件
① 普通刪除
總結(jié):
② 擴(kuò)展:rm -rf /*,一定要慎重
3、復(fù)制
① cp復(fù)制操作
② cp復(fù)制并重命名文件
③ cp復(fù)制文件夾到指定路徑
總結(jié):
4、剪切
5、重命名
總結(jié):
6、tard打包壓縮與解壓縮
(1)、幾個(gè)概念
(2)、 Linux打包操作
(3)、 tar -tf以及tar -uf
(4)、 打包并壓縮(學(xué)習(xí)的重點(diǎn))
(5)、 對(duì)壓縮包進(jìn)行解壓
7、zip壓縮與解壓縮
① zip壓縮
② unzip解壓縮
總結(jié):
三、vim文件編輯器的? 概述? 與? 使用
1、Vim打開文件
2、Vim保存文件并退出
3、Vim不保存文件并退出
4、Vim命令模式操作(重點(diǎn))
4.1、進(jìn)入命令模式
4.2、光標(biāo)快速移動(dòng)操作
☆ 光標(biāo)移動(dòng)到首與尾
☆ 翻屏
向上 翻屏,按鍵:ctrl + b (before) 或 PgUp
向下 翻屏,按鍵:ctrl + f (after) 或 PgDn
向上翻半屏,按鍵:ctrl + u (up)
向下翻半屏,按鍵:ctrl + d (down)
☆ 快速定位到指定行(重點(diǎn))
4.3、復(fù)制
4.4、剪切/刪除
4.5、撤銷/恢復(fù)
5、Vim末行模式操作(重點(diǎn))
5.1、進(jìn)入末行模式
5.2、末行模式相關(guān)功能
① 保存操作(write)
② 退出(quit)
③ 保存并退出(掌握,常用)
④ 強(qiáng)制(!)(掌握,常用)
⑤ 搜索/查找
⑥替換(了解)
⑦ 顯示行號(hào)
⑧ set paste與set nopaste(了解)
6、編輯模式操作
? 進(jìn)入和退出編輯模式
7、可視化模式下復(fù)制
1).添加多行注釋:(重點(diǎn))
2).刪除多行注釋:(重點(diǎn))
8、Vim的一些實(shí)用功能
8.1、代碼著色
8.2、異常退出(重點(diǎn))
8.3、退出方式
五、文本文件處理命令
1、查看文件內(nèi)容
①cat查看及合并
②more分屏顯示文件
③less分屏顯示文件
④head顯示文件開頭
⑤tail顯示文件結(jié)尾(重點(diǎn))
2、統(tǒng)計(jì)文件信息
①wc統(tǒng)計(jì)文件內(nèi)容數(shù)量
②du統(tǒng)計(jì)文件大小
3、文本處理
①find文件查找(重點(diǎn))
②grep搜索文件內(nèi)容 (重要)
③輸出重定向
一、文件的命名規(guī)則
1、可以使用哪些字符?
????????除了 “ / ” 字符之外,所有的字符都可以使用,但是要注意的是,在目錄文件中,不建議使用其他特殊的字符,例如:<、>、?、*等等,盡量避免使用。
????????如果一個(gè)文件名中包含了特殊的字符,例如空格,那么在訪問這個(gè)文件的時(shí)候,就需要使用雙引號(hào)將文件名進(jìn)行括起來。
建議的命名規(guī)則:
? ? ? ? 1、由于Linux嚴(yán)格區(qū)分大小寫,所以盡量都用小寫字母.
? ? ? ? 2、如果必須對(duì)文件名進(jìn)行分割,建議使用 “? _?” ,例如: xiaofeng_2024_12
2、文件名的長(zhǎng)度
目錄名或者文件名的長(zhǎng)度都不能超過255個(gè)字符。
3、Linux文件名的大小寫
- Linux目錄名或者文件名是嚴(yán)格區(qū)分大小寫的,如xiaofeng、XiaoFeng和XIAOFENG,是互不相同的目錄名或者文件名。
- 盡量不要使用大小寫來區(qū)分不同的文件或目錄。
- 建議文件名一律使用小寫字母
4、Linux文件擴(kuò)展名
? ? ? ? Linux的擴(kuò)展名對(duì)操作系統(tǒng)本身是沒有特殊的含義的,Linux系統(tǒng)并不以文件的擴(kuò)展名來區(qū)分文件類型。例如:xiaofeng.txt就只是一個(gè)文件,該文件的擴(kuò)展名 .exe 并不代表此文件就一定是可執(zhí)行的。
? ? ? ? 在Linux系統(tǒng)中,文件的擴(kuò)展名的用途是為了使運(yùn)維人員更好的區(qū)分不同的文件類型。
二、文件管理命令
? ? ? ? 在日常工作中,我們需要經(jīng)常對(duì)Linux的文件或者目錄進(jìn)行新建、刪除、修改、查看、復(fù)制和移動(dòng)等等。
1、目錄的創(chuàng)建/刪除
在實(shí)際應(yīng)用中,有兩個(gè)相關(guān)目錄的操作:創(chuàng)建和刪除。
(1)、目錄的創(chuàng)建
① mkdir創(chuàng)建目錄
基本語法:
# mkdir 目錄名稱
主要功能:就是根據(jù)目錄的名稱創(chuàng)建一個(gè)目錄
> mkdir = make directory
案例:在家目錄下創(chuàng)建一個(gè)xiaofeng的文件夾
# mkdir xiaofeng
② mkdir -p遞歸創(chuàng)建目錄
基本語法:
# mkdir -p /usr/local/nginx/conf
選項(xiàng)說明:
-p:遞歸創(chuàng)建,從左邊的路徑開始一級(jí)一級(jí)創(chuàng)建目錄,直到路徑結(jié)束
案例:在已知目錄(/usr/local)下創(chuàng)建多級(jí)目錄(nginx/conf)
# mkdir /usr/local/nginx/conf
mkdir: cannot create directory ‘/usr/local/nginx/conf’: No such file or directory
mkdir:不能創(chuàng)建目錄conf,為什么呢?因?yàn)?usr/local目錄下并沒有nginx
解決方案:如果我們想同時(shí)創(chuàng)建多級(jí)目錄,必須使用-p選項(xiàng),其會(huì)從左向右一級(jí)一級(jí)創(chuàng)建目錄。
# mkdir -p /usr/local/nginx/conf
③ 使用mkdir同時(shí)創(chuàng)建多個(gè)目錄
# mkdir 目錄名稱1 目錄名稱2 目錄名稱3 ...
案例:在當(dāng)前目錄下創(chuàng)建a、b、c三個(gè)目錄
# mkdir a
# mkdir b
# mkdir c
或
# mkdir a b c
同時(shí)創(chuàng)建關(guān)于a的下標(biāo)為1-10的目錄文件
#mkdir a{1..10}
總結(jié):
- 一個(gè)目錄一個(gè)目錄創(chuàng)建# mkdir 目錄名稱
- 多級(jí)目錄一起創(chuàng)建# mkdir -p 目錄名稱1/目錄名稱2/…
- 同時(shí)創(chuàng)建多個(gè)目錄# mkdir 目錄名稱1 目錄名稱2 目錄名稱3 或 #mkdir 目錄名稱{num1..num2}
擴(kuò)展:Linux快捷鍵(方向鍵上下)
在終端中:
- ? 按方向鍵=>向上,其會(huì)返回上一次輸入的命令
- ? 按方向鍵=>向下,其會(huì)返回下一次輸入的命令
(2)、目錄刪除(必須是空目錄)
① rmdir移除空目錄
基本語法:
# rmdir 目錄名稱
> rmdir = remove directory,移除目錄
案例:把家目錄下的xiaofeng刪除(空目錄)
# rmdir xiaofeng
② rmdir -p遞歸刪除空目錄
基本語法:
# rmdir -p 目錄名稱1/目錄名稱2/目錄名稱3/...
主要功能:從右向左一級(jí)一級(jí)刪除空目錄
案例:遞歸刪除xiaofeng文件夾中的yunwei文件夾中的shenzhen3
# rmdir -p xiaofeng/yunwei/shenzhen3
③ 使用rmdir同時(shí)刪除多個(gè)空目錄
# rmdir 目錄名稱1 目錄名稱2 目錄名稱3 ...
案例:刪除家目錄中的a、b、c三個(gè)空目錄
# rmdir a b c
總結(jié):
- # rmdir 目錄名稱,刪除某個(gè)空目錄
- # rmdir -p 目錄名稱1/目錄名稱2/目錄名稱3/…,同時(shí)刪除多級(jí)目錄(從右向左一級(jí)一級(jí)刪除)
- # rmdir 目錄名稱1 目錄名稱2 目錄名稱3,同時(shí)刪除多個(gè)空目錄
2、文件的創(chuàng)建/刪除
(1)、創(chuàng)建文件
① touch創(chuàng)建文件
基本語法:
# touch 文件名稱
主要功能:在Linux系統(tǒng)中的當(dāng)前目錄下創(chuàng)建一個(gè)文件
案例:在當(dāng)前目錄下創(chuàng)建一個(gè)readme.txt文件
# touch readme.txt
② 使用touch命令同時(shí)創(chuàng)建多個(gè)文件
基本語法:
# touch 文件名稱1 文件名稱2 文件名稱3 ...
或者
#touch 文件名稱{num1..num2}
案例:創(chuàng)建一個(gè)shop商城文件夾,然后在內(nèi)部創(chuàng)建index.php/admin.php/config.php三個(gè)文件
# mkdir shop
# touch shop/index.php
# touch shop/admin.php
# touch shop/config.php
或
# touch shop/index.php shop/admin.php shop/config.php
> 提出問題:觀察以下命令,看看有何區(qū)別?
>>>> 第一種寫法:touch shop/index.php shop/admin.php shop/config.php > > 代表在shop目錄下首先創(chuàng)建一個(gè)index.php,再創(chuàng)建一個(gè)admin.php,最后config.php? ?
?>>>>? 第二種寫法:touch shop/index.php admin.php config.php > > 代表在shop目錄下首先創(chuàng)建index.php,然后在當(dāng)前目錄下創(chuàng)建admin.php,最后在當(dāng)前目錄下創(chuàng)建config.php
③ {1…5}根據(jù)序號(hào)同時(shí)創(chuàng)建多個(gè)文件
基本語法:
# touch 文件名稱{開始序號(hào)..結(jié)束序號(hào)}
含義:
根據(jù)提供的開始序號(hào)~結(jié)束序號(hào),一個(gè)一個(gè)創(chuàng)建文件
案例:創(chuàng)建file1、file2、file3、file4、file5共5個(gè)文件
# touch file1
# touch file2
# touch file3
# touch file4
# touch file5
或
# touch file{1..5}
總結(jié):
- # touch 文件名稱
- # touch 文件名稱1 文件名稱2 文件名稱3 …
- # touch 文件名稱{開始序號(hào)…結(jié)束序號(hào)}
(2)、刪除文件
① 普通刪除
基本語法:
# rm [選項(xiàng)] 文件或文件夾的名稱
選項(xiàng)說明:
-r :針對(duì)文件夾,代表遞歸刪除,先把目錄下的所有文件刪除,然后在刪除文件夾
-f :強(qiáng)制刪除,不提示,初學(xué)者一定要慎重!!!
案例:刪除readme.txt文件
# rm readme.txt
rm: remove regular empty file ‘readme.txt’?這里可以回復(fù)y or n
y代表確認(rèn)刪除
n代表取消刪除
案例:強(qiáng)制刪除admin.php,不提示(慎重)
# rm -f admin.php
案例:刪除非空的文件夾(-rf強(qiáng)制遞歸刪除,不提示)
# rm -rf shop
提示信息:descend into directory ‘itheima/’? 含義:是否進(jìn)入itheima目錄?
提示信息:remvoe directory ‘itheima/’? 含義:是否刪除itheima文件夾?
擴(kuò)展:Ctrl + C在Linux下的使用方式> 在Linux操作系統(tǒng)中,Ctrl + C不是復(fù)制,而是中斷某個(gè)操作
總結(jié):
- # rm 文件名稱
- # rm 文件名稱1 文件名稱2 文件名稱3 …
- # rm -f 文件名稱 => 強(qiáng)制刪除,不提示
- # rm -rf 文件夾名稱 => 遞歸刪除文件夾
② 擴(kuò)展:rm -rf /*,一定要慎重
# rm -rf /* => 代表刪除根目錄下的所有文件(如果沒有備份,恢復(fù)的幾率不高)
rm :刪除
-r :遞歸刪除(無論文件夾是否為空)
-f :強(qiáng)制刪除不提示
/ :代表根分區(qū)
* :所有
3、復(fù)制
① cp復(fù)制操作
基本語法:
# cp [選項(xiàng)] 源文件或文件夾 目標(biāo)路徑
選項(xiàng)說明:
-r :遞歸復(fù)制,主要針對(duì)文件夾
> cp = copy復(fù)制
案例:把readme.txt文件從當(dāng)前目錄復(fù)制一份放到/tmp文件夾中
# cp readme.txt /tmp/
② cp復(fù)制并重命名文件
基本語法:
# cp [選項(xiàng)] 源文件或文件夾 目標(biāo)路徑/新文件或文件夾的名稱
案例:把readme.txt文件從當(dāng)前目錄復(fù)制一份放到/tmp文件夾中并重命名為readme.txt.bak
# cp readme.txt /tmp/readme.txt.bak
③ cp復(fù)制文件夾到指定路徑
基本語法:
# cp -r 源文件夾名稱 目標(biāo)路徑/
案例:把shop目錄連通其內(nèi)部的文件統(tǒng)一復(fù)制到/tmp目錄下
# mkdir shop
# touch shop/index.php shop/admin.php shop/config.php# cp -r shop /tmp/
總結(jié):
- 復(fù)制文件# cp 源文件名稱 指定路徑
- 復(fù)制文件并重命名# cp 源文件名稱 指定路徑/新文件名稱
- 復(fù)制文件夾# cp -r 源文件夾 指定路徑
4、剪切
基本語法:
# mv 源文件或文件夾 目標(biāo)路徑/
> mv = move,剪切、移動(dòng)的含義
案例:把readme.txt文件剪切到/tmp目錄下
# rm -rf /tmp/readme.txt# mv readme.txt /tmp/
案例:把shop文件夾移動(dòng)到/usr/local/nginx目錄下
# mkdir /usr/local/nginx
# mv shop /usr/local/nginx/
5、重命名
什么是重命名?簡(jiǎn)單來說,就是給一個(gè)文件或文件夾更改名稱
基本語法:
# mv 源文件或文件夾名稱 新文件或文件夾的名稱
案例:把readme.txt文件更名為README.md文件
# mv readme.txt README.md
案例:把shop文件目錄更名為wechat目錄
# mkdir shop
# mv shop wechat
總結(jié):
- 剪切文件# mv 源文件名稱 目標(biāo)路徑/
- 剪切文件夾# mv 源文件夾名稱 目標(biāo)路徑/
- 重命名# mv 源文件或文件夾名稱 新文件或文件夾名稱
6、tard打包壓縮與解壓縮
(1)、幾個(gè)概念
打包:默認(rèn)情況下,Linux的壓縮概念一次只能壓縮一個(gè)文件。針對(duì)多文件或文件夾無法進(jìn)行直接壓縮。所以需要提前對(duì)多個(gè)文件或文件夾進(jìn)行打包(創(chuàng)建歸檔文件),這樣才可以進(jìn)行壓縮操作。
1.txt 5MB2.txt 10MB3.txt 15MB1.txt + 2.txt + 3.txt = 打包 = 123.tar = 30MB
> 打包只是把多個(gè)文件或文件夾打包放在一個(gè)文件中,但是并沒有進(jìn)行壓縮,所以其大小還是原來所有文件的總和。
壓縮:也是一個(gè)文件和目錄的集合,且這個(gè)集合也被存儲(chǔ)在一個(gè)文件中,但它們的不同之處在于,壓縮文件所占用的磁盤空間比集合中所有文件(歸檔文件)大小的總和要小。
1.txt 5MB2.txt 10MB3.txt 15MB1.txt + 2.txt + 3.txt = 壓縮 = 123.tar.gz = 20MB(體積變小了)
(2)、 Linux打包操作
基本語法:
# tar [選項(xiàng)] 打包后的名稱.tar 多個(gè)文件或文件夾
選項(xiàng)說明:
-c :打包
-f :filename,打包后的文件名稱
-v :顯示打包的進(jìn)度
-u :update縮寫,更新原打包文件中的文件(了解)
-t :查看打包的文件內(nèi)容(了解)
案例:把a(bǔ).txt、b.txt、c.txt文件打包到abc.tar文件中(歸檔文件)
# tar -cvf abc.tar a.txt b.txt c.txt
案例:把wechat文件夾進(jìn)行打包wechat.tar
# tar -cvf wechat.tar wechat
(3)、 tar -tf以及tar -uf
基本語法:
# tar -tf 打包后的文件名稱
主要功能:查看tar包中的文件信息
案例:查看abc.tar包中的文件信息
# tar -tf abc.tar
# tar -uf 打包后的文件名稱
> u = update,更新,如果還想往tar包中更新或追加內(nèi)容都可以通過-u選項(xiàng)
案例:向abc.tar包中添加一個(gè)d.txt文件
# touch d.txt
# tar -uf abc.tar d.txt
查看是否添加成功
# tar -tf abc.tar
擴(kuò)展:如何把tar包中的文件釋放(解壓)出來
打包
# tar -cf abc.tar a.txt b.txt c.txt
釋放
# tar -xf abc.tar
(4)、 打包并壓縮(學(xué)習(xí)的重點(diǎn))
基本語法:
# tar [選項(xiàng)] 壓縮后的壓縮包名稱 要壓縮的文件或文件夾
選項(xiàng)說明:
-cf :對(duì)文件或文件夾進(jìn)行打包-v :顯示壓縮進(jìn)度-z :使用gzip壓縮工具把打包后的文件壓縮為.gz
-j :使用bzip2壓縮工具把打包后的文件壓縮為.bz2
-J :使用xz壓縮工具把打包后的文件壓縮為.xz壓縮速度:tar.gz > tar.bz2 > tar.xz
壓縮率: tar.gz < tar.bz2 < tar.xz
案例:把a(bǔ).txt、b.txt、c.txt文件打包并壓縮為abc.tar.gz
# tar -zcf abc.tar.gz a.txt b.txt c.txt
案例:把wechat文件夾壓縮為wechat.tar.gz格式的壓縮包
# tar -zcf wechat.tar.gz wechat
(5)、 對(duì)壓縮包進(jìn)行解壓
解壓過程非常簡(jiǎn)單,就是把壓縮的參數(shù)中的c換成x就可以實(shí)現(xiàn)解壓縮了
基本語法:
*.tar.gz格式的壓縮包
# tar -zxf 名稱.tar.gz*.tar.bz2格式的壓縮包
# tar -jxf 名稱.tar.bz2*.tar.xz格式的壓縮包
# tar -Jxf 名稱.tar.xz
案例:把a(bǔ)bc.tar.gz格式的壓縮包進(jìn)行解壓縮操作
# tar -zxf abc.tar.gz
案例:把wechat.tar.gz格式的壓縮包進(jìn)行解壓縮操作
# tar -zxf wechat.tar.gz
7、zip壓縮與解壓縮
① zip壓縮
基本語法:
# zip [選項(xiàng)] 壓縮后的文件名稱.zip 文件或文件夾
選項(xiàng)說明:
-r :遞歸壓縮,主要針對(duì)的是文件夾(只要壓縮的時(shí)候有文件夾,就需要用該選項(xiàng))
> Linux下已經(jīng)有g(shù)zip、bzip2以及xz壓縮命令了,為什么還需要使用zip壓縮呢? > > 答:zip格式在Windows以及Linux中都是可以正常使用的。
案例:把a(bǔ).txt、b.txt、c.txt進(jìn)行壓縮為abc.zip
# zip abc.zip a.txt b.txt c.txt
案例:把wechat文件夾壓縮為wechat.zip
# zip -r wechat.zip wechat
② unzip解壓縮
基本語法:
# unzip 壓縮包名稱 解壓到當(dāng)前目錄
# unzip 壓縮包名稱 -d 指定路徑 解壓到指定路徑下
案例:對(duì)abc.zip文件進(jìn)行解壓縮
# unzip abc.zip
案例:把wechat.zip解壓到/usr/local/nginx目錄下
# unzip wechat.zip -d /usr/local/nginx/
總結(jié):
????????在Linux操作系統(tǒng)中,其擁有很多壓縮工具,如gzip、bzip2、xz等等,但是其有一個(gè)缺點(diǎn):
????????一次只能壓縮一個(gè)文件(而且無法壓縮文件夾),為什么要打包,就是為了后期的壓縮操作。
① 打包,把一個(gè)或多個(gè)文件打成tar包,并不是壓縮,只是把文件合并在一個(gè)tar文件中
1.txt 5MB2.txt 10MB3.txt 15MB打包123.tar = 5MB + 10MB + 15MB = 30MB
② 打包并壓縮
# tar -zcf 壓縮包名稱.tar.gz 文件或文件夾名稱 # tar -jcf 壓縮包名稱.tar.bz2 文件或文件夾名稱 # tar -Jcf 壓縮包名稱.tar.xz 文件或文件夾名稱
③ 解壓縮
# tar 把c參數(shù)更換為x,就可以實(shí)現(xiàn)解壓縮 壓縮包名稱.tar.gz
擴(kuò)展:
# tar -zxf 壓縮包名稱.tar.gz [參數(shù)] 指定路徑
第一種解決思路:隨用隨查,百度、Google
# tar -zxf 壓縮包名稱.tar.gz -C 指定路徑
第二種解決思路:可以使用man命令(manual縮寫,手冊(cè))
# man tar命令# tar -zxf 壓縮包名稱.tar.gz -C 指定路徑
④ zip壓縮與解壓縮
給我們提供一種既可以在Windows中使用的,也可以提供一種在Linux中使用的通用的壓縮格式。
# zip [-r] 壓縮包名稱.zip 要壓縮的文件或文件夾
解壓縮:
# unzip 壓縮包名稱.zip -d 指定路徑
三、vim文件編輯器的? 概述? 與? 使用
? ? ? ? Vim文本編輯器,是由 vi 發(fā)展演變過來的文本編輯器,使用簡(jiǎn)單、功能強(qiáng)大、是 Linux 眾多發(fā)行版的默認(rèn)文本編輯器。
? ? ? ? Vim(Vi improved)是vi編輯器的加強(qiáng)版,比vi更容易使用。vi的命令幾乎全部都可以在vim上使用。
? ? ? ? Centos通常都已經(jīng)默認(rèn)安裝好了 vi 或 Vim 文本編輯器。當(dāng)命令行中輸入“Vim”顯示如下 所示的畫面時(shí),視為 Vim 安裝成功。
注意:如果你的yum源已經(jīng)配置,那么你就只需要輸入命令? yum??install vim??即可,如果你本地沒有配置yum源,那么你可能不能安裝成功。后面我會(huì)寫一篇博客關(guān)于yum源的配置的。當(dāng)然感興趣的小伙伴可以提前去搜索學(xué)習(xí)。
1、Vim打開文件
命令:vim
作用:編輯文件
語法:vim 文件名
用法一:vim 文件名
示例代碼:
#vim 1.txt
含義:用vim編輯器,打開1.txt文件,如果1.txt文件不存在,則新建一個(gè)空文件1.txt,保存
退出編輯器時(shí)會(huì)自動(dòng)創(chuàng)建這個(gè)文件
2、Vim保存文件并退出
? 在任何模式下,都可以按兩下ESC回到命令模式,在命令模式輸入:wq 按回車鍵。
3、Vim不保存文件并退出
? 在任何模式下,都可以按兩下ESC回到命令模式,在命令模式輸入:q! 按回車鍵。
4、Vim命令模式操作(重點(diǎn))
4.1、進(jìn)入命令模式
問:如何進(jìn)入命令模式?
答:vim 直接打開文件之后的模式就是命令模式;當(dāng)然如果你當(dāng)前如果是在其他模式下,你只需要按兩下ESC回到命令模式。
4.2、光標(biāo)快速移動(dòng)操作
☆ 光標(biāo)移動(dòng)到首與尾
光標(biāo)移動(dòng)到文件第一行的行首,按鍵:
gg
光標(biāo)移動(dòng)到文件最后一行的行首,按鍵:G [Capslk 再加 G 鍵] / [Shift + G 鍵]
☆ 翻屏
向上 翻屏,按鍵:
ctrl + b (before) 或 PgUp
向下 翻屏,按鍵:
ctrl + f (after) 或 PgDn
向上翻半屏,按鍵:
ctrl + u (up)
向下翻半屏,按鍵:
ctrl + d (down)
☆ 快速定位到指定行(重點(diǎn))
? ? 數(shù)字 + G? ? ??
150G
注意:常用于錯(cuò)誤定位
4.3、復(fù)制
① 復(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,比較清晰
4.4、剪切/刪除
① 剪切/刪除光標(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ì)變成空白行)
4.5、撤銷/恢復(fù)
撤銷:u(undo)
恢復(fù):ctrl + r 恢復(fù)(取消)之前的撤銷操作【重做,redo】
5、Vim末行模式操作(重點(diǎn))
5.1、進(jìn)入末行模式
進(jìn)入方式:由命令模式進(jìn)入,按下
:
或者/
(表示查找)即可進(jìn)入末行模式退出方式:① 按下Esc鍵;② 連按 2 次Esc鍵;③ 刪除末行全部輸入字符。
那末行模式有哪些作用?我們能使用末行模式做什么呢?
請(qǐng)看下面的介紹。
5.2、末行模式相關(guān)功能
① 保存操作(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í)候,我個(gè)人很少使用批量替換,避免替換了一些自己不知道的內(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
6、編輯模式操作
? 進(jìn)入和退出編輯模式
? 按字母i進(jìn)入編輯模式,按ESC鍵退出編輯模式,回到命令模式。
7、可視化模式下復(fù)制
按鍵:ctrl + v(可視塊)或V(可視行)或v(可視),然后按下↑ ↓ ← →方向鍵來選中需要
復(fù)制的區(qū)塊,按下y 鍵進(jìn)行復(fù)制(不要按下yy),最后按下p 鍵粘貼,退出可視模式按下Esc
1).添加多行注釋:(重點(diǎn))
每行前面都加#
步驟1:首先按esc進(jìn)入命令行模式下,按下Ctrl + v,進(jìn)入列(也叫區(qū)塊)模式;
步驟2:在行首使用上下鍵選擇需要注釋的多行;
步驟3:按下鍵盤(大寫)“I”鍵,進(jìn)入插入模式;
步驟4:然后輸入注釋符(“#”);
步驟5:最后按 兩下“Esc”鍵。
2).刪除多行注釋:(重點(diǎn))
步驟1:首先按esc進(jìn)入命令行模式下,按下Ctrl + v, 進(jìn)入列模式;
步驟2:選定要取消注釋的多行的第一列
步驟3:按del鍵即可
8、Vim的一些實(shí)用功能
8.1、代碼著色
之前說過vim 是vi 的升級(jí)版本,其中比較典型的區(qū)別就是vim 更加適合coding,因?yàn)関im比vi 多一個(gè)代碼著色的功能,這個(gè)功能主要是為程序員提供編程語言升的語法顯示效果,如下:
#vim index.php 在文件中添加以下內(nèi)容:<?phpecho 'hello world'; ?>末行模式輸入:syntax off和syntax on可看到效果
在實(shí)際應(yīng)用中,我們?nèi)绾慰刂浦@示與否?
> syntax:語法,臨時(shí)調(diào)整
開啟顯示:
:syntax on
關(guān)閉顯示:
:syntax off
8.2、異常退出(重點(diǎn))
什么是異常退出?
在編輯文件之后并沒有正常的去wq(保存退出),而是遇到突然關(guān)閉終端或者斷電的情況,則會(huì)顯示下面的效果,這個(gè)情況稱之為異常退出。
解決辦法:將交換文件(在編程過程中產(chǎn)生的臨時(shí)文件)刪除掉即可【在上述提示界面按下D 鍵,或者使用rm 指令刪除交換文件】
8.3、退出方式
回顧:在vim中,退出正在編輯的文件可以使用
:q
或者:wq
除了上面的這個(gè)語法之外,vim 還支持另外一個(gè)保存退出(針對(duì)內(nèi)容)方法
:x
說明:
①?
:x
在文件沒有修改的情況下,表示直接退出(等價(jià)于:q),在文件修改的情況下表示保存并退出(:wq)
② 如果文件沒有被修改,但是使用wq 進(jìn)行退出的話,則文件的修改時(shí)間會(huì)被更新;但是如果文件沒有被修改,使用x 進(jìn)行退出的話,則文件修改時(shí)間不會(huì)被更新的;主要是會(huì)混淆用戶對(duì)文件的修改時(shí)間的認(rèn)定。
問:我們?cè)撚脁還是wq或者q!退出編輯器?
答:依據(jù)我們的工作場(chǎng)景和工作所所需。
五、文本文件處理命令
1、查看文件內(nèi)容
①cat查看及合并
命令:cat
作用:查看文件內(nèi)容
語法:cat 文件名稱
cat 文件1 文件2 > 文件3
用法一:cat 文件名
示例代碼:
#cat 1.txt
含義:顯示1.txt文件的內(nèi)容
特別注意:cat 命令用于查看文件內(nèi)容時(shí),不論文件內(nèi)容有多少,都會(huì)一次性顯示。如果文件非常大,那么文件開頭的內(nèi)容就看不到了。cat 命令適合查看不太大的文件。
用法二:cat 文件1 文件2 > 文件3
示例代碼:
#cat 1.txt 2.txt > 3.txt
含義:將1.txt和2.txt文件內(nèi)容合并后,輸出到3.txt
②more分屏顯示文件
命令:more
作用:分屏查看文件
語法:more 文件名
流程:more在讀取文件時(shí),默認(rèn)已經(jīng)加載文件的全部?jī)?nèi)容。
用法一:more 文件名
示例代碼:
#more /var/log/boot.log
含義:分頁顯示/var/log/boot.log文件的內(nèi)容
more 命令的執(zhí)行會(huì)打開一個(gè)交互界面,下面是一些常用交互命令:
回車鍵 | 向下移動(dòng)一行。 |
---|---|
d | 向下移動(dòng)半頁。 |
空格鍵 | 向下移動(dòng)一頁。 |
b | 向上移動(dòng)一頁。 |
/ 字符串 | 搜索指定的字符串。 |
:f | 顯示當(dāng)前文件的文件名和行號(hào)。 |
q 或 Q | 退出 more。 |
③less分屏顯示文件
命令:less
作用:分屏查看文件
語法:?less 文件名
流程:不是加載整個(gè)文件,而是一點(diǎn)一點(diǎn)進(jìn)行加載,相對(duì)而言,讀取大文件時(shí),效率比較高。
示例代碼:使用less命令查看/var/log/boot.log的文件內(nèi)容
用法一:less 文件名
示例代碼:
#less /var/log/boot.log
含義:分頁顯示/var/log/boot.log文件的內(nèi)容
less 命令的執(zhí)行也會(huì)打開一個(gè)交互界面,下面是一些常用交互命令(和more相同):
回車鍵 | 向下移動(dòng)一行。 |
---|---|
d | 向下移動(dòng)半頁。 |
空格鍵 | 向下移動(dòng)一頁。 |
b | 向上移動(dòng)一頁。 |
/ 字符串 | 搜索指定的字符串。 |
:f | 顯示當(dāng)前文件的文件名和行號(hào)。 |
q 或 Q | 退出 more。 |
cat,more,less三者的對(duì)比:
cat | more | less | |
---|---|---|---|
作用 | 顯示小文件(一屏以內(nèi)) | 顯示大文件(超過一屏) | 顯示大文件(超過一屏) |
交互命令 | 無 | 有 | 有 |
上下鍵翻行 | 無 | 無 | 有 |
④head顯示文件開頭
命令:head
作用:查看一個(gè)文件的前n 行,如果不指定n,則默認(rèn)顯示前10 行。
語法:head [參數(shù)選項(xiàng)] 文件名
常見參數(shù):-n 表示顯示前n行的內(nèi)容,n等于行數(shù)
用法一:head 文件名
示例代碼:
#head /var/log/boot.log
含義:顯示/var/log/boot.log文件的內(nèi)容,默認(rèn)為前10行用法二:head -n 文件名
示例代碼:
#head -3 /var/log/boot.log
含義:顯示/var/log/boot.log文件的前3行內(nèi)容
⑤tail顯示文件結(jié)尾(重點(diǎn))
命令:tail
作用:查看一個(gè)文件的最后n 行,如果n 不指定默認(rèn)顯示最后10 行
語法:tail -n 文件路徑 【n 表示數(shù)字】
常見參數(shù):-n 顯示最后n行的內(nèi)容,n等于行數(shù)
? -f 輸出文件變化后新增加的數(shù)據(jù)(動(dòng)態(tài)查看內(nèi)容的或者數(shù)據(jù)的變化)
用法一:tail 文件名
示例代碼:
#tail /var/log/boot.log
含義:顯示/var/log/boot.log文件的內(nèi)容,默認(rèn)為最后10行用法二:tail -n 文件名
示例代碼:
#tail -5 /var/log/boot.log
含義:顯示/var/log/boot.log文件的最后5行內(nèi)容
用法二:tail -f 文件名
示例代碼:
#tail -f /var/log/messages
含義:顯示/var/log/messages文件中,執(zhí)行tail -f 命令后,新增的數(shù)據(jù)。
注意:作用相當(dāng)于查看一個(gè)文件動(dòng)態(tài)變化的內(nèi)容,一般用于查看系統(tǒng)的日志的變化按下ctrl+c可以退出查看狀態(tài)
注意:ctrl+c 鍵,在命令行中c 不再表示copy,而表示cancel(取消),在程序執(zhí)行過程中,通常都可以使用ctrl+c來終止程序運(yùn)行或者退出程序。
2、統(tǒng)計(jì)文件信息
①wc統(tǒng)計(jì)文件內(nèi)容數(shù)量
命令:wc,wc = word count
作用:用于統(tǒng)計(jì)文件內(nèi)容信息(包含行數(shù)、單詞數(shù)、字節(jié)數(shù))
語法:wc [參數(shù)選項(xiàng)] 文件名
常見參數(shù):
-l:表示lines,行數(shù)(以回車/換行符為標(biāo)準(zhǔn))
-w:表示words,單詞數(shù) 依照空格來判斷單詞數(shù)量
-c:表示bytes, 字節(jié)數(shù)(空格,回車,換行)
用法一:wc -lwc 文件名 示例代碼: #wc -lwc /var/log/boot.log 含義:統(tǒng)計(jì)/var/log/boot.log文件的行數(shù),單詞數(shù),字節(jié)數(shù)
注意:wc命令選項(xiàng)可以混在一起搭配使用,但選項(xiàng)的順序不影響輸出結(jié)果,第一個(gè)是行數(shù),第二個(gè)是單詞數(shù),第三個(gè)數(shù)字節(jié)數(shù)。
②du統(tǒng)計(jì)文件大小
命令:du
作用:查看文件或目錄(會(huì)遞歸顯示子目錄)占用磁盤空間大小
語法:?du [參數(shù)選項(xiàng)] 文件名或目錄名
常見參數(shù):
-s :summaries,只顯示匯總的大小,統(tǒng)計(jì)文件夾的大小
?-h:表示以高可讀性的形式進(jìn)行顯示,如果不寫-h,默認(rèn)以KB的形式顯示文件大小
用法一:du 文件名 示例代碼: #du /var/log/boot.log 含義:統(tǒng)計(jì)/var/log/boot.log文件的大小用法二:du -h 文件名 示例代碼: #du -h /var/log/boot.log 含義:統(tǒng)計(jì)/var/log/boot.log文件的大小,以高可讀性顯示
示例代碼:統(tǒng)計(jì) /var/log 目錄大小
用法三:du 目錄名 示例代碼: #du /var/log/ 含義:統(tǒng)計(jì)/var/log/目錄的大小,包含目錄下每一個(gè)單獨(dú)文件的大小用法四:du -s 目錄名 示例代碼: #du -s /var/log/ 含義:統(tǒng)計(jì)/var/log/boot.log文件的大小,匯總只顯示目錄大小用法五:du -sh 目錄名 示例代碼: #du -sh /var/log/ 含義:統(tǒng)計(jì)/var/log/boot.log文件的大小,匯總只顯示目錄大小,并采用高可讀性
3、文本處理
①find文件查找(重點(diǎn))
命令:find
作用:用于查找文檔(其選項(xiàng)有55 個(gè)之多)
語法:?find 路徑范圍 選項(xiàng)1 選項(xiàng)1的值 [選項(xiàng)2? 選項(xiàng)2的值…]
常用參數(shù):
-name:按照文檔名稱進(jìn)行搜索(支持模糊搜索)
?* : 通配符,匹配任意個(gè)任意字符
-type:按照文檔的類型進(jìn)行搜索,文檔類型的值,f(file)表示文件,d(directory)表示文件夾
用法一:find 路徑范圍 選項(xiàng)1 選項(xiàng)1的值 選項(xiàng)2 選項(xiàng)2的值 示例代碼: #find /var/ -name boot.log -type f 含義:在/var/目錄下,查找名稱等于boot.log,類型是文件的文檔
用法二:find 路徑范圍 選項(xiàng)1 選項(xiàng)1的值使用通配符 選項(xiàng)2 選項(xiàng)2的值 示例代碼: #find /var/log -name "*.log" -type f 含義:在/var/log目錄下,查找所有.log結(jié)尾,類型是文件的文檔,*.log需要用引號(hào)引起來。
用法一:find 路徑范圍 選項(xiàng)1 選項(xiàng)1的值 示例代碼: #find /var/log -type d 含義:在/var/log目錄下,查找所有文件夾
②grep搜索文件內(nèi)容 (重要)
命令:grep
作用:在文件中直接找到包含指定信息的那些行,并把這些信息顯示出來
語法:grep? ?要查找的內(nèi)容? ?文件名
用法一:grep 查找的內(nèi)容 文件名 示例代碼: #grep network boot.log 含義:在boot.log文件中,查找包含network的行
用法二:grep 查找的內(nèi)容 多個(gè)文件 示例代碼: #grep network /var/log/* 含義:在/var/log目錄下的所有文件中,查找包含network的行
③輸出重定向
場(chǎng)景:
????????一般命令的輸出都會(huì)顯示在終端中,有些時(shí)候需要將一些命令的執(zhí)行結(jié)果想要保存到文件中進(jìn)行后續(xù)的分析/統(tǒng)計(jì),則這時(shí)候需要使用到的輸出重定向技術(shù)。
>:標(biāo)準(zhǔn)輸出重定向 ,覆蓋輸出,會(huì)覆蓋掉原先的文件內(nèi)容
>>:追加重定向,追加輸出,不會(huì)覆蓋原始文件內(nèi)容,會(huì)在原始內(nèi)容末尾繼續(xù)添加
語法:有輸出的命令 重定向符號(hào) 文件名
用法一:使用 > 進(jìn)行覆蓋輸出 示例代碼: #ll > llroot.txt 含義:將ll命令輸出的內(nèi)容,寫入到llroot.txt文件中,如果llroot.txt文件中有其他內(nèi)容,則先清空,在寫入 注意:文件路徑中的文件可以是不存在的文件,例如llroot.txt可以不存在,執(zhí)行命令時(shí)會(huì)自動(dòng)創(chuàng)建這個(gè)文件
用法二:使用 >> 進(jìn)行追加輸出 示例代碼: #ll >> llroot.txt 含義:將ll命令輸出的內(nèi)容,追加寫入到llroot.txt文件中 注意:文件路徑中的文件可以是不存在的文件,例如llroot.txt可以不存在,執(zhí)行命令時(shí)會(huì)自動(dòng)創(chuàng)建這個(gè)文件
注:在編程的學(xué)習(xí)上要不斷地練習(xí),不要一味只看不練,只有你多練,你才會(huì)有不一樣的體會(huì)。才能把別人優(yōu)秀的東西轉(zhuǎn)化為自己的財(cái)富