Linux 基礎(chǔ)開發(fā)工具

姓名:張立斐 ? 學號:19020700001? ?學院:電子工程學院?

轉(zhuǎn)自:https://blog.csdn.net/weixin_39121325/article/details/85781878

【嵌牛導讀】Linux 基礎(chǔ)開發(fā)工具

【嵌牛鼻子】Linux?

【嵌牛提問】Linux 如何使用基礎(chǔ)開發(fā)工具焰雕?

【嵌牛正文】

Linux 軟件包管理器 —— yum

軟件包的概念

在Linux下安裝軟件砸喻,通常的辦法是下載到程序的源代碼嚎幸,并進行編譯,得到可執(zhí)行程序

但是這樣太麻煩了济似,于是有些人把一些常用的軟件提前編譯好,做成軟件包(可以理解成Windows上的安裝程序)放在一個服務器上,通過包管理器可以很方便的獲取到這個編譯好的軟件包蚪缀,直接進行安裝

軟件包和包管理器,就好比app和應用商店的關(guān)系

yum(Yellow dog Update恕出,Modified)是Linux下非常常用的一種包管理器椿胯,主要應用在Fedora,RedHat,Centos等發(fā)行版上剃根。

使用yum

輸入指令yum list哩盲,就可看到可以下載的全部軟件(列表很長,就不截圖了)

安裝軟件

輸入指令 sudo yum install 軟件名

yum會自動匹配到你想安裝的軟件并詢問你是否需要下載狈醉,這時候按y確認安裝廉油,當末尾出現(xiàn)complete時,說明安裝完成

實現(xiàn)本地機器和云服務器的文件互傳

先安裝lrzsz這個軟件


安裝完后輸入指令rz -E可選擇可選擇需要從本地機器上傳的軟件


而輸入指令sz+文件名可將云服務器上的文件下載到本地機器指定的文件夾中


Linux 編輯器 —— vim

vim:vim是解決在Linux上代碼的編寫的問題苗傅,本質(zhì)是文本編輯器

特點:多模式的文本編輯器

這里先介紹vim主要的三種模式:命令模式抒线、底行模式、插入模式

vim默認打開的時候所處的模式是命令模式

命令模式切換成插入模式:

i:在當前光標處進入插入模式

a:在當前光標的后一個位置進入插入模式

o:在當前光標處的下一行進入插入模式

vim命令模式命令大全

移動光標

h:左移光標

j:下移光標

k:上移光標

l:右移光標

$:移動到光標所在行的行尾

^:移動到光標所在行的行首

gg:移動到文本開頭

G:移動到文章的最后

n+shift+g:移動到第n行行首

w:光標跳到下個字開頭

e:光標跳到下個字字尾

b:光標回到上個字開頭

nl:光標移到該行的第n個位置

ctrl+b:屏幕往后移動一頁

ctrl+f:屏幕往前移動一頁

ctrl+u:屏幕往后移動半頁

ctrl+d:屏幕往前移動半頁

刪除文字

x:每按一次渣慕,刪除光標所在位置的一個字符

nx:刪除光標所在位置的后面(包括自己)的n個字符

X:大寫的X嘶炭,每按一次,刪除光標所在位置的前面一個字符

nX:刪除光標所在位置的前面的n個字符

dd:刪除光標所在行

ndd:從光標所在行開始刪除n行

復制

yw:將光標所在之處到字尾的字符復制到緩沖區(qū)中

nyw:復制n個字到緩沖區(qū)

yy:復制光標所在行到緩沖區(qū)

nyy:表示拷貝從光標所在的該行往下數(shù)的n行內(nèi)容

p:將緩沖區(qū)內(nèi)的字符貼到光標所在位置逊桦。注意:所有與y有關(guān)的復制命令都必須與p配合才能完成復制與粘貼功能

替換

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

R:替換光標所到之處的字符眨猎,直到按下Esc鍵為止

撤銷上一次操作

u:若誤執(zhí)行一個命令,可按u撤銷該操作强经,恢復到上一個操作

ctrl + r:撤銷的恢復

更改

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

c#w:表示更改#個字

跳至指定的行

ctrl+g:列出光標所在行的行號

nG:移動光標至文章的第n行行首

vim底行模式命令大全

在使用底行模式之前睡陪,請記住按Esc鍵確定你已處于正常模式,再按:冒號即可進入底行模式

列出行號

set nu:在文章的每一行前面列出行號

跳到文件中的某一行

#:#表示一個數(shù)字,在冒號后輸入一個數(shù)字兰迫,再按回車就會跳到該行了

查找字符

/關(guān)鍵字:先按/鍵信殊,再輸入想尋找的字符,如果第一次找的關(guān)鍵字不是你想找的汁果,可以一直按n會往后尋找到你要的關(guān)鍵字為止

?關(guān)鍵字:先按?鍵涡拘,再輸入想尋找的字符,如果第一次找的關(guān)鍵字不是你想找的据德,可以一直按n會往前尋找到你要的關(guān)鍵字為止

保存文件

w:冒號后輸入w可將文件保存

離開vim

q:按q就是退出鳄乏,如果無法離開vim,可以在q后跟一個晋控!強制離開vim

wq:保存并退出

配置vim

這里給大家一個非常方便的腳本汞窗,你想在哪個用戶下配置vim就在哪個用戶下敲這個腳本,按回車就會自動幫你安裝啦赡译!

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

功能齊全仲吏,親測有效!

Linux 編譯器 —— gcc/g++使用

執(zhí)行編譯的四個步驟(了解就好)

