摘要:按恢復(fù)剛剛的撤銷(xiāo)。按將光標(biāo)所在位置開(kāi)始往后的個(gè)字刪除,并進(jìn)入插入模式。跳至指定的行列出光標(biāo)所在行的行號(hào)。退出,如果無(wú)法離開(kāi),可在后面跟一個(gè)表示強(qiáng)制退出。和默認(rèn)生成的二進(jìn)制程序是動(dòng)態(tài)鏈接的,可以使用指令查看。
通過(guò) yum list 命令可以羅列出當(dāng)前一共有哪些軟件,包由于包的數(shù)目可能非常之多, 這里我們需要使用 grep 命令只篩選出我們關(guān)注的包.
例:
說(shuō)明:
通過(guò) yum, 我們可以通過(guò)很簡(jiǎn)單的一條命令完成安裝.
sudo?yum?install?軟件名
yum 會(huì)自動(dòng)找到都有哪些軟件包需要下載, 這時(shí)候敲 “y” 確認(rèn)安裝,出現(xiàn) “complete” 字樣, 說(shuō)明安裝完成。
注意事項(xiàng)
御卸的命令也很簡(jiǎn)單
sudo?yum?remove?軟件名
vim在我們做開(kāi)發(fā)的時(shí)候,主要解決我們編寫(xiě)代碼的問(wèn)題,本質(zhì)上就是一個(gè)多模式的文本編輯器。
vim最常用的三種模式:命令模式、插入模式、底行模式。
有一點(diǎn)要特別注意,就是你進(jìn)入vim之后,是處于[正常模式],你要切換到[插入模式]才能夠輸入文字。
1)輸入「i」:按“i”進(jìn)入插入模式后是從光標(biāo)當(dāng)前位置開(kāi)始輸入文件。
2)輸入「a」:是從目前光標(biāo)所在位置的下一個(gè)位置開(kāi)始輸入文字。
3)輸入「o」:是插入新的一行,從行首開(kāi)始輸入文字。
輸入「Shift+;」即可,實(shí)際上就是輸入「:」
按左上角的Esc即可
1)w (保存當(dāng)前文件)
2)wq (輸入「wq」,存盤(pán)并退出vim)
3)q! (輸入q!,不存盤(pán)強(qiáng)制退出vim)
移動(dòng)光標(biāo)
1)按「k」:光標(biāo)上移。
2)按「j」:光標(biāo)下移。
3)按「h」:光標(biāo)左移。
4)按「l」:光標(biāo)右移。
5)按「$」:移動(dòng)到光標(biāo)所在行的行尾。
6)按「^」:移動(dòng)到光標(biāo)所在行的行首。
7)按「gg」:移動(dòng)到文本開(kāi)始。
8)按「Shift+g」:移動(dòng)到文本末尾。
9)按「n+Shift+g」:移動(dòng)到第n行行首。
10)按「n+Enter」:當(dāng)前光標(biāo)向下移動(dòng)n行。
11)按「w」:光標(biāo)從左到右,從上到下的跳到下一個(gè)字的開(kāi)頭。
12)按「e」:光標(biāo)從左到右,從上到下的跳到下一個(gè)字的結(jié)尾。
12)按「b」:光標(biāo)從右到左,從下到上的跳到上一個(gè)字的開(kāi)頭
刪除
1)按「x」:刪除光標(biāo)所在位置的字符。
2)按「nx」:刪除光標(biāo)所在位置開(kāi)始往后的n個(gè)字符。
3)按「X」:刪除光標(biāo)所在位置的前一個(gè)字符。
4)按「nX」:刪除光標(biāo)所在位置的前n個(gè)字符。
5)按「dd」:刪除光標(biāo)所在行。
6)按「ndd」:刪除光標(biāo)所在行開(kāi)始往下的n行。
復(fù)制粘貼
1)按「yy」:復(fù)制光標(biāo)所在行到緩沖區(qū)。
2)按「nyy」:復(fù)制光標(biāo)所在行開(kāi)始往下的n行到緩沖區(qū)。
3)按「yw」:將光標(biāo)所在位置開(kāi)始到字尾的字符復(fù)制到緩沖區(qū)。
4)按「nyw」:將光標(biāo)所在位置開(kāi)始往后的n個(gè)字復(fù)制到緩沖區(qū)。
5)按「p」:將已復(fù)制的內(nèi)容在光標(biāo)的下一行粘貼上。
6)按「np」:將已復(fù)制的內(nèi)容在光標(biāo)的下一行粘貼n次。
剪切
1)按「dd」:剪切光標(biāo)所在行。
2)按「ndd」:剪切光標(biāo)所在行開(kāi)始往下的n行。
3)按「p」:將已剪切的內(nèi)容在光標(biāo)的下一行粘貼上。
4)按「np」:將已剪切的內(nèi)容在光標(biāo)的下一行粘貼n次。
撤銷(xiāo)
1)按「u」:撤銷(xiāo)。
2)按「Ctrl+r」:恢復(fù)剛剛的撤銷(xiāo)。
大小寫(xiě)切換
1)按「~」:完成光標(biāo)所在位置字符的大小寫(xiě)切換。
2)按「n~」:完成光標(biāo)所在位置開(kāi)始往后的n個(gè)字符的大小寫(xiě)切換。
替換
1)按「r」:替換光標(biāo)所在位置的字符。
2)按「R」:替換光標(biāo)所到位置的字符,直到按下「Esc」鍵為止。
更改
1)按「cw」:將光標(biāo)所在位置開(kāi)始到字尾的字符刪除,并進(jìn)入插入模式。
2)按「cnw」:將光標(biāo)所在位置開(kāi)始往后的n個(gè)字刪除,并進(jìn)入插入模式。
翻頁(yè)
1)按「Ctrl+b」:上翻一頁(yè)。
2)按「Ctrl+f」:下翻一頁(yè)。
3)按「Ctrl+u」:上翻半頁(yè)。
4)按「Ctrl+d」:下翻半頁(yè)。
跳至指定的行
1)「ctrl」+「g」列出光標(biāo)所在行的行號(hào)。
2) n+「ctrl」+「g」將光標(biāo)移動(dòng)至文章的第n行行首
在使用底行模式之前,記住先按「Esc」鍵確定你已經(jīng)處于命令模式,再按「:」即可進(jìn)入底行模式。
行號(hào)設(shè)置
1)「set?nu」:顯示行號(hào)。
2)「set?nonu」:取消行號(hào)。
保存退出
1)「w」:保存文件。
2)「q」:退出vim,如果無(wú)法離開(kāi)vim,可在「q」后面跟一個(gè)「!」表示強(qiáng)制退出。
3)「wq」:保存退出。
分屏指令
1)「vs?文件名」:實(shí)現(xiàn)多文件的編輯。
2)「Ctrl+w+w」:光標(biāo)在多屏幕下進(jìn)行切換。
執(zhí)行指令
1)「!+指令」:在不退出vim的情況下,可以在指令前面加上「!」就可以執(zhí)行Linux的指令,例如查看目錄、編譯當(dāng)前代碼等。
跳到文件中的某一行
1)「#」:「#」號(hào)表示一個(gè)數(shù)字,在冒號(hào)后輸入一個(gè)數(shù)字,再按回車(chē)鍵就會(huì)跳到該行了,如輸入數(shù)字15,再回車(chē),就會(huì)跳到文章的第15行。
查找字符
1)「/關(guān)鍵字」: 先按「/」鍵,再輸入您想尋找的字符,如果第一次找的關(guān)鍵字不是您想要的,可以一直按「n」會(huì)往后尋找到您要的關(guān)鍵字為止。
2)「?關(guān)鍵字」:先按「?」鍵,再輸入您想尋找的字符,如果第一次找的關(guān)鍵字不是您想要的,可以一直按「n」會(huì)往前尋找到您要的關(guān)鍵字為止。
C和C++在編譯代碼時(shí)一般會(huì)有如下4個(gè)步驟
gcc/g++的語(yǔ)法:
gcc [選項(xiàng)] 要編譯的文件 [選項(xiàng)] [目標(biāo)文件]
gcc –E test.c –o test.i
gcc –S test.i –o test.s
gcc -c test.s -o test.o
gcc test.o -o test
鏈接后生成的可執(zhí)行程序也是二進(jìn)制文件。
函數(shù)庫(kù)一般分為靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)兩種
動(dòng)態(tài)鏈接:
優(yōu)點(diǎn):省空間(磁盤(pán)的空間,內(nèi)存的空間),bin體積小,加載速度快。
缺點(diǎn):依賴(lài)動(dòng)態(tài)庫(kù),程序可移植性較差。
?
靜態(tài)鏈接:
優(yōu)點(diǎn):不依賴(lài)第三方庫(kù),程序的可移植性較高。
缺點(diǎn):浪費(fèi)空間。
gcc和g++默認(rèn)生成的二進(jìn)制程序是動(dòng)態(tài)鏈接的,可以使用file指令查看。
還可以使用ldd指令查看動(dòng)態(tài)鏈接的可執(zhí)行文件所依賴(lài)的庫(kù)
進(jìn)入gdb
指令: gdb?文件名
調(diào)試
1)「run/r」:運(yùn)行代碼(啟動(dòng)調(diào)試)。
2)「next/n」:逐過(guò)程調(diào)試。
3)「step/s」:逐語(yǔ)句調(diào)試。
4)「until?行號(hào)」:跳轉(zhuǎn)至指定行。
5)「finish」:執(zhí)行完當(dāng)前正在調(diào)用的函數(shù)后停下來(lái)(不能是主函數(shù))。
6)「continue/c」:運(yùn)行到下一個(gè)斷點(diǎn)處。
7)「set?var?變量=x」:修改變量的值為x。
顯示
1)「list/l?n」:顯示從第n行開(kāi)始的源代碼,每次顯示10行,若n未給出則默認(rèn)從上次的位置往下顯示.。
2)「list/l?函數(shù)名」:顯示該函數(shù)的源代碼。
3)「print/p?變量」:打印變量的值。
4)「print/p?&變量」:打印變量的地址。
5)「print/p?表達(dá)式」:打印表達(dá)式的值,通過(guò)表達(dá)式可以修改變量的值。
6)「display?變量」:將變量加入常顯示(每次停下來(lái)都顯示它的值)。
7)「display?&變量」:將變量的地址加入常顯示。
8)「undisplay?編號(hào)」:取消指定編號(hào)變量的常顯示。
9)「bt」:查看各級(jí)函數(shù)調(diào)用及參數(shù)。
10)「info/i?locals」:查看當(dāng)前棧幀當(dāng)中局部變量的值。
斷點(diǎn)
1)「break/b?n」:在第n行設(shè)置斷點(diǎn)。
2)「break/b?函數(shù)名」:在某函數(shù)體內(nèi)第一行設(shè)置斷點(diǎn)。
3)「info?breakpoint/b」:查看已打斷點(diǎn)信息。
4)「delete/d?編號(hào)」:刪除指定編號(hào)的斷點(diǎn)。
5)「disable?編號(hào)」:禁用指定編號(hào)的斷點(diǎn)。
6)「enable?編號(hào)」:?jiǎn)⒂弥付ň幪?hào)的斷點(diǎn)。
退出gdb
1)「quit/q」:退出gdb。
依賴(lài)關(guān)系:
文件A的變更會(huì)影響到文件B,那么就稱(chēng)文件B依賴(lài)于文件A。
例如,test.o文件是由test.c文件通過(guò)預(yù)處理、編譯以及匯編之后生成的文件,所以test.c文件的改變會(huì)影響test.o,所以說(shuō)test.o文件依賴(lài)于test.c文件。
依賴(lài)方法:
如果文件B依賴(lài)于文件A,那么通過(guò)文件A得到文件B的方法,就是文件B依賴(lài)于文件A的依賴(lài)方法。
例如,test.o依賴(lài)于test.c,而test.c通過(guò)gcc -c test.c -o,test.o指令就可以得到test.o,那么test.o依賴(lài)于test.c的依賴(lài)方法就是gcc -c test.c -o test.o。
步驟一:
在當(dāng)前目錄下創(chuàng)建一個(gè)名為Makefile/makefile的文件。
步驟二:
編寫(xiě)makefile文件。
編寫(xiě)完makefile文件后保存退出,然后在命令行當(dāng)中執(zhí)行make指令便可以生成可執(zhí)行程序
makefile文件的簡(jiǎn)寫(xiě)
上文makefile文件也可簡(jiǎn)寫(xiě)成如下形式
我們每次重新生成可執(zhí)行程序前,都應(yīng)該將上一次生成可執(zhí)行程序時(shí)生成的一系列文件進(jìn)行清理,清理的指令相同,我們可以把清理的指令也添加到makefile文件中
注意:這里clean的目標(biāo)文件設(shè)置為偽目標(biāo),用.PHONY修飾,偽目標(biāo)的特性是:不管是否更新都要執(zhí)行。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/123679.html
摘要:是系統(tǒng)提供的容器化技術(shù),簡(jiǎn)稱(chēng),它結(jié)合和技術(shù)為用戶(hù)提供了更易用的接口來(lái)實(shí)現(xiàn)容器化。公司結(jié)合和以下列出的技術(shù)實(shí)現(xiàn)了容器引擎,相比于,具備更加全面的資源控制能力,是一種應(yīng)用級(jí)別的容器引擎。 showImg(https://segmentfault.com/img/bVbtPbG?w=749&h=192); 題外話(huà) 最近對(duì)Docker和Kubernetes進(jìn)行了一番學(xué)習(xí),前兩天做了一次技術(shù)...
摘要:環(huán)境基礎(chǔ)開(kāi)發(fā)工具使用軟件包管理器的三板斧查看軟件包安裝軟件卸載軟件和互傳文件的三種模式的轉(zhuǎn)換命令模式插入模式底行模式編譯器使用函數(shù)庫(kù)調(diào)試器使用項(xiàng)目自動(dòng)化構(gòu)建工具軟件包管理器軟件包和軟件包管理器就好比手機(jī)上的和應(yīng)用 ...
摘要:函數(shù)名列出某個(gè)函數(shù)的源代碼,含函數(shù)名上下各五行類(lèi)比調(diào)試或從開(kāi)始連續(xù)而非單步執(zhí)行程序遇到斷點(diǎn)停下。相當(dāng)于中的或單條執(zhí)行。 目錄 一、調(diào)試器gdb 1、可以使用gdb的可執(zhí)行文件生成 2、使用命令 1、開(kāi)始調(diào)試和退出調(diào)試 2、list 3、類(lèi)比vs調(diào)試 4、代碼調(diào)試三劍客 5、變量 6、斷點(diǎn) 二...
閱讀 2035·2023-04-26 01:56
閱讀 3144·2021-11-18 10:02
閱讀 3099·2021-09-09 11:35
閱讀 1341·2021-09-03 10:28
閱讀 3453·2019-08-29 18:36
閱讀 2882·2019-08-29 17:14
閱讀 861·2019-08-29 16:10
閱讀 1642·2019-08-26 13:45