20145215《信息安全系統設計基礎》第一週學習總結

20145215《信息安全系統設計基礎》第一週學習總結

教材學習內容總結

Ubuntu下經常使用快捷鍵

  • Ctrl+Alt+T: 打開終端
  • Ctrl+D: 鍵盤輸入結束或退出終端
  • Ctrl+S: 暫定當前程序,暫停後按下任意鍵恢復運行
  • Ctrl+C: 中斷程序運行
  • Ctrl+Z: 將當前程序放到後臺運行,恢復到前臺爲命令fg
  • Ctrl+A: 將光標移至輸入行頭,至關於Home
  • Ctrl+E: 將光標移至輸入行末,至關於End
  • Ctrl+K: 刪除從光標所在位置到行末
  • Ctrl+Shift+T: 新建標籤頁
  • Alt+數字N: 終端中切換到第N個標籤頁
  • Alt+Backspace: 向前刪除一個單詞
  • Tab: 終端中命令補全,當輸入某個命令的開頭的一部分後,按下Tab鍵就能夠獲得提示或者幫助完成
  • 上下鍵盤: 切換命令歷史,剛輸入一個很長的命令,按鍵就能夠恢復
  • Shift+PgUp: 將終端顯示向上滾動
  • Shift+PgDn: 將終端顯示向下滾動

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. 關鍵字:指定要搜索幫助的關鍵字
  • 舉例:查看函數庫中的printf函數的幫助

cheat命令

  • 在linux上,man命令幾乎是萬能的,但它卻不是最高效的。因爲它給出的幫助信息很長,在短期內很差理解,因此在這種狀況下,用cheat命令更方便,cheat命令簡單來講,就是告訴你一個命令如何使用。它沒有提供其餘額外多餘的信息,只經過使用實例告訴你一個命令如何使用。
  • Ubuntu上沒有自帶cheat命令,你們能夠參照婁老師提供的文章進行安裝配置。
  • 舉例:cheat find一下,查看find命令的幫助

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:在查找文件時,首先查找當前目錄中的文件,而後再在其子目錄中查找
  • 舉例:查找當前目錄下大小大於50M的文件,查找大小大於10K的文件

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:顯示程式的版本訊息
  • 舉例:搜索etc目錄下全部以sh開頭的文件

grep命令

  • grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用權限是全部用戶。
  • 命令格式:grep [options]
  • [options]主要參數:
    1. -c:只輸出匹配行的計數
    2. -I:不區分大小寫(只適用於單字符)
    3. -h:查詢多文件時不顯示文件名
    4. -l:查詢多文件時只輸出包含匹配字符的文件名
    5. -n:顯示匹配行及行號
    6. -s:不顯示不存在或無匹配文本的錯誤信息
    7. -v:顯示不包含匹配文本的全部行
  • 正則表達式主要參數:
    1. \:忽略正則表達式中特殊字符的原有含義
    2. ^:匹配正則表達式的開始行
    3. $:匹配正則表達式的結束行
    4. \<:從匹配正則表達式的行開始
    5. \>:到匹配正則表達式的行結束
    6. [ ]:單個字符,如[A]即A符合要求
    7. [ - ]:範圍,如[A-Z],即A、B、C一直到Z都符合要求
    8. :全部的單個字符
    9. *:有字符,長度能夠爲0
  • 舉例:查找指定進程個數

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:指定搜索源代碼文件的路徑
  • 舉例:查找date的可執行文件、源代碼和man手冊的位置

which命令

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

有趣的Linux命令

banner命令

  • banner命令能夠用於輸出圖形字符,能夠利用'-w'參數指定打印寬度
  • 輸入命令sudo apt-get update``sudo apt-get install sysvbanner進行安裝,安裝完成後輸入命令banner linux,即可以輸出圖形化的字符LINUX

toilet命令

  • toilet命令可以把文本顯示成標題欄,安裝方法與banner安裝過程相似,依然是用apt-get install命令
    html

  • 還能夠利用它添加顏色
    node

figlet命令

  • figlet命令會用大寫方式把咱們輸入的字符串顯示在標題欄,顯示效果由ASCII字符組成

