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

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

知識點總結

經常使用的Linux命令

  • Linux中命令格式爲:command [options] [arguments] []表示是可選的,即組成結構爲:命令 [選項] [參數]

man命令

  • man命令是Linux下的幫助指令,經過man指令能夠查看Linux中的指令幫助、配置文件幫助和編程幫助等信息。
  • 經常使用選項:
    1. -a:在全部的man幫助手冊中搜索
    2. -k:根據關鍵字搜索聯機幫助,是一種模糊搜索
    3. -f:關鍵字精確搜索,等價於whatis指令,顯示給定關鍵字的簡短描述信息
    4. -P:指定內容時使用分頁程序
    5. -M:指定man手冊搜索的路徑
  • 參數:
    1. 數字:指定從哪本man手冊中搜索幫助
    2. 關鍵字:指定要搜索幫助的關鍵字
  • man -k:經常使用來搜索,結合管道使用。例句以下:man -k k1 | grep k2 | grep 2

cheat命令

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

grep命令

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

find命令

  • find命令用來在指定目錄下查找文件。任何位於參數以前的字符串都將被視爲欲查找的目錄名。若是使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄與文件。而且將查找到的子目錄和文件所有進行顯示。
  • 命令格式:find pathname -options [-print -exec -ok ...]
  • 參數:
    1. pathname:find命令所查找的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄
    2. print:find命令將匹配的文件輸出到標準輸出
    3. exec:find命令對匹配的文件執行該參數所給出的shell命令,相應命令的形式爲'command' { } \;,注意{ }和\;之間的空格
    4. ok:和-exec的做用相同,只不過以一種更爲安全的模式來執行該參數所給出的shell命令,在執行每個命令以前,都會給出提示,讓用戶來肯定是否執行
  • 經常使用選項:
    1. -name:按照文件名查找文件
    2. -perm:按照文件權限來查找文件
    3. mtime -n +n:按照文件的更改時間來查找文件, - n表示文件更改時間距如今n天之內,+ n表示文件更改時間距如今n天之前
    4. -newer file1 ! file2:查找更改時間比文件file1新但比文件file2舊的文件
    5. -type:查找某一類型的文件,諸如:b - 塊設備文件,d - 目錄,c - 字符設備文件,p - 管道文件,l - 符號連接文件,f - 普通文件
    6. -size n:[c] 查找文件長度爲n塊的文件,帶有c時表示文件長度以字節計
    7. -depth:在查找文件時,首先查找當前目錄中的文件,而後再在其子目錄中查找

locate命令

  • locate命令實際上是find -name的另外一種寫法,可是要比後者快得多,緣由在於它不搜索具體目錄,而是搜索一個數據庫(/var/lib/locatedb),這個數據庫中含有本地全部文件信息。Linux系統自動建立這個數據庫,而且天天自動更新一次,因此使用locate命令查不到最新變更過的文件。爲了不這種狀況,能夠在使用locate以前,先使用updatedb命令,手動更新數據庫。
  • 命令格式:locate [選擇參數] [樣式]
  • 命令參數:
    1. -e:將排除在尋找的範圍以外
    2. -1:若是是1則啓動安全模式,在安全模式下,使用者不會看到權限沒法看到的檔案。這會使速度減慢,由於 locate必須至實際的檔案系統中取得檔案的權限資料
    3. -f:將特定的檔案系統排除在外,例如咱們沒有到必要把proc檔案系統中的檔案放在資料庫中
    4. -q:安靜模式,不會顯示任何錯誤訊息
    5. -n:至多顯示 n個輸出
    6. -r:使用正規運算式 作尋找的條件
    7. -o:指定資料庫存的名稱
    8. -d:指定資料庫的路徑
    9. -h:顯示輔助訊息
    10. -V:顯示程式的版本訊息

whereis命令

  • whereis命令是定位可執行文件、源代碼文件、幫助文件在文件系統中的位置。這些文件的屬性應屬於原始代碼,二進制文件,或是幫助文件。whereis程序還具備搜索源代碼、指定備用搜索路徑和搜索不尋常項的能力。whereis命令只能用於程序名的搜索,並且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。若是省略參數,則返回全部信息。
  • 命令格式:whereis [-bmsu] [BMS 目錄名 -f ] 文件名
  • 主要參數:
    1. -b:定位可執行文件
    2. -m:定位幫助文件
    3. -s:定位源代碼文件
    4. -u:搜索默認路徑下除可執行文件、源代碼文件、幫助文件之外的其它文件
    5. -B:指定搜索可執行文件的路徑
    6. -M:指定搜索幫助文件的路徑
    7. -S:指定搜索源代碼文件的路徑

