版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、LINUX系統(tǒng)工具Vim的使用1、三種模式相互轉(zhuǎn)換末行模式輸入模式命令行模式用戶輸入vi輸入i或o或a輸入shift+;輸入ESC輸入ESC1、解壓縮包用make 測(cè)試(管理員下)make test2、vi命令i、o、a插入(append、insert、open):q退出:help version當(dāng)前版本:set nocp恢復(fù)默認(rèn)的程序:help在線幫助信息hjkl左移、下移、上移、右移Ctrl+D將光標(biāo)向下移動(dòng)半個(gè)窗口Ctrl+U將光標(biāo)向上移動(dòng)半個(gè)窗口!強(qiáng)制執(zhí)行help 命令顯示相關(guān)的命令幫助3.31、命令行模式如果不是合法命令,就會(huì)發(fā)出報(bào)警聲。I切換到輸入模式,在i命令之后輸入的內(nèi)容都插在
2、光標(biāo)位置之前,光標(biāo)后的文本相應(yīng)的向右移動(dòng)。如按enter鍵,就插入新的一行或者換行。o切換到輸入模式,且從首行開始插入新的一行。a切換到輸入模式,在該命令之后的字符都插入到光標(biāo)之后:末行模式,最后行出現(xiàn)冒號(hào),光標(biāo)在冒號(hào)后閃爍0光標(biāo)移到本行開頭h光標(biāo)左移一格l光標(biāo)右移一格j光標(biāo)上移一格k光標(biāo)下移一格$光標(biāo)移到本行行尾n光標(biāo)下移n行nG光標(biāo)移到第n行X刪除光標(biāo)所在位置的前一個(gè)字符x刪除光標(biāo)所在位置的字符nx刪除光標(biāo)所在位置及其后的n 個(gè)字符nX刪除光標(biāo)所在位置及前n個(gè)字符dd刪除光標(biāo)所在行ndd刪除光標(biāo)之后n行R修改光標(biāo)所在位置的字符,可以一直替換,直到按下Esc鍵r修改光標(biāo)所在字符/name查找
3、光標(biāo)之后name的字符串,系統(tǒng)會(huì)自動(dòng)查找,并突出顯示所有找到的字符串,并轉(zhuǎn)到第一個(gè)找到的字符串;如果要繼續(xù)向下查找,可以按n鍵;向上查找按N鍵?name查找光標(biāo)之后name的字符串,與“/”類似,但它是向上查找name字符串查找“”,并將光標(biāo)移到“”處yy復(fù)制所在行nyy復(fù)制光標(biāo)之后n行P將復(fù)制的內(nèi)容粘貼到光標(biāo)所在位置u撤銷最近一次操作,并恢復(fù)操作結(jié)果,可多次使用u來恢復(fù)已經(jīng)進(jìn)行了多步的操作U撤銷當(dāng)前進(jìn)行的所有的操作(文件自上次保存到現(xiàn)在的操作)3.32.末行模式w寫文件,將編輯的內(nèi)容保存到文件系統(tǒng)w!如果是只讀文件,強(qiáng)制寫入文件q!退出vi,但是文件內(nèi)容有修改的話,并不保存修改wq!保存內(nèi)容
4、并退出vi/查找匹配的字符串,在編輯時(shí),要查找包含某個(gè)字符串,可以使用“/字符串”,會(huì)查找所有的,轉(zhuǎn)到第一個(gè)字符n加載新文件,e創(chuàng)建新文件3.41.編輯多個(gè)文件vi文件1文件2 文件N:n(next)進(jìn)入下一個(gè)文件:rew進(jìn)入首文件:args當(dāng)前緩沖區(qū)所存的文件的文件名3.42.分割窗口:split上下分割(可加文件名):vsplit左右分割(可加文件名):ctrl+w光標(biāo)到下一個(gè)窗口:close:quit關(guān)閉窗口3.43用戶命令模式Vimdiff 文件名 文件名 左右分割vi -r 文件名斷電恢復(fù)3.44.定義新命令:ab字符一字符串一:imap快捷鍵需要替換的字符串3.4.5.文本整體移動(dòng)
5、默認(rèn)為8,用set進(jìn)行設(shè)置n,n >>右n,n <<左:nmkn,原目的行;m,(move)移動(dòng);k,第k行下方:n,nmkn,n,原目的行;m,(move)移動(dòng);k,第k行下方3.5高級(jí)使用Vi環(huán)境(m):set功能選項(xiàng)(輸入全拼)首先使用.bash_profile文件,每個(gè)文件可以有自己的.exrc配置文件。aiautoindent選項(xiàng)把每一行縮排為與其上一行的行首對(duì)齊,默認(rèn)為offapautoprint默認(rèn)為onsmshowmatch在輸入右圓括號(hào)時(shí),顯示匹配的左括號(hào)。默認(rèn)為offnmnumber顯示行號(hào)。默認(rèn)為offWm=nwrapmargin定義右邊距。n為整
6、數(shù)。默認(rèn)為0reportreport編輯操作改變的次數(shù),導(dǎo)致信息出現(xiàn)在狀態(tài)行。默認(rèn)為5smdshowmode給出相關(guān)命令時(shí),顯示“插入”。默認(rèn)為offwsWord search在查找期間遇到結(jié)束符時(shí),繞道開頭繼續(xù)查找。默認(rèn)為oneberrorbells命令錯(cuò)誤會(huì)報(bào)警。默認(rèn)為offredaw發(fā)生變化時(shí)刷新。默認(rèn)為onwarn修改緩沖區(qū)內(nèi)容后未保存,顯示警告信息。默認(rèn)為onfl輸入無效命令,發(fā)出聲音;flash不再發(fā)出;noflash發(fā)出。默認(rèn)onlistvi中的Tab用“1”表示,用“$”表示每行結(jié)束。icignorecase區(qū)分大小寫搜索,noignorecase不區(qū)分大小寫。默認(rèn)為offwa
7、rp較長(zhǎng)行。wrap后自動(dòng)換行,nowrap不自動(dòng)換行。默認(rèn)為On3.5.2語法高亮顯示/root/.vimrc對(duì)文件進(jìn)行高亮設(shè)置的配置文件。exportTERM=xterm-color3.5.3.正則表達(dá)式斜杠/定界符,表示表達(dá)式的開始和結(jié)束句點(diǎn).匹配任意單個(gè)字符,該字符可以代替其后任何單個(gè)字符。/s.d/,點(diǎn)代表任意字符;/.ping/,代表任意字符。方括號(hào)用來表示匹配括號(hào)中的任意一個(gè)字符,其中需要指出的是,在括號(hào)中出現(xiàn)“-”表示一段范圍,如a-z表示可以匹配到所有小寫字母,a-zA-Z可以匹配小寫和大寫,0-9可以匹配0-9的任意數(shù)字。除外,表示匹配除括號(hào)中字符的所有字符,取括號(hào)中字符的
8、補(bǔ)集。例如,/taeoik/可以匹配到tak、tik、tek等字符;/bookpu.k/可以匹配到boook、bokek、boulk等字符;/pa-z.s/可以匹配到paus、pkks、pu7s、prss等字符;/715ui9h/匹配到71h/7uh/7ih;/k0-9k/匹配到k9k、k7k、k3k等字符;/ka-zj/匹配到kZj、kSj、k%j、k6j等字符。唯獨(dú)不能匹配到中間字符是小寫字母的字符串。星號(hào)*匹配0個(gè)或多個(gè)字符,如,/ab*c/匹配到abc、abbbbbc、akloic、a*95c等字符;/a-z*/匹配任意以小寫字母開頭的句子、單詞或字符串;/t*ing/匹配到tklin
9、g、tping、t56ing。反斜杠轉(zhuǎn)義字符,把緊跟其后的第一個(gè)原字符當(dāng)做普通文字對(duì)待,除第一個(gè)以外都保持其原來的含義。/sound*/可匹配到包含sound*的行;/ba-zk/匹配含有b-a-zk/;/s*aa-z*ing/匹配到s*aissing、s*akddssding、s*ajkoplling等。<>匹配所有括號(hào)中的單詞,不僅表示每行包含該文字符即可,而要包含單詞。<wth>表示所有行中包含單詞wth的行;<sum>表示所有行中包含sun的行。匹配一行的開始。/f/表示匹配所有以f作為開頭的行;“#/a-z/”表示匹配所有以#作為一行開頭。并且第二
10、個(gè)字符為小寫的行。$符號(hào)$匹配一行的結(jié)束,其使用格式是在指定的字符后面加$行。如,/wth$/,表示所有以wth字符結(jié)尾的行;/A-Z$/表示匹配所有以大寫字母結(jié)尾的行。由于正則表達(dá)式必須與定位命令、全局命令一塊兒使用,才能顯示其強(qiáng)大。3.5.4行號(hào)和范圍確定光標(biāo)。指明行號(hào)。末行模式下。n1,n2n1行到n2行.光標(biāo)所在行%最后一行$全選。第一行到最后一行+n相對(duì)當(dāng)前行,“.,.+10”向后的10行-n相對(duì)當(dāng)前行,“.,. - 5”向前的5行3.5.5全局命令1.addr g /字符串/ 命令讓系統(tǒng)在指定的行中進(jìn)行搜索字符串所在行,使用命令操作。g:全局,對(duì)包含字符串的指定行進(jìn)行相應(yīng)的命令操作
11、,通常有:p(顯示)、g(替換)、d(刪除)格式中的g表示進(jìn)行對(duì)選定的行進(jìn)行操作;末行的g表示替換。2. 替換addr s /源字符串/目的字符串/ 選項(xiàng)S:表示替換工作。選項(xiàng)表示對(duì)字符串操作的類型,當(dāng)省略選項(xiàng)時(shí),對(duì)每行第一個(gè)匹配串進(jìn)行替換。有:g:對(duì)全局的字符串替換、c:對(duì)全局要替換的字符進(jìn)行確認(rèn)、p:將替換的結(jié)果逐行顯示(ctrl+L可恢復(fù))。命令操作說明g/字符串/p顯示所有帶有“字符串”的行g(shù)!/字符串/p顯示所有不帶有“字符串”的行n1,n2g/字符串/p顯示從n1到n2中,所有帶“字符串”行g(shù)/字符串/d刪除所有帶有“字符串”的行g(shù)!/字符串/d刪除所有不帶有“字符串”的行g(shù)/字符
12、串 1/s/字符串2/用“字符串2”全文替換“字符串1”,但每行只替換第一個(gè)“字符串1”g/字符串 1/s/字符串 2/g用“字符串2”全文替換“字符串1”s/字符串1/字符串2用“字符串2”替換當(dāng)前行第一個(gè)“字符串1”s/字符串1/字符串2/g用“字符串2”替換當(dāng)前行所有“字符串1”%s/字符串1/字符串2/用“字符串2”全文替換“字符串1”%s/字符串1/字符串2/g用“字符串2”全文替換“字符串1”g/字符串1/s/字符串2/字符串3/g表示在所有包含“字符串1”的行中,把“字符串2”用“字符串3”代替3.5.6.執(zhí)行shell命令 使用vi時(shí),執(zhí)行shell程序的方法通常有3種:返回式
13、、退出式、執(zhí)行式。1、 返回式。末行模式sh輸入shell命令exit(退出shell)。2、 退出式。末行模式!command回車輸入shell命令(加?。┗剀嚕ㄍ顺鰏hell)。3、 執(zhí)行式。末行模式r輸入shell命令回車回車。軟件開發(fā)工具GCC7.4.編譯基礎(chǔ)流程和選項(xiàng) 四個(gè)步驟:預(yù)處理(pre-processing)、編譯(compiling)、匯編(assembling)、連接(linking)。鏈接C、C+等源程序生成可執(zhí)行文件編譯編譯后生成的代碼(.s、.S等)匯編生成的目標(biāo)文件.o匯編預(yù)編譯后生成文件(.i、.ii等)預(yù)編譯在處理過程中,C預(yù)編譯器首先擴(kuò)展宏定義和相應(yīng)的頭文件
14、,在編譯階段根據(jù)源文件的指令創(chuàng)建匯編語言代碼;然后使用匯編器創(chuàng)建計(jì)算機(jī)可讀的目標(biāo)文件代碼,每個(gè)源文件代碼都會(huì)創(chuàng)建一個(gè)目標(biāo)代碼;在編譯最后一個(gè)階段,連接器搜索指定的函數(shù)庫(kù),找到程序中使用的函數(shù),并將這些函數(shù)的目標(biāo)代碼和所有的源文件目標(biāo)代碼合并在一起。編譯過程中,使用合適的編譯選項(xiàng),可以控制編譯過程,最后生成可執(zhí)行。GCC支持的編譯源文件的后綴及解釋:后綴名對(duì)應(yīng)的語言種類后期可能進(jìn)行的操作.cC語言源程序預(yù)處理、編譯、匯編、鏈接.C / .cc / .cxxC+語言源程序預(yù)處理、編譯、匯編、鏈接.mObjective-C語言源程序預(yù)處理、編譯、匯編、鏈接.i預(yù)處理后的C文件編譯、匯編、鏈接.ii預(yù)
15、處理后的C+文件編譯、匯編、鏈接.s / .S匯編語言源程序匯編、鏈接.o目標(biāo)文件程序鏈接.a / .so編譯后的庫(kù)文件.h預(yù)處理所需的文件GCC編譯器使用的主要格式為:GCC選項(xiàng) 要編譯的文件 選項(xiàng)目標(biāo)文件如:GCC -E hellogcc.c-o hellogcc.i7.4.1.預(yù)處理過程就是要對(duì)源程序中出現(xiàn)的偽指令(以#開頭;宏定義、條件編譯、頭文件包含、特殊符號(hào))和特殊字符進(jìn)行處理的過程。其具體過程就是把包含“#”的文件插入原文中,將宏展開,根據(jù)條件編譯命令選擇要使用的代碼,把源文件變?yōu)橐粋€(gè)沒有宏定義、沒有條件編譯指令、沒有特殊字符的文件,最后將代碼生成一個(gè) .i 的文件中,等待下一步
16、處理過程。如程序hellogcc.c:gcc -E hellogcc.c -o hellogcc.i7.4.2.程序編譯過程主要目標(biāo)是用預(yù)處理過程產(chǎn)生的指令生成匯編語言代碼。新文件中只包含常量、變量以及關(guān)鍵字的信息。GCC編譯器首先檢查代碼的規(guī)范性、可讀性以及是否存在錯(cuò)誤,檢查無誤后,把C/C+代碼或者 .i 文件翻譯成匯編代碼。如程序hellogcc.i:gcc -S hellogcc.i -o hellogcc.s7.4.3.匯編過程把匯編代碼翻譯成格式正確的機(jī)器代碼。在匯編語言中,用助記符代替操作碼,用地址符號(hào)代替地址碼,因此,使用匯編語言編寫的程序,機(jī)器不能直接識(shí)別,要由一種程序?qū)R編
17、語言翻譯成機(jī)器語言,這種程序叫匯編程序,GCC是系統(tǒng)軟件中可以進(jìn)行匯編處理的系統(tǒng)軟件。如程序hellogcc.s:gcc -c hellogcc.s -o hellogcc.o7.4.4.鏈接過程將上步生成的一個(gè)或多個(gè) .o 目標(biāo)文件盒函數(shù)庫(kù)文件結(jié)合起來,最終生成在特定平臺(tái)上的可執(zhí)行文件。函數(shù)庫(kù):靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)。函數(shù)庫(kù)文件可執(zhí)行文件鏈接器目標(biāo)文件.o目標(biāo)文件.o目標(biāo)文件.o如程序hellogcc.o:gcc -o hellogcc hellogcc.c7.5GCC編譯高級(jí)操作及選項(xiàng)7.5.1.常規(guī)操作選項(xiàng)選項(xiàng)解釋-X language輸入文件的語言language-E只進(jìn)行預(yù)處理-S只進(jìn)行編譯
18、-c只進(jìn)行匯編-o file輸出的文件指定到file中,可以輸出匯編文件、目標(biāo)文件、可執(zhí)行文件-v打印出編譯器內(nèi)部編譯各個(gè)過程的命令行信息和編譯器版本7.5.2.警告提示功能對(duì)程序結(jié)構(gòu)的診斷信息,不一定有錯(cuò)誤,而是存在風(fēng)險(xiǎn),可能存在錯(cuò)誤。選項(xiàng)解釋-fsyntax-only檢查語法錯(cuò)誤,不產(chǎn)生輸出信息-w禁止所有警告信息-Wunused如果某個(gè)局部變量除了聲明就沒再使用,或者聲明了靜態(tài)函數(shù)但是沒喲定義,或者某條語句的運(yùn)算結(jié)果顯然沒有使用,編譯器就發(fā)出警告-Wmain把main函數(shù)聲明或定義成奇怪的類型-Werror視警告為錯(cuò)誤,出現(xiàn)任何警告就放棄編譯-Wredundant-decls同一個(gè)可見域
19、定義多次聲明-Wall允許GCC提供所有有用的報(bào)警信息-pedantic-error允許發(fā)出ANSI C標(biāo)準(zhǔn)所列出的全部信息如程序hellogcc.c:gcc -Wall -o hellogcc hellogcc.c7.5.3.代碼調(diào)試產(chǎn)生調(diào)試信息,方便后面gdb和gprof工具的調(diào)試和執(zhí)行。選項(xiàng)說明-g產(chǎn)生調(diào)試信息,GDB能夠使用這些調(diào)試信息對(duì)程序進(jìn)行排錯(cuò)-pg產(chǎn)生額外代碼,輸出profile信息,供分析程序gprof使用-gdwarflevel n生成調(diào)試信息,同時(shí)用level指出需要多少信息,默認(rèn)的level值是2,level 1輸出最少量的信息,僅包括函數(shù)和外部變量的描述,沒有局部變量
20、和行號(hào)信息。Level3包含更多的信息,出現(xiàn)的所有宏定義,支持宏擴(kuò)展。7.5.5.鏈接功能-llibrary搜索library的庫(kù)文件,連接器在標(biāo)準(zhǔn)搜索目錄中尋找這個(gè)庫(kù)文件,庫(kù)文件的真正名字是library.a,連接器會(huì)把它當(dāng)做文件名準(zhǔn)確引用這個(gè)文件。但是即使不使用這個(gè)選項(xiàng),GCC也把默認(rèn)的一些庫(kù)鏈接進(jìn)去。搜索目錄除了一些系統(tǒng)標(biāo)準(zhǔn)目錄外,還包括用戶以“-L”選項(xiàng)指定的路徑-nostartfiles不連接系統(tǒng)標(biāo)準(zhǔn)啟動(dòng)文件,而標(biāo)準(zhǔn)庫(kù)文件仍然正常使用-object-file-name如果某些文件沒有特別明確的后綴,GCC就認(rèn)為他們生成的是目標(biāo)文件或庫(kù)文件-nostdilb不連接系統(tǒng)標(biāo)準(zhǔn)啟動(dòng)文件盒標(biāo)準(zhǔn)
21、庫(kù)文件,只把指定的文件傳遞給連接器-static在動(dòng)態(tài)連接時(shí),阻止連接共享庫(kù)-shared生成一個(gè)共享目標(biāo)文件,它可以和其它目標(biāo)文件連接產(chǎn)生可執(zhí)行文件。只有部分系統(tǒng)支持該選項(xiàng)-I 目錄表示在頭文件搜索路徑中添加用戶自定義的搜索目錄。由于Linux中頭文件都默認(rèn)放到“/usr/include”目錄下,當(dāng)用戶希望添加其他位置的頭文件時(shí),就可以通過“-I dir”選項(xiàng)指定。這個(gè)選項(xiàng)在編譯多個(gè)不在同一個(gè)目錄下的文件時(shí)非常有用-L 目錄在庫(kù)文件的搜索路徑中添加用戶自定義的搜索的目錄名,例如一個(gè)程序在連接時(shí)需要使用在目錄“/home/wth”下libwth.so 的庫(kù),用戶只需要在gcc命令中加入“-L/home/wth/libwth.so”如程序hellogcc.c,/home/wth目錄下的wenjian2.h。把wenjian2.h在前,hellogcc.c 在后:gcc -I /home/wth -o hellogcc hellogcc.c. / hellogcc7.6.1.程序性能測(cè)試gprof(與GCC協(xié)同工作)執(zhí)行完畢后,在當(dāng)前目錄下生成gmon.out文件,gprof通過這個(gè)文
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度國(guó)際貨運(yùn)代理服務(wù)合同標(biāo)準(zhǔn)版4篇
- 二零二五年度大數(shù)據(jù)分析服務(wù)合同示范文本3篇
- 廠房租賃合同
- 2025年度廚師餐飲行業(yè)社會(huì)責(zé)任合同4篇
- 2025年中國(guó)水稻機(jī)制造行業(yè)市場(chǎng)深度分析及投資戰(zhàn)略規(guī)劃報(bào)告
- 2025年度別墅租賃退房服務(wù)合同(含家具家電清單)4篇
- 二零二五年度大院教育租賃合同:包含教學(xué)設(shè)施及師資保障4篇
- 二零二五年度存量房買賣合同(帶購(gòu)房貸款擔(dān)保版)4篇
- 隧道工程課程設(shè)計(jì)紙
- 2020-2025年中國(guó)牙科連鎖行業(yè)發(fā)展趨勢(shì)及投資前景預(yù)測(cè)報(bào)告
- Neo4j介紹及實(shí)現(xiàn)原理
- 銳途管理人員測(cè)評(píng)試題目的
- 焊接材料-DIN-8555-標(biāo)準(zhǔn)
- 工程索賠真實(shí)案例范本
- 重癥醫(yī)學(xué)科運(yùn)用PDCA循環(huán)降低ICU失禁性皮炎發(fā)生率品管圈QCC持續(xù)質(zhì)量改進(jìn)成果匯報(bào)
- 個(gè)人股權(quán)證明書
- 醫(yī)院運(yùn)送工作介紹
- 重癥患者的容量管理
- 學(xué)習(xí)游戲?qū)χ行W(xué)生學(xué)業(yè)成績(jī)的影響
- 小學(xué)四年級(jí)上冊(cè)遞等式計(jì)算100題及答案
- 新版?zhèn)€人簡(jiǎn)歷Excel表格模板共2聯(lián)
評(píng)論
0/150
提交評(píng)論