550 likes | 924 Vues
Linux 品牌. RedHat Linux SuSE Linux Mandrake Linux Caldera Linux Turbolinux Debian GNU/Linux Gentoo Linux Linpus Linux. Linux Kernel 現況與認證. Kerenl 版本 http://www.kernel.org 發展版本- 2.5.70 穩定版本- 2.4.20 Linux 認證 RedHat RHCE http://www.redhat.com/ LPI Level one/two/three
E N D
Linux品牌 • RedHat Linux • SuSE Linux • Mandrake Linux • Caldera Linux • Turbolinux • Debian GNU/Linux • Gentoo Linux • Linpus Linux
Linux Kernel現況與認證 • Kerenl 版本 http://www.kernel.org • 發展版本-2.5.70 • 穩定版本-2.4.20 • Linux認證 • RedHat RHCE http://www.redhat.com/ • LPI Level one/two/three http://www.lpi.org
開機管理選項 • 開機管理程式 • GRUB • LILO • 不安裝開機程式 • 開機程式安裝在哪裡? • MBR • /boot 的第一個磁區 • 設定核心參數
Linux 開機流程 • BIOS 嘗試在開機磁碟機的第 0 磁區、第 0 磁柱載入可供開機的磁區開機 • 開機載入程式 (boot loader ,如 LILO或Grub)的程式碼 • 找出 kernel 所在位置,接著載入並執行它以啟動開機程序 • 一旦 kernel 載入完畢,一些基本設備也完成初始化 (initialization) • 嘗試從某個設備載入以及掛上 (mount) root filesystem 一旦 root filesystem 被載入並掛上,會看到一行訊息像: VFS: Mounted root (ext3 filesystem) readonly
Linux 開機流程 • 此時系統會在 root filesystem 上找到 init 程式 ( 在 /bin or /sbin) 並執行 init 讀取它的組態設定檔 (configuration file) /etc/inittab ,找出檔中標明 sysinit 的一行,並執行被指名的script。這個 sysinit script 通常類似 /etc/rc 或 /etc/init.d/boot 這兩個檔。這個 script 是一組建立基本系統服務的 shell 指令,諸如: • 對所有磁碟執行 fsck • 載入必備的核心模組 (modules) • 啟動 swapping • 進行網路初始化 • 將指定在 fstab 內的磁碟掛上
Linux 開機流程 • 當 sysinit script 結束後,控制權回到 init 上,接著進入預設的runlevel • 預設的 runlevel 以 initdefault 這個關鍵字被指定在 /etc/inittab 內
runlevel 說明 0 – 關機 halt (不要在 initdefault 設定這個) 1 – 單人模式 Single user mode 2 – 多人模式未含網路功能 Multiuser, without NFS (與 runlevel 3 相同, 用在沒有網路環境下) 3 – 完整多人使用者模式 Full multiuser mode 4 – 未使用 unused 5 – xwindow 模式 X11 6 – 重開機 reboot (不要在 initdefault 設定這個)
man 男人? • 線上查詢 man page # man ls # man 1 ls # info ls • /etc/man.conf • whatis filename
vi • 文書處理器 vi • 管理員至少一定要會一種編輯器 • vi 的使用: • 一般模式:移動、複製、刪除、貼上 • 編輯模式:插入與取代文件 • 指令列模式:搜尋、自動取代、檔案存取等
Linux 檔案 # touch test # ls –al test
Linux 檔案種類 • 正規檔案( regular file ) • 第一個屬性為 [ - ] • 純文字檔(ascii) • 二進位檔(binary) • 目錄 (directory): • 第一個屬性為 [ d ] • 連結檔 (link): • 第一個屬性為 [ l ] • 設備檔 (device): • 區塊 (block) 設備檔,第一個屬性為 [ b ]; • 字元 (character) 設備檔,第一個屬性為 [ c ]。
更改 Linux 檔案屬性指令 owner = rwx = 4+2+1 = 7 group = rwx = 4+2+1 = 7 others = --- = 0+0+0 = 0 u g o a r=4,w=2,x=1 # chmod 770 test +(加入) -(除去) =(設定) r w x 檔案或目錄 chmod
更改 Linux 檔案擁有者指令 語法: chown [ -R ] 帳號名稱 檔案或目錄 chown [ -R ] 帳號名稱:群組名稱 檔案或目錄 範例: [root@test root]# chown games test [root@test root]# ls -l test drw-r--r-- 1 games root 0 Jun 20 14:36 test [root@test root]# chown –R root:root tmp
更改 Linux 檔案所屬群組 語法: chgrp 群組名稱檔案或目錄 範例: [root@test root]# chgrp users test [root@test root]# ls -l drw-r--r-- 1 root users 1 Jun 20 14:36 test
Linux 目錄結構 • /bin:常用系統程式目錄 • /boot:開機設定檔,也是預設擺放核心 vmlinuz 的地方 • /dev:擺放所有系統裝置檔案的目錄 • /etc:幾乎系統的所有設定檔案均在此,尤其 passwd, shadow • /etc/rc.d/init.d:系統開機的時候載入服務的 scripts 的擺放地點 • /home:系統使用者的家目錄
Linux 目錄結構 • /lib:Linux 執行或編譯程式函式庫目錄 • /mnt:軟碟與光碟接預設掛載點的地方 • /proc:系統核心與執行程序的一些資訊 • /root:系統管理員的家目錄 • /usr/bin, /bin:一般執行檔擺放的地方 • /usr/sbin, /sbin:系統管理員常用指令集 • /var:擺放系統記錄檔案的地方 • /lost+fount:擺放系統不正常產生錯誤時遺失的片段
Linux 管理工具介紹 • 檔案與目錄管理 • 磁碟與硬體管理 • 程序與資源管理 • RPM的管理 • 帳號與身份管理
檔案與目錄管理 • 目錄與路徑 • 相對路徑與絕對路徑 . 代表此層目錄 .. 代表上層目錄 ~ 代表自己的家目錄 ~user 代表到 user 這個人的家目錄
檔案與目錄管理 • cd 變換目錄 cd /root • pwd 顯示目前的目錄 • mkdir 建立一個新目錄 mkdir –p /root/abc/123 • rmdir 刪除一個裡面是空的空目錄 rmdir –p abc/123 • 環境變數PATH echo $PATH PATH=”$PATH”:/root
檔案與目錄管理 • ls [-ailS] 參數說明: -a :全部的檔案都列出(連同隱藏檔) -i :印出 inode 的值 -l :長的列出,連同檔案大小的資料等等 -S :以檔案大小排序
檔案與目錄管理 • cp [-drsu] [來源檔] [目的檔] 參數說明: -d:在進行 copy 的時候,如果是 copy 到 link 檔案,若不加任何參數,則預設情況中會將 link 到的原始檔案copy 到目的地,若加 -d 時,則 link 檔案可原封不動的將 link 這個捷徑其拷貝到目的地 -r:可以進行目錄的 copy -s:做成連結檔,而不 copy 之意!與 ln 指令相同功能! -u, --update:如果來源檔比較新,或者是沒有目的檔,那麼才會進行 copy 的動作
檔案與目錄管理 • rm [-fir] [檔名] 參數說明: -i :提供使用者確認(這是預設值) -r :遞迴刪除 -f :強力刪除
檔案與目錄管理 • mv [-u] [來源檔] [目的檔] 參數說明: -u :同樣的,為 update 的簡寫,當來源檔比目的檔還新的時後才會動作
觀看檔案內容 • cat由第一行開始顯示檔案內容 • tac從最後一行開始顯示,可以看出 tac 是 cat 的倒著寫 • more一頁一頁的顯示檔案內容 • less與 more 類似,可以往前翻頁 • head只看頭幾行 • tail只看尾巴幾行 • nl顯示的時候,順道輸出 行號 • od以二進位的方式讀取檔案內容
連結檔的介紹 • 連結檔的介紹: 什麼是 inode Block 是記錄『檔案內容資料』的地區,而inode 則是記錄『該檔案的屬性、及該檔案放置在哪一個 Block 之內』的資訊 • ln • hard link 不能跨 filesystem/不能 link 目錄 • symbolic link • ln [-s] [來源檔] [目的檔]
檔案與目錄權限 • chown改變檔案的擁有人 • chgrp改變檔案的所屬群組 • chmod改變檔案的可寫、可讀、可執行等屬性 • umask改變預設的建立檔案或目錄時的屬性 • chattr改變檔案的特殊屬性 • lsattr顯示檔案的特殊屬性
搜尋檔案或目錄 • which 查看可執行檔案的位置 # which ls • whereis 查看檔案的位置 # whereis [–b/-m] ls • locate 配合資料庫查看檔案位置 # locate ls #updatedb • find 尋找檔案 # find / -name “ls”
磁碟與硬體管理 • 查看硬碟或目錄的容量:df, du • 切割與格式化硬碟:fdisk, mke2fs, e2label, mknod • 檢查硬碟壞軌與資料同步化寫入:fsck, sync • 關於軟碟開機片: mkbootdisk, fdformat • 各式磁區的掛載:mount, umount • 設定開機時即掛載的方式:/etc/fstab • 虛擬記憶體 Swap:mkswap, swapon, swapoff • 磁碟效能:hdparm
程序與資源管理 • 什麼是程序? • 任何觸發系統工作的事件,系統會給予一個 process ID 來控制該事件的執行,這個 PID 就是程序 • 需要注意到,程序『屬於誰?他的權限是不同的!』而程序執行後輸出的訊息則與資料流有關
程序與資源管理 • 如何觀察程序? • top • ps • 常駐記憶體的程式(daemon, 服務) • 在背景下執行 • 是系統正常運作所必需要的(syslog,cron) • 是某些服務提供所必需要的(www, mail..)
Linux 套件管理 • RPM • 具有資料庫:容易安裝、升級、移除 • 在查驗及搜尋方面極為有效率 • 漏洞修補速度快速 • 最大的缺點:屬性相依的問題(這包含了版本、平台等等)
帳號與身份管理 • 帳號管理 • groupadd • groupdel • useradd • userdel • chsh • chfn • userconf
帳號與身份管理 • 密碼管理與設定 • passwd • 使用者身份切換 • su • sudo • visudo
帳號與身份管理 • 使用者查詢 • id • finger • groups
系統關機 • 關機 • shutdown –h now • halt • poweroff • init 0 • 重新起動 • shutdown –r now • reboot • init 6
網路工具 • 一些網路偵錯指令 • ping, ifconfig, ifup, ifdown, netstat, route, traceroute, host, dig, nslookup • 遠端連線使用指令 • telnet, ssh, ftp, ncftp, lftp, wget • 文字界面網頁瀏覽 • lynx, links
RedHat Linux 網路設定 • 修改主機名稱與Gateway等設定 • /etc/sysconfig/network • 修改網路卡設定 • /etc/sysconfig/network-script/ifcfg-eth0 • 修改DNS與Hosts設定 • /etc/resolv.conf • /etc/hosts
DNS Server套件-BIND • 套件:bind-9.2.1-16, bind-utils-9.2.1-16 • 服務:named • 執行檔:named • 服務埠:53 upd, 53 tcp • 設定檔:/etc/named.conf , /var/namd/*
DNS Server 啟動與停止 • /etc/init.d/named start 啟動 • tail –f /var/log/messages 查看 log 紀錄 • /etc/init.d/named stop 停止 • killall named or kill -9 PID
WWW Server • 套件: httpd { , -devel, -manual } • 服務名稱:httpd • 啟動的script : httpd • 執行埠:80/tcp (http), 443/tcp (https) • 設定檔:/etc/httpd/*, /var/www/* • 相關: redhat-config-httpd,mod_ssl,以及其它
WWW Server 設定檔 • 設定檔位置 /etc/httpd/conf/httpd.conf • 模組位置 /etc/httpd/conf.d/* • 網頁文件預設放置目錄 /var/www/html/
sendmail 啟動與測試 # /etc/init.d/sendmail start # telnet localhost 25 mail from: root@server.example.com rcpt to: root@example.com data This is a test Mail . quit
Proxy Server套件-squid • 安裝Proxy套件 – squid-2.5.STABLE1-2.i386.rpm • 目錄位置:/etc/squid • 設定檔:/etc/squid/squid.conf • 紀錄檔:/var/log/squid/access.log /var/log/squid/cache.log /var/log/squid/store.log
acl的用法 <acl> <acl名稱> <acl類型> <設定的內容> acl類型 • 以來源端:src,srcdomain • 以目地端:dst,dstdomain • 以正規表式法:url_regex [-i] ^http:// urlpath_regex [-i] \.gif$ 設定的內容 • IP or Domain or String acl example dstdomain .com
http_access 用法 • 設定允許存取 squid Server 的列表 以 acl 的定義來做管制 http_access allow example #設定只允許example的acl訂義存取 http_access deny all #如果要開放的話,改成 allow all
cache_peer 用法 <cache_peer> <主機名稱> <類別> <http_port> <icp_port> <其他參數> 類別:parent(上層),sibling(同一層) http_port/icp_port:3128/3130 其他參數: proxy-only,weight=n,no-query,default,no-netdb-exchange,no-digest 到處向其它proxy server請求會消耗太多網路資源,所以請勿設太多parent和sibling server. cache_peer proxy.hinet.net parent 3128 3130 proxy-only
cache_peer_access 用法 <cache_peer_access> <上層 Proxy> <allow|deny> <acl名稱> cache_peer_access proxy.hinet.net allow example
不要進行cache的設定值 只要網址列出 cgi 字樣都不做 cache hierarchy_stoplist cgi-bin ? acl QUERY urlpath_regex cgi-bin \? no_cache deny QUERY