談到學(xué)習(xí)編程,單純的上課和看書只會(huì)讓你學(xué)習(xí)語(yǔ)言的特性等,只有學(xué)會(huì)用編程的思想來(lái)思考才是你終生受用的。這些只能依靠
          “ 練習(xí) “ 具體就是 1) 讀程序 2) 寫程序 看似簡(jiǎn)單,但堅(jiān)持下來(lái)你才會(huì)真正體會(huì)到,這里沒(méi)有其他可以投機(jī)取巧的方法學(xué)習(xí)編程了。


            至于學(xué)多少種,是越多越好吧。但并不是指每個(gè)都精通,我想大家也沒(méi)那么多時(shí)間和精力。但在你有了堅(jiān)實(shí)的編程經(jīng)驗(yàn)和基礎(chǔ),了解其它語(yǔ)言的設(shè)計(jì)方法、構(gòu)造會(huì)開闊你的眼界,沒(méi)準(zhǔn)什么時(shí)候你也可以編出自己的語(yǔ)言(咱中國(guó)人編的!!)
          :-)


            要提醒大家的是,如果每種語(yǔ)言總是略學(xué)皮毛,然后又急匆匆的跳到另外一種語(yǔ)言,那你就會(huì)一事無(wú)成,永遠(yuǎn)彷徨在初學(xué)者的門檻邊。我想這句話不只是對(duì)程序員,對(duì)我們來(lái)說(shuō)也是生活中的一個(gè)道理。

          posted @ 2009-05-20 13:58 希 閱讀(168) | 評(píng)論 (0)編輯 收藏

          1、什么是文件系統(tǒng)

          當(dāng)您使用Linux的時(shí)候,如果您通過(guò)ls –l / 就會(huì)發(fā)現(xiàn),在/下包涵很多的目錄,比如etc、usr、var、bin ... ... 等目錄,而在這些目錄中,我們進(jìn)去看看,發(fā)現(xiàn)也有很多的目錄或文件。文件系統(tǒng)在Linux下看上去就象樹形結(jié)構(gòu),所以我們可以把文件系統(tǒng)的結(jié)構(gòu)形象的稱為樹形結(jié)構(gòu)。

          linux文件系統(tǒng)的最頂端是/,我們稱/為L(zhǎng)inux的root,也就是 Linux操作系統(tǒng)的文件系統(tǒng)。Linux的文件系統(tǒng)的入口就是/,所有的目錄、文件、設(shè)備都在/之下,/就是Linux文件系統(tǒng)的組織者,也是最上級(jí)的領(lǐng)導(dǎo)者。

          2、文件系統(tǒng)的類型

          LINUX有四種基本文件系統(tǒng)類型:普通文件、目錄文件、連接文件和特殊文件,可用file命令來(lái)識(shí)別。

          普通文件:如文本文件、C語(yǔ)言元代碼、SHELL腳本、二進(jìn)制的可執(zhí)行文件等,可用cat、less、more、vi、emacs來(lái)察看內(nèi)容,用mv來(lái)改名。

          目錄文件:包括文件名、子目錄名及其指針。它是LINUX儲(chǔ)存文件名的唯一地方,可用ls列出目錄文件。

          連接文件:是指向同一索引節(jié)點(diǎn)的那些目錄條目。用ls來(lái)查看是,連接文件的標(biāo)志用l開頭,而文件面后以"->"指向所連接的文件。

          特殊文件:LINUX的一些設(shè)備如磁盤、終端、打印機(jī)等都在文件系統(tǒng)中表示出來(lái),則一類文件就是特殊文件,常放在/dev目錄內(nèi)。例如,軟驅(qū)A稱為/dev/fd0。LINUX無(wú)C:的概念,而是用/dev/had來(lái)自第一硬盤。

          3、目錄結(jié)構(gòu)的詳細(xì)解說(shuō)

          文件系統(tǒng)的組織結(jié)構(gòu)分析,我們能分析什么呢?也就是當(dāng)我們列/目錄時(shí),所看到的/usr、/etc ... ... /var 等目錄是做什么用的,這些目錄是不是有些特定的用途。無(wú)論哪個(gè)哪個(gè)版本的Linux系統(tǒng),都有這些目錄,這些目錄應(yīng)該是標(biāo)準(zhǔn)的。當(dāng)然各個(gè)Linux發(fā)行版本也會(huì)存在一些小小的差異,但總體來(lái)說(shuō),大體還是差不多。

          言歸正傳,下面飄揚(yáng)將講到本文最核心的部分:linux文件系統(tǒng)的目錄結(jié)構(gòu)。

          / bLinux文件系統(tǒng)的入口,也是處于最高一級(jí)的目錄;

          /bin 系統(tǒng)所需要的那些命令位于此目錄,比如 ls、cp、mkdir等命令;功能和/usr/bin類似,這個(gè)目錄中的文件都是可執(zhí)行的、普通用戶都可以使用的命令。作為基礎(chǔ)系統(tǒng)所需要的最基礎(chǔ)的命令就是放在這里。

          /boot Linux的內(nèi)核及引導(dǎo)系統(tǒng)程序所需要的文件目錄,比如 vmlinuz initrd.img 文件都位于這個(gè)目錄中。在一般情況下,GRUB或LILO系統(tǒng)引導(dǎo)管理器也位于這個(gè)目錄;

          /dev 設(shè)備文件存儲(chǔ)目錄,比如聲卡、磁盤... ...

          /etc 系統(tǒng)配置文件的所在地,一些服務(wù)器的配置文件也在這里;比如用戶帳號(hào)及密碼配置文件;

          /home 普通用戶家目錄默認(rèn)存放目錄;

          /lib 庫(kù)文件存放目錄

          /lost+found 在ext2或ext3文件系統(tǒng)中,當(dāng)系統(tǒng)意外崩潰或機(jī)器意外關(guān)機(jī),而產(chǎn)生一些文件碎片放在這里。當(dāng)系統(tǒng)啟動(dòng)的過(guò)程中fsck工具會(huì)檢查這里,并修復(fù)已經(jīng)損壞的文件系統(tǒng)。 有時(shí)系統(tǒng)發(fā)生問(wèn)題,有很多的文件被移到這個(gè)目錄中,可能會(huì)用手工的方式來(lái)修復(fù),或移到文件到原來(lái)的位置上。

          /mnt 這個(gè)目錄一般是用于存放掛載儲(chǔ)存設(shè)備的掛載目錄的,比如有cdrom 等目錄。可以參看/etc/fstab的定義。有時(shí)我們可以把讓系統(tǒng)開機(jī)自動(dòng)掛載文件系統(tǒng),把掛載點(diǎn)放在這里也是可以的。主要看/etc/fstab中怎么定義了;比如光驅(qū)可以掛載到/mnt/cdrom 。

          /opt 表示的是可選擇的意思,有些軟件包也會(huì)被安裝在這里,也就是自定義軟件包,比如在Fedora Core 5.0中,OpenOffice就是安裝在這里。有些我們自己編譯的軟件包,就可以安裝在這個(gè)目錄中;通過(guò)源碼包安裝的軟件,可以通過(guò) ./configure --prefix=/opt/目錄 。

          /proc 操作系統(tǒng)運(yùn)行時(shí),進(jìn)程信息及內(nèi)核信息(比如cpu、硬盤分區(qū)、內(nèi)存信息等)存放在這里。/proc目錄偽裝的文件系統(tǒng)proc的掛載目錄,proc并不是真正的文件系統(tǒng),它的定義可以參見 /etc/fstab 。

          /root Linux超級(jí)權(quán)限用戶root的家目錄;

          /sbin 大多是涉及系統(tǒng)管理的命令的存放,是超級(jí)權(quán)限用戶root的可執(zhí)行命令存放地,普通用戶無(wú)權(quán)限執(zhí)行這個(gè)目錄下的命令,這個(gè)目錄和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目錄是相似的;我們記住就行了,凡是目錄sbin中包含的都是root權(quán)限才能執(zhí)行的。

          /tmp 臨時(shí)文件目錄,有時(shí)用戶運(yùn)行程序的時(shí)候,會(huì)產(chǎn)生臨時(shí)文件。/tmp就用來(lái)存放臨時(shí)文件的。/var/tmp目錄和這個(gè)目錄相似。

          /usr 這個(gè)是系統(tǒng)存放程序的目錄,比如命令、幫助文件等。這個(gè)目錄下有很多的文件和目錄。當(dāng)我們安裝一個(gè)Linux發(fā)行版官方提供的軟件包時(shí),大多安裝在這里。如果有涉及服務(wù)器配置文件的,會(huì)把配置文件安裝在/etc目錄中。/usr目錄下包括涉及字體目錄/usr/share/fonts ,幫助目錄 /usr/share/man或/usr/share/doc,普通用戶可執(zhí)行文件目錄/usr/bin 或/usr/local/bin 或/usr/X11R6/bin ,超級(jí)權(quán)限用戶root的可執(zhí)行命令存放目錄,比如 /usr/sbin 或/usr/X11R6/sbin 或/usr/local/sbin 等;還有程序的頭文件存放目錄/usr/include。

          /var 這個(gè)目錄的內(nèi)容是經(jīng)常變動(dòng)的,看名字就知道,我們可以理解為vary的縮寫,/var下有/var/log 這是用來(lái)存放系統(tǒng)日志的目錄。/var/www目錄是定義Apache服務(wù)器站點(diǎn)存放目錄;/var/lib 用來(lái)存放一些庫(kù)文件,比如MySQL的,以及MySQL數(shù)據(jù)庫(kù)的的存放地;

          4、一些重要子目錄的解說(shuō)

          下面飄揚(yáng)再補(bǔ)充幾個(gè)比較常見且很重要的目錄。

          /etc/init.d 這個(gè)目錄是用來(lái)存放系統(tǒng)或服務(wù)器以System V模式啟動(dòng)的腳本,這在以System V模式啟動(dòng)或初始化的系統(tǒng)中常見。比如Fedora/RedHat;

          /etc/xinit.d 如果服務(wù)器是通過(guò)xinetd模式運(yùn)行的,它的腳本要放在這個(gè)目錄下。有些系統(tǒng)沒(méi)有這個(gè)目錄, 比如Slackware,有些老的版本也沒(méi)有。在Rehat/Fedora中比較新的版本中存在。

          /etc/rc.d 這是Slackware發(fā)行版有的一個(gè)目錄,是BSD方式啟動(dòng)腳本的存放地;比如定義網(wǎng)卡,服務(wù)器開啟腳本等。

          /etc/X11 這是X-Windows相關(guān)的配置文件存放地。

          /usr/bin 這個(gè)目錄是可執(zhí)行程序的目錄,普通用戶就有權(quán)限執(zhí)行;當(dāng)我們從系統(tǒng)自帶的軟件包安裝一個(gè)程序時(shí),他的可執(zhí)行文件大多會(huì)放在這個(gè)目錄。比如安裝gaim軟件包時(shí)。相似的目錄是/usr/local/bin;有時(shí)/usr/bin中的文件是/usr/local/bin的鏈接文件;

          /usr/sbin 這個(gè)目錄也是可執(zhí)行程序的目錄,但大多存放涉及系統(tǒng)管理的命令。只有root權(quán)限才能執(zhí)行;相似目錄是/sbin 或/usr/local/sbin或/usr/X11R6/sbin等;

          /usr/local 這個(gè)目錄一般是用來(lái)存放用戶自編譯安裝軟件的存放目錄;一般是通過(guò)源碼包安裝的軟件,如果沒(méi)有特別指定安裝目錄的話,一般是安裝在這個(gè)目錄中。這個(gè)目錄下面有子目錄。自己看看吧。

          /usr/share 系統(tǒng)共用的東西存放地,比如 /usr/share/fonts 是字體目錄,/usr/share/doc和/usr/share/man幫助文件。

          /usr/src 是內(nèi)核源碼存放的目錄,比如下面有內(nèi)核源碼目錄,比如 linux 、linux-2.xxx.xx 目錄等。有的系統(tǒng)也會(huì)把源碼軟件包安裝在這里。比如Fedora/Redhat,當(dāng)我們安裝file.src.rpm的時(shí)候,這些軟件包會(huì)安裝在 /usr/src/redhat相應(yīng)的目錄中。

          /var/adm 比如軟件包安裝信息、日志、管理信息等,在Slackware操作系統(tǒng)中是有這個(gè)目錄的。在Fedora中好象沒(méi)有;自己看看吧。

          /var/log 系統(tǒng)日志存放,分析日志要看這個(gè)目錄的東西;

          /var/spool 打印機(jī)、郵件、代理服務(wù)器等假脫機(jī)目錄;

          5、附錄:目錄結(jié)構(gòu)的簡(jiǎn)明查閱手冊(cè)

          (1)“/”根目錄部分有以下子目錄:

          /usr 目錄包含所有的命令、程序庫(kù)、文檔和其它文件。這些文件在正常操作中不會(huì)被改變的。這個(gè)目錄也包含你的Linux發(fā)行版本的主要的應(yīng)用程序,譬如,Netscape。

          /var 目錄包含在正常操作中被改變的文件:假脫機(jī)文件、記錄文件、加鎖文件、臨時(shí)文件和頁(yè)格式化文件等

          /home 目錄包含用戶的文件:參數(shù)設(shè)置文件、個(gè)性化文件、文檔、數(shù)據(jù)、EMAIL、緩存數(shù)據(jù)等。這個(gè)目錄在系統(tǒng)省級(jí)時(shí)應(yīng)該保留。

          /proc 目錄整個(gè)包含虛幻的文件。它們實(shí)際上并不存在磁盤上,也不占用任何空間。(用ls –l 可以顯示它們的大小)當(dāng)查看這些文件時(shí),實(shí)際上是在訪問(wèn)存在內(nèi)存中的信息,這些信息用于訪問(wèn)系統(tǒng)

          /bin 系統(tǒng)啟動(dòng)時(shí)需要的執(zhí)行文件(二進(jìn)制),這些文件可以被普通用戶使用。

          /sbin 系統(tǒng)執(zhí)行文件(二進(jìn)制),這些文件不打算被普通用戶使用。(普通用戶仍然可以使用它們,但要指定目錄。)

          /etc 操作系統(tǒng)的配置文件目錄。

          /root 系統(tǒng)管理員(也叫超級(jí)用戶或根用戶)的Home目錄。

          /dev 設(shè)備文件目錄。LINUX下設(shè)備被當(dāng)成文件,這樣一來(lái)硬件被抽象化,便于讀寫、網(wǎng)絡(luò)共享以及需要臨時(shí)裝載到文件系統(tǒng)中。正常情況下,設(shè)備會(huì)有一個(gè)獨(dú)立的子目 錄。這些設(shè)備的內(nèi)容會(huì)出現(xiàn)在獨(dú)立的子目錄下。LINUX沒(méi)有所謂的驅(qū)動(dòng)符。

          /lib 根文件系統(tǒng)目錄下程序和核心模塊的共享庫(kù)。

          /boot 用于自舉加載程序(LILO或GRUB)的文件。當(dāng)計(jì)算機(jī)啟動(dòng)時(shí)(如果有多個(gè)操作系統(tǒng),有可能允許你選擇啟動(dòng)哪一個(gè)操作系統(tǒng)),這些文件首先被裝載。這個(gè)目錄也會(huì)包含LINUX核(壓縮文件vmlinuz),但LINUX核也可以存在別處,只要配置LILO并且LILO知道LINUX核在哪兒。

          /opt 可選的應(yīng)用程序,譬如,REDHAT 5.2下的KDE (REDHAT 6.0下,KDE放在其它的XWINDOWS應(yīng)用程序中,主執(zhí)行程序在/usr/bin目錄下)

          /tmp 臨時(shí)文件。該目錄會(huì)被自動(dòng)清理干凈。

          /lost+found 在文件系統(tǒng)修復(fù)時(shí)恢復(fù)的文件

          (2)“/usr”目錄下比較重要的部分有:

          /usr/X11R6 X-WINDOWS系統(tǒng)(version 11, release 6)

          /usr/X11 同/usr/X11R6 (/usr/X11R6的符號(hào)連接)

          /usr/X11R6/bin 大量的小X-WINDOWS應(yīng)用程序(也可能是一些在其它子目錄下大執(zhí)行文件的符號(hào)連接)。

          /usr/doc LINUX的文檔資料(在更新的系統(tǒng)中,這個(gè)目錄移到/usr/share/doc)。

          /usr/share 獨(dú)立與你計(jì)算機(jī)結(jié)構(gòu)的數(shù)據(jù),譬如,字典中的詞。

          /usr/bin和/usr/sbin 類似與“/”根目錄下對(duì)應(yīng)的目錄(/bin和/sbin),但不用于基本的啟動(dòng)(譬如,在緊急維護(hù)中)。大多數(shù)命令在這個(gè)目錄下。

          /usr/local 本地管理員安裝的應(yīng)用程序(也可能每個(gè)應(yīng)用程序有單獨(dú)的子目錄)。在“main”安裝后,這個(gè)目錄可能是空的。這個(gè)目錄下的內(nèi)容在重安裝或升級(jí)操作系統(tǒng)后應(yīng)該存在。

          /usr/local/bin 可能是用戶安裝的小的應(yīng)用程序,和一些在/usr/local目錄下大應(yīng)用程序的符號(hào)連接。

          (3)“/proc”目錄的內(nèi)容:

          /proc/cpuinfo 關(guān)于處理器的信息,如類型、廠家、型號(hào)和性能等。

          /proc/devices 當(dāng)前運(yùn)行內(nèi)核所配置的所有設(shè)備清單。

          /proc/dma 當(dāng)前正在使用的DMA通道。/proc/filesystems 當(dāng)前運(yùn)行內(nèi)核所配置的文件系統(tǒng)。

          /proc/interrupts 正在使用的中斷,和曾經(jīng)有多少個(gè)中斷。

          /proc/ioports 當(dāng)前正在使用的I/O端口。

          posted @ 2009-05-19 16:04 希 閱讀(205) | 評(píng)論 (0)編輯 收藏

          一、關(guān)于lilo
          1. 在出現(xiàn) lilo: 提示時(shí)鍵入 linux single
              畫面顯示 lilo: linux single
          2. 回車可直接進(jìn)入linux命令行
          3. 用password命令修改密碼

          二、關(guān)于 grub
          1. 在出現(xiàn)grub畫面時(shí),用上下鍵選中你平時(shí)啟動(dòng)linux的那一項(xiàng),然后按e鍵
          2. 再次用上下鍵選中你平時(shí)啟動(dòng)linux的那一項(xiàng)(類似于kernel/boot/vmlinuz-2.4.18-14 ro root=LABEL=/),然后按e鍵
          3. 修改你現(xiàn)在見到的命令行,加入single,結(jié)果如下:
              kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/  single
          4. 回車返回,然后按b鍵啟動(dòng),即可直接進(jìn)入linux命令行
          5.用passwq命令修改密碼

          posted @ 2009-05-13 09:06 希 閱讀(220) | 評(píng)論 (0)編輯 收藏

               摘要: 目錄 1、 Linux 文件的屬性概說(shuō); 2、 關(guān)于inode; 2.10 inode 相同的文件是硬鏈接文件; 2.11 創(chuàng)建硬鏈接,硬鏈接和源文件關(guān)系; 2.12 軟鏈接的創(chuàng)建,及軟接與源文件的關(guān)系; 3、文件類型; 4、文件的權(quán)限; 4.1 關(guān)于權(quán)限位; 4.2 改變權(quán)限的命令 chmod ; &n...  閱讀全文

          posted @ 2009-05-12 09:17 希 閱讀(175) | 評(píng)論 (0)編輯 收藏

          Netstat -tln 命令是用來(lái)查看linux的端口使用情況

          /etc/init.d/vsftp start 是用來(lái)啟動(dòng)ftp端口~!

          看文件/etc/services

          netstat

          查看已經(jīng)連接的服務(wù)端口(ESTABLISHED)

          netstat -a

          查看所有的服務(wù)端口(LISTEN,ESTABLISHED)

          sudo netstat -ap

          查看所有的服務(wù)端口并顯示對(duì)應(yīng)的服務(wù)程序名

          nmap <掃描類型><掃描參數(shù)>

          例如:

          nmap localhost

          nmap -p 1024-65535 localhost

          nmap -PT 192.168.1.127-245

          當(dāng)我們使用 netstat -apn 查看網(wǎng)絡(luò)連接的時(shí)候,會(huì)發(fā)現(xiàn)很多類似下面的內(nèi)容:

          Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

          tcp 0 52 218.104.81.152:7710 211.100.39.250:29488 ESTABLISHED 6111/1

          顯示這臺(tái)服務(wù)器開放了7710端口,那么這個(gè)端口屬于哪個(gè)程序呢?我們可以使用 lsof -i :7710 命令來(lái)查詢:

          COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME

          sshd 1990 root 3u IPv4 4836 TCP *:7710 (LISTEN)

          這樣,我們就知道了7710端口是屬于sshd程序的。

          posted @ 2009-05-11 17:13 希 閱讀(182) | 評(píng)論 (0)編輯 收藏


           
          目前在國(guó)內(nèi)主流的搜索引擎無(wú)外乎以下幾個(gè): 
          1、百度 
          2、Google 
          3、Yahoo(Yisou、3721) 

          有的人還會(huì)補(bǔ)充上“SoGou”、“中搜”、“新浪愛問(wèn)”等等,不過(guò)事實(shí)上除了前面的“三巨頭”外,余下的搜索產(chǎn)品都是在一個(gè)水平上混,很少有人使用,基本上沒(méi)有考慮的必要。 

          那么如何才能讓自己的網(wǎng)站被“三巨頭”收錄呢,方法,或者說(shuō)步驟有3個(gè): 

          方法一:主動(dòng)向搜索引擎提交自己的網(wǎng)址 

          向百度、Google、Yahoo提交網(wǎng)址是不用花錢的,其提交頁(yè)面分別為: 
          http://www.baidu.com/search/url_submit.html 
          http://www.google.com/intl/zh-CN/add_url.html 
          http://www.yisou.com/search_submit.html?source=yisou_www_hp 

          還有一個(gè)比較特殊且重要的網(wǎng)站就是 

          posted @ 2009-05-07 15:36 希 閱讀(167) | 評(píng)論 (0)編輯 收藏

          進(jìn)入vi的命令
          vi filename :打開或新建文件,并將光標(biāo)置于第一行首
          vi +n filename :打開文件,并將光標(biāo)置于第n行首
          vi + filename :打開文件,并將光標(biāo)置于最后一行首
          vi +/pattern filename:打開文件,并將光標(biāo)置于第一個(gè)與pattern匹配的串處
          vi -r filename :在上次正用vi編輯時(shí)發(fā)生系統(tǒng)崩潰,恢復(fù)filename
          vi filename....filename :打開多個(gè)文件,依次進(jìn)行編輯

          移動(dòng)光標(biāo)類命令
          h :光標(biāo)左移一個(gè)字符
          l :光標(biāo)右移一個(gè)字符
          space:光標(biāo)右移一個(gè)字符
          Backspace:光標(biāo)左移一個(gè)字符
          k或Ctrl+p:光標(biāo)上移一行
          j或Ctrl+n :光標(biāo)下移一行
          Enter :光標(biāo)下移一行
          w或W :光標(biāo)右移一個(gè)字至字首
          b或B :光標(biāo)左移一個(gè)字至字首
          e或E :光標(biāo)右移一個(gè)字至字尾
          ) :光標(biāo)移至句尾
          ( :光標(biāo)移至句首
          }:光標(biāo)移至段落開頭
          {:光標(biāo)移至段落結(jié)尾
          nG:光標(biāo)移至第n行首
          n+:光標(biāo)下移n行
          n-:光標(biāo)上移n行
          n$:光標(biāo)移至第n行尾
          H :光標(biāo)移至屏幕頂行
          M :光標(biāo)移至屏幕中間行
          L :光標(biāo)移至屏幕最后行
          0:(注意是數(shù)字零)光標(biāo)移至當(dāng)前行首
          $:光標(biāo)移至當(dāng)前行尾

          屏幕翻滾類命令
          Ctrl+u:向文件首翻半屏
          Ctrl+d:向文件尾翻半屏
          Ctrl+f:向文件尾翻一屏
          Ctrl+b;向文件首翻一屏
          nz:將第n行滾至屏幕頂部,不指定n時(shí)將當(dāng)前行滾至屏幕頂部。

          插入文本類命令
          i :在光標(biāo)前
          I :在當(dāng)前行首
          a:光標(biāo)后
          A:在當(dāng)前行尾
          o:在當(dāng)前行之下新開一行
          O:在當(dāng)前行之上新開一行
          r:替換當(dāng)前字符
          R:替換當(dāng)前字符及其后的字符,直至按ESC鍵
          s:從當(dāng)前光標(biāo)位置處開始,以輸入的文本替代指定數(shù)目的字符
          S:刪除指定數(shù)目的行,并以所輸入文本代替之
          ncw或nCW:修改指定數(shù)目的字
          nCC:修改指定數(shù)目的行

          刪除命令
          ndw或ndW:刪除光標(biāo)處開始及其后的n-1個(gè)字
          do:刪至行首
          d$:刪至行尾
          ndd:刪除當(dāng)前行及其后n-1行
          x或X:刪除一個(gè)字符,x刪除光標(biāo)后的,而X刪除光標(biāo)前的
          Ctrl+u:刪除輸入方式下所輸入的文本

          搜索及替換命令
          /pattern:從光標(biāo)開始處向文件尾搜索pattern
          ?pattern:從光標(biāo)開始處向文件首搜索pattern
          n:在同一方向重復(fù)上一次搜索命令
          N:在反方向上重復(fù)上一次搜索命令
          :s/p1/p2/g:將當(dāng)前行中所有p1均用p2替代
          :n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
          :g/p1/s//p2/g:將文件中所有p1均用p2替換

          選項(xiàng)設(shè)置
          all:列出所有選項(xiàng)設(shè)置情況
          term:設(shè)置終端類型
          ignorance:在搜索中忽略大小寫
          list:顯示制表位(Ctrl+I)和行尾標(biāo)志($)
          number:顯示行號(hào)
          report:顯示由面向行的命令修改過(guò)的數(shù)目
          terse:顯示簡(jiǎn)短的警告信息
          warn:在轉(zhuǎn)到別的文件時(shí)若沒(méi)保存當(dāng)前文件則顯示NO write信息
          nomagic:允許在搜索模式中,使用前面不帶“\”的特殊字符
          nowrapscan:禁止vi在搜索到達(dá)文件兩端時(shí),又從另一端開始
          mesg:允許vi顯示其他用戶用write寫到自己終端上的信息

          最后行方式命令
          :n1,n2 co n3:將n1行到n2行之間的內(nèi)容拷貝到第n3行下
          :n1,n2 m n3:將n1行到n2行之間的內(nèi)容移至到第n3行下
          :n1,n2 d :將n1行到n2行之間的內(nèi)容刪除
          :w :保存當(dāng)前文件
          :e filename:打開文件filename進(jìn)行編輯
          :x:保存當(dāng)前文件并退出
          :q:退出vi
          :q!:不保存文件并退出vi
          :!command:執(zhí)行shell命令command
          :n1,n2 w!command:將文件中n1行至n2行的內(nèi)容作為command的輸入并執(zhí)行之,若不指定n1,n2,則表示將整個(gè)文件內(nèi)容作為command的輸入
          :r!command:將命令command的輸出結(jié)果放到當(dāng)前行

          寄存器操作
          "?nyy:將當(dāng)前行及其下n行的內(nèi)容保存到寄存器?中,其中?為一個(gè)字母,n為一個(gè)數(shù)字
          "?nyw:將當(dāng)前行及其下n個(gè)字保存到寄存器?中,其中?為一個(gè)字母,n為一個(gè)數(shù)字
          "?nyl:將當(dāng)前行及其下n個(gè)字符保存到寄存器?中,其中?為一個(gè)字母,n為一個(gè)數(shù)字
          "?p:取出寄存器?中的內(nèi)容并將其放到光標(biāo)位置處。這里?可以是一個(gè)字母,也可以是一個(gè)數(shù)字
          ndd:將當(dāng)前行及其下共n行文本刪除,并將所刪內(nèi)容放到1號(hào)刪除寄存器中。

          進(jìn)入vi
          vi test
          離開vi
          :q! 離開vi,并放棄剛在緩沖區(qū)內(nèi)編輯的內(nèi)容。
             :wq 將緩沖區(qū)內(nèi)的資料寫入磁盤中,并離開vi。
             :ZZ 同wq
          同wq
          :w 將緩沖區(qū)內(nèi)的資料寫入磁盤中,但并不離開vi。
            :q 離開vi,若文件被修改過(guò),則會(huì)被要求確認(rèn)是否放棄修改的內(nèi)容,此指令可與: w 配合使用。
          Vi 的操作模式
          Vi 提供兩種操作模式:
          輸入模式(insert mode)
          指令模式(command mode)
          當(dāng)使用者進(jìn)入vi后,既處于指令模式下,此刻鍵入任何字元皆被視為指令。
          輸入模式:a(append) 游標(biāo)之后加入資料。
          A 該行之末加入資料
          i (insert) 游標(biāo)之前加入資料
          I 該行之首加入資料
          o (open) 新增一行與該行之下供輸入資料
          O 新增一行與該行之上供輸入資料
          指令模式:B      移至該行第一個(gè)字符,若光標(biāo)在該行第一字符則光標(biāo)移至上一行第一字符。
             b    由游標(biāo)所在位置之前一個(gè)字串的第一個(gè)字元
               cc 刪除整行,修改整行的內(nèi)容。
               D      以行為單位,刪除游標(biāo)在內(nèi)后面的所有字符。
          db 刪除該行光標(biāo)前字符
               dd 刪除該行
               de 刪除自光標(biāo)開始后面的字符
               d加字符   刪除光標(biāo)所在位置至字符之間的單
               E      移至該行最后字符,若光標(biāo)在該行最后字符則光標(biāo)移至下一行最后字符
           e      由游標(biāo)所在位置至該字串的最后一個(gè)字元
               G 移至該檔案的最后一行 
               h 向前移一個(gè)字元
          j 向下移一個(gè)字元
          k 向上移一個(gè)字元
          0 移至該行之首
          M 移至視窗的中間那行
          L 移至視窗的最后一行
               l 向后移一個(gè)字符
          0 由游標(biāo)所在位置該行的第一個(gè)字元
          nG 移至該檔案的第n行
          n+ 自游標(biāo)所在位置向后移n行至該行的第一字符
          n- 自游標(biāo)所在位置向前移n行至該行的第一字符
          R 進(jìn)入取代狀態(tài),直到《ESC》為止
          s 刪除游標(biāo)所在字元,并進(jìn)入取代模式直到《ESC》
          S 刪除游標(biāo)所在之該行資料,并進(jìn)入輸入模式直到《ESC》
          w 由游標(biāo)所在位置之下一個(gè)字串的第一個(gè)字元
          x 刪除游標(biāo)所在該字元。
          X 刪除游標(biāo)所在之前一字元。
          r 用接于此指令之后的字元取代(replace)游標(biāo)所在字元
          yy yank整行,使游標(biāo)所在該行復(fù)制到記憶體緩沖區(qū)
          顯示該行之行號(hào)、檔案名稱、檔案中最末之行號(hào)、游標(biāo)所在行號(hào)占
          總行號(hào)之百分比
          $ 由游標(biāo)所在位置至該行的最后一個(gè)字元。
          ) 由游標(biāo)所在位置至下一個(gè)句子的第一個(gè)字元。
          ( 由游標(biāo)所在位置至該句子的第一個(gè)字元。
          { 由游標(biāo)所在位置至該段落的最后一個(gè)字元。
          } 由游標(biāo)所在位置至該段落的第一個(gè)字元
          yank和delete可將指定的資料復(fù)制到記憶體緩沖區(qū),而藉有put指令可將緩沖區(qū)內(nèi)的資料復(fù)制到熒幕上
          例如:搬移一行 :在該行執(zhí)行dd
          游標(biāo)移至目的地
          執(zhí)行p
          復(fù)制一行 :在該行執(zhí)行yy
          游標(biāo)移至目的地
          執(zhí)行p
          視窗移動(dòng):

          posted @ 2009-05-04 20:45 希 閱讀(169) | 評(píng)論 (0)編輯 收藏

           

          首先建立一個(gè)有密碼的用戶,然后用kate或kwrite打開/etc/X11/xdm/kdmrc文檔(因?yàn)檫@個(gè)文檔是UTF8編碼的,所以得用這兩個(gè)工具),點(diǎn)擊kate或kwrite菜單欄的“查看--配置編碼--utf8”,在/etc/X11/xdm/kdmrc文檔中找到“[X-:0-Core]”開頭的這段,將“AutoLoginEnable=false”改成“AutoLoginEnable=true”,在“AutoLoginUser=”后面加上自動(dòng)登錄的用戶名,接著添加一行“AutoLoginPass=”(不包括引號(hào)),后面填上用戶密碼。

          保存后重啟電腦選擇圖像模式啟動(dòng)就能夠自動(dòng)登錄了。

          假如要轉(zhuǎn)換用戶,就點(diǎn)擊開始菜單--注銷--注銷。

          強(qiáng)烈建議不要將root配置為自動(dòng)登錄!

          posted @ 2009-04-30 15:35 希 閱讀(190) | 評(píng)論 (0)編輯 收藏

          在linux中,使用chkconfig命令,加入系統(tǒng)服務(wù),實(shí)現(xiàn)軟件的自動(dòng)啟動(dòng)

          1. 自啟動(dòng)腳本模板

          *****************下面的是腳本模板,顏色部分是注釋

          #!/bin/sh        #!/bin/sh 是說(shuō)明該腳本調(diào)用的shell的類型

          #chkconfig: 2345 80 05 其中2345是指明服務(wù)的運(yùn)行等級(jí),80表明是系統(tǒng)啟動(dòng)時(shí)要啟動(dòng)第80號(hào)服務(wù)(服務(wù)號(hào)可以重復(fù))。05表明是系統(tǒng)關(guān)閉要停止的服務(wù)號(hào)。

          #descrīption: service-name      這里的service-name你可以隨意取名,但必須有

          case $1 in     case是個(gè)選擇語(yǔ)句。$1是個(gè)變量,用于指代下面的start,stop

          start)

          寫服務(wù)啟動(dòng)要執(zhí)行的命令。

          ;;

          stop)

          寫服務(wù)停止時(shí)執(zhí)行的命令

          ;;

          *)

          ;;

          esac

          *****************

          #這里寫其他情況下執(zhí)行的內(nèi)容,可以沒(méi)有

          2. 按照模板,寫好啟動(dòng)腳本,使用chkconfig安裝腳本

          按照模板寫好啟動(dòng)腳本,改為777模式,拷貝到/etc/init.d/

          然后用chkconfig –add [service-name] #這里service-name是腳本中定義的

          如果命令成功執(zhí)行,則不會(huì)有任何提示,此時(shí),在系統(tǒng)/etc/rc.d/的特定運(yùn)行級(jí)目錄當(dāng)中,會(huì)有相應(yīng)的腳本產(chǎn)生,一般以 K 或者 S 和你定義的啟動(dòng)順序號(hào)開頭,如 K98httpd

          3. Apache自啟動(dòng)腳本實(shí)例

          #!/bin/bash

          #description:http server

          #chkconfig: 235 98 98

          case "$1" in

          start)

                echo "Starting Apache daemon..."

                /usr/local/apache2/bin/apachectl start

                ;;

          stop)

                echo "Stopping Apache daemon..."

                /usr/local/apache2/bin/apachectl stop

                ;;

          restart)

                echo "Restarting Apache daemon..."

                /usr/local/apache2/bin/apachectl restart

                ;;

          status)

                statusproc /usr/local/apache2/bin/httpd

                ;;

              

          *)

                echo "Usage: $0 {start|stop|restart|status}"

                exit 1

                ;;

          esac

          4. Chkconfig的使用

          chkconfig --add service

          chkconfig –list     查看,列表中可以看到各種服務(wù)在各個(gè)運(yùn)行級(jí)的開放情況

          chkconfig –delete service-nme

          posted @ 2009-04-28 10:30 希 閱讀(1217) | 評(píng)論 (1)編輯 收藏

          引導(dǎo)加載程序LILO和GRUB
          修改/boot/grub/grub.conf文件中的timeout=0就可以屏蔽掉linux啟動(dòng)時(shí)進(jìn)入grub
           
           

          什么是引導(dǎo)加載程序?

          最簡(jiǎn)單地講,引導(dǎo)加載程序(boot loader) 會(huì)引導(dǎo)操作系統(tǒng)。當(dāng)機(jī)器引導(dǎo)它的操作系統(tǒng)時(shí),BIOS 會(huì)讀取引導(dǎo)介質(zhì)上最前面的 512 字節(jié)(即人們所知的 主引導(dǎo)記錄(master boot record,MBR))。在單一的 MBR 中只能存儲(chǔ)一個(gè)操作系統(tǒng)的引導(dǎo)記錄,所以當(dāng)需要多個(gè)操作系統(tǒng)時(shí)就會(huì)出現(xiàn)問(wèn)題。所以需要更靈活的引導(dǎo)加載程序。

          主引導(dǎo)記錄本身要包含兩類內(nèi)容 —— 部分(或全部)引導(dǎo)加載程序以及分區(qū)表(其中包含有關(guān)于介質(zhì)其余部分如何劃分為分區(qū)的信息)。當(dāng) BIOS 引導(dǎo)時(shí),它會(huì)尋找硬盤驅(qū)動(dòng)器第一個(gè)扇區(qū)(MBR)中存儲(chǔ)的數(shù)據(jù);BIOS 使用存儲(chǔ)在 MBR 中的數(shù)據(jù)激活引導(dǎo)加載程序。

          由于 BIOS 只能訪問(wèn)很少量的數(shù)據(jù),所以大部分引導(dǎo)加載程序分兩個(gè)階段進(jìn)行引導(dǎo)。在引導(dǎo)的第一個(gè)階段中,BIOS 引導(dǎo)一部分引導(dǎo)加載程序,即 初始程序加載程序(initial program loader,IPL)。IPL 查詢分區(qū)表,從而能夠加載位于不同介質(zhì)上任意位置的數(shù)據(jù)。首先通過(guò)這步操作來(lái)定位第二階段引導(dǎo)加載程序(其中包含加載程序的其余部分)。

          第二階段引導(dǎo)加載程序是引導(dǎo)加載程序的主體;很多人認(rèn)為這才是引導(dǎo)加載程序的真正部分。它包含有加載程序更需要磁盤空間的部分,比如用戶界面和內(nèi)核引導(dǎo)程序。從簡(jiǎn)單的命令行到繪聲繪色的 GUI,這些用戶界面的范圍很廣泛。

          引導(dǎo)加載程序通常配置為兩種方式的其中之一:要么是作為主引導(dǎo)加載程序(primary boot loader),要么是作為二級(jí)引導(dǎo)加載程序(secondary boot loader)。主引導(dǎo)程序 是安裝在 MBR 上的第一階段引導(dǎo)加載程序。 二級(jí)引導(dǎo)加載程序 是安裝在可引導(dǎo)分區(qū)的第一階段引導(dǎo)加載程序。必須在 MBR 上安裝單獨(dú)的引導(dǎo)加載程序,并配置它將控制權(quán)轉(zhuǎn)交給二級(jí)引導(dǎo)加載程序。

          很多較新的 Linux 引導(dǎo)加載程序特別實(shí)用,因?yàn)樗鼈兲峁┝瞬煌潭鹊慕换ィ热绺呒?jí)的 GUI 和加密的口令,以及通過(guò)選擇操作系統(tǒng)進(jìn)行引導(dǎo)的能力。這樣,可以在具有多個(gè)物理磁盤的同一機(jī)器上共存多個(gè)操作系統(tǒng)。這種設(shè)置越來(lái)越常見,因?yàn)樗鼛椭芏嘤脩粼诎惭b新的 Linux 時(shí),能夠保留先前由 Windows® 機(jī)器所生成的寶貴數(shù)據(jù)資料。隨著時(shí)間的推移,引導(dǎo)加載程序已經(jīng)得到了增強(qiáng),為用戶引入了大量的功能。各個(gè)引導(dǎo)程序的功能和配置存在差異,但基本的目標(biāo)是相同的。

          現(xiàn)在來(lái)看兩個(gè)較為流行的引導(dǎo)加載程序:LILO 和 GRUB。

           


           

          LILO

          LInux LOader(LILO) 已經(jīng)成為所有 Linux 發(fā)行版的標(biāo)準(zhǔn)組成部分。作為一個(gè)較老的Linux 引導(dǎo)加載程序,它那不斷壯大的 Linux 社區(qū)支持使它能夠隨時(shí)間的推移而發(fā)展,并始終能夠充當(dāng)一個(gè)可用的現(xiàn)代引導(dǎo)加載程序。有一些新的功能,比如增強(qiáng)的用戶界面,以及對(duì)能夠突破原來(lái) 1024-柱面限制的新 BIOS 功能的利用。

          雖然 LILO 仍在不斷地發(fā)展,但 LILO 工作原理的基本概念保持不變。

           

          使用 LILO 作為引導(dǎo)加載程序

          要使用 LILO 作為引導(dǎo)加載程序,需要做的事情取決于是要進(jìn)行全新安裝還是要讓已經(jīng)安裝的 Linux 改為使用 LILO。如果是要進(jìn)行全新安裝,那么直接跳轉(zhuǎn)到配置 LILO 那一節(jié)。如果已經(jīng)安裝了某個(gè) Linux 發(fā)行版,那么通常可以選擇安裝并配置 LILO(并可以將機(jī)器引導(dǎo)到新的 Linux 安裝)。

          要將現(xiàn)有的 Linux 遷移到 LILO,首先必須獲得最新版本的 LILO。在做任何其他事情之前,建議您確保在手邊擁有一張 Linux 引導(dǎo)盤 —— 如果偶而弄錯(cuò)了某些地方,它可以提供很大的幫助,能夠恢復(fù)到初始的 Linux 配置!將 LILO 安裝到系統(tǒng)中之后,讓它接管 MBR 非常簡(jiǎn)單。以 root 用戶身份輸入:

          # /sbin/lilo -v -v

          這將使用當(dāng)前的 LILO 默認(rèn)值,抹去 MBR 中當(dāng)前所有內(nèi)容。要注意,如果想要在同一機(jī)器上運(yùn)行 Windows 和 Linux,那么應(yīng)該先安裝 Windows OS,然后再安裝 Linux OS,這樣,在 Linux 安裝中所選擇的引導(dǎo)加載程序就不會(huì)被 Windows 引導(dǎo)加載程序所覆蓋。與 Linux 引導(dǎo)加載程序不同,多數(shù) Window 引導(dǎo)加載程序不支持引導(dǎo) Linux。如果已經(jīng)先安裝了 Linux,那么只需要自己創(chuàng)建一張 Linux 引導(dǎo)盤,這樣就可以在安裝完 Windows 之后,回到 Linux 安裝中并重寫 MBR。

           

          配置 LILO

          LILO 的配置都是通過(guò)位于 /etc/lilo.conf 的一個(gè)配置文件來(lái)完成的。清單 1 給出了一個(gè)示例配置,支持 Linux 和 Windows 機(jī)器的雙重引導(dǎo)。

          • 主 HDD(物理磁盤 1)上安裝了 Windows XP。在 Linux 術(shù)語(yǔ)中,這個(gè) HDD 是 /dev/hda(在 GRUB 術(shù)語(yǔ)中是 hd0,0)。
          • 從 HDD(物理磁盤 2)上安裝了 Red Hat Linux;root 分區(qū)位于這個(gè)硬盤驅(qū)動(dòng)器的第三個(gè)分區(qū),即 /dev/hdb3(在 GRUB 術(shù)語(yǔ)中是 hd1,3)。

          清單 1. lilo.conf 示例文件

          boot=/dev/hda
          map=/boot/map
          install=/boot/boot.b
          prompt
          timeout=100
          compact
          default=Linux
          image=/boot/vmlinuz-2.4.18-14
              label=Linux
              root=/dev/hdb3
              read-only
              password=linux
          other=/dev/hda
              label=WindowsXP

          清單 1 中的選項(xiàng):

          • boot= 行告訴 LILO 在哪里安裝引導(dǎo)加載程序。在上面的示例中,將把它安裝到第一塊硬盤的 MBR。也可以選擇將 LILO 安裝到 /dev/hdb3(示例中的 Linux 分區(qū)),這樣需要向 /dev/hda 安裝另一個(gè)引導(dǎo)加載程序,并令其指向 LILO 引導(dǎo)加載程序;然后只需要讓 LILO 作為二級(jí)引導(dǎo)加載程序。通常,引導(dǎo)加載程序應(yīng)該位于 /dev/hda。還可以將這個(gè)參數(shù)指向軟盤驅(qū)動(dòng)器(最常見的是 /dev/fd0),來(lái)制做 LILO 軟盤引導(dǎo)磁盤。
          • map= 指向引導(dǎo)期間 LILO 內(nèi)部使用的映射文件。當(dāng)使用 /sbin/lilo 命令安裝 LILO 時(shí),它會(huì)自動(dòng)生成這個(gè)文件,其中包含有描述符表(還有其他內(nèi)容)。建議不要改動(dòng)這個(gè)文件!
          • install= 是 LILO 在引導(dǎo)過(guò)程中內(nèi)部使用的文件之一。它同時(shí)包含有引導(dǎo)加載程序的主要部分和二級(jí)部分。boot.b 文件的一個(gè)片段被寫入到 MBR(引導(dǎo)加載程序的主要部分),它會(huì)指向那個(gè)映射,接下來(lái)指向二級(jí)引導(dǎo)加載程序。同樣,不要改動(dòng)它!
          • prompt= 告訴 LILO 使用用戶界面(本例中給出了兩個(gè)選擇 —— Linux 和 WindowsXP)。除了使用 prompt/user 界面以外,在適當(dāng)情況下還可以為 Linux 內(nèi)核等指定具體的參數(shù)。如果不在配置文件中指定此選項(xiàng),那么 LILO 將引導(dǎo)到默認(rèn)的 OS,不發(fā)生任何用戶交互,也不會(huì)等待。(但是請(qǐng)注意,如果在引導(dǎo)時(shí)按下了 SHIFT,那么還是可以得到提示,當(dāng)不想把引導(dǎo)加載程序暴露給普通用戶時(shí),這非常有用)。
          • timeout= 是引導(dǎo)提示在自動(dòng)引導(dǎo)默認(rèn) OS(本例中是 Linux)之前的等待時(shí)間(以十分之一秒為單位)。如果在 lilo.conf 沒(méi)有指定 prompt,那么這個(gè)參數(shù)就會(huì)被忽略。
          • compact 選項(xiàng)可以大大加速引導(dǎo)過(guò)程,它會(huì)將連續(xù)的讀磁盤的請(qǐng)求合并為一個(gè)單獨(dú)的請(qǐng)求。當(dāng)希望從軟盤引導(dǎo)時(shí),這個(gè)選項(xiàng)尤其有用。
          • default= 選項(xiàng)告訴 LILO 默認(rèn)使用哪個(gè)映像進(jìn)行引導(dǎo),比如在等待超時(shí)之后。這與 lilo.conf 文件中的某個(gè)映像的標(biāo)簽相關(guān)聯(lián)。如果沒(méi)有在配置文件中指定此選項(xiàng),那么它將引導(dǎo)文件中指定的第一個(gè)映像。
          • 對(duì)于允許用戶引導(dǎo)到的每一個(gè) Linux 版本,都應(yīng)該指定 image= 及以下三個(gè)選項(xiàng)。image 選項(xiàng)指定希望引導(dǎo)到的內(nèi)核版本。
          • label= 標(biāo)明了在運(yùn)行期間希望能夠從用戶界面引導(dǎo)的不同 OS。另外,這個(gè)標(biāo)簽用于指定引導(dǎo)的默認(rèn) OS。(注意:標(biāo)簽名稱中避免出現(xiàn)空格;否則,引導(dǎo)那個(gè)文件時(shí)會(huì)出現(xiàn)無(wú)法預(yù)期的錯(cuò)誤。)
          • root= 告訴 LILO OS 文件系統(tǒng)實(shí)際所在的位置。在示例中為 /dev/hdb3,即第二塊硬盤上的第三個(gè)分區(qū)。
          • read-only 告訴 LILO 以只讀的方式初始引導(dǎo)到文件系統(tǒng)。OS 一旦完全引導(dǎo)起來(lái),就會(huì)以讀寫方式掛載。
          • password= 允許您為將要引導(dǎo)到的特定 OS 設(shè)置口令。不幸的是,這個(gè)口令是以可讀文本的方式保存在 lilo.conf 文件中,所以,所有人都能夠讀取它。如果需要,還可以對(duì)想要引導(dǎo)自的每個(gè)操作系統(tǒng)設(shè)置口令(在我們的示例中,只為 Linux 的引導(dǎo)設(shè)置了一個(gè)口令)。
          • other= 的動(dòng)作類似于 image 和 root 選項(xiàng)的組合,但是用于除了 Linux 以外的其他操作系統(tǒng)。在我們的示例中,它告訴 LILO 到哪里去找到 Windows OS(位于第一塊硬盤的第一個(gè)分區(qū))。如果先安裝 Windows,后安裝 Linux,通常會(huì)是這樣。
          • label= 與所有其他 label 選項(xiàng)相同。

          在 lilo.conf 文件中可以使用很多其他參數(shù),不過(guò)清單 1 中的參數(shù)就足以讓機(jī)器可用了。要獲得關(guān)于 lilo.conf 的這些以及其他參數(shù)的進(jìn)一步資料,請(qǐng)參考手冊(cè)頁(yè)(man lilo.conf)。由于在引導(dǎo)時(shí)不會(huì)讀取 lilo.conf,所以,當(dāng)這個(gè)文件有改動(dòng)時(shí),需要“更新”MBR。如果不完成此步驟就重新引導(dǎo),那么對(duì) lilo.conf 的修改不會(huì)在啟動(dòng)中反映出來(lái)。與先前將 LILO 寫入 MBR 類似,需要運(yùn)行:

          $ /sbin/lilo -v -v

          -v -v 標(biāo)記會(huì)為您給出非常詳細(xì)的輸出。當(dāng)像我們那樣運(yùn)行 LILO 時(shí),有很多參數(shù)可以指定。參閱手冊(cè)頁(yè)以獲得更進(jìn)一步的信息(man lilo)。

           

          初始引導(dǎo)過(guò)程

          當(dāng) LILO 初始引導(dǎo)時(shí),它會(huì)按次序打印出每個(gè)字母 —— L-I-L-O。如果所有字母都顯示出來(lái),那么第一階段引導(dǎo)就成功了。缺少任何內(nèi)容都表示出現(xiàn)了問(wèn)題:

          • L:第一階段引導(dǎo)加載程序已經(jīng)被加載。如果 LILO 停止在這里,那么是在引導(dǎo)第二階段引導(dǎo)加載程序時(shí)出現(xiàn)了問(wèn)題。這通常會(huì)伴隨有一個(gè)錯(cuò)誤代碼。在這個(gè)階段的常見問(wèn)題是介質(zhì)問(wèn)題,或者在 lilo.conf 文件中指定了不正確的磁盤參數(shù)。
          • LI:第二階段引導(dǎo)加載程序已經(jīng)被加載。LILO 在此處停止表示第二階段引導(dǎo)加載程序不能被執(zhí)行。同樣,這可能是因?yàn)槌霈F(xiàn)了與只顯示 L 類似的問(wèn)題:正在加載,或者因 boot.b 文件被破壞、移動(dòng)或刪除而不能加載。
          • LIL:第二階段引導(dǎo)加載程序正在被執(zhí)行。此時(shí),可能會(huì)再次出現(xiàn)介質(zhì)問(wèn)題,或者映射文件(如 lilo.conf 文件中所指定的)在尋找描述符表時(shí)可能會(huì)出現(xiàn)問(wèn)題。
          • LIL?:加載到與上面相同的階段。這通常意味著加載第二階段引導(dǎo)加載程序使用了錯(cuò)誤的地址,最常見的原因是 boot.b 所在的位置與 lilo.conf 文件所指定的不同。
          • LIL-:加載到與上面相同的階段。加載描述符表時(shí)出現(xiàn)問(wèn)題,最常見的原因是描述符表錯(cuò)誤。
          • LILO:LILO 成功被加載,沒(méi)有出現(xiàn)任何錯(cuò)誤。

          引導(dǎo)時(shí)的附加配置

          LILO 被成功加載后,將看到 LILO 提示符。還是使用前面的示例 lilo.conf 文件,此時(shí)將有兩個(gè)選擇,可能對(duì) LILO 新手來(lái)說(shuō)并不直觀。首先,可以讓 LILO 超時(shí)(10 秒后),這將引導(dǎo) /dev/hdb3,即 Linux 分區(qū)。另外,可以按下 TAB 鍵,這將列出將要引導(dǎo)的操作系統(tǒng)選項(xiàng)。在我們的示例 lilo.conf 中,將得到的選項(xiàng)是 “Linux” 和 “Windows”。輸入哪一個(gè),就會(huì)引導(dǎo)到哪個(gè) OS。指定加載 Linux 選項(xiàng),會(huì)提示輸入一個(gè)口令,在本例中是 linux。如果輸入的口令有誤,則會(huì)返回 LILO 提示符。

          不幸的是,LILO 不支持引導(dǎo)期間的交互式配置,所以,只能在 lilo.conf 中或者運(yùn)行 /sbin/lilo 時(shí)指定選項(xiàng)。

          關(guān)于第一次嘗試 LILO 的最后一點(diǎn)建議是:使用軟盤引導(dǎo)磁盤比使用硬盤實(shí)現(xiàn) LILO 配置更為安全。為此,必須在 lilo.conf 文件中使用 boot=/dev/fd0 替換 boot=/dev/hda。那樣,如果弄亂了 lilo.conf 文件中的任何配置,都可以取出引導(dǎo)磁盤并像先前一樣引導(dǎo)到 Linux。當(dāng)使用軟盤進(jìn)行引導(dǎo)一切正常以后,可以將 lilo.conf 修改回 boot=/dev/hda,然后最后一次運(yùn)行 /sbin/lilo 來(lái)上傳修改。

           


           

          GNU GRUB

          近來(lái),GRand Unified Boot loader(通常稱為 GRUB)似乎要取代 LILO 在引導(dǎo)加載程序方面的統(tǒng)治地位。GNU GRUB 基于原來(lái)的 GRUB 程序(最初由 Erich Stefan Boleyn 所創(chuàng)建),正在由自由軟件基金會(huì)(Free Software Foundation)進(jìn)行積極開發(fā)。

           

          使用 GRUB 作為引導(dǎo)加載程序

          與使用 LILO 相同,使用 GRUB 作為活動(dòng)的引導(dǎo)加載程序所需要的步驟,取決于是安裝全新的 OS 還是已經(jīng)安裝了 Linux 并計(jì)劃轉(zhuǎn)移到 GRUB。如果是進(jìn)行全新安裝,那么可以直接跳轉(zhuǎn)到配置 GRUB 那一節(jié)。如果已經(jīng)安裝了某個(gè) Linux 發(fā)行版,那么通常可以選擇安裝并配置 GRUB(并可以將機(jī)器引導(dǎo)到新的 Linux 安裝)。

          計(jì)劃遷移到 GRUB 的當(dāng)前 Linux 用戶需要去獲得最新版本的 GRUB。同樣,與 LILO 相同,在做任何其他事情之前,需要在手邊準(zhǔn)備一張 Linux 引導(dǎo)盤。使用交互模式,則不需要這張磁盤,不過(guò)最好擁有一張以備急需時(shí)使用。將 GRUB 安裝到系統(tǒng)中之后,讓它接管 MBR 非常簡(jiǎn)單。以 root 用戶身份輸入:

          # /boot/grub/grub

          這樣將加載一個(gè)類似于 BASH 的命令提示符,可以在這里使用 GRUB 命令:

          grub> install (hd1,3)/boot/grub/stage1 (hd0) (hd1,3)/boot/grub/stage2 p (hd1,3)/boot/grub/menu.conf

          這個(gè)命令使用了 GRUB 安裝命令,需要為它給出第一階段映像的位置以及 MBR 的位置(install (hd1,3)/boot/grub/stage1 (hd0))。也要給出第二階段映像的位置((hd1,3)/boot/grub/stage2)。最后,可選項(xiàng) p (hd1,3)/boot/grub/menu.conf 告訴 GRUB GUI 菜單配置文件的位置。

          在前面的示例中,hd1 是 Linux Diskhd0 是 Windows 磁盤。這樣將使用當(dāng)前 GRUB 默認(rèn)值,并抹去 MBR 中當(dāng)前所有內(nèi)容。

           

          配置 GRUB

          GRUB 的配置都是通過(guò)位于 /boot/grub/grub.conf 的一個(gè)配置文件來(lái)完成的。清單 2 給出了一個(gè)示例配置。


          清單 2. grub.conf 示例文件

          default=0
          timeout=10
          splashimage=(hd1,3)/grub/splash.xpm.gz
          password --md5 $1$opeVt0$Y.br.18LyAasRsGdSKLYlp1
          title Red Hat Linux
              password --md5 $1$0peVt0$Y.br.18LyAasRsGdSKLYlp1
              root (hd1,3)
              kernel /vmlinuz-2.4.18-14 ro root=LABEL=/
              initrd /initrd-2.4.18-14.img
          title Windows XP
              password --md5 $1$0peVt0$Y.br.18LyAasRsGdSKLYlp1
              rootnoverify (hd0,0)
              chainloader +1

          清單 2 中的選項(xiàng):

          • default= 選項(xiàng)通知 GRUB 在超時(shí)之后默認(rèn)使用哪個(gè)映像進(jìn)行引導(dǎo)。這一選項(xiàng)與 grub.conf 文件中的某個(gè)映像相關(guān)聯(lián)。 0 表示指定了第一個(gè),1 表示指定了第二個(gè),依次類推。如果沒(méi)有在配置文件指定此選項(xiàng),那么它將引導(dǎo)文件中指定的第一個(gè)映像。
          • timeout= 是在自動(dòng)引導(dǎo)默認(rèn) OS(在本例中是 Red Hat Linux)之前引導(dǎo)提示會(huì)等待多少秒。
          • splashimage= 是用作 GRUB GUI 背景的圖片所在的位置。
          • password 選項(xiàng)指定了使用 MD5 加密的口令,用于訪問(wèn) GRUB 的交互式引導(dǎo)選項(xiàng)。注意,這不會(huì)阻止用戶選擇引導(dǎo)已經(jīng)定義的 OS;需要為 每一個(gè) -title 設(shè)置它。為了生成一個(gè) md5 口令,請(qǐng)運(yùn)行 GRUB 所附帶的 grub-md5-crypt 工具(以 root 身份)。它將提示輸入一個(gè)希望加密的口令。然后輸出使用 MD5 加密的口令。將這個(gè)口令拷貝到 grub.conf 中 password -md5 之后,但是要在同一行上。通常這個(gè)口令可以設(shè)置為 root 口令,因?yàn)闊o(wú)論如何也只有 root 才可以讀取 grub.conf 文件。
          • title 標(biāo)明了在運(yùn)行期間能夠從用戶界面引導(dǎo)的具體 OS。與 LILO 不同,在這個(gè)名稱中可以有空格。
          • password 的設(shè)置方式與前面的 password 相同。如果計(jì)劃與其他用戶共享此機(jī)器,那么不要將這個(gè)口令設(shè)置為 root 口令。
          • root 告訴 GRUB OS 文件系統(tǒng)的實(shí)際位置。可見,GRUB 引用介質(zhì)的方式與 LILO 不同。在 LILO 示例中, /dev/hdb3 是第二塊硬盤中的第三個(gè)分區(qū)。Grub 將此硬盤引用為(hd1,3),即第二塊硬盤的第三個(gè)分區(qū)(disk 0 是第一塊硬盤)。
          • kernel:vmlinuz-X.X.XX-XX 是 root 目錄中默認(rèn)引導(dǎo)映像的名稱。
          • initrd:initrd-X.X.XX-XX.img 是 root 目錄中默認(rèn) initrd 映像的名稱。
          • rootnoverify 告訴 GRUB 不要嘗試去改變 OS 的 root。這樣,當(dāng)文件系統(tǒng)不被 GRUB 所支持時(shí),不會(huì)出現(xiàn)引導(dǎo)錯(cuò)誤。
          • chainloader +1 告訴 GRUB 使用一個(gè)鏈?zhǔn)郊虞d程序來(lái)加載這個(gè) OS,加載 Windows 時(shí)需要這個(gè)選項(xiàng)。

          與 LILO 的配置文件不同,grub.conf 會(huì)在引導(dǎo)時(shí)被讀取,當(dāng)被修改時(shí)不必去更新 MBR。

           

          初始引導(dǎo)過(guò)程

          與 LILO 類似,當(dāng) GRUB 初始加載時(shí),從 MBR 加載第一階段程序。加載后,它進(jìn)入第一階段和第二階段引導(dǎo)加載程序之間的中間階段(為了方便討論,可稱為第 1.5 階段)。之所以存在第 1.5 階段,是為了能夠?qū)?/boot/grub 中的 GRUB 配置文件進(jìn)行常規(guī)的文件系統(tǒng)訪問(wèn),而不是去訪問(wèn)磁盤塊。然后進(jìn)入引導(dǎo)加載程序的第二階段,GRUB 加載 grub.conf 文件。

          現(xiàn)在應(yīng)該能夠看到 GRUB GUI 了。對(duì)于熟悉 Windows 的用戶來(lái)說(shuō),這看起來(lái)感覺比 LILO 更友好。不過(guò),不要因?yàn)?GRUB 擁有 GUI 就認(rèn)為它是一個(gè)不能處理數(shù)據(jù)的引導(dǎo)加載程序。可選項(xiàng)多得驚人。

          如果像我那樣配置,那么現(xiàn)在應(yīng)該能看到屏幕中有兩個(gè)選項(xiàng):引導(dǎo)到 Red Hat Linux 或者引導(dǎo)到 Windows XP。默認(rèn)情況下,它將加載 Linux。選擇任意一個(gè)的結(jié)果不言而喻。

           

          引導(dǎo)時(shí)的附加配置

          在 GRUB GUI 中,按下任何鍵都會(huì)停止超時(shí)的計(jì)時(shí)。然后按下 P 鍵,可以輸入 GRUB 口令,并獲得對(duì) GRUB 交互式引導(dǎo)選項(xiàng)的完全訪問(wèn)權(quán)限。按下以下其中一個(gè)鍵,應(yīng)該能夠使用三個(gè)選項(xiàng)之中的一個(gè):

          • 要在引導(dǎo)之前編輯命令,請(qǐng)按下 E。這將讓您能夠?yàn)楫?dāng)前選中的 OS 編輯具體的選項(xiàng)。GRUB 只會(huì)顯示出與那個(gè) OS 的引導(dǎo)相關(guān)的選項(xiàng),然后您可以恰當(dāng)?shù)剡M(jìn)行編輯。當(dāng)為 root 文件系統(tǒng)指定了錯(cuò)誤的 HDD 時(shí),這尤其有用。如果需要以單用戶模式訪問(wèn)機(jī)器(不需要指定口令就能夠讓您獲得 root 訪問(wèn)權(quán)限!),那么在 GRUB 主屏幕上選擇 Linux OS。然后與前面一樣,按下 E,并移到內(nèi)核那一行(在我的示例中是 kernel /vmlinuz-2.4.18-14 ro root=LABEL=/)。然后在那一行最后添加 single,并按下 B 來(lái)使用修改過(guò)的 grub.conf 進(jìn)行引導(dǎo)。在編輯模式下所做的任何修改都不會(huì)保存到 grub.conf 文件中。
          • 要修改內(nèi)核參數(shù),請(qǐng)按下 A。如果您是一位經(jīng)驗(yàn)豐富的 Linux 用戶,可以根據(jù)需要調(diào)整內(nèi)核參數(shù)。
          • 要獲得類似于 BASH 的命令行界面,請(qǐng)按下 C。這個(gè)小型的命令行界面允許您在系統(tǒng)中查找 GRUB 配置文件,加載另外的配置文件,編輯配置文件中的行,以及直接輸入 GRUB 命令。如果配置的變化(比如刪除了某個(gè)分區(qū))讓系統(tǒng)無(wú)法引導(dǎo),那么可能會(huì)用到這個(gè)界面。如果需要將系統(tǒng)引導(dǎo)為單用戶模式,或者要讓運(yùn)行級(jí)別為 3 而不是普通的運(yùn)行級(jí)別,也可能會(huì)使用到它。

          可見,GRUB 真正開放了引導(dǎo)期間的可能性。不過(guò),這可能是一件好壞參半的事情,因?yàn)?GRUB 也潛在地允許攻擊者在 OS 加載之前訪問(wèn)系統(tǒng)。會(huì)被誤用的主要開放領(lǐng)域是:

          • 訪問(wèn)單用戶模式。所有加載到單用戶模式的人都會(huì)得到 root 訪問(wèn)權(quán)限,使得 Linux 可被隨意濫用。
          • 訪問(wèn)其他操作系統(tǒng)。任何配置為不需要口令的可引導(dǎo)操作系統(tǒng),比如 DOS,都將是開放的。
          • 訪問(wèn) GRUB 編輯器。這允許用戶獲得修改 GRUB 配置的完全訪問(wèn)權(quán)限。

          在 GRUB 配置中,設(shè)置安全性非常重要;設(shè)置口令,并使用 MD5 加密,可以保證整個(gè)系統(tǒng)的安全。

           

          GRUB 的未來(lái)

          GRUB 將要被 GRUB2 所取代。原來(lái)的 GRUB 將要被重新命名為 GRUB Legacy;除了修復(fù) bug 以外,不會(huì)再對(duì)它進(jìn)行積極開發(fā)。GRUB2 將是對(duì)原來(lái) GRUB 的完全重寫。到目前為止,以下特性是變化的核心部分:

          • 通過(guò)創(chuàng)建壓縮的核心映像取代了第 1.5 階段
          • 支持核心映像的動(dòng)態(tài)加載
          • 爭(zhēng)取讓整個(gè) GRUB 框架成為面向?qū)ο蟮?
          • 支持國(guó)際化,比如 非-ASCII 字符集
          • 支持不同硬件體系結(jié)構(gòu)和不同平臺(tái)(不同于 Linux 的平臺(tái))

           


           

          GRUB 與 LILO 的比較

          如本文開始處所述,所有引導(dǎo)加載程序都以類似的方式工作,滿足共同的目的。不過(guò),LILO 和 GRUB 之間有很多不同之處:

          • LILO 沒(méi)有交互式命令界面,而 GRUB 擁有。
          • LILO 不支持網(wǎng)絡(luò)引導(dǎo),而 GRUB 支持。
          • LILO 將關(guān)于可以引導(dǎo)的操作系統(tǒng)位置的信息物理上存儲(chǔ)在 MBR 中。如果修改了 LILO 配置文件,必須將 LILO 第一階段引導(dǎo)加載程序重寫到 MBR。相對(duì)于 GRUB,這是一個(gè)更為危險(xiǎn)的選擇,因?yàn)殄e(cuò)誤配置的 MBR 可能會(huì)讓系統(tǒng)無(wú)法引導(dǎo)。使用 GRUB,如果配置文件配置錯(cuò)誤,則只是默認(rèn)轉(zhuǎn)到 GRUB 命令行界面。

          posted @ 2009-04-22 18:10 希 閱讀(632) | 評(píng)論 (0)編輯 收藏

          僅列出標(biāo)題
          共4頁(yè): 上一頁(yè) 1 2 3 4 下一頁(yè) 

          posts - 40, comments - 9, trackbacks - 0, articles - 9

          Copyright © 希

          主站蜘蛛池模板: 万宁市| 天镇县| 武穴市| 酉阳| 衡山县| 南平市| 家居| 墨脱县| 阳山县| 大洼县| 蚌埠市| 闽侯县| 隆林| 且末县| 南投市| 永吉县| 墨竹工卡县| 绵竹市| 横山县| 河南省| 红原县| 施秉县| 永寿县| 大冶市| 宣威市| 深圳市| 余庆县| 三门县| 沽源县| 仁怀市| 霞浦县| 肥乡县| 平湖市| 新津县| 奇台县| 阿拉尔市| 哈尔滨市| 文昌市| 衡东县| 内江市| 察隅县|