gcc是c的編譯器蝌焚,g++是c++的編譯器裹唆,兩者在執(zhí)行編譯時都會經(jīng)過以下四個步驟

1.預處理(gcc -E):頭文件展開,去注釋只洒,宏替換许帐,條件編譯

2.編譯(-S):c代碼編譯成匯編

3.匯編(-c):將匯編語言翻譯成為目標文件(可重定向目標文件)

4.鏈接:將匯編過程產(chǎn)生成的二進制代碼進行鏈接

gcc選項

-E:只激活預處理,不生成文件毕谴,你需要將它重定向到一個文件中

-S:編譯到匯編語言成畦,不進行匯編和鏈接步驟

-c:編譯到目標代碼

-o:文件輸出到文件,常用gcc 代碼文件 -o 輸出文件

-g:生成調(diào)試信息

-static:此選項對生成的文件采用靜態(tài)鏈接

Linux 調(diào)試器 —— gdb使用

背景

首先我們要明白涝开,程序發(fā)布的方式有兩種循帐,debug版本和release版本

debug:程序本身會被加入更多的調(diào)試信息,以便于進行調(diào)試舀武。

release:不會添加任何的調(diào)試信息拄养,不可被調(diào)試。

而Linux gcc/g++ 出來的二進制程序银舱,默認時release版本

so瘪匿,要使用gdb調(diào)試,得先轉(zhuǎn)換成debug版本寻馏,所以必須在源代碼生成二進制程序的時候棋弥,加上-g選項。

release轉(zhuǎn)換成debug


可以看到操软,mytest和mytest_g兩者的大小有差別嘁锯,所以mytest是默認生成的release版本的宪祥,mytest_g是debug版本的(因為加入了調(diào)試的信息聂薪,所以文件會變大)


通過readelf指令和grep過濾后也可以驗證我們的觀點(readelf命令一般用于查看ELF格式的文件信息)家乘,mytest_g就是比mytest多出這些和debug有關(guān)的調(diào)試信息,所以mytest_g是debug版本的藏澳。

總結(jié):Linux默認發(fā)布的可執(zhí)行程序仁锯,是動態(tài)鏈接且release方式,可通過-static和-g選項來修改成靜態(tài)鏈接和debug版本翔悠。

調(diào)試


通過gdb mytest_g調(diào)試程序?

進入到gdb模式后业崖,可以輸入 list/l 指令顯示源碼(每次列10行,接著上次的位置往下列)蓄愁,或者想從第一行開始顯示可以輸入 l 1 指令双炕。


通過run指令運行程序,輸出結(jié)果


打斷點:b行號


查看斷點:info b

可以看到當前有一個斷點在第2行


再打一個斷點并查看


刪除斷點:d num

命令匯總

list /(l 行號):顯示源代碼撮抓,每次列10行妇斤,接著上次的位置往下列

list /(l 函數(shù)名):列出某個函數(shù)的源代碼

run/r:運行代碼

b 行號:打斷點

info b:查看斷點

d Num(斷點編號):刪除斷點

p 變量:打印變量值,也可以p &變量打印變量的地址

next/n:逐過程執(zhí)行

step/s:逐語句執(zhí)行

display 變量名:跟蹤查看一個變量丹拯,每進行一步調(diào)試都會顯示一次它的值

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

until x行號:跳至x行(忽略掉那些無效的代碼的行)

finish:執(zhí)行到當前函數(shù)的返回站超,然后停下來等待命令

continue/c:跳轉(zhuǎn)到下一個斷點

set var:修改變量的值

disable 斷點編號:禁用斷點

enable 斷點編號:啟用斷點

bt:查看各級函數(shù)調(diào)用及參數(shù)

quit:退出gdb

————————————————

版權(quán)聲明:本文為CSDN博主「那就等雨停吧」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議乖酬,轉(zhuǎn)載請附上原文出處鏈接及本聲明死相。

原文鏈接:https://blog.csdn.net/qq_52454367/article/details/119393548

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市咬像,隨后出現(xiàn)的幾起案子算撮,更是在濱河造成了極大的恐慌,老刑警劉巖县昂,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肮柜,死亡現(xiàn)場離奇詭異,居然都是意外死亡七芭,警方通過查閱死者的電腦和手機素挽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來狸驳,“玉大人预明,你說我怎么就攤上這事“夜浚” “怎么了撰糠?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長辩昆。 經(jīng)常有香客問我阅酪,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任术辐,我火速辦了婚禮砚尽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘辉词。我一直安慰自己必孤,他們只是感情好,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布瑞躺。 她就那樣靜靜地躺著敷搪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪幢哨。 梳的紋絲不亂的頭發(fā)上赡勘,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機與錄音捞镰,去河邊找鬼闸与。 笑死,一個胖子當著我的面吹牛曼振,可吹牛的內(nèi)容都是我干的几迄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼冰评,長吁一口氣:“原來是場噩夢啊……” “哼映胁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起甲雅,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤解孙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后抛人,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弛姜,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年妖枚,在試婚紗的時候發(fā)現(xiàn)自己被綠了廷臼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡绝页,死狀恐怖荠商,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情续誉,我是刑警寧澤莱没,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站酷鸦,受9級特大地震影響饰躲,放射性物質(zhì)發(fā)生泄漏牙咏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一嘹裂、第九天 我趴在偏房一處隱蔽的房頂上張望妄壶。 院中可真熱鬧,春花似錦焦蘑、人聲如沸盯拱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至宁舰,卻和暖如春拼卵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蛮艰。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工腋腮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人壤蚜。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓即寡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親袜刷。 傳聞我的和親對象是個殘疾皇子聪富,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容