linux 的簡單應用

linux編輯器的使用

vim:

vim是vi的升級版,基本可以分爲三種狀態:命令模式、插入模式、底行模式;

vim的基本操作:

vim test.c     就進入了去全屏編輯畫面,此時是命令模式,你要切換到插入模式纔可以編輯文字;

命令模式:

h j k l分別控制光標的上 、下、左、右移動;按“G”移到文章的最後,“$”移動到光標所在行的行尾,“^”移動到光標所在行的行首;gg進入到文本的開始;

刪除文字:

「 x」:每按一次,刪除光標所在位置的一個字符。

  「 #x 」:例如,「 6x」表示刪除光標所在位置的 “ 後面(包含自己在內) ”6 個字符。

   「 X」:大寫的 X ,每按一次,刪除光標所在位置的 “ 前面 ”一個字符。

  「 #X 」:例如,「 20X」表示刪除光標所在位置的 “ 前面 ”20個字符。

   「 dd」:刪除光標所在行。

  「 #dd 」:從光標所在行開始刪除 # 行

複製:

「 yw」:將光標所在之處到字尾的字符複製到緩衝區中。

  「 #yw 」:複製 #個字到緩衝區

   「 yy」:複製光標所在行到緩衝區。

  「 #yy 」:例如,「 6yy」表示拷貝從光標所在的該行 “ 往下數 ”6行文字。

   「 p」:將緩衝區內的字符貼到光標所在位置。

注意:所有與 “y” 有關的複製命令都必須與 “p” 配合才能完成複製與粘貼功能。

替換:

  「r 」:替換光標所在處的字符。

    「 R」:替換光標所到之處的字符,直到按下「 ESC 」鍵爲止。

撤銷上一次操作:

 「u 」:如果您誤執行一個命令,可以馬上按下「 u 」,回到上一個操作。按多次 “u” 可以執行多次回覆。

更改:

「 cw」:更改光標所在處的字到字尾處

「 c#w 」:例如,「 c3w」表示更改 3 個字

跳到指定的行:

「 ctrl」 + 「g 」列出光標所在行的行號。

[ #G」:例如,「 15G 」,表示移動光標至文章的第 15 行行首。

Ctrl+f    向前翻屏

Ctrl+b   向後翻屏

Ctrl+d   向前翻半屏

Ctrl+u   向後翻半屏

插入模式:

怎麼切換到插入模式呢?在命令行模式下按下字母“i”或“a”即可,按“o”也可以但插入的是一整行;按ESC退出插入模式進入命令模式;

區別:但 i 進入後是指到光標的位置,而 a 是指到光標的下一個位置;

底行模式:

在命令模式下,按shift+:就進入了底行模式,w保存當前文件;wq存盤並退出;q!不存盤強制退出;

A.  列出行號:

「 set nu」:輸入「 set nu 」後,會在文件中的每一行前面列出行號;

B.  調到文件中的某一行:

「 # 」號表示一個數字,在冒號後輸入一個數字,再按回車鍵就會跳到該行了,如輸入數字 5 ,再回車,就會跳到文章的第 5 行。

C.  查找字符:

  「/ 關鍵字」:先按「 / 」鍵,再輸入您想尋找的字符,如果第一次找的關鍵字不是您想要的,可以一直按「 n 」會往後尋找到您要的關鍵字爲止。

 「 ? 關鍵字」:先按「 ?」鍵,再輸入您想尋找的字符,如果第一次找的

關鍵字不是您想要的,可以一直按「 n 」會往前尋找到您要的關鍵字爲止。

/ 和 ?查找有和區別?

/ :spacer.gifwKioL1dKrdOjTvnYAAAIlAGbZ8M412.png

?:wKiom1dKrRPhWQuoAAAI59uwpwU182.png

gcc/g++的使用

編譯的過程:a.預處理(進行宏替換)b.編譯(生成彙編)c.彙編(生成機器可識別的代碼)d.連接(生成可執行文件或庫文件)

預處理(進行宏替換):

預處理過程還會刪除程序中的註釋和多餘的空白字符;預處理指令是以#開頭的代碼行;

例如:gcc –E hello.c –o hello.i

選項 “-E”進行查看 , 該選項的作用是讓 gcc 在 預處理結束後停止編譯過程 。

選項 “-o”是指目標文件 ,“.i” 文件爲已經過預處理的 C 原始程序。

編譯(生成彙編):

gcc首先檢查代碼的規範性,是否有語法錯誤等,檢查無誤後gcc吧代碼翻譯成彙編語言;

把 .i 文件轉換爲.s 文件;

例如: 

gcc –S hello.i –o hello.s

彙編的過程:(生成機器可識別的代碼)

把 .s 文件轉爲目標文件.o;

gcc -C test.s -o test.o;

連接(生成可執行文件或庫文件)

gcc test.o -o test;

gdb(linux調試器)使用

gcc -g test.c -o test;

gdb test;

退出:ctrl+d或quit;

list 1:從第一行開始列出十行;可以按n繼續上次操作;

r 或run :運行程序。

s 或step :進入函數調用

breaktrace( 或bt) :查看各級函數調用及參數

info (i) locals :查看當前棧幀局部變量的值

info break :查看斷點信息。

finish :執行到當前函數返回,然後挺下來等待命令

print(p) :打印表達式的值,通過表達式可以修改變量的值或者調用函數

set var :修改變量的值

quit :退出gdb

break(b) 行號:在某一行設置斷點

break 函數名:在某個函數開頭設置斷點

continue( 或c) :從當前位置開始連續而非單步執行程序

run( 或r) :從開始連續而非單步執行程序

delete breakpoints :刪除所有斷點

delete breakpoints n :刪除序號爲 n的斷點

disable breakpoints :禁用斷點

enable breakpoints :啓用斷點

info( 或i) breakpoints :參看當前設置了哪些斷點

display 變量名:跟蹤查看一個變量,每次停下來都顯示它的值

undisplay :取消對先前設置的那些變量的跟蹤

until X 行號:跳至 X行

直接回

n 或 next :單條執行。

p 變量:打印變量值。

ctags(linux代碼查看)工程常用使用

ctags -R : 在當前目錄下建立索引。

ctrl + ]:跳轉到函數或變量的定義處。

ctrl + T : 跳轉至上級


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章