20145219 《信息安全系统设计基础》第01周学习总结
20145219 《信息安全系統設計基礎》第01周學習總結
教材學習內容總結
別出心裁的Linux命令學習法
1、Ubuntu快捷鍵
CTRL+ALT+T:打開終端;CTRL+SHIFT+T:新建標簽頁;ALT+數字N:終端中切換到第N個標簽頁;Tab:終端中命令補全,當輸入某個命令的開頭的一部分后,按下Tab鍵就可以得到提示或者幫助完成;上下鍵盤:切換命令歷史,剛輸入一個很長的命令,按上鍵就可以恢復;CTRL+C:中斷程序運行。2、Linux命令
命令格式:command [options] [arguments] 。
括號是可選的,有些命令不需要選項也不需要參數。選項(option)是調整命令執行行為的開關,選項不同決定了命令的顯示結果不同,參數(arugment)是指命令的作用對象。
3、ls命令
ls或ls .是兩條等價的命令,顯示當前目錄的內容。這里“.”就是參數,表示當前目錄,這個參數缺省可以省略。
ls -a .命令表示顯示當前目錄中的所有內容,包括隱藏文件和目錄。
4、man命令
man是manul的縮寫,我們可以通過man man來查看man的幫助。
其中,1,2,3是我們學習的重點:
1是普通的Linux命令 2是系統調用,操作系統的提供的服務接口 3是庫函數,C語言中的函數多關鍵字查找:man -k key1 | grep key2 | grep key3 | ...
man -k 等價的命令apropos,使用man -k找到命令后,可以用man -f cmd查看命令的基本功能。
man -f等價于whatis
5、 cheat 命令
cheat命令是在GNU通用公共許可證下,為Linux命令行用戶發行的交互式備忘單應用程序。它提供顯示Linux命令使用案例,包括該命令所有的選項和簡短但尚可理解的功能。
6、其他核心命令
find:查找一個文件在系統中的什么位置,可以通過cheat find學習find命令。
locate:神速版本的find(Windows下有個神器Everything和locate功能類似)。
grep :可以對文件全文檢索。通過grep -n main *.c可以快速找到main在哪個C文件中并指出在第幾行。grep支持正則表達式,可以通過cheat grep學習grep命令。
whereis、which:告訴你使用的命令工具裝在什么地方。我們在Linux下上網使用firefox瀏覽器,大家可以使用whereis firefox或更精確的使用which firefox來看看結果。
apt-cache:可以在使用apt-get install安裝一個程序時先找找軟件源的庫里有沒有這個程序,有才可以安裝。
Linux基礎
1、知識
元知識:形成構建解決問題的專業體系的深度思考力;硬知識:給記憶造成大量的負擔,又耗費大量的時間記憶的知識;軟知識:經驗知識。Linux 基礎入門
1、Linux :一個操作系統。
2、操作系統:始于二十世紀 50 年代,當時的操作系統能運行批處理程序。批處理程序不需要用戶的交互,它從文件或者穿孔卡片讀取數據,然后輸出到另外一個文件或者打印機。二十世紀六十年代初,交互式操作系統開始流行。它不僅僅可以交互,還能使多個用戶從不同的終端同時操作主機。這樣的操作系統被稱作分時操作系統,它的出現對批處理操作系統是個極大的挑戰。
3、重要人物:
Ken Thompson:C 語言之父和 UNIX 之父Dennis Ritchie:C 語言之父和 UNIX 之父Stallman:著名黑客,GNU 創始人,開發了 Emacs、gcc、bash shellBill Joy:BSD 開發者Tanenbaum:Minix 開發者Linus Torvalds:Linux 之父,芬蘭赫爾辛基大學4、Linux 與 Windows 的不同
(1)軟件支持:
Windows 平臺:數量和質量的優勢,不過大部分為收費軟件;由微軟官方提供重要支持和服務;
Linux 平臺:大都為開源自由軟件,用戶可以修改定制和再發布,由于基本免費沒有資金支持,部分軟件質量和體驗欠缺;有全球所有的 Linux 開發者和自由軟件社區提供支持。
(2)安全性:
Windows 平臺:三天兩頭打補丁安裝系統安全更新,還是會中病毒木馬;
Linux 平臺:相對來說肯定比 Windows 平臺要更加安全,不用裝某殺毒,某毒霸。
(3)使用習慣:
Windows:普通用戶基本都是純圖形界面下操作使用,依靠鼠標和鍵盤完成一切操作,用戶上手容易入門簡單;
Linux:兼具圖形界面操作(需要使用帶有桌面環境的發行版)和完全的命令行操作,可以只用鍵盤完成一切操作,新手入門較困難,需要一些學習和指導(這正是我們要做的事情),一旦熟練之后效率極高。
基本概念及操作
1、Terminal(終端)
終端(Terminal)和控制臺(Console)是有區別的。使用[Ctrl]+[Alt]+[F1]~[F6]進行切換標簽,切換到其中一個終端后想要切換回圖形界面,你可以按下[Ctrl]+[Alt]+[F7]來完成。
2、重要快捷鍵
(1)[Tab]:進行補全命令、補全目錄、補全命令參數。
(2)[Ctrl+c]:強行終止當前程序,并不會使終端退出。
(3)其他常用快捷鍵:
Ctrl+d 鍵盤輸入結束或退出終端Ctrl+s 暫定當前程序,暫停后按下任意鍵恢復運行Ctrl+z 將當前程序放到后臺運行,恢復到前臺為命令fgCtrl+a 將光標移至輸入行頭,相當于Home鍵Ctrl+e 將光標移至輸入行末,相當于End鍵Ctrl+k 刪除從光標所在位置到行末Alt+Backspace 向前刪除一個單詞Shift+PgUp 將終端顯示向上滾動Shift+PgDn 將終端顯示向下滾動(4)方向上鍵:恢復你之前輸入過的命令。
(5)通配符:主要有星號(*)和問號(?),用來對對字符串進行模糊匹配(比如文件名,參數名)。Shell 常用通配符:
* 匹配 0 或多個字符? 匹配任意一個字符[list] 匹配 list 中的任意單一字符[!list] 匹配 除list 中的任意單一字符以外的字符[c1-c2] 匹配 c1-c2 中的任意單一字符 如:[0-9] [a-z]{string1,string2,...} 匹配 sring1 或 string2 (或更多)其一字符串{c2..c2} 匹配 c1-c2 中全部字符 如{1..10}3、作業:可以輸出圖形字符的命令banner
先使用如下命令安裝:$ sudo apt-get update和$ sudo apt-get install sysvbanner
然后:$ banner shiyanlou
使用命令:$ printerbanner -w 50 A,'-w'參數指定打印寬度
安裝toilet,figlet
用戶及文件權限管理
1、查看用戶命令:$ who am i或者$ who mom likes,輸出的第一列表示打開當前偽終端的用戶的用戶名(要查看當前登錄用戶的用戶名,去掉空格直接使用 whoami 即可),第二列的 pts/0 中 pts 表示偽終端,第三列則表示當前偽終端的啟動時間。
who 命令其它常用參數:
-a 打印能打印的全部-d 打印死掉的進程-m 同am i,mom likes-q 打印當前登錄用戶數及用戶名-u 打印當前登錄用戶登錄信息-r 打印運行等級2、創建用戶:$ sudo adduser lilei,這個命令不但可以添加用戶到系統,同時也會默認為新用戶創建 home 目錄。
切換登錄用戶:$ su -l lilei,退出當前用戶跟退出終端一樣可以使用 exit 命令或者使用快捷鍵 Ctrl+d。
3、用戶組:
方法一:使用groups命令$ groups shiyanlou,輸出結果冒號之前表示用戶,后面表示該用戶所屬的用戶組。
方法二:查看/etc/group文件$ cat /etc/group | sort, cat 命令用于讀取指定文件的內容并打印到終端輸出,| sort 表示將讀取的文本進行一個字典排序再輸出。使用命令$ cat /etc/group | grep -E "shiyanlou"過濾掉一些你不想看到的結果。
4、刪除用戶:$ sudo deluser lilei --remove-home
5、查看文件權限:
使用較長格式列出文件:$ ls -l
給 ls 加上 -lh 參數來更直觀的查看文件的大小
可以同時使用 '-A' 和 '-l' 參數:$ ls -Al
顯示所有文件大小,并以普通人類能看懂的方式呈現:$ ls -AsSh其中小 s 為顯示文件大小,大 S 為按文件大小排序
6、變更文件所有者命令:
$ cd /home/lilei$ ls iphone6$ sudo chown shiyanlou iphone6$ cp iphone6 /home/shiyanlou7、修改文件權限:$ chmod 700 iphone6或$ chmod go-rw iphone,'g''o'還有'u',分別表示group,others,user,'+','-' 就分別表示增加和去掉相應的權限。
8、作業:添加一個用戶loutest,使用sudo創建文件/opt/forloutest,設置成用戶loutest可以讀寫。
未完成,遇到的問題寫在下面了。
Linux 目錄結構及文件基本操作
1、FHS 標準:FHS 定義了兩層規范,第一層是/下面的各個目錄應該要放什么文件數據,第二層則是針對 /usr 及 /var 這兩個目錄的子目錄來定義。執行$ tree /可以顯示。
2、目錄路徑
cd 命令可以切換目錄,.表示當前目錄,..表示上一級目錄,- 表示上一次所在目錄,~通常表示當前用戶的"home"目錄。使用pwd 命令可以獲取當前所在路徑(絕對路徑)。
3、新建
新建空白文件:$ touch test,新建目錄:$ mkdir mydir
使用 -p 參數,同時創建父目錄(如果不存在該父目錄),如下我們同時創建一個多級目錄:$ mkdir -p father/son/grandson
4、復制
使用cp(copy)命令復制一個文件或目錄到指定目錄:$ cp test father/son/grandson
復制目錄:$ cp -r father family
5、刪除
刪除一個文件或目錄:$ rm test,使用-f參數$ rm -f test可以強制刪除。
刪除目錄:$ rm -r family
6、移動文件
使用mv(move or rename files)命令,移動文件(剪切)。將文件"file1"移動到"Documents"目錄mv 源目錄文件 目的目錄:$ mkdir Documents和$ mv file1 Documents。
7、重命名文件
將文件"file1"重命名為"myfile"mv 舊的文件名 新的文件名:$ mv file1 myfile
批量重命名:$ rename 's/\.txt/\.c/' *.txt
8、查看文件
使用cat,tac和nl命令查看文件,其中cat為正序顯示,tac倒序顯示,nl命令添加行號并打印。
使用more和less命令可以分頁查看文件
使用head和tail命令可以查看文件
使用file命令可以查看文件的類型:$ file /bin/ls
9、編輯文件
在 Linux 下面編輯文件通常我們會直接使用專門的命令行編輯器,輸入$ vimtutor命令即可開始。
10、作業:召喚一雙眼睛動畫
輸入命令:$ xeyes
放到后臺運行:$ nohup xeyes &
環境變量與文件查找
1、創建變量:$ declare tmp,賦值變量:$ tmp=shiyanlou,讀取變量值:$ echo $tmp,刪除變量:$ unset temp
2、變量修改:
${變量名#匹配字串} 從頭向后開始匹配,刪除符合匹配字串的最短數據${變量名##匹配字串} 從頭向后開始匹配,刪除符合匹配字串的最長數據${變量名%匹配字串} 從尾向前開始匹配,刪除符合匹配字串的最短數據${變量名%%匹配字串} 從尾向前開始匹配,刪除符合匹配字串的最長數據${變量名/舊的字串/新的字串} 將符合舊字串的第一個字串替換為新的字串${變量名//舊的字串/新的字串} 將符合舊字串的全部字串替換為新的字串3、搜索文件命令:whereis簡單快速$whereis who,locate快而全$ locate /etc/sh,which小而精$ which man,find精而細$ find /etc/ -name interfaces
4、作業:實現“數字雨”
安裝cmatrix
修改終端的主題配色為黑底綠字
文件打包與解壓縮
1、zip
2、rar
3、tar
4、作業:創造“火爐”
文件系統操作與磁盤管理
1、查看磁盤和目錄的容量:使用df命令查看磁盤的容量,使用 du 命令查看目錄的容量,-d參數指定查看目錄的深度
2、磁盤管理:
創建虛擬磁盤:dd命令用于轉換和復制文件,命令行選項格式為選項=值,dd默認從標準輸入中讀取,并寫入到標準輸出中,但可以用選項if(input file,輸入文件)和of(output file,輸出文件)改變。
格式化磁盤:$ sudo mkfs.ext4 virtual.img
掛載磁盤到目錄樹:$ mount -o loop -t ext4 virtual.img /mnt
卸載已掛載磁盤:$ sudo umount /mnt
磁盤分區:查看$ sudo fdisk -l,進入$ sudo fdisk virtual.img
3、作業:使用cowsay命令,可以讓你在終端里以一種動物說話的形式打印出一段話。
Linux下的幫助命令
1、內建命令與外部命令
內建命令:實際上是 shell 程序的一部分,其中包含的是一些比較簡單的 Linux 系統命令,這些命令是寫在bash源碼的builtins里面的,并由 shell 程序識別并在 shell 程序內部完成運行,通常在 Linux 系統加載運行時 shell 就被加載并駐留在系統內存中。而且解析內部命令 shell 不需要創建子進程,因此其執行速度比外部命令快。比如:history、cd、exit 等等。
外部命令:是 Linux 系統中的實用程序部分,因為實用程序的功能通常都比較強大,所以其包含的程序量也會很大,在系統加載時并不隨系統一起被加載到內存中,而是在需要時才將其調用內存。雖然其不包含在 shell 中,但是其命令執行過程是由 shell 程序控制的。外部命令是在 Bash 之外額外安裝的,通常放在/bin,/usr/bin,/sbin,/usr/sbin等等。比如:ls、vi等。
type命令可以區分命令是內建的還是外部的。
2、幫助命令
(1)help 命令:用于顯示 shell 內建命令的簡要幫助信息。
(2)man 命令:得到的內容比用 help 更多更詳細,而且 man 沒有內建與外部命令的區分。
(3)info 命令:是 GNU 的超文本幫助系統,能夠更完整的顯示出 GNU 信息。Linux任務計劃crontab
crontab 命令常見于 Unix 和類 Unix 的操作系統之中(Linux 就屬于類 Unix 操作系統),用于設置周期性被執行的指令。
啟動 rsyslog,以便我們可以通過日志中的信息來了解我們的任務是否真正的被執行了。
通過 crontab 命令,我們可以在固定的間隔時間執行指定的系統指令或 shell script 腳本。時間間隔的單位可以是分鐘、小時、日、月、周的任意組合。命令執行順序控制與管道
1、順序執行
簡單的順序執行你可以使用;來完成:$ sudo apt-get update;sudo apt-get install some-tool;some-tool
2、有選擇的執行
&&表示如果前面的命令執行結果(不是表示終端輸出的內容,而是表示命令執行狀態的結果)返回0則執行后面的,否則不執行。||在這里就是與&&相反的控制效果,當上一條命令執行結果為≠0($?≠0)時則執行它后面的命令。
3、管道
$ ls -al /etc | less命令,通過管道將前一個命令(ls)的輸出作為下一個命令(less)的輸入,然后就可以一行一行地看。
cut 命令,打印以:為分隔符的第1個字段和第6個字段分別表示用戶名和其目錄:$ cut /etc/passwd -d ':' -f 1,6
grep 命令,在文本中或 stdin 中查找匹配字符串:$ grep -rnI "shiyanlou" ~命令,搜索目錄下所有包含"shiyanlou"的所有文本文件,并顯示出現在文本中的行號。-r 參數表示遞歸搜索子目錄中的文件,-n表示打印匹配項行號,-I表示忽略二進制文件。
wc 命令,統計并輸出一個文件中行、單詞和字節的數目。
sort 排序命令,將輸入按照一定方式排序,然后再輸出,它支持的排序有按字典排序,數字排序,按月份排序,隨機排序,反轉排序,指定特定字段進行排序。
uniq 去重命令,用于過濾或者輸出重復行。
4、作業:安裝aview和imagemagick,然后用asciiview命令顯示圖片
未完成,使用man命令查詢asciiview的使用方法并結合網上的一些教程操作后出現問題,在問題中提出。簡單的文本處理
1、tr 命令:用來刪除一段文本信息中的某些文字或者將其進行轉換。
常用的選項:
-d 刪除和set1匹配的字符,注意不是全詞匹配也不是按字符順序匹配-s 去除set1指定的在輸入文本中連續并重復的字符2、col 命令:可以將Tab換成對等數量的空格建,或反轉這個操作。
常用的選項:
-x 將Tab轉換為空格-h 將空格轉換為Tab(默認選項)3、join命令:用于將兩個文件中包含相同內容的那一行合并在一起。
常用的選項:
-t 指定分隔符,默認為空格-i 忽略大小寫的差異-1 指明第一個文件要用哪個字段來對比,,默認對比第一個字段-2 指明第二個文件要用哪個字段來對比,,默認對比第一個字段4、paste命令:與join 命令類似,它是在不對比數據的情況下,簡單地將多個文件合并一起,以Tab隔開。
常用的選項:
-d 指定合并的分隔符,默認為Tab-s 不合并到一行,每個文件為一行5、作業:安裝小蜜蜂游戲
數據流重定向
1、簡單的重定向
stdin(標準輸入,對應于你在終端的輸入),stdout(標準輸出,對應于終端的輸出),stderr(標準錯誤輸出,對應于終端的輸出)。
將一個文件作為命令的輸入,標準輸出作為命令的輸出:$ cat Documents/test.c
將echo命令通過管道傳過來的數據作為cat命令的輸入,將標準輸出作為命令的輸出:$ echo 'hi' | cat
將echo命令的輸出從默認的標準輸出重定向到一個普通文件:$ echo 'hello shiyanlou' > redirect和$ cat redirect
2、標準錯誤重定向:$ cat Documents/test.c hello.c >somefile 2>&1
3、使用tee命令同時重定向到多個文件:$ echo 'hello shiyanlou' | tee hello
4、永久重定向:$ exec 1>somefile
5、創建輸出文件描述符:$ cd /dev/fd/;ls -Al,關閉文件描述符:$ exec 3>&-和$ cd /dev/fd;ls -Al;cd -
6、完全屏蔽命令的輸出:$ cat Documents/test.c nefile 1>/dev/null 2>&1
7、使用 xargs 分割參數列表:將參數列表轉換成小塊分段傳遞給其他命令,以避免參數列表過長的問題,$ cut -d: -f1 < /etc/passwd | sort | xargs echo
8、作業:創造彩色火焰
正則表達式基礎
1、正則表達式:又稱正規表示式、正規表示法、正規表達式、規則表達式、常規表示法(英語:Regular Expression,在代碼中常簡寫為 regex、regexp 或 RE),計算機科學的一個概念。正則表達式使用單個字符串來描述、匹配一系列符合某個句法規則的字符串。在很多文本編輯器里,正則表達式通常被用來檢索、替換那些符合某個模式的文本。
2、基本語法:
| 豎直分隔符表示選擇,例如"boy|girl"可以匹配"boy"或者"girl"+ 表示前面的字符必須出現至少一次(1次或多次),例如,"goo+gle",可以匹配"gooogle","goooogle"等;? 表示前面的字符最多出現一次(0次或1次),例如,"colou?r",可以匹配"color"或者"colour";* 星號代表前面的字符可以不出現,也可以出現一次或者多次(0次、或1次、或多次),例如,“0*42”可以匹配42、042、0042、00042等。() 圓括號可以用來定義模式字符串的范圍和優先級,這可以簡單的理解為是否將括號內的模式串作為一個整體。例如,"gr(a|e)y"等價于"gray|grey",(這里體現了優先級,豎直分隔符用于選擇a或者e而不是gra和ey),"(grand)?father"匹配father和grandfather(這里體驗了范圍,?將圓括號內容作為一個整體匹配)。3、grep模式匹配命令:
grep命令用于打印輸出文本中匹配的模式串,它使用正則表達式作為模式匹配的條件。grep支持三種正則表達式引擎,分別用三個參數指定:
-E POSIX擴展正則表達式,ERE-G POSIX基本正則表達式,BRE-P Perl正則表達式,PCRE4、sed 流編輯器:
sed 命令基本格式:sed [參數]... [執行命令] [輸入文件]...
sed執行命令格式:$ sed -i 's/sad/happy/g' test #
5、awk文本處理語言:
AWK是一種優良的文本處理工具,Linux及Unix環境中現有的功能最強大的數據處理引擎之一
awk所有的操作都是基于pattern(模式)—action(動作)對來完成的,如下面的形式:$ pattern {action}
awk命令基本格式:awk [-F fs] [-v var=value] [-f prog-file | 'program text'] [file...],其中-F參數用于預先指定前面提到的字段分隔符(還有其他指定字段的方式) ,-v用于預先為awk程序指定變量,-f參數用于指定awk命令要執行的程序文件,或者在不加-f參數的情況下直接將程序語句放在這里,最后為awk需要處理的文本輸入,且可以同時輸入多個文本文件。Linux 下軟件安裝
1、apt-get命令:使用各用于處理apt包的公用程序集,我們可以用它來在線安裝、卸載和升級軟件包等
install 其后加上軟件包名,用于安裝一個軟件包update 從軟件源鏡像服務器上下載/更新用于更新本地軟件源的軟件包列表upgrade 升級本地可更新的全部軟件包,但存在依賴問題時將不會升級,通常會在更新之前執行一次updatedist-upgrade 解決依賴關系并升級(存在一定危險性)remove 移除已安裝的軟件包,包括與被移除軟件包有依賴關系的軟件包,但不包含軟件包的配置文件autoremove 移除之前被其他軟件包依賴,但現在不再被使用的軟件包purge 與remove相同,但會完全移除軟件包,包含其配置文件clean 移除下載到本地的已經安裝的軟件包,默認保存在/var/cache/apt/archives/autoclean 移除已安裝的軟件的舊版本軟件包2、卸載軟件:sudo apt-get remove w3m
3、軟件搜索:sudo apt-cache search softname1 softname2 softname3……
4、作業:bb命令
教材學習中的問題和解決過程
1、作業“添加一個用戶loutest,使用sudo創建文件/opt/forloutest,設置成用戶loutest可以讀寫。”,創建用戶后一直顯示文件不存在。
解決:未解決。
2、作業“將圖片調節成ASCII碼打印的樣子”,一直顯示圖片無法打開。
解決:未解決。
3、安裝some-tool時說未發現軟件包。
解決:但安裝其它軟件時并沒有問題,所以初步判斷應該不是網絡問題。最終未解決。
4、磁盤分區時不成功,提示權限不夠。
解決:未解決。
5、復制繼承文件時提示沒有這個文件或目錄。
解決:我創建文件時在mydir中,但是命令中目的文件夾并沒有寫上mydir,加上后就解決了。
其他(感悟、思考等,可選)
實驗樓內容實在是太多了,學習完后感覺就是被塞了一腦袋東西,內容太多、重點又不明確導致并不能詳細記下具體的命令使用方法,也不能真正掌握。掌握這些命令需要時間和練習,我現在還沒有掌握這些知識,后續會不斷鞏固練習以早日掌握的。
參考資料
- 《深入理解計算機系統V2》學習指導
- ...
轉載于:https://www.cnblogs.com/20145219songge/p/5883145.html
總結
以上是生活随笔為你收集整理的20145219 《信息安全系统设计基础》第01周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 读书笔记 - 《乌合之众》
- 下一篇: 信息系统开发内容