20145310 《信息安全系統設計基礎》期中總結

20145310 《信息安全系統設計基礎》期中總結

linux經常使用命令

man命令
在 Linux 環境中,若是你遇到困難,可使用man 命令,它是Manual page的縮寫。要查看相應區段的內容,就在 man 後面加上相應區段的數字便可
man命令一般與管道命令結合使用
man -k k1 | grep k2 | grep 2
man -k 填空:Linux中顯示文件(file )屬性(status)的命令是( stat )
數據結構中有線性查找算法,C標準庫中沒有這個功能的函數,但Linux中有,這個函數是(lfind或lsearch)html

cheat命令
在linux上,man命令幾乎是萬能的,但它卻不是最高效的。因爲它給出的幫助信息很長,在短期內很差理解,因此在這種狀況下,用cheat命令更方便,cheat命令簡單來講,就是告訴你一個命令如何使用。它沒有提供其餘額外多餘的信息,只經過使用實例告訴你一個命令如何使用。linux

grep命令
grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用權限是全部用戶。
命令格式:grep [options]
[options]主要參數:
-c:只輸出匹配行的計數
-I:不區分大小寫(只適用於單字符)
-h:查詢多文件時不顯示文件名
-l:查詢多文件時只輸出包含匹配字符的文件名
-n:顯示匹配行及行號
-s:不顯示不存在或無匹配文本的錯誤信息
-v:顯示不包含匹配文本的全部行
若是想查找某個宏,咱們已知宏保存在include文件夾中,因此可使用下列語句:grep -nr XXX /usr/include正則表達式

查找匹配字符串grep
grep [命令選項]... 用於匹配的表達式 [文件]...
例:搜索/home/shiyanlou目錄下全部包含"shiyanlou"的全部文本文件,並顯示出如今文本中的行號:
grep -rnI "shiyanlou" ~
-r 參數表示遞歸搜索子目錄中的文件,-n表示打印匹配項行號,-I表示忽略二進制文件
查看環境變量中以"yanlou"結尾的字符串:
export | grep ".*yanlou$"
查找宏的值:
grep –nr [宏名稱、全大寫] /usr/include
其中-r表明遞歸查找,-n表明行數
基本指令
apt-get、cd、mkdir、cp(複製)、rm(刪除)、mv(移動、重命名)、rename(批量重命名)、cat(正序查看文件)、tac(倒序查看文件)、nl(添加行號並打印)、more和less(分頁查看)、zip、rar、tar、df(查看磁盤容量)、du(查看目錄容量)、wc(計數)、uniq(去重)......算法

Linux編程基礎

vim編輯器
1 vim的三種模式
命令行模式:只能移動光標,刪除,複製,粘貼
插入模式:編輯文字
底行模式:文件保存或退出,設置編輯環境
2 操做
· 插入:i 在當前光標處進行編輯
I 在行首插入
A 在行末插入
a 在光標後插入編輯
o 在當前行後插入一個新行
cw 替換從光標所在位置後到一個單詞結尾的字符
· 保存文檔:進入命令行模式,輸入w回車,保存文檔;輸入:w 文件名能夠將文檔另存爲其餘文件名或存到其它路徑下
· 退出vim:進入命令行模式,輸入wq回車,保存並退出編輯
3 剪切及粘貼
· 刪除:dd刪除整行
· 複製:yy複製整行
· 粘貼:p編程

gcc的使用
預處理:gcc –E hello.c –o hello.i;(gcc –E調用cpp)
編譯:gcc –S hello.i –o hello.s;(gcc –S 調用ccl)
彙編:gcc –c hello.s –o hello.o;(gcc -c 調用as)
連接:gcc hello.o –o hello;(gcc -o 調用ld)
調試工具gdb的使用
gdb program 啓動gbd
b 設斷點(4種斷點:行斷點、函數斷點、條件斷點、臨時斷點)
run 開始運行程序
bt 打印函數調用堆棧
p 查看變量值
c 從當前斷點繼續運行到下一個斷點
n 單步運行
s 單步運行
quit 退出gdb
display 跟蹤變量值的改變
until 跳出循環
靜態庫
靜態庫是一系列的目標文件(.o文件)的歸檔文件((lib+name).a文 件);連接階段,選擇靜態庫,後綴名爲「.a」;選擇動態庫,後綴名爲「.so」。
靜態連接庫的生成:gcc -c 文件名.c ar rcsv libxxx.a xxx.o
靜態庫的使用:gcc -o 文件名 文件名.c -L. -lxxx//連接到靜態庫
注意:
-L:在庫文件的搜索路徑列表中添加dir目錄
-l:在頭文件的搜索路徑列表中添加dir目錄
共享庫
共享庫的生成:
gcc -fPIC -c xxx.c``gcc -shared -o libxxx.so xxx.o
共享庫的使用:gcc -o main main.c -L. -lxxx
註冊共享庫的方法:將庫文件直接複製到/lib或者/usr/lib目錄下: cp (lib+name).so /lib
GDB調試
進入gdb:
gcc -g xxx.c -o xxx
gdb xxx
查看源碼:
(gdb) l:進行行號提示
(gdb) b n:在第n行設置斷點
(gdb) r:運行代碼,運行至斷點處
(gdb) n:單步運行
(gdb) c:使程序繼續往下運行,直到再次遇到斷點或程序結束
(gdb) q:退出GDB
(gdb) watch n:在"n"設置了觀察點,觀察變量的變化狀況
四種斷點:
函數斷點:b 函數名 條件表達式
行斷點:b 行數或函數名 條件表達式
條件斷點:b 行數或函數名 if表達式
臨時斷點:tbreak 行數或函數名 條件表達式
makefile
功能:識別文件代碼是否更新,減小編譯工做量
格式爲:
目標體:依賴文件
[tab鍵]各目標體運行命令
目標體:由make建立,一般是目標文件或可執行文件
依賴文件:建立目標體所依賴的文件
運行命令:建立每一個目標體時須要的運行命令,必須以tab鍵開頭。
使用make的格式:make 目標體vim

其餘(感悟、思考等,可選)

學習了半個學期,感受還有不少知識沒有消化好。安全

參考資料

相關文章
相關標籤/搜索