北京電子科技學院(BESTI)
實 驗 報 告
課程:資訊安全系統設計基礎 班級:1352 姓名:馬悅 學号:20135235
成績: 指導教師:婁嘉鵬 實驗日期:2015.9.20
實驗密級: 預習程度: 實驗時間:10小時
儀器組次: 必修/選修:必修 實驗序号:1
實驗名稱: Linux簡介
實驗目的與要求:1. 了解Linux。
2.學習,安裝Linux。
實驗儀器:
名稱 型号 數量
PC ThinkPad 1
虛拟機 實驗樓 1
一、實驗内容
實驗一
本節主要介紹 Linux 的曆史,Linux 與 Windows 的差別等入門知識。
一、Linux 就是一個作業系統,即系統調用和核心兩層。直覺的來看,我們使用的作業系統還包含一些在其上運作的應用程式,比如文本編輯器,浏覽器,電子郵件。
二、Linux的重要人物
1.Ken Thompson:C 語言之父和 UNIX 之父
2.Dennis Ritchie:C 語言之父和 UNIX 之父
3.Stallman:著名黑客,GNU 創始人,開發了 Emacs、gcc、bash shell
4.Bill Joy:BSD 開發者
5.Tanenbaum:Minix 開發者
6.Linus Torvalds:Linux 之父,芬蘭赫爾辛基大學
三、Linux 與 Windows 到底有哪些不同
1.免費與收費
• 最新正版 Windows8.1 官方售價 ¥888;
• Linux 免費或少許費用。
2.軟體與支援
• Windows 平台:數量和品質的優勢,不過大部分為收費軟體;由微軟官方提供重要支援和服務;
• Linux 平台:大都為開源自由軟體,使用者可以修改定制和再釋出,由于基本免費沒有資金支援,部分軟體品質和體驗欠缺;有全球所有的 Linux 開發者和自由軟體社群提供支援。
3.安全性
• Windows 平台:三天兩頭打更新檔安裝系統安全更新,還是會中病毒木馬;
• Linux 平台:要說 Linux 沒有安全問題,那當然是不可能的,這一點仁者見仁智者見智,相對來說肯定比 Windows 平台要更加安全,使用 Linux 你也不用裝某殺毒,某毒霸。
4.使用習慣
• Windows:普通使用者基本都是純圖形界面下操作使用,依靠滑鼠和鍵盤完成一切操作,使用者上手容易入門簡單;
• Linux:兼具圖形界面操作(需要使用帶有桌面環境的發行版)和完全的指令行操作,可以隻用鍵盤完成一切操作,新手入門較困難,需要一些學習和指導(這正是我們要做的事情),一旦熟練之後效率極高。
5.可定制性
• Windows:這些年之前算是全封閉的,系統可定制性很差;
• Linux:你想怎麼做就怎麼做,Windows 能做到得它都能,Windows 做不到的,它也能。
6.應用範疇
或許你之前不知道 Linux ,要知道,你之前在 Windows 使用百度,谷歌,上淘寶,聊 QQ 時,支撐這些軟體和服務的,是背景成千上萬的 Linux 伺服器主機,它們時時刻刻都在進行着忙碌的資料處理和運算,可以說世界上大部分軟體和服務都是運作在 Linux 之上的。
7.Windows 沒有的
• 穩定的系統
• 安全性和漏洞的快速修補
• 多使用者
• 使用者和使用者組的規劃
• 相對較少的系統資源占用
• 可定制裁剪,移植到嵌入式平台(如安卓裝置)
• 可選擇的多種圖形使用者界面(如 GNOME,KDE)
8.Linux 沒有的
• 沒有特定的支援廠商
• 遊戲娛樂支援度不足
• 專業軟體支援度不足
實驗二
本節實驗主要有:
1、實驗樓環境介紹 2、常用 Shell 指令及快捷鍵 3、Linux 使用小技巧
一、Linux 桌面環境介紹
相對于現在的 Windows 系統,UNIX/Linux 本身是沒有圖形界面的,我們通常在 Unix/Linux 發行版上看到的圖形界面實際都隻是運作在 Linux 系統之上的一套軟體,類似 Windows95 之前的Windows 的圖形界面實則也隻是運作在 DOS 環境的一套軟體。
二、Linux終端
1.Terminal(終端)
通常在我們使用 Linux 時,我們并不是直接與系統打交道,而是通過一個叫做 Shell 的中間程式來完成的,在圖形界面下為了實作讓我們在一個視窗中完成接受使用者輸入和顯示輸出,Linux 系統還提供了一個叫做終端模拟器的程式(Terminal),下面幾個比較常見的終端模拟器,例如 gnome-terminal,kconsole,xterm,rxvt,kvt,nxterm 和 eterm。
2.Shell
通常在圖形界面中對實際體驗帶來差異的不是上述的不同發行版的各種終端模拟器,而大都是這個 Shell(殼),有殼就有核,這裡的核就是指的 UNIX/Linux 核心,Shell 是指“提供給使用者使用界面”的軟體(指令解析器),類似于 DOS 下的 command(指令行)和後來的 cmd.exe。Unix/Linux 作業系統下的 Shell 既是使用者互動的界面,也是控制系統的腳本語言。在 UNIX/Linux 中比較流行的常見的 Shell 有 bash,zsh,ksh,csh 等等。
1).重要快捷鍵:
[Tab]
使用Tab鍵來進行指令補全,可以補全指令,補全目錄,補全指令參數。
[Ctrl+c]
使用Ctrl+c鍵來強行終止目前程式(并不會使終端退出)。
2).學會利用曆史輸入指令
使用鍵盤上的方向上鍵,恢複之前輸入過的指令。
3).學會使用通配符
通配符是一種特殊語句,主要有星号(*)和問号(?),用來對對字元串進行模糊比對(比如檔案名,參數名)。當查找檔案夾時,可以使用它來代替一個或多個真正字元;當不知道真正字元或者懶得輸入完整名字時,常常使用通配符代替一個或多個真正的字元。
4).學會在指令行中擷取幫助
在 Linux 環境中,如果你遇到困難,可以使用man 指令,它是Manual page的縮寫。Manual pages 是在 UNIX 或類 UNIX 作業系統線上軟體文檔的一種普遍的形式。 内容包括計算機程式(包括庫和系統調用),正式的标準和慣例,甚至是抽象的概念。使用者可以通過執行 man 指令調用手冊頁。

