20145318 《信息安全系統設計基礎》期中總結
Linux命令複習
Linux中的命令格式
man
- man是manul的縮寫,能夠經過man man來查看man的幫助
-a
:在全部的man幫助手冊中搜索
-k
:根據關鍵字搜索聯機幫助,是一種模糊搜索
-f
:關鍵字精確搜索,等價於whatis指令,顯示給定關鍵字的簡短描述信息
-P
:指定內容時使用分頁程序
-M
:指定man手冊搜索的路徑
man 2 ls
:會顯示第二區段中的printf命令man頁面,以下圖
man -k key | grep key1 | grep key2 |... 語句
- 很是實用的語句,能夠結合多關鍵字查找,能夠稱爲搜索引擎,如圖:
![](http://static.javashuo.com/static/loading.gif)
cheat
grep
find
- find命令用來在指定目錄下查找文件。任何位於參數以前的字符串都將被視爲欲查找的目錄名。若是使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄與文件。而且將查找到的子目錄和文件所有進行顯示。
- 命令格式:find pathname -options [-print -exec -ok ...]
- 參數:
- pathname:find命令所查找的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄
- print:find命令將匹配的文件輸出到標準輸出
- exec:find命令對匹配的文件執行該參數所給出的shell命令,相應命令的形式爲'command' { } ;,注意{ }和;之間的空格
- ok:和-exec的做用相同,只不過以一種更爲安全的模式來執行該參數所給出的shell命令,在執行每個命令以前,都會給出提示,讓用戶來肯定是否執行
- 經常使用選項:
- -name:按照文件名查找文件
- -perm:按照文件權限來查找文件
mtime -n +n:按照文件的更改時間來查找文件, - n表示文件更改時間距如今n天之內,+ n表示文件更改時間距如今n天之前
- -type:查找某一類型的文件,諸如:b - 塊設備文件,d - 目錄,c - 字符設備文件,p - 管道文件,l - 符號連接文件,f - 普通文件
- -size n:[c] 查找文件長度爲n塊的文件,帶有c時表示文件長度以字節計
- -depth:在查找文件時,首先查找當前目錄中的文件,而後再在其子目錄中查找
-amin n : 在過去 n 分鐘內被讀取過
- -anewer file : 比檔案 file 更晚被讀取過的檔案
- -atime n : 在過去 n 天過讀取過的檔案
- -cmin n : 在過去 n 分鐘內被修改過
- -cnewer file :比檔案 file 更新的檔案
- -ctime n : 在過去 n 天過修改過的檔案
- -empty : 空的檔案-gid n or -group name : gid 是 n 或是 group 名稱是 name
- -ipath p, -path p : 路徑名稱符合 p 的檔案,ipath 會忽略大小寫
- -name name, -iname name : 檔案名稱符合 name 的檔案。iname 會忽略大小寫
- -size n : 檔案大小 是 n 單位,b 表明 512 位元組的區塊,c 表示字元數,k 表示 kilo bytes,w 是二個位元組。
- -type c : 檔案類型是 c 的檔案。(一塊 = 512字節)
查找大於1M的普通文件
![](http://static.javashuo.com/static/loading.gif)
查找最近5分鐘修改的文件
![](http://static.javashuo.com/static/loading.gif)
Linux下C語言編程基礎
實驗樓的學習資料:很是全面編輯器
vi
- vim其實就是一種文本編輯器,區別於記事本等的特色爲便於使用鍵盤操做,鍵盤操做的基礎是vi的幾個模式:
- 三種經常使用模式:
- 普通模式(Normal mode):在普通模式中,用的編輯器命令,好比移動光標,刪除文本等等。這也是Vim啓動後的默認模式。在普通模式中,進入插入模式比較普通的方式是按a(append/追加)鍵或者i(insert/插入)鍵。
- 插入模式(Insert mode):在插入模式中,能夠按ESC鍵回到普通模式。
- 命令行模式(Command line mode):在命令行模式中,執行命令(:鍵),搜索(/和?鍵)或者過濾命令(!鍵)。在命令執行以後,Vim返回到命令行模式以前的模式,一般是普通模式。
- 三種不經常使用模式:
- 具體的命令和快捷鍵很是多,這裏不加贅述,能夠參考如下幾個資料:
gcc
- gcc可以編譯用C、C++和Object C等語言編寫的程序。
編譯過程
- 編譯命令:
gcc hello.o –o hello
:將當前目錄下的hello.c文件編譯成名稱爲hello的可執行文件,內部能夠分爲四步:
- 預處理:
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
:運行可執行文件hello
![](http://static.javashuo.com/static/loading.gif)
高級編譯
- 在不一樣目錄下使用gcc,具體可見Linux實驗一
![](http://static.javashuo.com/static/loading.gif)
gdb
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 行數或函數名 條件表達式
複習實踐截圖
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
makefile
- 功能:識別文件代碼是否更新,減小編譯工做量
- 格式爲:
- 目標體:由make建立,一般是目標文件或可執行文件
- 依賴文件:建立目標體所依賴的文件
- 運行命令:建立每一個目標體時須要的運行命令,必須以tab鍵開頭。
使用make的格式:make 目標體
代碼結構樹
![](http://static.javashuo.com/static/loading.gif)
其餘(感悟、思考等,可選)
及時的總結是有效也是必要的,本週進行期中總結,重要命令都溫習了一遍。
學習進度條
![](http://static.javashuo.com/static/loading.gif)
參考資料