Linux基礎知識點小結

1、目錄結構   /lib /home /boot /proc /usr /var /mnt /root ……

2、-普通文件  d目錄文件  l鏈接文件  p管道文件  c,b設備文件   s套接字

3、權限:chomd  r 4   w 2   x 1  -  0

4、基本命令:

文件:ls(顯示當前目錄下的文件)touch(新建普通文件)rm(刪除普通文件)rmdir(刪除空目錄)  cp(拷貝)mkdir(創建目錄文件)  mv(重命名)  more(分屏幕顯示)  vi/vim(文本編輯)  find (查找文件) grep(tail (查看日誌文件) cat(合併文件cat file1->file(將file1文件合併到file 中)) less(查看尾幾行文件)head(查看頭幾行)wc(統計文件數目) ctrl+c(終止進程)ctrl+d(停止輸入) ctrl+z(停止進程,還可恢復)lib(庫文件) root(管理員) dev(設備文件)tar gzip(解壓壓縮文件)

進程:ps(查看進程)  kill pid(結束進程)  &(在後臺運行程序)  jobs(顯示後臺和掛起的進程任務)kill -9 pid(強制結束進程)kill -stop pid(掛起進程)pstree(以樹狀圖顯示進程)

管理:halt  init  0 ……  useradd(添加用戶)   passwd(顯示當前工作目錄絕對路徑) reboot(重啓)shutdown(立即關機)ldd(可查看可執行程序用到哪些共享庫)

網絡:ifconfig  netstat(查看進程連接端口號)   topdump(進行抓包)ltrace(跟蹤庫函數)

編譯:gcc(c語言語法)/g++(按c++語法,默認不連接c++標準庫,需要手動指定)

調試:gdb            l,b,n,b,p,c,s,finish,q(具體可見另外一博客)ps -elf(顯示當前線程)

監測:taskset 命令 -p 掩碼(讓進程在指定cpu上運行,讓一個進程固定在一個cpu上運行)top(產看負載及內部信息)lsof(列出當前系統打開的所有文件描述符) free(顯示當前系統運行統計信息) ipcrm -s/-q/-m id 根據id分別刪除信號量,消息隊列,共享內存)ipcs -s/-q/-m 分別顯示系統的信號量,消息隊列,共享內存

5、庫文件:預先編譯好的方法的集合

libxx.a 靜態庫 可執行程序用到的方法

程序在鏈接的過程中,鏈接器從庫文件中取得所需的代碼,複製到生成的可執行文件中。因此,靜態庫是在程序的鏈接階段被複制到程序當中,和程序的執行過程沒有任何關係。

libxx.so 共享庫 可執行程序不包含用到的方法,只做標記

動態庫在鏈接過程中並沒有被加載到程序當中,而程序在運行時被系統動態加載到內存當中供程序使用。

                                                                                                                                                                                                          

1.同樣的程序,使用靜態庫比使用共享庫,程序更大。

2.靜態庫在編譯鏈接時,就可加入到可執行程序中,共享庫是在運行程序時動態裝載。

3.目標主機沒有靜態庫,程序可以運行,沒有共享庫運行不了。

4.共享庫升級後,程序不需要重新編譯,可以直接被使用,靜態庫需要重新編譯,鏈接新方法。

靜態庫和共享庫的區別:

靜態庫的可執行文件中包含了庫代碼的一份完整的拷貝,因此,當它被多次使用時就會有多份沒用的拷貝在內存中,所以比較佔內存,而動態庫系統只需載入一次動態庫,不同的程序可以得到內存當中相同的動態庫的副本,因此會節省很多內存。


5、makefile管理工具

功能:關係到整個工程的編譯規則,也可在執行操作做系統的命令,實現自動化編譯整個工程3提高編譯效率(只會編譯修改的和依賴於修改的哪些文件)

編寫步驟:現有5個文件,分別爲:main.c test1.h test2.h test1.c test2.c

編寫makefile文件,名稱爲makefile過程如下:

main:main.o test1.o test2.o

gcc -o main main.o test1.o test2.o

main.o:main.c test1.h test2.h

gcc -c main.c

test1.o:test1.c test1.h

gcc -c test1.c

test2.o:test2.c test2.h

gcc -c test2.c

clean:rm -f *.o main

執行命令:make 姐可以生成可執行文件main,如果要刪除可執行文件及所有的中間目標文件,只需要執行下make clean

**clean不是一個文件,它只是一個動作的名字。

make和makefile的聯繫:

make是一個命令,makefile是一個文件,當makefile文件寫好後,只需要一個make命令就可以將makefile文件運行起來。

 

 

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