用戶及文件權限管理

  • 使用who am i指令查看用戶,使用sudo adduser指令新建用戶,使用su -l指令切換登陸用戶,Ctrl+D退出當前用戶
    linux

  • 每次新建用戶若是不指定用戶組的話,默認會自動建立一個與用戶名相同的用戶組,默認狀況下在sudo用戶組裏的可使用sudo命令得到root權限
    正則表達式

  • 使用usermod命令能夠爲用戶添加用戶組,一樣使用該命令你必需有root權限,你能夠直接使用root用戶爲其它用戶添加用戶組,或者用其它已經在sudo用戶組的用戶使用sudo命令獲取權限來執行該命令
    shell

  • 使用sudo deluser xxx --remove-home刪除用戶數據庫

  • ls -l查看文件權限,文件類型:Linux中一切皆文件;文件權限:一個目錄要同時具備讀權限和執行權限才能夠打開,而一個目錄要有寫權限才容許在其中建立其它文件,這是由於目錄文件實際保存着該目錄裏面的文件的列表等信息;連接數:連接到該文件所在的 inode 結點的文件名數目;文件大小:以 inode 結點大小爲單位來表示的文件大小。ls 加上 -lh 參數來更直觀的查看文件的大小。
    編程

  • 使用ls -Al查看某一個目錄的完整屬性,而不是顯示目錄裏面的文件屬性;使用ls -dl <目錄名>顯示全部文件大小,並以普通人類能看懂的方式呈現;使用ls -AsSh,其中小s爲顯示文件大小,大S爲按文件大小排序。
  • 變動文件全部者:
    ubuntu

  • 若是有一個本身的文件不想被其餘用戶讀、寫、執行,那麼就須要對文件的權限作修改,方法一:二進制數字表示,方法二:加減賦值操做,'g''o'還有'u',分別表示group,others,user,'+','-' 就分別表示增長和去掉相應的權限。vim

Linux 目錄結構及文件基本操做

  • 使用cd ..指令返回上一級目錄,使用cd ~或者cd /home/<你的用戶名>進入home目錄,使用pwd獲取當前路徑。
  • 以"home"目錄爲起點,分別以絕對路徑和相對路徑的方式進入/usr/local/bin目錄:
    安全

  • 使用touch命令建立空白文件,其主要是來更改已有文件的時間戳的(如最近訪問時間,最近修改時間),但其在不加任何參數的狀況下,只指定一個文件名,則能夠建立一個爲指定文件名的空白文件(不會覆蓋已有同名文件),也能夠同時指定該文件的時間戳。
  • 使用mkdir(make directories)命令能夠建立一個空目錄,也可同時指定建立目錄的權限屬性,使用-p參數,同時建立父目錄(若是不存在該父目錄)。
  • 使用cp命令複製一個文件或目錄到指定目錄,若是直接使用cp命令,複製一個目錄的話,會出現錯誤,要成功複製目錄須要加上-r或者-R參數,表示遞歸複製。
  • 使用rm命令,刪除一個文件或目錄;若是想忽略提示,直接刪除文件,可使用-f參數強制刪除;要刪除一個目錄,也須要加上-r-R參數。
  • 使用mv命令,移動文件(剪切),mv 源目錄文件 目的目錄;文件重命名:mv 舊的文件名 新的文件名;使用rename命令能夠批量重命名。
  • 使用cat,tacnl命令查看文件:這兩個命令都是用來打印文件內容到標準輸出(終端),其中cat爲正序顯示,tac倒序顯示;使用moreless命令分頁查看文件;使用headtail命令查看文件。
  • 召喚「眼睛」:

環境變量與文件查找

  • 使用declare命令建立一個變量名爲tmp的變量:$ declare tmp,其實也能夠不用declare預聲明一個變量,直接即用即建立;使用=號賦值運算符爲變量tmp賦值爲shiyanlou:$ tmp=shiyanlou;讀取變量的值,使用echo命令和$符號($符號用於表示引用一個變量的值):$ echo $tmp關於變量名,並非任何形式的變量名都是可用的,變量名只能是英文字母,數字或者下劃線,且不能以數字做爲開頭。
  • set:顯示當前 Shell 全部環境變量,包括其內建環境變量(與 Shell 外觀等相關),用戶自定義變量及導出的環境變量;env:顯示與當前用戶相關的環境變量,還可讓命令在指定環境中運行;export:顯示從 Shell 中導出成環境變量的變量,也能經過它將自定義變量導出爲環境變量;使用vimdiff工具比較setenvexport的差異:

  • 關於環境變量,能夠簡單的理解成在當前進程的子進程是否有效,有效則爲環境變量,不然不是(有些人也將全部變量統稱爲環境變量,只是以全局環境變量和局部環境變量進行區分,咱們只要理解它們的實質區別便可);爲了與普通變量區分,一般咱們習慣將環境變量名設爲大寫。
  • 可使用unset命令刪除一個環境變量。
  • 召喚「數字雨」:

