Linux Linux下常用工具

2021-09-19 09:37:10 字數 3522 閱讀 5721

0)三種常用模式:命令模式(command mode),插入模式(insert mode),底行模式(last line mode)

命令模式: 控制螢幕游標的移動,字元的刪除,移動複製某區段

及進入插入模式下,或者到底行模式下。

插入模式:只有在插入模式下,才能做文字輸入,按[esc]鍵可回到命令模式。

底行模式:檔案儲存或者退出,也可以進行檔案替換,找字串,列出行號等操作。

1)vim的基本操作:

命令模式——————插入模式(輸入a/i/o)

插入模式——————命令模式(輸入esc)

命令模式——————底行模式(輸入:)

2)vim三種常見模式命令集:

a.插入模式:

按【i】 進入插入模式後,並從當前游標所在位置開始輸入檔案

按【a】進入插入模式後,並從當前游標所在位置下乙個位置開始輸入。

按【o】進入插入模式後,從新的一行行首開始輸入。

b.命令模式:

移動游標:h/j/k/l 鍵分別控制游標左,下,上,右移一格。

【g】移至行尾。【gg】進入文字開始。

刪除文字:【x】刪除游標所在位置的乙個字元。

【x】刪除游標所在位置的前面乙個字元。

【dd】刪除游標所在行。【#dd】從游標所在行開始刪除#行

複製撤銷:【yw】複製游標所在處到字尾的字元到緩衝區。

【yy】複製游標所在行到緩衝區。 【p】將緩衝區內的字元貼到游標所在位置。

【u】回到上乙個操作。【crtl+r】撤銷的恢復。

c.底行模式:

【set nu】:列出行號。

【w】儲存檔案

【q】退出檔案。【q!】強制退出。【wq】儲存且退出

用法:gcc 【選項】 要編譯的檔案【選項】【目標檔案】

例如我們寫乙個簡單的hello,world程式

[lywd@localhost test]$ cat test.c

#includeint main()

在linux下執行如下命令;gcc test.c -o test,並檢視可執行檔案執行結果

[lywd@localhost test]$ gcc test.c -o test

[lywd@localhost test]$ ls

test test.c

[lywd@localhost test]$ ./test

hello world[lywd@localhost test]$

上述命令將test.c直接編譯成乙個可執行檔案並且改名為test,其實也可以gcc test.c即不指定輸出名,則生成a.out檔案。

實質上,上述編譯過程是分為四個階段進行的,即預處理(也稱預編譯,preprocessing)、編譯(compilation)、彙編 (assembly)和連線(linking)。

預編譯:gcc -e test.c -o test.i 在本例中,預處理結果就是將stdio.h 檔案中的內容插入到test.c中了。

編譯:gcc -s test.c -o test.s 預處理之後,可直接對生成的test.i檔案編譯,生成彙編**.

彙編:gcc -c test.c -o test.o對於上一小節中生成的彙編**檔案test.s,gas彙編器負責將其編譯為目標檔案.

連線: gcc test.o -o test gcc聯結器是gas提供的,負責將程式的目標檔案與所需的所有附加的目標檔案連線起來,最終生成可執行檔案。附加的目標檔案包括靜態連線庫和動態連線庫。 對於上一小節中生成的test.o,將其與c標準輸入輸出庫進行連線,最終生成程式test

執行./test 可以看到hello world

gdb 檔名: 進入除錯

退出: ctrl+d 或者 quit

除錯命令:list 顯示linenum行周圍的程式。

list 顯示函式function周圍的源**。

r:執行程式。 n:單條執行。 s:進入函式呼叫。

break(b):在b行處設定斷點。

break(function):在函式function處設定斷點。

info break: 檢視斷點資訊。

continue:從當前位置開始連續而非單步執行程式。

delete breakpoints: 刪除所有斷點。

例如剛才的hello world程式 我們加上-g選項 進入除錯

[lywd@localhost test]$ gcc -g test.c -o test.a 

[lywd@localhost test]$ ls

test test.a test.c

[lywd@localhost test]$ gdb test.a

(gdb) r

starting program: /home/lywd/workspace/test/test

hello world[inferior 1 (process 8124) exited normally]

missing separate debuginfos, use: debuginfo-install glibc-2.17-222.el7.x86_64

(gdb) list 2

1 #include2 int main()

3 (gdb)

先看一下makefile的書寫規則:

目標(target):目標檔案1 目標檔案2

gcc -o 欲建立的執行檔案 目標檔案1 目標檔案2

例如之前的hello world程式,我們就可以這樣寫

test:test.o

gcc test.o -o test

上面的檔案test,它依賴著test.o.執行make命令,就會生成test可執行檔案。 那麼make是如何工作的呢:

1、make會在當前資料夾下找名字叫「makefile」或「makefile」的檔案。

2、假設找到,它會找檔案裡的第乙個目標檔案(target),在上面的樣例中,他會找到「test」這個檔案,並把這個檔案作為終於的目標檔案。

3、假設test檔案不存在,或是test所依賴的後面的 .o

檔案的檔案改動時間要比test這個檔案新,那麼,他就會執行後面所定義的命令來生成test這個檔案。

4、假設test所依賴的.o檔案也不存在,那麼make會在當前檔案裡找目標為.o檔案的依賴性,假設找到則再依據那乙個規則生成.o檔案。(這有點像乙個堆疊的過程)

5、當然,你的c檔案和**件是存在的啦,於是make會生成 .o 檔案,然後再用 .o

檔案生命make的終極任務,也就是執行檔案test了。

Linux Linux 常用工具

目錄 yum 軟體包管理工具 vimgcc g 編譯器 linux偵錯程式gdb make makefile 專案自動化構建工具 重點 git 專案版本管理工具 git精華 分支管理 檢視軟體包 yum list 檢視具體安裝包 yum list grep pack name 檢查linux是否聯網...

ubuntu下常用工具

sudo apt get install npm 使用方法 npm install modulenames 安裝nodejs的依賴包 npm install modulenames 0.0 安裝指定版本的依賴包 npm install 在package.json所在目錄下執行,根據dependenc...

linux 下常用工具

vim是類似於vi的著名的功能強大的,高度可定製的的文字編輯器,在vi的基礎上改進和增加了很多特性,是乙個自由軟體,其在 補全,編譯錯誤跳轉等程式設計的功能特別豐富,在程式設計師中被廣泛應用。普通模式 完成普通的基本命令 插入模式 向檔案中插入資料 底行模式 退出 儲存編輯 vim設定 模式切換 普...