Linux 複習筆記

Linux 常用基本命令:

文件 —— cp  rm  mv  tail  mv  more  find  grep

進程 —— ps  kill  jobs  top

管理 —— useradd  userdel  passwd  shutdown  init  halt  reboot

網絡 —— ping  tcpdump  netstat


/*************************************************************************************/


目錄結構:

/boot  系統啓動所需文件、內核文件

/etc     系統配置

/bin     二進制可執行文件

/lib      庫文件

/mnt    臨時掛載點

/dev    設備文件

/home 普通用戶家目錄

/root    管理員目錄

/proc    虛擬文件系統、進程信息


/*************************************************************************************/


文件類型:

-   普通文件

d  目錄文件

l    符號鏈接(類似快捷方式)

b   塊設備文件 / 二進制文件

c   字符設備文件

p   命名管道文件

s   套接字文件


改變文件權限  chmod   r(4)  w(2)  x(1)

chmod  u+x   file

chmod  777   file


/*************************************************************************************/


gcc / g++:

工具集合的入口,其中會調用其他工具


編譯 .c 文件


以 gcc 編譯  --  按照C語言編譯(以 nm 查看邏輯地址偏移量,函數簽名爲函數名)

以 g++編譯  --  按照Cpp編譯(函數簽名爲_Z3addii)


編譯 .cpp 文件

以 gcc 編譯  --  按照 Cpp 解析(產生鏈接錯誤,因爲 gcc 不會主動鏈接c++標準庫,需要手動指定)


以 g++ 編譯  --  按照 Cpp 解析,通過 ldd 命令查看所依賴的庫


/* gcc不僅僅能編譯 .c 文件,同時也能編譯 .cpp 文件;但C與C++混合編譯時應該使用 g++ 來鏈接,否則會因爲C和C++的編譯鏈接符號不同而鏈接失敗 */


/*****************************************************1********************************/


gdb調試:


l  列出代碼

s  進入函數

finish  跳出

n  執行下一步

b  設置斷點

p/display  查看變量


x  查看內存

例:x/<n/f/u> <addr>

n表示顯示內存的長度——即當前地址向後顯示幾個地址的長度;

f表示顯示的格式——字符串s、十六進制x、十進制d;

u表示將多少字節當做一個值取出來——默認4byte,b單字節、h雙字節、w四字節、g八字節


core調試(查看函數崩潰點 / 段錯誤)

ulimit  -c  ulimited  將core文件大小設爲無限大

bt  查看函數調用棧


/*************************************************************************************/


庫:

* 預先編譯好的方法的集合


共享庫(動態庫):

gcc -shared -fPIC -o add.o

運行程序中動態裝載庫,調用其中的方法


靜態庫:

ar  crv libadd.a add.o

編譯完成後將庫中包含的所有方法都嵌入程序中


通常將源文件編譯成動態/靜態庫後,使同一個文件分別鏈接動態/靜態庫,鏈接靜態庫的文件大小會比鏈接靜態庫的文件要大一些(假設庫中包含大量方法,且程序只調用了部分方法);

* 用nm查看可執行文件中的函數地址


// TODO

動態庫 / 靜態庫的特點

鏈接 / 裝載的過程


/*************************************************************************************/


進程 / 線程:


/*************************************************************************************/


網絡:



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