20144303《信息安全系統設計基礎》期中總結
複習Linux經常使用命令
man:linux
- 在Linux環境中,若是你遇到困難,可使用man命令,它是Manual page的縮寫。
- man命令一般與管道命令結合使用:
如:man -k k1 | grep k2 | grep 2git
這表示搜索同時含有k1和k2,且屬於系統調用。vim
最後的數字意味着幫助手冊中的區段,man手冊共有8個區段,最經常使用的是123,含義以下:安全
- Linux
- 系統調用
- c語言
輸入man man 查看man的使用手冊:函數
輸入man -k printf查看printf的用法:學習
輸入man 3 printf 查看C語言中printf的用法:設計
cheat:3d
用man來查看幫助和選項,裏面的描述太長,沒法短期得到想要的信息。使用cheat能夠更快的學習到如何使用一個命令名。blog
用法:cheat+命令名遞歸
grep:
查找宏 STDIN_FILENO 的值的命令是:grep -nr XXX /usr/include
該語句能夠用來查找關鍵字,全文搜索,而且能夠直接查找文件內的內容。其中:
好比:查找宏 STDOUT_FILENO 的值的命令是(grep -nr STDOUT_FILENO /usr/include)
find:
find命令用來在指定目錄下查找文件。
- -name filename:查找名爲filename的文件
- -mtime -n +n :按文件更改時間來查找文件,-n指n天之內,+n指n天之前
- -atime -n +n:按文件訪問時間來查GIN: 0px">
- -ctime -n +n :按文件建立時間來查找文件,-n指n天之內,+n指n天之前
- -newer f1 !f2 :查更改時間比f1新但比f2舊的文件
- -type b/d/c/p/l/f :查是塊設備、目錄、字符設備、管道、符號連接、普通文件
- -size n[c] :查長度爲n塊[或n字節]的文件
- -size n[c] :查長度爲n塊[或n字節]的文件
- -depth :使查找在進入子目錄前先行查找完本目錄
cd:
- 進入上一級目錄:cd ..
- 進入你的「home」目錄:cd ~ 或者 cd /home/ <你的用戶名>
- 使用 pwd 獲取當前路徑:pwd
新建文件:
- 使用 touch 命令建立空白文件
- 使用 mkdir(make directories)命令能夠建立一個空目錄,也可同時指定建立目錄的權限屬性
- 使用 -p 參數,同時建立父目錄
- 使用cp(copy)命令複製一個文件或目錄到指定目錄。將以前建立的"test"文件複製
- 要成功複製目錄須要加上-r或者-R參數,
- 使用rm(remove files or directories)命令,刪除一個文件或目錄:
- 使用mv(move or rename files)命令,移動文件(剪切)。將文件"file1"移動到"Documents"目錄mv 源目錄文件 目的目錄
vim:
三種模式的切換:
- 命名行模式中vim +文件名進入vim普通模式
- 普通模式中按i或a鍵均可以進入插入模式
- 在插入模式中是使用esc鍵能夠退出到普通模式
- 普通模式中輸入:wq回車後保存並退出vim
上、下、左、右方向鍵能夠達到相應效果,字母h、j、k、l也能夠在插入模式中使光標進行移動。
gcc:
編譯並運行一個簡單的hello.c:
- 預處理: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
- 運行:./hello
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"設置了觀察點,觀察變量的變化狀況
- gdb中使用命令(break main)設置main函數斷點。
- gdb中使用命令(until)能夠跳出循環語句。
- gdb中next和step均可以單步跟蹤,根據自頂向下原則應該優先選用next
- GDB中以16進制形式打印%eax中內容的命令是(print /x $eax)
makefile:
功能 :識別文件代碼是否更新,減小編譯工做量
makefile文件的編寫規則
格式爲:
- 目標體:依賴文件
- [tab鍵]各目標體運行命令
- 目標體:由make建立,一般是目標文件或可執行文件
- 依賴文件:建立目標體所依賴的文件
- 運行命令:建立每一個目標體時須要的運行命令,必須以tab鍵開頭。
- 使用make的格式:make 目標體
makefile變量的定義:
- 遞歸展開方式:在引用該變量時進行替換(不能用於引用本身的狀況),缺點:不能在變量後追加內容。
- 格式定義:VAR = var
- 非遞歸展開方式:在定義處展開,並只展開一次。優勢:消除變量的嵌套引用。
- 格式定義:VAR := var
- make中變量的使用格式: $(變量名)
- 變量名的命名:不包括「:」、「#」、「=」以及結尾空格的任何字符串;變量名大小寫不敏感。
- 變量分類:用戶自定義變量、預約義變量、自動變量及環境變量。
本身的收穫
經過八週的學習,掌握了linux的一些基本命令和操做。在本學期的開始,因爲思想上的放鬆致使了身體上的懶惰,不少學習內容沒有學到位,有不少知識也只是粗略的瞭解,致使在第六週的時候加入了老師的「待及格隊伍」。但也正是從那個時候開始,改變了學習態度,可以認真的自學書上的知識,開始本身動手實踐、發現問題、解決問題。包括基本的linux安裝、git安裝使用、gcc、vim都是受到「刺激」以後動手學習的。以後,掌握了學習這門課的正確方法,學習也變得輕鬆愉快了許多,天然而然的也就再也不以爲寫博客是一種累贅,也真正的學到了一些東西。感謝老師能讓咱們早點看到本身在學習上的缺陷和漏洞,感知到「不及格」的危險,讓咱們從「不肯意學」到「被趕着學」,最後作到「享受學習的過程」。
本身的不足
在學習時遇到問題,我老是想着去問別人如何解決,老是想着這樣能儘快把問題解決完,不能作到先本身想辦法解決。在接下來的學習中要儘可能改掉這個缺點,遇到問題先本身多想一想。還有就是這周殘留下來的問題,可能下週學習新的內容時就會忘掉,致使有不少遺留的問題沒能及時解決。打算之後把每週遇到的問題先所有總結起來,而後先本身解決,解決一個刪去一個,而後再詢問老師同窗,沒能解決的加到下週的學習任務中。另外,接下來應該把學習提早到週一就開始,不能到週末才急急忙忙的想着學習。
學習進度條
目標 |
5000行 |
30篇 |
400小時 |
|
第一週 |
0/0 |
1/1 |
20/20 |
|
第二週 |
300/300 |
1/2 |
20/40 |
|
第三週 |
300/600 |
1/3 |
20/60 |
|
第五週 |
200/800 |
2/5 |
20/80 |
|
第六週 |
100/900 |
2/7 |
20/80 |
|
第七週 |
160/1060 |
1/8 |
20/100 |
|
第八週 |
0/1060 |
2/9 |
20/120 |