which命令

  • which指令會在PATH變量指定的路徑中,搜索某個系統命令的位置,而且返回第一個搜索結果。which是根據使用者所配置的PATH變量內的目錄去搜尋可運行檔的,因此,不一樣的PATH配置內容所找到的命令是不同的。
  • 命令格式:which 可執行文件名稱
  • 命令參數:
    1. -n:指定文件名長度,指定的長度必須大於或等於全部文件中最長的文件名
    2. -p:與-n參數相同,但此處的包括了文件的路徑
    3. -w:指定輸出時欄位的寬度
    4. -V:顯示版本信息linux

      find、locate、which、whereis的區別

  • which (尋找執行檔) :這個指令是根據PATH這個環境變量所規範的路徑,去搜尋執行檔的檔名,因此,重點是找出執行檔而已,which 後面接的是完整檔名
  • whereis (尋找特定檔案):搜尋linux數據庫檔案中所記錄的東西,和locate的主要區別在於後面的參數
  • locate:搜尋linux數據庫檔案中所記錄的東西,後面直接跟檔案的部分名稱就行
  • find:直接搜索整個硬盤

sort命令

  • 將文本文件內容加以排序。可針對文本文件的內容,以行爲單位來排序。
  • 參數:
    • m:將幾個排序好的文件進行合併。
    • n:依照數值的大小排序
  • Linux Bash中,ls . | sort 命令的功能是(顯示當前目錄內容並排序)

du命令

  • 顯示目錄或文件的大小。du會顯示指定的目錄或文件所佔用的磁盤空間。
  • 參數:
    • a:顯示目錄中個別文件的大小。
    • b:顯示目錄或文件大小時,以byte爲單位。
    • c: 除了顯示個別目錄或文件的大小外,同時也顯示全部目錄或文件的總和

ls命令

  • 顯示指定工做目錄下以內容(列出目前工做目錄所含之檔案及子目錄)。
  • 參數:
    • a:顯示全部檔案及目錄
    • A:同 -a ,但不列出 "." (目前目錄) 及 ".." (父目錄)
    • t:將檔案依創建時間之前後次序列出
  • 列出目前工做目錄下全部檔案及目錄;目錄於名稱後加 "/", 可執行檔於名稱後加 "*" : ls -AF
  • Linux Bash中,把ls命令顯示當前目錄的結果存入ls.txt的命令輸出重定向命令是(ls > ls.txt)

vi、 gcc、gdb、make的使用

 

Vim經常使用命令總結

  • 插入:
    • i:在當前光標處進行編輯
    • a:在光標後插入編輯
  • 退出:
    • q!:強制退出,不保存
    • :q:退出
    • :wq!:強制保存並退出
    • :wq:保存並退出
    • :w <文件路徑>:另存爲
  • 刪除:
    • x:刪除遊標所在的字符
    • dd:刪除整行
  • 行間跳轉:
    • nG(n Shift+g):光標移動到第n行
  • 複製與粘貼:
    • nyy:複製光標所在及其後的整行共n行
    • p:表明粘貼至光標後
  • 功能設定:
    • :set autoindent(ai):設置自動縮進
    • :set cindent(cin):設置C語言風格縮進
    • :set nu:以顯示行號

GCC編譯過程

  • 預處理:gcc –E hello.c –o hello.i ;gcc –E調用cpp 產生預處理過的C原始程序
  • 編譯: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

靜態庫

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

收穫

  • 第一層次的收穫是關於這門課程的。好比我學會了虛擬機的安裝,學會了許多虛擬機的指令以及計算機的運行原理。
  • 第二層次的收穫是認識方面的,好比git的使用,在一開始我真的是拒絕的,我想在電腦上點幾下鼠標的事情爲何要用命令行這麼

        高深的東西,結果這種思想在上學期的Java到這學期的Linux中漸漸發生了轉變,能夠說是從老師的強制要求變成了我本身的一個習慣。這git

        實際上是一個很重要的轉變,在某種程度上說他實際上是改變了個人思惟方式,讓我開始具有一種程序員的謹慎、嚴密,具備邏輯性的思惟。這對我之後的工做是頗有幫助的。程序員

  • 第三層次的收穫是對個人價值觀產生的影響也是最爲深遠的影響。在婁老師任教的一年間,我看到了周圍許多同窗對於翻轉課堂不一樣的態度以及不一樣的結果。剛開始的時候

        我是挺討厭這種方式的,因此上學期的Java也就是渾渾噩噩的度過,最後看到班裏滿分的同窗羨慕又無奈。這學期我看到有同窗的博客裏寫感受本身選錯了專業,對如今的正則表達式

        課程很沒興趣,想要去研究文學。其實我也曾經有過相似的煩惱,但仔細想一想,編程、代碼,這些看似無聊而機械的課程其實深層次鍛鍊了咱們的理性思惟,紮紮實實shell

        坐在電腦面前,安靜本分的敲幾行代碼,比什麼都來得實在。所以,說隨遇而安也好,說浪子回頭也好,反正我這學期已經在盡己所能的學習這門課程了。數據庫

不足

  • 遇難則退。

課程建議和意見

每週你們提的多的問題和百度不到的問題老師能夠上課同一講解,每一個人私下裏問老師很麻煩,關鍵是不少同窗想學但懼怕問問題的時候犯低級錯誤。編程

相關文章
相關標籤/搜索