Download presentation
Presentation is loading. Please wait.
1
Linux
2
(一)導讀資料 (二)名詞解釋 (三)安裝Linux (四)系統結構與目錄架構 (五)開始使用Linux (六)Linux指令與工具 (七)文字編輯器 (八)Linux網路設定 (九)Linux架站服務 (十)問題討論
3
導讀資料 鳥哥的 Linux 私房菜 -- 基礎學習篇 http://linux.vbird.org/linux_basic/
陳晏瑨:Unix-Like / Linux系統基礎入門-使用Debian GNU / Linux 維基百科
4
名詞解釋 Linux Fedora Ubuntu Linux
Linux,是一類Unix電腦作業系統的統稱。Linux作業系統也是自由軟體和開放原始碼發展中最著名的例子。嚴格來講,Linux這個詞本身只表示Linux核心,但在實際上,人們已經習慣了用Linux來形容整個基於Linux核心,並且使用GNU 專案各種工具和資料庫的作業系統(也被稱為GNU/Linux)。基於這些零件的Linux軟體被稱為Linux套件。一般來講,一個Linux發行套件包含大量的軟體,比如軟體開發工具(例如gcc)、資料函式庫(例如PostgreSQL、MySQL)、Web伺服器(例如Apache)、X Window、桌面環境(例如GNOME和KDE)、辦公套件(例如OpenOffice.org)、腳本語言(例如Perl、PHP和Python)等等。 Linux核心最初是為英特爾386微處理器設計的。現在Linux核心支援從個人電腦到大型主機甚至包括嵌入式系統在內的各種硬體裝置。現在,Linux已經成為了一種受到廣泛關注和支援的作業系統。包括IBM和惠普、戴爾在內的一些電腦業巨頭也陸續支援Linux,並且成立了一些組織支援其發展,如Open Invention Network(OIN)(成員有IBM,SONY,NEC,Philips,Novell,Red hat等)購買了微軟專利,允許任何個體以開放的原則使用。很多人認為,和其他的商用Unix系統以及微軟Windows相比,作為自由軟體的Linux具有低構建成本,高安全性,更加可信賴等優勢。 Fedora Fedora Linux(第七版以前為Fedora Core)是較具知名度的 Linux 發行套件之一,由 Fedora Project社群開發、紅帽公司贊助,目標是建立一套新穎、多功能(桌面與伺服器等)並且自由(開放原始碼)的作業系統。 Fedora 是奠基於 Red Hat Linux,在 Red Hat Linux 終止發行後,紅帽公司計畫以 Fedora 來取代 Red Hat Linux 在個人應用的領域,而另外發行的 Red Hat Enterprise Linux(Red Hat 企業版 Linux,RHEL)則取代 Red Hat Linux 在商業應用的領域。 Fedora 的功能對於使用者而言,它是一套功能完備、更新快速的免費作業系統,而對贊助者 Red Hat 公司而言,它是許多新技術的測試平台,被認為可用的技術最終會加入到 Red Hat Enterprise Linux 中。Fedora Project 大約每六個月發佈新版本,目前 Fedora 最新的版本是 Fedora 12。 Ubuntu Ubuntu是一個以桌面應用為主的Linux作業系統,其名稱來自非洲南部祖魯語或豪薩語的「ubuntu」一詞(譯為吾幫托或烏班圖),是非洲傳統的一種價值觀,類似華人社會的「仁愛」思想。 Ubuntu基於Debian發行版和GNOME桌面環境,與Debian的不同在於它每6個月會發佈一個新版本。普通的桌面應用版可以獲得18個月的支援,標為LTS的桌面應用版可以獲得更長時間的支援。例如,Ubuntu8.04 LTS(代號Hardy Heron),其桌面應用系列可以獲得為期三年的技術支援,伺服器版可以獲得為期五年的技術支援。Ubuntu的目標在於為一般用戶提供一個最新的、同時又相當穩定的主要由自由軟體構建而成的作業系統。Ubuntu具有龐大的社群力量,用戶可以方便地從社群獲得幫助。Kubuntu與Xubuntu是Ubuntu計畫正式支援的衍生版本,分別將KDE與Xfce桌面環境帶入Ubuntu,Edubuntu是一個針對學校教學環境而設計,試圖讓低齡兒童可以輕鬆學會使用的衍生版本。 Ubuntu以Debian為開發藍本。與Debian穩健的升級策略不同,Ubuntu每六個月便會發佈一個新版,以便人們及時地獲取和使用新軟體。Ubuntu的開發目的是為了使個人電腦變得簡單易用,同時也提供針對企業應用的伺服器版本。Ubuntu的每個新版本均會包含當時最新的GNOME桌面環境,通常在GNOME發佈新版本後一個月內發行。與其他基於Debian的Linux發行版,如MEPIS、Xandros、Linspire、Progeny和Libranet等相比,Ubuntu更接近Debian的開發理念,它主要使用自由、開源的軟體,而其他發行版往往會附帶很多閉源的軟體。 Ubuntu建基於Debian的不穩定分支:不論其軟體格式(deb)還是軟體管理與安裝系統(Debian Apt/Synaptic)。Ubuntu的開發者會把對軟體的修改及時反饋給Debian社群,而不是在發佈新版時才宣佈這些修改。事實上,很多Ubuntu的開發者同時也是Debian主要軟體的維護者。不過,Debian與Ubuntu的軟體並不一定完全相容,也就是說,將Debian的套件安裝在Ubuntu上可能會出現相容性問題,反之亦然。
5
安裝Linux(1/8) 1. 使用光碟開機 (於 BIOS 設定)。 2. 切割硬碟、格式化硬碟 (至少建立 /、SWAP )。
3. 複製檔案 (Copy) 到硬碟 (包含 Boot Loader)。 4. 重新開機,進入 Linux。
6
安裝Linux(2/8)
7
安裝Linux(3/8) 接下來是磁碟分割設定。在這個步驟中則依系統需求,來分配相關分割區大小,在記憶體Swap部分,需設為系統記憶體的二倍大,例如,本機記憶體大小為512MB,則SWAP大小為1024MB。為方便使用者分割硬碟,Fedora 提供了四個方案來協助分割硬碟: 移除所選磁碟上的 Linux 分割區,並建立預設的分割模式 (Remove linux partitions on selected drives and create default layout) - 這個方案會刪除硬碟上所有GNU/Linux分割區,然後再重新分割硬碟。如果您硬碟上有如您想保留的 GNU/Linux 系統,請不要選擇此項。 重設現有分割區的大小,並在未使用的空間建立預設的分割模式 (Resize existing partition and create default layout in free space) 使用所選取磁碟上的未使用空間來建立預設的分割模式 (Use free space on selected drives and create default layout) - 這個方案不會刪除任何分割區,只使用尚未分給任何分割區的空間進行自動分割。當然如果您的硬碟早已被另一個操作系統佔用了,此項根本用不了。 建立自訂的分割模式 (Create custom layout) - 這個方案不會幫您自動分割,會執行一個叫 Disk Druid 的程式這您手動地自行分割硬碟。
8
安裝Linux(4/8)
9
安裝Linux(5/8)
10
安裝Linux(6/8)
11
安裝Linux(7/8)
12
安裝Linux(8/8)
13
系統結構與目錄架構(1/3) Windows 與 Linux 兩套系統在『檔案目錄』結構上有什麼不同?
在 Windows 當中,磁碟分割是由『C:\、D:\』這樣的順序編排而成;在 Linux 底下則是統一由『/ (root)』作為系統的『根目錄』,系統內所有的 目錄都依附在『/ (root)』底下。假使不同的硬碟或分割區 (Partition), 也一樣都依附在『/ (root)』底下,透過『mount (掛載)』的方式,將它們 掛載起來使用。
14
系統結構與目錄架構(2/3) 簡單來說,Linux 作業系統由以下幾個部分所組成: 1. Linux Kernel (核心)
2. OS Utilities / Applications (系統層級的應用程式或管理工具) 3. Applications (一般應用程式) a. Server Applications (伺服應用軟體) b. X-Window Applications (桌面視窗應用軟體) c. Other Applications (不屬於上述兩種的『其他軟體』)
15
系統結構與目錄架構(3/3) 系統中常見的目錄與說明
16
開始使用Linux(1/4) 第一種:親自走到主機面前,拿起鍵盤,輸入帳號密碼。這是最基本的登入方法了。一般而言,預設可登入的終端機 (Virtual Console) 有七個,分別是從 『tty1』到『tty7』(tty7 通常是作為 X-window 的使用)。如果各位想要在虛擬終端機之間切換,只要在鍵盤上按下 『Ctrl』+『Alt』+『F2』(三鍵一起按),就可以切換到『第二個虛擬終端機 (tty2)』;以此類推,若按下『Ctrl』+『Alt』+『F1 到 F7』 就可以讓您從 tty1 切換到 tty7 囉! 第二種:在 Linux (& UNIX-Like) 系統上,有一個特點是:不論您在何時何地,都可以透過網路,直接登入到主機來使用。從下面的『遠端登入示意圖』可以看到,在 Linux主機上,透過『telnetd』 或者『sshd』的服務,來啟動『遠端登入』的功能。
17
開始使用Linux(2/4) 如果各位的 Linux 是安裝在外地的電腦上,那就必須要『遠端登入』 才能在遠端的主機上進行練習與操作。假使您目前已經在 Linux 系統下, 使用系統的 ssh 或 telnet 指令就可以直接登入到遠端的機器啦! 若各位在 Windows 下想要登入到遠端的 Linux 主機,有兩種方式:第一種,打開『命令提示字元 (cmd)』,使用 windows 內建的 telnet 命令來登入。第二種,使用遠端登入軟體 PuTTY ( PieTTY (
18
開始使用Linux(3/4) 登入時,必須填入帳號跟密碼,以下遠端登入的示範例子:
19
開始使用Linux(4/4) 另外,在第一次登入系統後,最好先更改自己的登入密碼,以免系統預
設開給您的密碼太過於簡單,而導致系統被惡意人士入侵。更改密碼的指令 是 passwd,使用方式在下面介紹。
20
Linux指令與工具(1/15) 1. 檔案與目錄操作 2. 打包與壓縮 3. 更改檔案權限 4. 搜尋檔案 5. 文字過濾器
6. 萬用字元 7. 正規表示式
21
Linux指令與工具(2/15)
22
Linux指令與工具(3/15) 打包的概念其實就是『集結檔案』的意思,好比今天各位去超商買了一
大堆的東西,如果我們不買袋子的話,那就需要很多人幫忙拿,可是假使我 們用一個大袋子把它們都裝起來後,那就會變得很好拿了。 在檔案處理上,假如您要傳一百個檔案給對方,我們可以把這一百個檔 案『打包』起來後,直接傳一個檔案就行了。假使這個打包檔案太大了,這 時候就需要用到『檔案壓縮』的工具囉
23
Linux指令與工具(4/15) 更改檔案權限 在 Linux 系統下,每一個檔案都有著相關的屬性,這些屬性背後所代
表的意義也是一門重要的課題。在『7-1 檔案與目錄操作』我們提到了 ls –l 的長格式屬性,其中第一欄位即是權限的意思,筆者在下面為各位說明權限 欄位中各符號的代表的意義。 任何檔案都有其相關的『權限屬性』,在此分成三種: 1. User 權限: 檔案擁有人 對於該檔案能做哪些事情。 2. Group 權限: 群組使用者 對於該檔案能做哪些事情。 3. Other 權限: 其他所有人 對於該檔案能做哪些事情。
24
Linux指令與工具(5/15) 對於檔案而言: 若它具有『r』的權限,表示各位可使用任何的工具來『讀取』檔案的
內容。如果它擁有『w』的權限,表示各位可以任意的『寫入與變更』檔案 ;如果它具有『x』的權限,表示可以把檔案『當作程式』來執行。 對於目錄而言: 若它具有『r』的權限,表示各位可以使用類似 ls 等指令來『列示』 目錄的內容。如果它擁有『w』的權限,表示各位可以對於該目錄中的檔案 做『任何的處置』(建立、刪除或變更等)。若它具有『x』的權限,表示這個 目錄允許使用者切換 (cd 進入) 到目錄中;換句話說,假使目錄不賦予『x』 權限的話,那麼大家將無法進入 (cd) 到目錄之中唷!
25
Linux指令與工具(6/15)
26
Linux指令與工具(7/15)
27
Linux指令與工具(8/15)
28
Linux指令與工具(9/15) 『find』與『locate』都是用來搜尋系統檔案的工具,不過它們的搜尋
方式不太一樣。find 是直接從 File System 來搜尋檔案,因此搜尋速度會比 較慢一些,也比較耗費系統資源;locate 的搜尋方式,是透過一個已經對 File System 索引 (index) 過後的資料庫來尋找檔案,因此 locate 的速度 會較快些,也比較不會耗費系統資源。不過在使用 locate 之前,要先使用 『updatedb』指令,來建立『檔案索引資料庫』。以下是 find 與 locate 搜尋檔案的示意圖,讓大家了解其中的差異。
29
Linux指令與工具(10/15) locate 的使用方式比 find 來得簡單,而且在搜尋的速度上也比較快。
若要讓『索引資料庫』的內容一直保持在最新的狀態,那麼就要定期的 updatedb,否則新建立的檔案,有可能會搜尋不到唷!這是因為 updatedb 尚未更新的原因。若使用 find 搜尋檔案,就不會有這種問題發生,這也是 locate 與 find 之間最大的差異。
30
Linux指令與工具(11/15)
31
Linux指令與工具(12/15)
32
Linux指令與工具(13/15) 文字過濾器 在 Linux 上有許多命令可以用來『擷取檔案字串內容』。這些命令必
須透過 PipeLine (管線) 來處理,所以有人稱之為『管線命令』,另外的一 種稱呼也叫做『文字過濾器 (Text Stream Filter)』。這類命令會將檔案文 字的內容,依照使用者的需求『修整』後,將結果送往標準輸出或存入檔案 中,甚至還能透過 pipeline 再把結果交由下一個文字過濾器來處理。常見的 文字過濾器,例如有下列這些 (僅列出一些,仍有許多尚未列出):
33
Linux指令與工具(番外篇) kill ps top iostat vmstat
34
Linux指令與工具(14/15) 萬用字元 在 Shell 底下,擁有一些特殊符號,稱之為『萬用字元 (wild card)』
;萬用字元對於『檔名的展開』相當好用,在一些繁複的工作中,使用萬用 字元可以減少不少負擔呢! 以下是基礎的『萬用字元』字符代表意義介紹:
35
Linux指令與工具(15/15) 初學者對於『正規表示式』與『萬用字元』常常會搞混,因此正確的
觀念釐清是很重要的喔!『正規表示式』在 UNIX 系統中,扮演著很重要的 角色,詳細的介紹與說明可以深入到一本書的容量了。不過在這一章節裡, 筆者只先介紹基礎的入門範例,至於詳細的內容就留給大家研究與摸索。 以下是『正規表示式』的符號意義與常用範例介紹:
36
文字編輯器(1/2) Vi 介紹 基本上 vi 共分為三種模式,分別是: (1). 一般模式 (2). 編輯模式 (3). 指令列命令模式
在 Linux / UNIX 系統中,大部份的檔案都是 ASCII 純文字檔, 於是若要更改系統設定或任何檔案時,就必須要有一套『文字編輯器』 來處理這些事情。在這一章,筆者要為各位介紹 vi 編輯器的使用。 vi 是一個歷久彌新的編輯器,在大部份的 UNIX 系統上,幾乎都能 看到 vi 編輯器的存在,因此學好 vi 編輯器就變成是一件很重要的事囉! 在 UNIX 系統中,與 vi 一樣廣受歡迎的另一套強大編輯器叫做 emacs。 雖然這裡將要介紹的是 vi 編輯器,不過筆者認為,若有機會不妨多學一套 編輯器是有利無害的,因為您總不能保證每台機器上都一定要有 vi 吧! 以上的三種模式,為了讓大家可以更淺顯易懂,簡單的說『編輯模式 』是用來『key in (打字輸入資料)』的模式;『一般模式』是用來『複製、 剪下、貼上..』以及『移動游標、遊走』的模式;『指令列模式』是用來 『存檔、另存新檔..』等相關的模式。 當各位進入到 Vi 編輯畫面後,在畫面的最下方有一個『狀態列』 ,此狀態列的右方,會即時顯示游標目前所在位置在『幾行, 幾列』以及游標所在位置的『百分比 %』狀態。
37
文字編輯器(2/2) Vim命令圖解
38
Linux網路設定(1/7) 1. 網路參數設定指令 2. 網路偵錯與觀察指令 3. 遠端連線指令
39
Linux網路設定(2/7) 網路參數設定指令
任何時刻如果你想要做好你的網路參數設定,包括 IP 參數、路由參數與無線網路等等, 就得要瞭解底下這些相關的指令才行!其中以 route 及 ip 這兩支指令算是較重要的喔! ^_^ 當然,比較早期的用法,我們都是使用 ifconfig 的啦! ifconfig:查詢、設定網路卡與 IP 網域等相關參數; ifup, ifdown:這兩個檔案是 script ,透過更簡單的方式來啟動網路介面; route:查詢、設定路由表 (route table) ip:複合式的指令,可以直接修改上述提到的功能;
40
Linux網路設定(3/7) 關於裝置介面 (device) 的相關設定: ip link
ip link 可以設定與裝置 (device) 有關的相關設定,包括 MTU 以及該網路介面的 MAC 等等, 當然也可以啟動 (up) 或關閉 (down) 某個網路介面啦!整個語法是這樣的:
41
Linux網路設定(4/7) 網路偵錯與觀察指令
在網路的互助論壇中,最常聽到的一句話就是:『高手求救!我的 Linux 不能連上網路了!』我的天吶!不能上網路的原因多的很!而要完全搞懂也不是一件簡單的事情呢! 不過,事實上我們可以自己使用測試軟體來追蹤可能的錯誤原因,而很多的網路偵測指令其實在 Linux 裡頭已經都預設存在了,只要您好好的學一學基本的偵測指令,那麼一些朋友在告訴您如何偵錯的時候, 您應該就立刻可以知道如何來搞定他囉!好了,底下我們就簡單的來談一談幾個很基本的網路常用的偵錯指令啦! 我們前面談到的指令大多數都是針對主機的網路參數設定所需要的,而 ping 是兩部主機之間的回聲與否判斷, 那麼有沒有指令可以追蹤兩部主機之間通過的各個節點 (node) 通訊狀況的好壞呢? 舉例來說,如果我們連線到 yahoo 的速度比平常慢,你覺得是 (1)自己的網路環境有問題? (2)還是外部的 Internet 有問題?如果是 (1) 的話,我們當然需要檢查自己的網路環境啊, 看看是否又有誰中毒了?但如果是 Internet 的問題呢?那只有『等等等』啊! 判斷是 (1) 還是 (2) 就得要使用 traceroute 這個指令啦! 這個 traceroute 挺有意思的,這個指令會針對欲連接的目的地之所有 router 進行 ICMP 的逾時等待, 例如上面的例子當中,由自己主機連接到 Yahoo 時,他會經過 12 個節點,traceroute 會主動的對這 12 個節點做 ICMP 的回聲等待,並偵測回覆的時間,每個節點會偵測三次。 所以像上頭顯示的結果,發現每個節點其實回覆的時間大約在 200 ms 以內,算是還可以的 Internet 環境了。 而且由上面的資訊來看,可以看出在 這個節點後的傳輸延遲較久,至於之前的 9 個節點則有不錯的表現。透過這種解析,可以讓您瞭解到這條連線是那個環節出了問題喔。 另外,如果在預設的 5 秒鐘之內 traceroute 聽不到節點的回聲,那麼螢幕上就會跑出一個『 * 』的符號, 告知該節點無法有順利的回應。由於我們的 traceroute 用的是 ICMP 封包,有些防火牆或者主機可能會將 ICMP 可通過的權力拿掉,因此就會造成等不到回聲的狀態!另外,有些 gateway 本來就不支援 traceroute 的功能,因此也會產生那個『 * 』的狀況。所以分析時得要注意一下吶!
42
Linux網路設定(5/7) 如果你覺得你的某個網路服務明明就啟動了,但是就是無法造成連線的話,那麼應該怎麼辦? 首先你應該要查詢一下自己的網路介面所監聽的埠口 (port) 來看看是否真的有啟動, 因為有時候螢幕上面顯示的 [OK] 並不一定是 OK 啊!
43
Linux網路設定(6/7) 遠端連線指令
44
Linux網路設定(7/7) 遠端連線指令
45
Linux架站服務(1/3) 本章節請按照下面兩個網址完成伺服器架設,並根據項目依序了解所需知識。 WWW 伺服器 (自由研習)
vsFTPd 檔案伺服器
46
Linux架站服務(2/3) WWW 伺服器 (自由研習) WWW主機與Clinet瀏覽器運作原理與功能簡介
LAMP (Linux + Apache + MySQL + PHP) 所需套件與結構 httpd.conf 的基本設定 主機環境的設定項目 首頁權限相關設定 PHP & MySQL等額外設定檔 Apache 的啟動與 PHP 的測試 MySQL 資料庫的啟動與測試
47
Linux架站服務(3/3) vsFTPd 檔案伺服器 FTP 運作原理與功能簡介 FTP 安全性問題與身分認證
vsftpd.conf 設定值設定 用戶相關設定值 系統安全設定值 vsftpd 啟動模式設定 帳號列表設定 檔案上下傳測試
48
問題討論 一般來說,在 Linux 系統上,使用者預設的家目錄在那個目錄下?另外,新增一個使用者時,該使用者預設的家目錄內容來自那個目錄下?
我總是無法編輯某個檔案,您認為應該是什麼問題造成的?那又要怎麼解決? 一般來說,在 Linux 系統上,使用者預設的家目錄在那個目錄下?另外,新增一個使用者時,該使用者預設的家目錄內容來自那個目錄下? 在 /etc/default/useradd 這個檔案裡面會規範使用者的預設家目錄以及預設家目錄的內容,一般來說,使用者預設家目錄在 /home ,至於家目錄內的檔案則複製來源在 /etc/skel 裡面。 如果我下載了一個檔名為 httpd tar.gz 的檔案,一般來說,這個檔案代表的意義為何?我該如何讓這個檔案能夠在我的 Linux 系統上面安裝? 由於附檔名是 .tar.gz 或者是 .tgz 的檔案,所以可以認定該檔案為一個 Tarball 的檔案。至於檔名的配置方面,httpd 為套件名稱, 則通常為該套件的版本名稱了!那如何安裝?由於該檔案為 httpd 這個套件,且格式為 Tarball ,所以您必須要: 系統上面務必具有 tar, make, gcc 等相關的編譯套件; 使用 tar 解開 httpd tar.gz 之後,務必進入該目錄內讀取 REAME 或/與 INSTALL 檔案,以瞭解是否還需要其他的相關套件的搭配安裝; 以 ./configure --help 查閱一下是否有相關可以加入或者取消的編譯內容; 使用 make 讀取 Makefile 來編譯程式; 使用 make install 來安裝程式! 我總是無法編輯某個檔案,您認為應該是什麼問題造成的?那又要怎麼解決? 無法編輯某個檔案,可以先使用 file 這個指令來查詢一下該檔案的格式,例如想察看 /etc/shadow 的格式,可以下達:『file /etc/shadow』,如果是文字檔,卻還是無法編輯,那麼最可能發生的原因就是『權限』的問題了。可以使用 ls -l filename 察看檔案權限,再以 chmod 或 chown 來修訂該檔案的權限。此外,該檔案也可能含有隱藏屬性,可以使用 lsattr filename 查閱,再以 chattr 來修訂隱藏屬性。
Similar presentations