信息安全系统设计基础学习总结第二周
?
實驗一:
?
?
?
?
?
?
作業
zy
e
http://www.cnblogs.com/zhengwei0712/p/4823168.html
實驗二和實驗三:
http://www.cnblogs.com/zhengwei0712/p/4823183.html
四、Linux 目錄結構及文件基本操作
?
1、Linux 的文件組織目錄結構。
Linux 是以樹形目錄結構的形式來構建整個系統的
Linux 的磁盤是“掛在”(掛載在)目錄上的
每一個目錄不僅能使用本地磁盤分區的文件系統,也可以使用網絡上的文件系統。
FHS(英文:Filesystem Hierarchy Standard 中文:文件系統層次結構標準)
?
2、相對路徑和絕對路徑。
知識點:
進入上一級目錄:$ cd ..
進入你的“home”目錄:$ cd ~ ? ? ??# 或者 cd /home/<你的用戶名>
使用?pwd?獲取當前路徑
?
絕對路徑,以根"/"目錄為起點的完整路徑,以你所要到的目錄為終點
表現形式如:?/usr/local/bin,表示根目錄下的 usr 目錄中的 local 目錄中的 bin 目錄。
相對路徑,相對于你當前的目錄的路徑,相對路徑是以當前目錄?.?為起點,以你所要到的目錄為終點,
表現形式如:usr/local/bin?(這里假設你當前目錄為根目錄)。
?
實驗截圖:
3、對文件的移動、復制、重命名、編輯等操作。
1.新建
新建空白文件
使用?touch?命令創建空白文件
創建名為 test 的空白文件,因為在其他目錄沒有權限,所以需要先?cd ~?切換回用戶的/home/shiyanlou?目錄:
新建目錄
使用?mkdir(make directories)命令可以創建一個空目錄,也可同時指定創建目錄的權限屬性
?
2.復制
復制文件
使用cp(copy)命令復制一個文件或目錄到指定目錄。
3.刪除
刪除文件
使用rm(remove files or directories)命令,刪除一個文件或目錄:
直接使用rm刪除會顯示一個提示,
想忽略這提示,直接刪除文件,可以使用-f參數強制刪除
刪除目錄
跟復制目錄一樣,要刪除一個目錄,也需要加上-r或-R參數
4.移動文件與文件重命名
移動文件
使用mv(move or rename files)命令,移動文件(剪切)。
出現問題:!!!!!
5.查看文件
使用cat,tac和nl命令查看文件
cat為正序顯示,tac倒序顯示。
標準輸入輸出:當我們執行一個 shell 命令行時通常會自動打開三個標準文件,即標準輸入文件(stdin),默認對應終端的鍵盤;標準輸出文件(stdout)和標準錯誤輸出文件(stderr),這兩個文件都對應被重定向到終端的屏幕,以便我們能直接看到輸出內容。進程將從標準輸入文件中得到輸入數據,將正常輸出數據輸出到標準輸出文件,而將錯誤信息送到標準錯誤文件中。
-n參數顯示行號
nl命令,添加行號并打印
常用的幾個參數:
-b : 指定添加行號的方式,主要有兩種:-b a:表示無論是否為空行,同樣列出行號("cat -n"就是這種方式)-b t:只列出非空行的編號并列出(默認為這種方式) -n : 設置行號的樣式,主要有三種:-n ln:在行號字段最左端顯示-n rn:在行號字段最右邊顯示,且不加 0-n rz:在行號字段最右邊顯示,且加 0 -w : 行號字段占用的位數(默認為 6 位)使用more和less命令分頁查看文件
tail命令,不得不提的還有它一個很牛的參數-f,這個參數可以實現不停地讀取某個文件的內容并顯示。這可讓我們動態查看日志起到實時監視的作用
6.查看文件類型
通常使用file命令可以查看文件的類型
7.編輯文件
專門的命令行編輯器比如(emacs,vim,nano)
作業:
?
實驗五、環境變量與文件查找
一、環境變量
使用declare命令創建一個變量名為 tmp 的變量:
取變量的值,使用echo命令和$符號($符號用于表示引用一個變量的值,初學者經常會忘記輸入):
變量名只能是英文字母,數字或者下劃線,且不能以數字作為開頭。
環境變量就是作用域比自定義變量要大
Shell 的環境變量作用于自身和它的子進程。
通常我們會涉及到的環境變量有三種:
- 當前 Shell 進程私有用戶自定義變量,如上面我們創建的 temp 變量,只在當前 Shell 中有效。
- Shell 本身內建的變量。
- 從自定義變量導出的環境變量。
也有三個與上述三種環境變量相關的命令,set,env,export。這三個命令很相似,都可以用于打印相關環境變量,區別在于涉及的是不同范圍的環境變量,詳見下表:
| set | 顯示當前 Shell 所有環境變量,包括其內建環境變量(與 Shell 外觀等相關),用戶自定義變量及導出的環境變量 |
| env | 顯示與當前用戶相關的環境變量,還可以讓命令在指定環境中運行 |
| export | 顯示從 Shell 中導出成環境變量的變量,也能通過它將自定義變量導出為環境變量 |
3.命令的查找路徑與順序
?
4.添加自定義路徑到“PATH”環境變量
每個用戶的 home 目錄中有一個 Shell 每次啟動時會默認執行一個配置腳本,以初始化環境,包括添加一些用戶自定義環境變量等等。zsh 的配置文件是.zshrc,相應 Bash 的配置文件為.bashrc
5.修改和刪除已有變量
變量修改
變量的修改有以下幾種方式
| ${變量名#匹配字串} | 從頭向后開始匹配,刪除符合匹配字串的最短數據 |
| ${變量名##匹配字串} | 從頭向后開始匹配,刪除符合匹配字串的最長數據 |
| ${變量名%匹配字串} | 從尾向前開始匹配,刪除符合匹配字串的最短數據 |
| ${變量名%%匹配字串} | 從尾向前開始匹配,刪除符合匹配字串的最長數據 |
| ${變量名/舊的字串/新的字串} | 將符合舊字串的第一個字串替換為新的字串 |
| ${變量名//舊的字串/新的字串} | 將符合舊字串的全部字串替換為新的字串 |
比如要修改我們前面添加到 PATH 的環境變量。
二、搜索文件
與搜索相關的命令常用的有如下幾個whereis,which,find,locate。
whereis只能搜索二進制文件(-b),man幫助文件(-m)和源代碼文件(-s)。如果想要獲得更全面的搜索結果可以使用locate命令。
- which小而精
which本身是 Shell 內建的一個命令,我們通常使用which來確定是否安裝了某個指定的軟件,因為它只從PATH環境變量指定的路徑中去搜索命令:
- find精而細
find應該是這幾個命令中最強大的了,它不但可以通過文件類型、文件名進行查找而且可以根據文件的屬性(如文件的時間戳,文件的權限等)進行搜索。
注意 find 命令的路徑是作為第一個參數的, 基本命令格式為 find [path] [option] [action]
?
作業:
《黑客帝國》電影里滿屏幕代碼的“數字雨”,在 Linux 里面你也可以輕松實現這樣的效果
?
?
?
實驗六、文件打包與壓縮
實驗介紹
Linux 上常用的 壓縮/解壓 工具,介紹了 zip,rar,tar 的使用。
一、文件打包和解壓縮
1.zip壓縮打包程序
第一行命令中,-r參數表示遞歸打包包含子目錄的全部內容,-q參數表示為安靜模式,即不向屏幕輸出信息,-o,表示輸出文件,需在其后緊跟打包輸出文件名。后面使用du命令查看打包后文件的大小
2.使用unzip命令解壓縮zip文件
?
不想解壓只想查看壓縮包的內容你可以使用-l參數
使用-O(英文字母,大寫o)參數指定編碼類型:
3.rar打包壓縮命令
- 從指定文件或目錄創建壓縮包或添加文件到壓縮包:
- 使用a參數添加一個目錄~到一個歸檔文件中,如果該文件不存在就會自動創建。
作業:天冷的時候,要是有個火爐就好了。
實驗七、文件系統操作與磁盤管理
一、簡單文件系統操作
1.查看磁盤和目錄的容量
使用 df 命令查看磁盤的容量
?
二、簡單的磁盤管理
1.創建虛擬磁盤
dd 命令簡介
使用 mount 命令掛載磁盤到目錄樹
用 losetup 命令建立鏡像與回環設備的關聯
然后再使用mkfs格式化各分區
作業
cowsay命令,可以讓你在終端里以一種動物說話的形式打印出一段話。
?
實驗八、命令執行順序控制與管道
實驗介紹
順序執行、選擇執行、管道、cut 命令、grep 命令、wc 命令、sort 命令等
一、命令執行順序的控制
1.順序執行多條命令
2.有選擇的執行命令
&&就是用來實現選擇性執行的,它表示如果前面的命令執行結果(不是表示終端輸出的內容,而是表示命令執行狀態的結果)返回0則執行后面的,否則不執行,你可以從$?環境變量獲取上一次命令的返回結果
二、管道
管道又分為匿名管道和具名管道
在使用一些過濾程序時經常會用到的就是匿名管道,在命令行中由|分隔符表示,|在前面的內容中我們已經多次使用到了。具名管道簡單的說就是有名字的管道,通常只會在源程序中用到具名管道。下面我們就將通過一些常用的可以使用管道的"過濾程序"來幫助你熟練管道的使用。
cut 命令,打印每一行的某一字段
grep 命令,在文本中或 stdin 中查找匹配字符串
wc 命令,簡單小巧的計數工具
.sort 排序命令
uniq 去重命令?uniq命令可以用于過濾或者輸出重復行。
實驗九、簡單的文本處理
一、常用的文本處理命令
二、文本處理命令
1.tr 命令
tr 命令可以用來刪除一段文本信息中的某些文字。或者將其進行轉換。
2.col 命令
col 命令可以將Tab換成對等數量的空格建,或反轉這個操作。
3.join命令
用于將兩個文件中包含相同內容的那一行合并在一起。
4.paste命令
paste這個命令與join?命令類似,它是在不對比數據的情況下,簡單地將多個文件合并一起,以Tab隔開。
實驗十、數據流重定向
一、數據流重定向
1.簡單的重定向
注意不要將管道和重定向混淆,管道默認是連接前一個命令的輸出到下一個命令的輸入,而重定向通常是需要一個文件來建立兩個命令的連接
2.標準錯誤重定向
3.使用tee命令同時重定向到多個文件
除了將需要將輸出重定向到文件之外也需要將信息打印在終端
4.永久重定向
exec命令的作用是使用指定的命令替換當前的 Shell,及使用一個進程替換當前進程,或者指定新的重定向
5.創建輸出文件描述符
使用exec命令可以創建新的文件描述符
6.關閉文件描述符
7.完全屏蔽命令的輸出
在 Linux 中有一個被成為“黑洞”的設備文件,所以導入它的數據都將被“吞噬”。
在類 UNIX 系統中,/dev/null,或稱空設備,是一個特殊的設備文件,它通常被用于丟棄不需要的輸出流,或作為用于輸入流的空文件,這些操作通常由重定向完成。讀取它則會立即得到一個EOF。
8.使用 xargs 分割參數列表
xargs 是一條 UNIX 和類 UNIX 操作系統的常用命令。它的作用是將參數列表轉換成小塊分段傳遞給其他命令,以避免參數列表過長的問題。
?
?
實驗十一、正則表達式基礎
正則表達式,又稱正規表示式、正規表示法、正規表達式、規則表達式、常規表示法
一個正則表達式通常被稱為一個模式(pattern),為用來描述或者匹配一系列符合某個句法規則的字符串。
選擇
|豎直分隔符表示選擇,例如"boy|girl"可以匹配"boy"或者"girl"
數量限定
數量限定除了我們舉例用的*,還有+加號,?問號,.點號,如果在一個模式中不加數量限定符則表示出現一次且僅出現一次:
優先級
優先級為從上到下從左到右,依次降低:
?
rep命令用于打印輸出文本中匹配的模式串,它使用正則表達式作為模式匹配的條件。grep支持三種正則表達式引擎,分別用三個參數指定:
| -E | POSIX擴展正則表達式,ERE |
| -G | POSIX基本正則表達式,BRE |
| -P | Perl正則表達式,PCRE |
使用正則表達式
?
?
正則表達式基礎
實驗介紹
雖然我們這一節的標題是正則表達式,但實際這一節實驗只是介紹grep,sed,awk這三個命令,而正則表達式作為這三個命令的一種使用方式(命令輸出中可以包含正則表達式)。正則表達式本身的內容很多,要把它說明清楚需要單獨一門課程來實現,不過我們這一節中涉及到的相關內容通常也能夠滿足很多情況下的需求了。
想要更深入地學習使用正則表達式,在這里?正則表達式基礎。
sed操作舉例
我們先找一個用于練習的文本文件:
$ cp /etc/passwd ~打印指定行
# 打印2-5行 $ nl passwd | sed -n '2,5p' # 打印奇數行 $ nl passwd | sed -n '1~2p'?
行內替換
# 將輸入文本中"shiyanlou" 全局替換為"hehe",并只打印替換的那一行,注意這里不能省略最后的"p"命令 $ sed -n 's/shiyanlou/hehe/gp' passwd注意:?行內替換可以結合正則表達式使用。
行間替換
$ nl passwd | grep "shiyanlou" # 刪除第21行 $ sed -n '21c\www.shiyanlou.com' passwd?
關于sed命令就介紹這么多,你如果希望了解更多sed的高級用法,你可以參看如下鏈接:
- sed簡明教程
- sed單行腳本快速參考
- sed完全手冊
四、awk文本處理語言
看到上面的標題,你可能會感到驚異,難道我們這里要學習的是一門“語言”么,確切的說,我們是要在這里學習awk文本處理語言,只是我們并不會在這里學習到比較完整的關于awk的內容,還是因為前面的原因,它太強大了,它的應用無處不在,我們無法在這里以簡短的文字描述面面俱到,如果你有目標成為一個linux系統管理員,確實想學好awk,你一不用擔心,實驗樓會在之后陸續上線linux系統管理員的學習路徑,里面會有單獨的關于正則表達式,awk,sed等相關課程,敬請期待吧。下面的內容,我們就作為一個關于awk的入門體驗章節吧,其中會介紹一些awk的常用操作。
1.awk介紹
AWK是一種優良的文本處理工具,Linux及Unix環境中現有的功能最強大的數據處理引擎之一.其名稱得自于它的創始人Alfred Aho(阿爾佛雷德·艾侯)、Peter Jay Weinberger(彼得·溫伯格)和Brian Wilson Kernighan(布萊恩·柯林漢)姓氏的首個字母.AWK程序設計語言,三位創建者已將它正式定義為“樣式掃描和處理語言”。它允許您創建簡短的程序,這些程序讀取輸入文件、為數據排序、處理數據、對輸入執行計算以及生成報表,還有無數其他的功能。最簡單地說,AWK是一種用于處理文本的編程語言工具。
在大多數linux發行版上面,實際我們使用的是gawk(GNU awk,awk的GNU版本),在我們的環境中ubuntu上,默認提供的是mawk,不過我們通??梢灾苯邮褂胊wk命令(awk語言的解釋器),因為系統已經為我們創建好了awk指向mawk的符號鏈接。
$ ll /usr/bin/awk?
nawk: 在 20 世紀 80 年代中期,對 awk語言進行了更新,并不同程度地使用一種稱為 nawk(new awk) 的增強版本對其進行了替換。許多系統中仍然存在著舊的awk 解釋器,但通常將其安裝為 oawk (old awk) 命令,而 nawk 解釋器則安裝為主要的 awk 命令,也可以使用 nawk 命令。Dr. Kernighan 仍然在對 nawk 進行維護,與 gawk 一樣,它也是開放源代碼的,并且可以免費獲得; gawk: 是 GNU Project 的awk解釋器的開放源代碼實現。盡管早期的 GAWK 發行版是舊的 AWK 的替代程序,但不斷地對其進行了更新,以包含 NAWK 的特性; mawk 也是awk編程語言的一種解釋器,mawk遵循 POSIX 1003.2 (草案 11.3)定義的 AWK 語言,包含了一些沒有在AWK 手冊中提到的特色,同時 mawk 提供一小部分擴展,另外據說mawk是實現最快的awk
2.awk的一些基礎概念
awk所有的操作都是基于pattern(模式)—action(動作)對來完成的,如下面的形式:
$ pattern {action}你可以看到就如同很多編程語言一樣,它將所有的動作操作用一對{}花括號包圍起來。其中pattern通常是是表示用于匹配輸入的文本的“關系式”或“正則表達式”,action則是表示匹配后將執行的動作。在一個完整awk操作中,這兩者可以只有其中一個,如果沒有pattern則默認匹配輸入的全部文本,如果沒有action則默認為打印匹配內容到屏幕。
awk處理文本的方式,是將文本分割成一些“字段”,然后再對這些字段進行處理,默認情況下,awk以空格作為一個字段的分割符,不過這不是固定了,你可以任意指定分隔符,下面將告訴你如何做到這一點。
3.awk命令基本格式
awk [-F fs] [-v var=value] [-f prog-file | 'program text'] [file...]其中-F參數用于預先指定前面提到的字段分隔符(還有其他指定字段的方式) ,-v用于預先為awk程序指定變量,-f參數用于指定awk命令要執行的程序文件,或者在不加-f參數的情況下直接將程序語句放在這里,最后為awk需要處理的文本輸入,且可以同時輸入多個文本文件?,F在我們還是直接來具體體驗一下吧。
4.awk操作體驗
先用vim新建一個文本文檔
$ vim test包含如下內容:
I like linux www.shiyanlou.com- 使用awk將文本內容打印到終端
?
說明:在這個操作中我是省略了patter,所以awk會默認匹配輸入文本的全部內容,然后在"{}"花括號中執行動作,即print打印所有匹配項,這里是全部文本內容
- 將test的第一行的每個字段單獨顯示為一行
?
說明:你首先應該注意的是,這里我使用了awk語言的分支選擇語句if,它的使用和很多高級語言如C/C++語言基本一致,如果你有這些語言的基礎,這里將很好理解。另一個你需要注意的是NR與OFS,這兩個是awk內建的變量,NR表示當前讀入的記錄數,你可以簡單的理解為當前處理的行數,OFS表示輸出時的字段分隔符,默認為" "空格,如上圖所見,我們將字段分隔符設置為\n換行符,所以第一行原本以空格為字段分隔的內容就分別輸出到單獨一行了。然后是$N其中N為相應的字段號,這也是awk的內建變量,它表示引用相應的字段,因為我們這里第一行只有三個字段,所以只引用到了$3。除此之外另一個這里沒有出現的$0,它表示引用當前記錄(當前行)的全部內容。
- 將test的第二行的以點為分段的字段換成以空格為分隔
實驗十二、Linux 下軟件安裝
實驗介紹
一、Linux 上的軟件安裝
通常 Linux 上的軟件安裝主要有三種方式:
- 在線安裝
- 從磁盤安裝deb軟件包
- 從二進制軟件包安裝
- 從源代碼編譯安裝
2. apt 包管理工具介紹
APT是Advance Packaging Tool(高級包裝工具)的縮寫,是Debian及其派生發行版的軟件包管理器,APT可以自動下載,配置,安裝二進制或者源代碼格式的軟件包,因此簡化了Unix系統上管理軟件的過程。APT最早被設計成dpkg的前端,用來處理deb格式的軟件包?,F在經過APT-RPM組織修改,APT已經可以安裝在支持RPM的系統管理RPM包。這個包管理器包含以?apt-?開頭的的多個工具,如?apt-get?apt-cache?apt-cdrom?等,在Debian系列的發行版中使用。
?
遇到的問題和心得體會:
1.在操作過程中,有道作業是建立一個opt/forloutest的文件,而我建立了一個
OPT文件,cd OPT,卻顯示not a directory,通過閱讀《linux嵌入式》這本書使用mkdir創建目錄,可能是因為OPT文件的存在,并不能創建新的目錄
與網上得搜索,了解應建立OPT文件夾,而不是文件。
2.同上,在建立fortest這個文件的時候,不小心按了兩次touch fortest,列出文件的時候,發現建了兩個forloutest文件,修改訪問權限得時候,哪怕修改兩次,被修改得也只有一個文件,另一個文件修改不了,而且使用rm刪除,好像也沒有用。
體會:有時候按照實驗指導做,但是并不是每一步都是告訴我們得,所以做實驗之前最好要結合課本的知識。而且做實驗的時候,覺得自己要學的還有很多。
轉載于:https://www.cnblogs.com/zhengwei0712/p/4823743.html
總結
以上是生活随笔為你收集整理的信息安全系统设计基础学习总结第二周的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2015年9月13日-9月15日课程作业
- 下一篇: 网管必备的十大网络安全测试工具