實驗三
1、Linux 中建立、删除使用者,及使用者組等操作。 2、Linux 中的檔案權限設定。
一、Linux 使用者管理
Linux 是一個可以實作多使用者登陸的作業系統。
1.檢視使用者
2.建立使用者
在 Linux 系統裡, root 賬戶擁有整個系統至高無上的權利,比如 建立/添加 使用者。
我們一般登入系統時都是以普通賬戶的身份登入的,要建立使用者需要 root 權限,這裡就要用到 sudo這個指令了。不過使用這個指令有兩個大前提,一是你要知道目前登入使用者的密碼,二是目前使用者必須在 sudo 使用者組。
退出目前使用者跟退出終端一樣可以使用 exit 指令或者使用快捷鍵 Ctrl+d。
3.使用者組
在 Linux 裡面每個使用者都有一個歸屬(使用者組),使用者組簡單地了解就是一組使用者的集合,它們共享一些資源和權限,同時擁有私有資源。在 Linux 裡面如何知道自己屬于哪些使用者組呢?
方法一:使用groups指令
$ groups shiyanlou
其中冒号之前表示使用者,後面表示該使用者所屬的使用者組。這裡可以看到 shiyanlou 使用者同時屬于 shiyanlou 和 sudo 使用者組,每次建立使用者如果不指定使用者組的話,預設會自動建立一個與使用者名相同的使用者組(差不多就相當于家長的意思,或者說是老總)。預設情況下在sudo使用者組裡的可以使用sudo指令獲得root權限。
方法二:檢視/etc/group檔案
$ cat /etc/group | sort
這裡 cat 指令用于讀取指定檔案的内容并列印到終端輸出。 | sort 表示将讀取的文本進行一個字典排序再輸出。
使用指令過濾掉一些你不想看到的結果:
$ cat /etc/group | grep -E"shiyanlou|sudo"
etc/group 檔案格式說明
/etc/group 的内容包括使用者組(Group)、使用者組密碼、GID 及該使用者組所包含的使用者(User),每個使用者組一條記錄。格式如下:
group_name:password:GID:user_list
你看到上面的 password 字段為一個 'x' 并不是說密碼就是它,隻是表示密碼不可見而已。
4.删除使用者
$ sudo deluser lilei --remove-home
二、Linux 檔案權限
1.檢視檔案權限
ls指令列出并顯示目前目錄下的檔案,
2.變更檔案所有者
使用以下指令變更檔案所有者為 shiyanlou :
$ cd /home/lilei
$ ls iphone6
$ sudo chown shiyanlou iphone6
$ cp iphone6 /home/shiyanlou
3.修改檔案權限
如果你有一個自己的檔案不想被其他使用者讀、寫、執行,那麼就需要對檔案的權限做修改,這裡有兩種方式:
• 方式一:二進制數字表示
• 方式二:加減指派操作
實驗四
1、Linux 的檔案組織目錄結構。 2、相對路徑和絕對路徑。 3、對檔案的移動、複制、重命名、編輯等操作。
一、Linux 目錄結構
通常 Windows 在使用一段時間後,磁盤上面的檔案目錄會顯得雜亂無章(少數善于整理的使用者除外吧)。Linux 是以樹形目錄結構的形式來建構整個系統的,可以了解為一個使用者可作業系統的骨架。雖然本質上無論是目錄結構還是作業系統核心都是存儲在磁盤上的,但從邏輯上來說 Linux 的磁盤是“挂在”(挂載在)目錄上的,每一個目錄不僅能使用本地磁盤分區的檔案系統,也可以使用網絡上的檔案系統。
1.FHS 标準
FHS 定義了兩層規範,第一層是, / 下面的各個目錄應該要放什麼檔案資料,例如 /etc 應該要放置設定檔案,/bin 與 /sbin 則應該要放置可執行檔案等等。
第二層則是針對 /usr 及 /var 這兩個目錄的子目錄來定義。例如 /var/log 放置系統登入檔案、/usr/share 放置共享資料等等。
2.目錄路徑
路徑
使用 cd 指令可以切換目錄,在 Linux 裡面使用 . 表示目前目錄,.. 表示上一級目錄(**注意,還記得我們上一節介紹過的,以 . 開頭的檔案都是隐藏檔案,是以這兩個目錄必然也是隐藏的,你可以使用 ls -a 指令檢視隐藏檔案), - 表示上一次所在目錄,~ 通常表示目前使用者的"home"目錄。使用 pwd 指令可以擷取目前所在路徑(絕對路徑)。
進入上一級目錄:$ cd ..
進入你的“home”目錄:$ cd ~ # 或者 cd /home/<你的使用者名>
使用 pwd 擷取目前路徑:
絕對路徑
關于絕對路徑,簡單地說就是以根"/"目錄為起點的完整路徑,以你所要到的目錄為終點,表現形式如: /usr/local/bin,表示根目錄下的 usr 目錄中的 local 目錄中的 bin 目錄。
相對路徑
相對路徑,也就是相對于你目前的目錄的路徑,相對路徑是以目前目錄 . 為起點,以你所要到的目錄為終點,表現形式如: usr/local/bin (這裡假設你目前目錄為根目錄)。你可能注意到,我們表示相對路徑實際并沒有加上表示目前目錄的那個 . ,而是直接以目錄名開頭,因為這個 usr 目錄為 /目錄下的子目錄,是可以省略這個 . 的(以後會講到一個類似不能省略的情況);如果是目前目錄的上一級目錄,則需要使用 .. ,比如你目前目錄為“home”目錄,根目錄就應該表示為 ../../ ,表示上一級目錄("home"目錄)的上一級目錄("/"目錄)。
二、Linux 檔案的基本操作
1.建立
建立空白檔案
使用 touch 指令建立空白檔案。
建立目錄
使用 mkdir(make directories)指令可以建立一個空目錄,也可同時指定建立目錄的權限屬性
2.複制
複制檔案
使用cp(copy)指令複制一個檔案或目錄到指定目錄。
複制目錄
3.删除
删除檔案
使用rm(remove files or directories)指令,删除一個檔案或目錄:
4.移動檔案與檔案重命名
移動檔案
使用mv(move or rename files)指令,移動檔案(剪切)。
重命名檔案
将檔案"file1"重命名為"myfile" mv 舊的檔案名 新的檔案名:
批量重命名
使用指令rename來實作。
5.檢視檔案
使用cat,tac和nl指令檢視檔案
6.檢視檔案類型
通常使用file指令可以檢視檔案的類型:$ file /bin/ls
7.編輯檔案
在 Linux 下面編輯檔案通常會直接使用專門的指令行編輯器比如(emacs,vim,nano)。
實驗五
本節實驗介紹環境變量的作用與用法,及幾種搜尋檔案的方法。學會這些技巧高效地使用 Linux。
一、環境變量
1.變量
所謂變量就是計算機中用于記錄一個值(不一定是數值,也可以是字元或字元串)的符号,而這些符号将用于不同的運算進行中。通常變量與值是一對一的關系,可以通過表達式讀取它的值指派給其它變量,也可以直接指定數值指派給任意變量。變量的作用域即變量的有效範圍(比如一個函數中、一個源檔案中或者全局範圍),在該範圍内隻能有一個同名變量。一旦離開則該變量無效,如同不存在這個變量一般。
2.通常我們會涉及到的環境變量有三種:
• 目前 Shell 程序私有使用者自定義變量,如上面我們建立的 temp 變量,隻在目前 Shell 中有效。
• Shell 本身内建的變量。
• 從自定義變量導出的環境變量。
也有三個與上述三種環境變量相關的指令,set,env,export。這三個指令很相似,都可以用于列印相關環境變量,差別在于涉及的是不同範圍的環境變量。
3.指令的查找路徑與順序
通過環境變量PATH來進行搜尋,熟悉 Windows 的使用者可能知道 Windows 中的也是有這麼一個 PATH 環境變量。這個PATH裡面就儲存了Shell中執行的指令的搜尋路徑。
檢視PATH環境變量的内容:$ echo $PATH
4.添加自定義路徑到“PATH”環境變量
可以這樣添加自定義路徑:$ PATH=$PATH:/home/shiyanlou/mybin
注意這裡一定要使用絕對路徑
5.修改和删除已有變量
比如要修改我們前面添加到 PATH 的環境變量。為了避免操作失誤導緻指令找不到,我們先将 PATH 指派給一個新的自定義變量 path:$ path=$PATH
$ echo $path
$ path=${path%/home/shiyanlou/mybin}
# 或使用通配符,*表示任意多個任意字元
$ path=${path%*/mybin}
變量删除
可以使用unset指令删除一個環境變量:
6.如何讓環境變量立即生效
使用source指令來讓其立即生效。
二、搜尋檔案
與搜尋相關的指令常用的有如下幾個whereis,which,find,locate。
實驗六
Linux 上常用的 壓縮/解壓 工具,介紹了 zip,rar,tar 的使用。
一、檔案打包和解壓縮
在講 Linux 上的解壓縮工具之前,有必要先了解以下常見常用的壓縮封包件格式。在 Windows 上我們最常見的不外乎這三種*.zip,*.rar,*.7z字尾的壓縮檔案,而在 Linux 上面常見常用的除了以上這三種外,還有*.gz,*.xz,*.bz2,*.tar,*.tar.gz,*.tar.xz,*tar.bz2,
- zip壓縮打包程式
使用zip打封包件夾:$ zip -r -q -o shiyanlou.zip /home/shiyanlou
$ du -h shiyanlou.zip
$ file shiyanlou.zip
2.使用unzip指令解壓縮zip檔案
将shiyanlou.zip解壓到目前目錄:$ unzip shiyanlou.zip
使用安靜模式,将檔案解壓到指定目錄:$ unzip -q shiyanlou.zip -d ziptest
上述指定目錄不存在,将會自動建立。如果你不想解壓隻想檢視壓縮包的内容你可以使用-l參數:$ unzip -l shiyanlou.zip
3.rar打包壓縮指令
rar也是 Windows 上常用的一種壓縮檔案格式,在 Linux 上可以使用rar和unrar工具分别建立和解壓 rar 壓縮包。
• 安裝rar和unrar工具:
$ sudo apt-get update
$ sudo apt-get install rar unrar
• 從指定檔案或目錄建立壓縮包或添加檔案到壓縮包:
$ rm *.zip
$ rar a shiyanlou.rar .
• 從指定壓縮封包件中删除某個檔案:
$ rar d shiyanlou.rar .zshrc
• 檢視不解壓檔案:
$ rar l shiyanlou.rar
4.tar打包工具
在 Linux 上面更常用的是tar工具,tar 原本隻是一個打包工具,隻是同時還是實作了對 7z,gzip,xz,bzip2 等工具的支援,這些壓縮工具本身隻能實作對檔案或目錄(單獨壓縮目錄中的檔案)的壓縮,沒有實作對檔案的打包壓縮,是以我們也無需再單獨去學習其他幾個工具,tar 的解壓和壓縮都是同一個指令,隻需參數不同,使用比較友善。
• 建立一個 tar 包:
$ tar -cf shiyanlou.tar ~
• 解包一個檔案(-x參數)到指定路徑的已存在目錄(-C參數):
$ mkdir tardir
$ tar -xf shiyanlou.tar -C tardir
• 隻檢視不解封包件-t參數:
$ tar -tf shiyanlou.tar
• 保留檔案屬性和跟随連結(符号連結或軟連結),有時候我們使用tar備份檔案當你在其他主機還原時希望保留檔案的屬性(-p參數)和備份連結指向的源檔案而不是連結本身(-h參數):
$ tar -cphf etc.tar /etc
對于建立不同的壓縮格式的檔案,對于tar來說是相當簡單的,需要的隻是換一個參數,這裡我們就以使用gzip工具建立*.tar.gz檔案為例來說明。
解壓*.tar.gz檔案:$ tar -xzf shiyanlou.tar.gz
實驗七
本節實驗的檔案系統操作的内容十分簡單,隻會包含幾個指令的幾個參數的講解。
一、簡單檔案系統操作
1.檢視磁盤和目錄的容量
使用 df 指令檢視磁盤的容量
使用 du 指令檢視目錄的容量
二、簡單的磁盤管理
1.建立虛拟磁盤
dd指令用于轉換和複制檔案,不過它的複制不同于cp。
使用 fdisk 為磁盤分區
使用 losetup 指令建立鏡像與回環裝置的關聯
使用mkfs格式化各分區(前面我們是格式化整個虛拟磁盤鏡像檔案或磁盤),不過格式化之前,我們還要為各分區建立虛拟裝置的映射,用到kpartx工具。
實驗八
順序執行、選擇執行、管道、cut 指令、grep 指令、wc 指令、sort 指令等,高效率使用 Linux 的技巧。
一、指令執行順序的控制
1.順序執行多條指令
一次執行各指令:$ sudo apt-get update;sudo apt-get install some-tool;some-tool
2.有選擇的執行指令
使用which來查找是否安裝某個指令,如果找到就執行該指令,否則什麼也不做。$ which cowsay>/dev/null && cowsay -f head-in ohch~:
二、管道
管道是什麼,管道是一種通信機制,通常用于程序間的通信(也可通過socket進行網絡通信),它表現出來的形式就是将前面每一個程序的輸出(stdout)直接作為下一個程序的輸入(stdin)。
管道又分為匿名管道和具名管道(這裡将不會讨論在源程式中使用系統調用建立并使用管道的情況,它與指令行的管道在核心中實際都是采用相同的機制)。
1.試用
先試用一下管道,比如檢視/etc目錄下有哪些檔案和目錄,使用ls指令來檢視:$ ls -al /etc
2.cut 指令,列印每一行的某一字段
列印/etc/passwd檔案中以:為分隔符的第1個字段和第6個字段分别表示使用者名和其家目錄:
$ cut /etc/passwd -d ':' -f 1,6
3.grep 指令,在文本中或 stdin 中查找比對字元串
grep指令的一般形式為:grep [指令選項]... 用于比對的表達式 [檔案]...
4. wc 指令,簡單小巧的計數工具
wc 指令用于統計并輸出一個檔案中行、單詞和位元組的數目,比如輸出/etc/passwd檔案的統計資訊:$ wc /etc/passwd
5.sort 排序指令
這個指令前面我們也是用過多次,功能很簡單就是将輸入按照一定方式排序,然後再輸出,它支援的排序有按字典排序,數字排序,按月份排序,随機排序,反轉排序,指定特定字段進行排序等等。
預設為字典排序:$ cat /etc/passswd | sort
反轉排序:$ cat /etc/passwd | sort -r
按特定字段排序:$ cat /etc/passwd | sort -t':' -k 3
6. uniq 去重指令
uniq指令可以用于過濾或者輸出重複行。
實驗九
這一節我們将介紹這幾個指令tr(注意不是tar),col,join,paste。
一、常用的文本處理指令
二、文本處理指令
1.tr 指令
tr 指令可以用來删除一段文本資訊中的某些文字。或者将其進行轉換。
使用方式:tr [option]...SET1 [SET2]
2.col 指令
col 指令可以将Tab換成對等數量的空格建,或反轉這個操作。
使用方式:col [option]
3.join指令
學過資料庫的使用者對這個應該不會陌生,這個指令就是用于将兩個檔案中包含相同内容的那一行合并在一起。
使用方式:join [option]... file1 file2
4.paste指令
paste這個指令與join 指令類似,它是在不對比資料的情況下,簡單地将多個檔案合并一起,以Tab隔開。
使用方式:paste [option] file...
實驗十
一、資料流重定向
1.簡單的重定向
在更多了解 Linux 的重定向之前,我們需要先知道一些基本的東西,前面我們已經提到過 Linux 預設提供了三個特殊裝置,用于終端的顯示和輸出,分别為stdin(标準輸入,對應于你在終端的輸入),stdout(标準輸出,對應于終端的輸出),stderr(标準錯誤輸出,對應于終端的輸出)。
2.标準錯誤重定向
重定向标準輸出到檔案,這是一個很實用的操作,另一個很實用的操作是将标準錯誤重定向,标準輸出和标準錯誤都被指向僞終端的螢幕顯示,是以我們經常看到的一個指令的輸出通常是同時包含了标準輸出和标準錯誤的結果的。
3.使用tee指令同時重定向到多個檔案
$ echo 'hello shiyanlou' | tee hello
4.永久重定向
可以使用exec指令實作“永久”重定向。
5.建立輸出檔案描述符
使用下面指令檢視目前 Shell 程序中打開的檔案描述符:$ cd /dev/fd/;ls -Al
6.關閉檔案描述符
如上面我們打開的3号檔案描述符,可以使用如下操作将它關閉:$ exec 3>&-
$ cd /dev/fd;ls -Al;cd –
7.完全屏蔽指令的輸出
設個/dev/null屏蔽指令的輸出:$ cat Documents/test.c\~ nefile 1>/dev/null 2>&1
8.使用 xargs 分割參數清單
xargs 是一條 UNIX 和類 UNIX 作業系統的常用指令。它的作用是将參數清單轉換成小塊分段傳遞給其他指令,以避免參數清單過長的問題。
實驗十一
這一節實驗隻是介紹grep,sed,awk這三個指令。
一、正規表達式
正規表達式,又稱正規表示式、正規表示法、正規表達式、規則表達式、正常表示法(英語:Regular Expression,在代碼中常簡寫為 regex、regexp 或 RE),計算機科學的一個概念。正規表達式使用單個字元串來描述、比對一系列符合某個句法規則的字元串。在很多文本編輯器裡,正規表達式通常被用來檢索、替換那些符合某個模式的文本。
二、grep模式比對指令
1.基本操作
grep指令用于列印輸出文本中比對的模式串,它使用正規表達式作為模式比對的條件。
2.使用正規表達式
使用基本正規表達式,BRE
三、sed 流編輯器
sed工具在 man 手冊裡面的全名為"sed - stream editor for filtering and transforming text ",意即,用于過濾和轉換文本的流編輯器。
四、awk文本處理語言
1.awk介紹
AWK是一種優良的文本處理工具,Linux及Unix環境中現有的功能最強大的資料處理引擎之一.
2.awk的一些基礎概念
awk所有的操作都是基于pattern(模式)—action(動作)對來完成的,如下面的形式:$ pattern {action}
3.awk指令基本格式
awk [-F fs] [-v var=value] [-f prog-file | 'program text'] [file...]
4.awk操作體驗
5.awk常用的内置變量
實驗十二
介紹 Ubuntu 下軟體安裝的幾種方式,及 apt,dpkg 工具的使用。
一、Linux 上的軟體安裝
通常 Linux 上的軟體安裝主要有三種方式:
• 線上安裝
• 從磁盤安裝deb軟體包
• 從二進制軟體包安裝
• 從源代碼編譯安裝
二、線上安裝
試想一下,平時我們在使用 Windows 的時候,想要安裝一個軟體,我們需要在網上去下載下傳對應軟體的安裝包,接着安裝的時候就是不斷的去點選下一步,這些流程想必大家已經經曆的無數回了,但是在 Linux 下,一個指令加回車,等待一下,軟體就安裝好了,這就是友善的線上安裝軟體的方式。在學習這種安裝方式之前有一點需要說明的是,在不同的linux發行版上面線上安裝方式會有一些差異包括使用的指令及它們的包管理工具,因為我們的開發環境是基于ubuntu的,是以這裡我們涉及的線上安裝方式将隻适用于ubuntu發行版,或其它基于ubuntu的發行版如國内的ubuntukylin(優麒麟),ubuntu又是基于debian的發行版,它使用的是debian的包管理工具dpkg,是以一些操作也适用與debian。而在其它一些采用其它包管理工具的發行版如redhat,centos,fedora等将不适用(redhat和centos使用rpm)。
1. apt 包管理工具介紹
APT是Advance Packaging Tool(進階包裝工具)的縮寫,是Debian及其派生發行版的軟體包管理器,APT可以自動下載下傳,配置,安裝二進制或者源代碼格式的軟體包,是以簡化了Unix系統上管理軟體的過程。
2.apt-get
apt-get使用各用于處理apt包的公用程式集,我們可以用它來線上安裝、解除安裝和更新軟體包等。
3.安裝軟體包
關于安裝,如前面示範的一樣你隻需要執行apt-get install <軟體包名>即可,除了這一點,你還應該掌握的是如何重新安裝軟體包。 很多時候我們需要重新安裝一個軟體包,比如你的系統被破壞,或者一些錯誤的配置導緻軟體無法正常工作。可以使用如下方式重新安裝:$ sudo apt-get --reinstall install w3m
4.軟體更新
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade
5.解除安裝軟體
sudo apt-get remove w3m 。
6.軟體搜尋
當自己剛知道了一個軟體,想下載下傳使用,需要确認軟體倉庫裡面有沒有,就需要用到搜尋功能了,指令如下:sudo apt-cache search softname1 softname2 softname3……
三、使用 dpkg 從本地磁盤安裝 deb 軟體包
1.dpkg 介紹
dpkg 是 Debian 軟體包管理器的基礎,它被伊恩·默多克建立于 1993 年。dpkg 與 RPM 十分相似,同樣被用于安裝、解除安裝和供給和 .deb 軟體包相關的資訊。
dpkg 本身是一個底層的工具。上層的工具,像是 APT,被用于從遠端擷取軟體包以及處理複雜的軟體包關系。"dpkg"是"Debian Package"的簡寫。
我們經常可以在網絡上簡單以deb形式打包的軟體包,就需要使用dpkg指令來安裝。
2.使用dpkg安裝deb軟體包
3.檢視已安裝軟體包的安裝目錄
使用dpkg -L檢視deb包目錄資訊:$ sudo dpkg -L emacs
四、從二進制包安裝
二進制包的安裝比較簡單,我們需要做的隻是将從網絡上下載下傳的二進制包解壓後放到合适的目錄,然後将包含可執行的主程式檔案的目錄添加進PATH環境變量即可,如果你不知道該放到什麼位置,請重新複習第四節關于 Linux 目錄結構的内容。
三、實驗感想
這次的實驗主要學習了Linux 簡介、基本概念及操作、使用者及檔案權限管理、Linux 目錄結構及檔案基本操作、環境變量與檔案查找、檔案打包與壓縮、檔案系統操作與磁盤管理、指令執行順序控制與管道、簡單的文本處理、資料流重定向、正規表達式基礎、Linux 下軟體安裝等這些内容。因為之前在學習Java課程時接觸過Linux,但是隻知其然不知其是以然,通過本次實驗,讓我更加了解了Linux,一開始做實驗時,對一些指令不熟悉,隻是跟着步驟一步一步的做,花費時間較長。過程中遇到的問題通過詢問同學,閱讀相關書籍,上網查找資料等方法都得以解決。在今後的學習中将更加努力,争取做得更好!