信息安全系統設計基礎學習總結第二週

 

實驗一:

 

 

 

 

 

 

做業css

zyhtml

e前端

http://www.cnblogs.com/zhengwei0712/p/4823168.html

實驗二和實驗三:

http://www.cnblogs.com/zhengwei0712/p/4823183.html

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

 

一、Linux 的文件組織目錄結構。

Linux 是以樹形目錄結構的形式來構建整個系統的

Linux 的磁盤是「掛在」(掛載在)目錄上的

每個目錄不只能使用本地磁盤分區的文件系統,也可使用網絡上的文件系統。

FHS(英文:Filesystem Hierarchy Standard 中文:文件系統層次結構標準)

 

二、相對路徑和絕對路徑。

知識點:java

進入上一級目錄:$ cd ..linux

進入你的「home」目錄:$ cd ~       # 或者 cd /home/<你的用戶名>nginx

使用 pwd 獲取當前路徑正則表達式

 

絕對路徑,以根"/"目錄爲起點的完整路徑,以你所要到的目錄爲終點shell

表現形式如: /usr/local/bin,表示根目錄下的 usr 目錄中的 local 目錄中的 bin 目錄。編程

相對路徑,相對於你當前的目錄的路徑,相對路徑是以當前目錄 . 爲起點,以你所要到的目錄爲終點,ubuntu

表現形式如:usr/local/bin (這裏假設你當前目錄爲根目錄)。

 

實驗截圖:

三、對文件的移動、複製、重命名、編輯等操做。

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,tacnl命令查看文件

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 位)

使用moreless命令分頁查看文件

tail命令,不得不提的還有它一個很牛的參數-f,這個參數能夠實現不停地讀取某個文件的內容並顯示。這可以讓咱們動態查看日誌起到實時監視的做用

6.查看文件類型

一般使用file命令能夠查看文件的類型

7.編輯文件

專門的命令行編輯器好比(emacs,vim,nano)

做業:

 

實驗5、環境變量與文件查找

1、環境變量

使用declare命令建立一個變量名爲 tmp 的變量:

取變量的值,使用echo命令和$符號($符號用於表示引用一個變量的值,初學者常常會忘記輸入):

變量名只能是英文字母,數字或者下劃線,且不能以數字做爲開頭。

環境變量就是做用域比自定義變量要大

Shell 的環境變量做用於自身和它的子進程。

一般咱們會涉及到的環境變量有三種:

  • 當前 Shell 進程私有用戶自定義變量,如上面咱們建立的 temp 變量,只在當前 Shell 中有效。
  • Shell 自己內建的變量。
  • 從自定義變量導出的環境變量。

也有三個與上述三種環境變量相關的命令,setenvexport。這三個命令很類似,均可以用於打印相關環境變量,區別在於涉及的是不一樣範圍的環境變量,詳見下表:

命令 說明
set 顯示當前 Shell 全部環境變量,包括其內建環境變量(與 Shell 外觀等相關),用戶自定義變量及導出的環境變量
env 顯示與當前用戶相關的環境變量,還可讓命令在指定環境中運行
export 顯示從 Shell 中導出成環境變量的變量,也能經過它將自定義變量導出爲環境變量

3.命令的查找路徑與順序

 

4.添加自定義路徑到「PATH」環境變量

每一個用戶的 home 目錄中有一個 Shell 每次啓動時會默認執行一個配置腳本,以初始化環境,包括添加一些用戶自定義環境變量等等。zsh 的配置文件是.zshrc,相應 Bash 的配置文件爲.bashrc

5.修改和刪除已有變量

變量修改

變量的修改有如下幾種方式

