Ⅰ . Linux 軟件包管理器 yum
01 安裝軟件
在 Linux 下安裝軟件并不像 Windows 下那么方便,最通常的方式是去下載程序的源代碼并進行編
譯,從而得到可執行程序。
正是因為太麻煩,所以有些人就把一些常用的軟件提前編譯好并做成軟件包,放到服務器上。
你只需要通過包管理器,就可以輕而易舉地獲取到這個編譯好的軟件包,直接無腦安裝。
02 安裝軟件的方式
Centos 中安裝軟件分為三種方式:① 源碼安裝 ② rpm 包安裝 ③ yum 安裝
源碼安裝:
源碼安裝就相當于我把項目源代碼交給用戶,讓用戶自己編譯
rpm 包安裝:
可以理解為 Linux 下的安裝包,但下載好 rpm 包后想安裝還需要用到 rpm 命令,比較麻煩,而且 rpm 包安裝不會幫你解決依賴關系
yum 安裝:
我們剛才講的安裝方式都不簡單,如果只有源碼和 rpm 包這兩種安裝方式,就連開發者用起來都頭大,那更別說用戶了。
于是 Linux 就推出了一個簡單的集成化安裝方案?——?yum?安裝。
yum?安裝最大的好處顯而易見,不用編譯源碼,且不用解決軟件的依賴關系。
03 試著安裝一款軟件
有一個叫 sl 的小工具,這個工具是可以在命令行跑 "火車頭" 的軟件。
在大家的系統中默認情況下是沒有這個軟件的,現在正好可以來試試用?yum?安裝:
# yum install sl
此時我們輸入?sl?看看效果如何:
由此可見,用?yum?安裝軟件非常de簡單,下面我們來仔細講解一下?yum?。
04 yum 指令
我們要安裝別人的軟件,需要做的準備工作:
① 需要別人先把代碼給我編譯成可執行程序。
② 需要有人將編好的軟件,放在用戶能下載的地方
在 Linux 也是一樣的!以手機應用市場為例:
你手機上的 APP 是屬于客戶端還是服務器?
手機上的 APP 實際上是客戶端,而不是服務器。云服務器相信大家并不陌生,我們所用的 XShell 其實就是一個客戶端,我們登陸的是遠端的服務器。
總結:yum?就類似于手機上的應用市場。
既然要安裝軟件,我們得知道軟件的名字是什么,如果我們不知道軟件叫什么那么自然也沒法裝。
這就是為什么手機應用市場有應用推薦這個功能,按類別去給你推薦軟件供你下載。
然而 Linux 下我們可以通過?yum?list?指令去執行類似于手機應用市場的 "軟件推薦" 功能:
yum list
05 卸載軟件 yum remove
yum?既然能安裝軟件,自然也是能卸載軟件的。
# yum remove [目標]
06 yum 源
yum?在下載時是怎么知道去哪里搜的呢?
因為?/etc/yum.repos.d?目錄下存有配置文件:
不是所有人的 Linux 上面的?yum?源都是國內的鏈接。
如果你不是國內的,或者發現安裝軟件特別慢,建議大家更新一下?yum?源。
07 文件上載工具:lrzsz
Irzsz:一款可以輕松地將 Window 的文件上載到 Linux 的神器。
如果你想把 Windows 下的東西傳到 Linux 下,有了這個工具就可以直接拖拽
Ⅱ . Vim 編輯器
01 什么是 Vim
它是一個編輯器!只能用來寫代碼,編譯 vim 也做不到,有其他工具幫我們做。
既然只能用來寫代碼,那我們為什么不用 nano 記事本呢,不都一樣嗎?
當然不一樣,Vim 功能強大,是一個多模式的編輯器。因為過于強大,學習成本固然較高。
你可以輸入?vim??確認一下你有沒有安裝過 vim,若顯示??bash: vim: command not found?,
那就說明還沒有安裝 vim,我們用剛剛學習的?yum 安裝一下即可
02 vim 的使用
我們先創建一個 code.c 源文件:
$ touch code.c
隨后輸入?vim?跟上文件名,就可以用 vim 編輯器打開該文件了:
$ vim code.c
03 默認模式、底行模式和插入模式
進入之后,此時你會發現是輸入不了任何東西的:
因為第一次打開 vim 時的命令模式為?"默認模式"
如果我們現在什么都沒干,想退出 vim,我們可以按下?shift + 冒號?,此時:
此時該模式我們稱之為?"底行模式",此時如果你想退出 vim,在該模式下按一個?q?即可。
由于此時什么都沒有寫,我們按?q?退出。如果寫了東西并且想保存并退出,我們可以按?wq?
我們剛才進去 vim 之后時輸入不了任何東西的,這是因為處于默認模式。
當我們按下?i?鍵(進入了?"插入模式"?)后左下角會顯示 :
此時我們就可以正常打字了:
如果想退出,我們要輸入鍵盤上的?Esc?按鍵 ,此時再按冒號就可以回到底行模式:
當然,如果你想從底行模式再回到命令模式,也是使用?Esc?就可以回去。
退出去之后我們來?cat?一下看看我們剛剛寫的內容:
總結:任何模式想回到命令模式,無腦?Esc?即可。
Ⅲ . Vim 文本批量化操作
01 復制和粘貼(yy & p)
指令 | 操作 |
yy | 復制光標指定的當前行內容 |
p | 粘貼 yy 復制的內容,默認粘貼到當前行后面(可光標指定) |
在文本操作的時候我們可能會需要對文本進行批量化操作,比如刪除、復制粘貼等功能,
這些在插入模式下是比較難做到的,我們一般會在命令模式下進行文本批量化操作。
操作演示:文本的復制和粘貼,如果我們想復制下面的?printf?代碼,我們可以:
在光標所在行?yy?進行復制,隨后你可以把光標移到你想粘貼的位置按?p?進行粘貼,直接按?p?默認在?yy?復制行的下一行粘貼。你按幾次?p?就會粘貼幾次。
02 批量化復制和粘貼(nyy & np)
指令 | 操作 |
[n]?yy | 復制光標指定的當前行(包括當前行以內的)n 行內容 |
[n]?p | 粘貼 n 份 yy 復制的內容,默認粘貼到當前行后面(可光標指定) |
如果我想粘貼 50 次,我難道要按 50次?p?嗎?
當然不用,我們可以使用?批量化粘貼?的功能:
操作演示:此時輸入如果想粘貼 50 份,我們可以輸入 50p?:
對應的,還有?批量化復制?的功能,如果我們想讓這兩行復制:
我們可以光標選中第一個?printf?并輸入?2yy,此時就復制了包括它本身以內的 2 行內容。
此時我們在?p?一下,我們就可以把這兩行粘貼出來了:
03 剪貼操作(dd & p)
指令 | 操作 |
dd | 剪貼光標指定行內容 |
[n]?dd | 剪貼光標指定行(包括當前行)的 n 行內容 |
?操作演示:將?printf?剪貼到?return 0?后面
dd?也可以當刪除去使用,只要不?p?就等于是刪除的效果了。
04 撤銷操作和收回撤銷(u & Ctrl + R)
指令 | 操作 |
u | 撤銷剛剛的操作 |
Ctrl +?R | 對撤銷進行撤銷(收回 u 撤銷操作) |
操作演示:按?u?撤銷
我想收回剛才的?u?撤銷,怎么辦??Ctrl + R!
對于你的最近兩次的誤操作,你可以使用?u?和?Ctrl + R?在兩個操作之間來回跳轉。
05 光標跳轉(gg & Shift + gg & n + Shift + gg)
指令 | 操作 |
shift +?g | 光標快速定位到文本末尾 |
gg | 光標快速定位到文本的最開始 |
[n] shift +?g | 將光標快速定位到文本的任意 (n) 行 |
為了方便我們講解,我們先創建一個大文本的場景。
當文本一旦大了,我想讓光標快速定位到文本的最尾部,該如何操作?
操作演示:
①?shift +?g?跳轉至文本最后一行
②??gg?跳轉至文本第一行首位置
③ 如果我想定位到第 123?行呢?123?+?shift?+?g?即可!
如果想讓光標跳到當前所在的文本行開頭呢?
指令 | 操作 |
shift +?$ | 光標快速定位到文本行的末尾(我們稱 $ 為 "錨點" ) |
shift +?^ | 光標快速定位到文本行的開始 |
w?/?b | 以單詞為單位移動(warp 與 back) |
?操作演示:
06 方向鍵(HJKL)
我們是可以通過鍵盤上的方向鍵去進行光標移動的。
但是我們是不太推薦用上下左右鍵去進行光標移動的,我們建議用 "HJKL"?
指令 | 操作 |
h | 左 |
j | 下 |
k | 上 |
l | 右 |
為什么建議使用 HJKL?而不使用我們一直習慣的?↑ ↓ ← →?呢?
?因為我們會學一些組合命令,比如批量化注釋,它只能支持用 HJKL。
至于為什么 vim 它的上下左右是這幾個按鍵呢?
老式鍵盤是沒有上下左右鍵的,以前就是那 HJKL 充當 上下左右鍵的
07 一些修改和替換操作(Shift ~ & r & nr)
指令 | 操作 |
shift +?~ | 大小寫快速切換 |
r | 替換光標所在位置的字符 |
[n]?r | 替換光標所在位置開始的 n 個字符 |
我們現在想讓這些字母大小寫互換:
按住?shift?不動 + 波浪號?~? 即可將光標位置字符進行大小寫的轉換。
在想要替換的光標處,先輸入一個?r,然后再輸入你要替換的字符,此時就可以做到修改。
我們甚至還可以批量化修改,在?r?前加上數字。
08 replace 模式
輸入?shift + r?進入 replace 模式:
進入 replace 模式后,光標所在處直接輸入即可替換,你的所有輸入的都會直接替換。
09 刪除和批量化刪除(x & nx)
指令 | 操作 |
x | 刪除當前光標位置字符 |
[n] x | 刪除當前光標位置開始的后n個字符 |
如果我們要刪除,我們可以按 X,如果要批量刪除可以輸入 nX(底行模式下)
Ⅳ . 配置 Vim
01 默認的 Vim 配置
大家有沒有發現好像用起來很不方便
默認的 vim 沒有配置,沒有提示、沒有縮進、沒有行
我們先這里提供一個能夠直接輸入指令一鍵配置的方法,讓大家先能用起來,
至于具體的 vim 配置學習我們會放到后面去講解。
02 一鍵配置
直接復制下面的文字,shift+insert 粘貼到命令行:
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh &&bash ./install.sh