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

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

教材學習內容總結

複習Linux經常使用命令

經常使用命令總結linux

  • man -k:
    經常使用來搜索,結合管道使用。例句以下:

man -k k1 | grep k2 | grep 2git

搜索同時含有k1和k2,且屬於系統調用。vim

最後的數字意味着幫助手冊中的區段,man手冊共有8個區段,最經常使用的是123,含義以下:安全

1.Linux
2.系統調用
3.c語言編輯器

可是當單獨用man語句的時候,想查看其中的單獨某個區段內的解釋時,用法是這樣的:函數

man 3 printf
即查找c語言中printf的用法。工具

  • grep -nr

這條語句能夠用來查找關鍵字,全文搜索,而且能夠直接查找文件內的內容。其中:學習

n:爲顯示行號
r:爲遞歸查找
例如,若是想查找某個宏,咱們已知宏保存在include文件夾中,因此可使用下列語句:ui

grep -nr XXX /usr/include(XXX爲所要找的宏)命令行

  • cheat

cheat是很是好用的「打小抄」搜索工具,可以方便的告訴你你想要的內容。

  • sort命令

將文本文件內容加以排序。可針對文本文件的內容,以行爲單位來排序。
參數:

m:將幾個排序好的文件進行合併。
n:依照數值的大小排序
Linux Bash中,ls . | sort 命令的功能是(顯示當前目錄內容並排序)

經常使用工具

  • vim

vim是一種很是好用的編輯器,總共有六種基本模式,最經常使用的是普通模式、插入模式和命令行模式。須要熟悉這三種模式之間的切換方式:

普通→插入: i 或 a 
插入→普通: Esc 或 Ctrl + [
普通→命令行: :
命令行→普通:Esc 或 Ctrl + [

經常使用的進入、保存和退出指令:

進入:vim 文件名
保存:命令行模式 :w
退出:命令行模式 :q

經常使用動做:

刪除:dd刪除整行
複製:yy複製整行
粘貼:p
  • gcc

經常使用選項

-c  只編譯不連接,生成目標文件.o
-S  只編譯不彙編,生成彙編代碼
-E  只進行預編譯,不作其餘處理
-g  在可執行程序中包含標準調試信息
-o file 將file文件指定爲輸出文件
-v  打印出編譯器內部編譯各過程的命令行信息和編譯器的版本
-I dir  在頭文件的搜索路徑列表中添加dir目錄

編譯過程

預處理: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**   建立可執行目標文件

-o後面是接的你給生成的文件指定的名字,若是不指定,則默認爲a.out

在命令行上運行這個可執行目標文件須要輸入它的名字:

./a.out
其中./表明當前目錄。

  • gdb

注意:使用GCC編譯時要加「-g」參數,而後纔可以用gdb調試

GDB最基本的命令有:

gdb programm(啓動GDB)
l   查看所載入的文件
b   設斷點
info b  查看斷點狀況
run 開始運行程序
bt  打印函數調用堆棧
p   查看變量值
c   從當前斷點繼續運行到下一個斷點
n   單步運行(不進入)
s   單步運行(進入)
quit 退出GDB

四種斷點:

1.行斷點
b [行數或函數名] <條件表達式>
2.函數斷點
b [函數名] <條件表達式>
3.條件斷點
b [行數或函數名] <if表達式>
4.臨時斷點
tbreak [行數或函數名] <條件表達式>
  • 靜態庫

靜態庫是一系列的目標文件(.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

收穫

本學期學習Linux有不少收穫的,學到了在Linux中使用命令行來完成一些操做,而且真正對於git有了瞭解和使用,發現git確實很好用,對於上傳的每一個代碼均可以作詳細的註釋,在之後的使用中會更加方便。

不足

對於Linux的一些基本命令還不是很熟悉,這些東西不常常用很容易忘掉,還有就是書上的內容不少時候每章的後半部分都是草草略過,畢竟想要把每章100多頁的東西徹底理解透徹仍是須要必定時間的。

課程的建議和意見

我以爲學了半學期讓我最有收穫的仍是前兩週我作的緩衝區溢出實驗,雖然剛開始作這個實驗時仍是具備必定的目的性的,可是作到後面時我確實對這個實驗產生了很大的興趣,越作越以爲這個東西學起來頗有意思,最後,不只讓我瞭解了掌握了關於這個實驗方面的知識,還在作實驗的過程當中不斷的複習了不少Linux的基本操做,因此我以爲實踐纔是最好的學習方法。可是,我認爲老師在給同窗們佈置實驗時應該給出大概的實驗過程和有關的一些資料,讓同窗們從資料中去了解學習,而後根據給出的大概過程去不斷地完善,最後不只能很大機率的作出實驗,還不會讓同窗們以爲只有一個題目而不知從何下手。

相關文章
相關標籤/搜索