文件打包和解壓縮

  • 使用zip打包文件夾:zip -r -q -o shiyanlou.zip /home/shiyanloudu -h shiyanlou.zipfile shiyanlou.zip

  • 使用-e參數能夠建立加密壓縮包:zip -r -e -o shiyanlou_encryption.zip /home/shiyanlou
  • 使用unzip命令解壓縮zip文件:將shiyanlou.zip解壓到當前目錄unzip shiyanlou.zip;使用安靜模式,將文件解壓到指定目錄:unzip -q shiyanlou.zip -d ziptest

文件系統操做與磁盤管理

  • 使用df指令查看磁盤的容量,1k-blocks表示以磁盤塊大小的方式顯示容量,後面爲相應的以塊大小表示的已用和可用容量,咱們可使用df -h指令能更直觀的查看磁盤容量。

  • 使用du命令查看目錄的容量,加上-h參數,以更易讀的方式展現,du(estimate file space usage)命令與df(report file system disk space usage)只用一字只差,首先就但願注意不要弄混淆了,能夠從man手冊中獲取命令的完整描述,記全稱就不會搞混了。
  • dd命令用於轉換和複製文件,不過它的複製不一樣於cp,在 Linux 上,硬件的設備驅動(如硬盤)和特殊設備文件(如/dev/zero和/dev/random)都像普通文件同樣,只要在各自的驅動程序中實現了對應的功能,dd 也能夠讀取自和/或寫入到這些文件。這樣,dd也能夠用在備份硬件的引導扇區、獲取必定數量的隨機數據或者空數據等任務中。dd程序也能夠在複製時處理數據,例如轉換字節序、或在ASCII與EBCDIC編碼間互換。
  • dd的命令行語句與其餘的 Linux 程序不一樣,由於它的命令行選項格式爲選項=值,而不是更標準的--選項 值或-選項=值。dd默認從標準輸入中讀取,並寫入到標準輸出中,但能夠用選項if(input file,輸入文件)和of(output file,輸出文件)改變。

教材學習中的問題和解決過程

  • 安裝cheat時報錯

  • 緣由是由於權限不夠,在命令前加上sudo即可成功解決。

課後做業中的問題和解決過程

  • 問題:安裝DDD軟件時出現錯誤:沒法得到鎖 /var/lib/dpkg/lock - open (11: 資源臨時不可用)

  • 解決:由於有另一個程序在運行,致使鎖不可用。緣由多是上次運行更新或安裝沒有正常完成,解決辦法就是殺死此進程,輸入命令sudo rm /var/cache/apt/archives/locksudo rm /var/lib/dpkg/lock

心得體會

剛剛開始接觸Linux,感受上手起來仍是比較快,主要是要熟練掌握那幾個核心的Linux命令,這樣當咱們遇到一條新命令的時候,能夠經過查找它的幫助文檔來學習使用。另外,雖然Linux桌面應用發展很快,可是命令在Linux中依然有很強的生命力。Linux是一個命令行組成的操做系統,精髓在命令行,不管圖形界面發展到什麼水平這個原理是不會變的,學習如何在安全的環境中執行系統命令,包括有關文件、目錄、文件系統、進程等概念,如何使用相應的命令對文件、目錄、進程等進行管理,瞭解遇到問題時,如何找到幫助信息等,這些對於咱們深刻去理解Linux來講,都有着非同尋常的意義。學好Linux不是一件一蹴而就的事,我相信只要多動手,就必定會有收穫。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 0/0 1/2 25/45 學習了幾個Linux核心命令

參考資料

相關文章
相關標籤/搜索