變量設置方式 說明
${變量名#匹配字串} 從頭向後開始匹配,刪除符合匹配字串的最短數據
${變量名##匹配字串} 從頭向後開始匹配,刪除符合匹配字串的最長數據
${變量名%匹配字串} 從尾向前開始匹配,刪除符合匹配字串的最短數據
${變量名%%匹配字串} 從尾向前開始匹配,刪除符合匹配字串的最長數據
${變量名/舊的字串/新的字串} 將符合舊字串的第一個字串替換爲新的字串
${變量名//舊的字串/新的字串} 將符合舊字串的所有字串替換爲新的字串

好比要修改咱們前面添加到 PATH 的環境變量。

2、搜索文件

與搜索相關的命令經常使用的有以下幾個whereis,which,find,locate

whereis只能搜索二進制文件(-b),man幫助文件(-m)和源代碼文件(-s)。若是想要得到更全面的搜索結果可使用locate命令。

  • which小而精

which自己是 Shell 內建的一個命令,咱們一般使用which來肯定是否安裝了某個指定的軟件,由於它只從PATH環境變量指定的路徑中去搜索命令:

  • find精而細

find應該是這幾個命令中最強大的了,它不但能夠經過文件類型、文件名進行查找並且能夠根據文件的屬性(如文件的時間戳,文件的權限等)進行搜索。

注意 find 命令的路徑是做爲第一個參數的, 基本命令格式爲 find [path] [option] [action]

 

做業:

《黑客帝國》電影裏滿屏幕代碼的「數字雨」,在 Linux 裏面你也能夠輕鬆實現這樣的效果

 

 

 

實驗6、文件打包與壓縮

實驗介紹

Linux 上經常使用的 壓縮/解壓 工具,介紹了 zip,rar,tar 的使用。

1、文件打包和解壓縮

1.zip壓縮打包程序

第一行命令中,-r參數表示遞歸打包包含子目錄的所有內容,-q參數表示爲安靜模式,即不向屏幕輸出信息,-o,表示輸出文件,需在其後緊跟打包輸出文件名。後面使用du命令查看打包後文件的大小

2.使用unzip命令解壓縮zip文件

 

不想解壓只想查看壓縮包的內容你可使用-l參數

使用-O(英文字母,大寫o)參數指定編碼類型:

3.rar打包壓縮命令

  • 從指定文件或目錄建立壓縮包或添加文件到壓縮包:
  • 使用a參數添加一個目錄到一個歸檔文件中,若是該文件不存在就會自動建立。

做業:天冷的時候,要是有個火爐就行了。

實驗7、文件系統操做與磁盤管理

1、簡單文件系統操做

1.查看磁盤和目錄的容量

使用 df 命令查看磁盤的容量

 

2、簡單的磁盤管理

1.建立虛擬磁盤

dd 命令簡介

使用 mount 命令掛載磁盤到目錄樹

用 losetup 命令創建鏡像與迴環設備的關聯

而後再使用mkfs格式化各分區

做業

cowsay命令,可讓你在終端裏以一種動物說話的形式打印出一段話。

 

實驗8、命令執行順序控制與管道

實驗介紹

順序執行、選擇執行、管道、cut 命令、grep 命令、wc 命令、sort 命令等

1、命令執行順序的控制

1.順序執行多條命令

2.有選擇的執行命令

&&就是用來實現選擇性執行的,它表示若是前面的命令執行結果(不是表示終端輸出的內容,而是表示命令執行狀態的結果)返回0則執行後面的,不然不執行,你能夠從$?環境變量獲取上一次命令的返回結果

2、管道

管道又分爲匿名管道和具名管道

在使用一些過濾程序時常常會用到的就是匿名管道,在命令行中由|分隔符表示,|在前面的內容中咱們已經屢次使用到了。具名管道簡單的說就是有名字的管道,一般只會在源程序中用到具名管道。下面咱們就將經過一些經常使用的可使用管道的"過濾程序"來幫助你熟練管道的使用。

cut 命令,打印每一行的某一字段

grep 命令,在文本中或 stdin 中查找匹配字符串

wc 命令,簡單小巧的計數工具

.sort 排序命令

uniq 去重命令 uniq命令能夠用於過濾或者輸出重複行。

實驗9、簡單的文本處理

1、經常使用的文本處理命令

2、文本處理命令

1.tr 命令

tr 命令能夠用來刪除一段文本信息中的某些文字。或者將其進行轉換。

2.col 命令

col 命令能夠將Tab換成對等數量的空格建,或反轉這個操做。

3.join命令

用於將兩個文件中包含相同內容的那一行合併在一塊兒。

4.paste命令

paste這個命令與join 命令相似,它是在不對比數據的狀況下,簡單地將多個文件合併一塊兒,以Tab隔開。

實驗10、數據流重定向

1、數據流重定向

1.簡單的重定向

注意不要將管道和重定向混淆,管道默認是鏈接前一個命令的輸出到下一個命令的輸入,而重定向一般是須要一個文件來創建兩個命令的鏈接

2.標準錯誤重定向

3.使用tee命令同時重定向到多個文件

除了將須要將輸出重定向到文件以外也須要將信息打印在終端

4.永久重定向

exec命令的做用是使用指定的命令替換當前的 Shell,及使用一個進程替換當前進程,或者指定新的重定向

5.建立輸出文件描述符

使用exec命令能夠建立新的文件描述符

6.關閉文件描述符

7.徹底屏蔽命令的輸出

在 Linux 中有一個被成爲「黑洞」的設備文件,因此導入它的數據都將被「吞噬」。

在類 UNIX 系統中,/dev/null,或稱空設備,是一個特殊的設備文件,它一般被用於丟棄不須要的輸出流,或做爲用於輸入流的空文件,這些操做一般由重定向完成。讀取它則會當即獲得一個EOF。

8.使用 xargs 分割參數列表

xargs 是一條 UNIX 和類 UNIX 操做系統的經常使用命令。它的做用是將參數列表轉換成小塊分段傳遞給其餘命令,以免參數列表過長的問題。

 

 

實驗11、正則表達式基礎

則表達式,又稱正規表示式、正規表示法、正規表達式、規則表達式、常規表示法

一個正則表達式一般被稱爲一個模式(pattern),爲用來描述或者匹配一系列符合某個句法規則的字符串。

選擇

|豎直分隔符表示選擇,例如"boy|girl"能夠匹配"boy"或者"girl"

數量限定

數量限定除了咱們舉例用的*,還有+加號,?問號,.點號,若是在一個模式中不加數量限定符則表示出現一次且僅出現一次:

優先級

優先級爲從上到下從左到右,依次下降:

 

rep命令用於打印輸出文本中匹配的模式串,它使用正則表達式做爲模式匹配的條件。grep支持三種正則表達式引擎,分別用三個參數指定:

參數 說明
-E POSIX擴展正則表達式,ERE
-G POSIX基本正則表達式,BRE
-P Perl正則表達式,PCRE

使用正則表達式

 

 

正則表達式基礎

實驗介紹

雖然咱們這一節的標題是正則表達式,但實際這一節實驗只是介紹grepsedawk這三個命令,而正則表達式做爲這三個命令的一種使用方式(命令輸出中能夠包含正則表達式)。正則表達式自己的內容不少,要把它說明清楚須要單獨一門課程來實現,不過咱們這一節中涉及到的相關內容一般也可以知足不少狀況下的需求了。

想要更深刻地學習使用正則表達式,在這裏 正則表達式基礎


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的高級用法,你能夠參看以下連接:

4、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,不過咱們一般能夠直接使用awk命令(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須要處理的文本輸入,且能夠同時輸入多個文本文件。如今咱們仍是直接來具體體驗一下吧。

4.awk操做體驗

先用vim新建一個文本文檔

$ vim test 

包含以下內容:

I like linux www.shiyanlou.com 
  • 使用awk將文本內容打印到終端
# "quote>" 不用輸入 $ awk '{ > print > }' test # 或者寫到一行 $ awk '{print}' test 

 

說明:在這個操做中我是省略了patter,因此awk會默認匹配輸入文本的所有內容,而後在"{}"花括號中執行動做,即print打印全部匹配項,這裏是所有文本內容

  • 將test的第一行的每一個字段單獨顯示爲一行
$ awk '{ > if(NR==1){ > print $1 "\n" $2 "\n" $3 > } else { > print} > }' test # 或者 $ awk '{ > if(NR==1){ > OFS="\n" > print $1, $2, $3 > } else { > print} > }' test 

 

說明:你首先應該注意的是,這裏我使用了awk語言的分支選擇語句if,它的使用和不少高級語言如C/C++語言基本一致,若是你有這些語言的基礎,這裏將很好理解。另外一個你須要注意的是NROFS,這兩個是awk內建的變量,NR表示當前讀入的記錄數,你能夠簡單的理解爲當前處理的行數,OFS表示輸出時的字段分隔符,默認爲" "空格,如上圖所見,咱們將字段分隔符設置爲\n換行符,因此第一行本來以空格爲字段分隔的內容就分別輸出到單獨一行了。而後是$N其中N爲相應的字段號,這也是awk的內建變量,它表示引用相應的字段,由於咱們這裏第一行只有三個字段,因此只引用到了$3。除此以外另外一個這裏沒有出現的$0,它表示引用當前記錄(當前行)的所有內容。

  • 將test的第二行的以點爲分段的字段換成以空格爲分隔
$ awk -F'.' '{ > if(NR==2){ > print $1 "\t" $2 "\t" $3 > }}' test # 或者 $ awk ' > BEGIN{ > FS="." > OFS="\t" # 若是寫爲一行,兩個動做語句之間應該以";"號分開 > }{ > if(NR==2){ > print $1, $2, $3 > }}' test 

實驗12、Linux 下軟件安裝

實驗介紹

1、Linux 上的軟件安裝

一般 Linux 上的軟件安裝主要有三種方式:

  • 在線安裝
  • 從磁盤安裝deb軟件包
  • 從二進制軟件包安裝
  • 從源代碼編譯安裝

2. apt 包管理工具介紹

APT是Advance Packaging Tool(高級包裝工具)的縮寫,是Debian及其派生髮行版的軟件包管理器,APT能夠自動下載,配置,安裝二進制或者源代碼格式的軟件包,所以簡化了Unix系統上管理軟件的過程。APT最先被設計成dpkg的前端,用來處理deb格式的軟件包。如今通過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刪除,好像也沒有用。

體會:有時候按照實驗指導作,可是並非每一步都是告訴咱們得,因此作實驗以前最好要結合課本的知識。並且作實驗的時候,以爲本身要學的還有不少。

相關文章
相關標籤/搜索