特別說(shuō)明:
先說(shuō)明一下,基本上雖然 Linux 目前對于圖形界面的使用已經(jīng)支援的相當的不錯,但是對于一些比較細微的設定方面,畢竟是比不上使用傳統的文字介面來(lái)的有效!并且,使用文字介面來(lái)設定對于了解 Linux 有一定的幫助,畢竟 Linux 與 MS 的咚咚是不太相同的!鳥(niǎo)哥特別建議大家使用文字介面來(lái)解決問(wèn)題!
除此之外,使用文字介面登入 Linux 對于系統資源的損耗也比較少,相對的,就有比較多的資源可以做為網(wǎng)路的用途,進(jìn)而增加 Linux 的效能。尤其,在我們這個(gè)網(wǎng)頁(yè)中,基本上是以一般被淘汰的 586 系列電腦做為主機,因此對于記憶體與 CPU 的效能要求并不高,所以能有效的減少系統資源的浪費就盡量的減少一些容易耗掉系統資源的廢物吧!
底下我們會(huì )分門(mén)別類(lèi)的將各個(gè)比較常用的指令給搬上來(lái),你可以參考一下。另外一個(gè)最重要的地方是,在 Linux 主機上,已經(jīng)內建各個(gè)指令的說(shuō)明內容了,而且是很詳細的線(xiàn)上說(shuō)明,你可以使用:
[root@tsai root]# man command <=== command 為你欲查詢(xún)的指令名稱(chēng)
[root@tsai root]# info command
在上表中,針對 command 這個(gè)指令你可以使用 man 或者是 info 來(lái)查詢(xún)他的功能與說(shuō)明,例如你要查尋 ls 這個(gè)指令時(shí),你可以輸入: man ls 或 info ls 來(lái)查詢(xún)一下!適當的利用線(xiàn)上查詢(xún)對于你的英文及相關(guān)的指令功能有一定程度的幫助喔!
登入與登出(開(kāi)機與關(guān)機)
telnet
這套軟體在 Windows 及 Linux 系統中都存在,只是介面有點(diǎn)不很相同就是了?;旧?,這個(gè)程式是 user 端用來(lái)連線(xiàn)登入遠端主機的。例如鳥(niǎo)哥人在臺南,但是我可以在臺南使用可以連上 Internet 的電腦,經(jīng)由 telnet 連線(xiàn)上家里的 Linux 主機,而進(jìn)行設定!感覺(jué)上就好象在家里玩自己的 Linux 主機一樣!
一般來(lái)說(shuō),如果你是使用 Winodows 系統,則你可以在『開(kāi)始』-->『執行』后,輸入 telnet xxx.yyy.zzz.qqq ,其中, xxx.yyy.zzz.qqq 為 IP 位址,則可以連上主機(或者是 BBS )啰。當然,如果您是在 Linux 系統下,亦可直接輸入 telnet xxx.yyy.zzz.qqq 來(lái)連上主機或BBS喔!
語(yǔ)法: telnet 主機位址(或主機名稱(chēng))
login
登入系統的指令,在遠端進(jìn)入系統時(shí),程式會(huì )自動(dòng)執行。假設你所要登入的系統主機為 sun.os.test.com ,則你可以在 Windows 底下的 Telnet 軟體,或其他軟體上,執行:
telnet sun.os.test.com
則會(huì )出現如下的畫(huà)面:
SunOS 5.7 login: username Password: sun# _
你只要有 username 及 pass word 就可以登入系統啦!在你登入系統后, sun# 是提示字元,相當于古早的 C:\> 的意思!
exit
這是離開(kāi) Linux 系統的指令,相當于 login out 的意思。
sun# exit
shutdown
Linux 用來(lái)關(guān)機的指令,這個(gè)指令只有 root 才有權力下! shutdown 的用法如下:
[root@tsai root]# shutdown <==系統在兩分鐘后關(guān)機,并傳送訊息給在線(xiàn)上的人 [root@tsai root]# shutdown -h now <==系統立刻關(guān)機 [root@tsai root]# shutdown -r now <==系統立刻重新開(kāi)機 [root@tsai root]# shutdown -h 20:30 <==系統在今天的 20:30 分關(guān)機 [root@tsai root]# shutdown -h +10 <==系統在 10 分鐘后關(guān)機
reboot
這是鳥(niǎo)哥最常用來(lái)重新開(kāi)機的指令(或關(guān)機),可以配合寫(xiě)入緩沖資料的 sync 指令動(dòng)作,如下:
[root@tsai root]# sync; sync; sync; reboot
Linux 多人多工與背景執行功能
多人多工
Linux 最為人所稱(chēng)道的即是其多人多工的能力,你可以在任何時(shí)刻連線(xiàn)上來(lái)你的 Linux 主機,并且同時(shí)做很多的工作,例如同時(shí)執行 http 的 Web 功能,同時(shí)進(jìn)行 fortran 等程式語(yǔ)言的編輯,并同時(shí)上網(wǎng)聊天!你會(huì )懷疑, Windows 98 也可以做到這樣的地步呀!不過(guò),不要忘了,在 Linux 的系統下,你所做的任何工作都是獨立的,你可以隨時(shí)將你所不要的工作給殺掉,而且,當其中某一個(gè)程式當掉的時(shí)候, Linux 并不會(huì )當機,只要你在其他的視窗再開(kāi)啟一個(gè)終端介面,然后查出當機的那一個(gè)指令的 process (過(guò)程),然后將之殺掉就可以了!根本不用再重新開(kāi)機!也因為這種多人多工的強大能力,因此, Linux 系統一般來(lái)說(shuō)是很少當機的,并且,由于其記憶體的管理功能完善,因此也不容易有 CPU 過(guò)熱的情況發(fā)生(如果只是做為一般伺服器使用)。
在你的 Linux 主機中,可以支援七個(gè)終端視窗介面,你可以按[Alt]+[F1].....[F7]來(lái)切換不同的終端機介面!所以當其中一個(gè)終端機介面當機的時(shí)候,你可以在另外一個(gè)終端機登入,然后查出錯誤的所在(使用 ps -aux 的功能),再以 kill 將錯誤的地方殺掉即可!
背景執行
另外一個(gè)功能,就是『背景執行』的功夫了。當你輸入
[root@tsai root]# cp file1 file2 &
這一串指令的時(shí)候,表示將 file1 這個(gè)檔案復制為 file2 ,且放置于背景中執行,也就是說(shuō)執行這一個(gè)命令之后,在這一個(gè)終端介面仍然可以做其他的工作!而當這一個(gè)指令( cp file1 file2 )執行完畢之后,系統將會(huì )在您的終端介面顯示完成的消息!很便利喔!
多人多工的問(wèn)題
多人多工確實(shí)有很多的好處,但其實(shí)也有管理上的困擾,因為使用者越來(lái)越多,將導致你管理上的困擾哩!另外,由于使用者日盛,當使用者達到一定的人數后,通常你的機器便需要升級了,因為 CPU 的運算與 RAM 的大小可能就會(huì )不敷使用!
& 與 [Ctrl]+[z]
如前所述,背景執行可以提供你在同一個(gè)終端機介面(命令模式)當中同時(shí)做很多的事情,你可以使用 & 或 [Ctrl]+[z] 來(lái)將指令放置背景中執行。例如執行 find "/" -name httpd & 這一行命令,表示將尋找 httpd 這個(gè)檔案的指令放置到背景中執行的意思。另外,當你執行一個(gè)需要長(cháng)時(shí)間的程式,例如執行 ftp 程式時(shí),在程式進(jìn)行當中,也可以經(jīng)由按下 [Ctrl]+[z] 來(lái)將程式放置于背景中。那如何由背景中將程式在叫回螢幕上呢?請參考下一個(gè)指令 fg。
fg
fg 是將程式再叫回螢幕上顯示的一個(gè)指令,在終端模式中輸入 fg 即可。當然,如果你當時(shí)并沒(méi)有程式在執行的話(huà),系統會(huì )告訴你,并無(wú)執行中程式(no such job)。
ps -aux
這是察看執行中的程式的一個(gè)指令,你可以配合其參數 -aux 來(lái)執行,如下:
[root@tsai root]# ps -aux
則系統將會(huì )列出連同系統服務(wù)的程式,在輸出的第一列中會(huì )出現 『PID』字樣,在那一欄中的咚咚就是每一個(gè)程式執行的代碼。例如下面的輸出畫(huà)面。
[root@tsai root]# ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 1324 532 ? S Jul16 0:14 init [3] root 2 0.0 0.0 0 0 ? SW Jul16 0:05 [kflushd] root 3 0.0 0.0 0 0 ? SW Jul16 0:29 [kupdate] root 4 0.0 0.0 0 0 ? SW Jul16 0:00 [kpiod] root 5 0.0 0.0 0 0 ? SW Jul16 0:00 [kswapd]
在上圖中, init 這個(gè)程式的 PID 為 1 。
kill
這是用來(lái)殺掉執行中程式的指令,需配合 ps 這個(gè)指令,當你執行一個(gè) ftp 程式,但是他有點(diǎn)當當的時(shí)候,你可以 ps -aux 這個(gè)指令查出 ftp 這個(gè)程式的代碼(PID),假設其 PID 為 110 ,然后輸入:
[root@tsai root]# kill 110
即可殺掉這個(gè) ftp 程式。
檔案與目錄管理
cd
這是用來(lái)變換工作路徑的指令。一登入 Linux 系統后,root 會(huì )在 /root 下,至于使用者會(huì )在預設的 /home/username 底下,例如鳥(niǎo)哥的 ID 為 vbird ,則以 vbird 的身份登入后,會(huì )到 /home/vbird 這個(gè)路徑下。OK!那回到上一層可以用 cd .. 而到相對路徑可到 cd ../bird,至于絕對路徑則是 cd /usr/sbin !注意喔,在前面的提示字元會(huì )改變路徑名稱(chēng)!
[root@tsai /root]# cd .. <== 回到上一層 [root@tsai /]# cd <== 回到使用者目錄 [root@tsai root]# cd /usr/bin <== 到 /usr/bin 這一個(gè)目錄 [root@tsai bin]# <== 看吧!到 bin 這個(gè)目錄下啰!
pwd
這是顯示目前所在目錄的指令,例如在上個(gè)表格最后的目錄是 /usr/bin 這個(gè)目錄,但是提示字元僅顯示 bin ,如果你想要知道目前所在的目錄,可以輸入 pwd 即可:
[root@tsai bin]# pwd /usr/bin <== 顯示路徑啰! [root@tsai bin]#
ls
這是用來(lái)顯示檔案名稱(chēng)與內容的指令,檔案的內容說(shuō)明已經(jīng)在 這里 說(shuō)明過(guò)了,在此不再重復! ls 的語(yǔ)法為:
[root@tsai bin]# ls --color 以彩色顯示檔案資料 [root@tsai bin]# ls -l 詳細列出檔案系統結構 [root@tsai bin]# ls -a 顯示隱藏檔(以"."開(kāi)頭的檔案) [root@tsai bin]# ls -al 同時(shí)顯示隱藏檔與詳細資料 [root@tsai bin]# ls -al|more 將檔案內容以一頁(yè)一頁(yè)顯示
cat
這是將檔案內容列出的指令。例如在 /root 下有一個(gè)檔名為 .bashrc (這是系統預設的檔案,是隱藏檔),你可以按下 cd 回到 /root 目錄后,執行:
[root@tsai /root]# cat .bashrc # .bashrc # User specific aliases and functions alias rm=‘rm -i‘ alias cp=‘cp -i‘ alias mv=‘mv -i‘ alias ll=‘ls -l‘ alias lm=‘ls -al|more‘
上面顯示的就是 .bashrc 這個(gè)檔案的內容啦!基本上,cat 與 DOS 下的 type 是相同的!
more
是否覺(jué)得 cat 在讀取較大的檔案的時(shí)候會(huì )有看不到的資訊呢(如果檔案太大的話(huà)),這時(shí)候你可以用 more 來(lái)一頁(yè)頁(yè)讀取喔!另外, more 也可以與其他的程式合并使用,例如 ls ?。ㄈ缦卤碇?,『|』就是分隔號,可以將兩個(gè)指令放在一起執行?。?div style="height:15px;">
[root@tsai /root]# more .bashrc [root@tsai /root]# ls -al|more
mkdir
建立新的目錄!例如我們要建立一個(gè) test 的目錄,你可以這樣下指令:
[root@tsai /root]# mkdir test [root@tsai /root]# ls -l
再執行了 ls -l 之后,你就可以看到 test 這個(gè)目錄啦!
rm -irf
這是移除的指令,相當于 dos 下的 del 指令!這里要注意的是,通常在 Linux 系統下,為了怕檔案被誤殺,所以都已經(jīng)有 -i 這個(gè)參數, -i 是指每個(gè)檔案被殺掉之前都會(huì )確認一次。而如果要連目錄下的東西都一起殺掉的話(huà),就要使用 -rf 這個(gè)參數了!你可以用下面這個(gè)例子來(lái)試試看有什么不同的現象!
[root@tsai /root]# rm test [root@tsai /root]# rm -rf test
rmdir
mkdir 是建立目錄,而 rmdir 就是移除目錄的指令。不過(guò),若是欲移除的目錄里頭有檔案或其他目錄存在,就無(wú)法移除,這時(shí)就要用剛剛的 rm -rf 來(lái)移除啦!
mv
這是移動(dòng)檔案或目錄的指令,例如我們要將 .bashrc 這個(gè)檔案移動(dòng)至根目錄下,則:
[root@tsai /root]# mv .bashrc / [root@tsai /root]# mv /.bashrc .
而將檔案移動(dòng)至目前的工作目錄,則加上 "." 這個(gè)字!
語(yǔ)法: mv 來(lái)源檔(或目錄)目的檔(或目錄)
cp
就是 copy 的意思。例如我們要將 .bashrc 這個(gè)檔案復制到 /home 底下,可以:
[root@tsai /root]# cp .bashrc /home
語(yǔ)法: cp 來(lái)源檔 目的檔
ln
ln -s 真實(shí)目錄或檔案 連結的目錄或檔案:這是連結檔案或目錄的指令,通常我們都會(huì )加 -s 這個(gè)參數,例如我們將 /usr/bin 這個(gè)目錄連接到 /root 底下,可以這樣輸入:
[root@tsai /root]# ln -s /usr/bin bin
不過(guò)請注意喔,在你的 /root 底下的 bin 這個(gè)目錄中的所有檔案其實(shí)都是 /usr/bin 里面的東西,所以你如果進(jìn)入 /root/bin 內亂殺東西的話(huà),等于是將 /usr/bin 內的檔案殺掉喔!
語(yǔ)法: ln -s 來(lái)源檔(或目錄)目的檔(或目錄)
find
尋找檔案的指令,會(huì )將欲尋找的檔案找出來(lái),例如下面的例子:
[root@tsai /root]# find / -name bin
上面的意思為:在 / 目錄(根目錄)下尋找檔名(-name)為 bin 的檔案,要注意的是,因為 Linux 的檔案很多,如果你的電腦比較舊,可能會(huì )找很久...
語(yǔ)法: find 路徑 -name 檔名
whereis
相對于 find ,你也可以使用 whereis 這個(gè)指令來(lái)下達找尋的檔案,whereis 利用曾經(jīng)找過(guò)的系統資訊內的資料去找檔案,所以速度會(huì )很快,不過(guò),如果 whereis 找不到的話(huà),并不代表該檔案真的不存在!這個(gè)要小心!
[root@tsai /root]# whereis bin bin: /usr/bin
chmod
這是變更檔案屬性的指令,通常鳥(niǎo)哥都是以數字作為改變屬性的依據;在檔案的屬性中, r 為4分、w 為2分, x 為1分,如果你想要讓你剛建立的一個(gè)檔案,讓大家都看到的話(huà),即你需要『-rw-r--r--』,這是你的三個(gè)群組的分數分別是 r+w=6, r=4, r=4,所以可以下達:
[root@tsai /root]# chmod 644 .bashrc [root@tsai /root]# ls -al .bashrc -rw-r--r-- 1 root root 216 Apr 8 13:54 .bashrc
chown
記得檔案有『擁有人』及『擁有群組』吧,這個(gè) chown 就是在改變擁有者的指令。例如你 copy 一個(gè)檔案給 vbird ,但是因為你的身份是 root ,所以你 copy 過(guò)去的檔案 vbird 可能不能使用,因此你需要將檔案的擁有人改成 vbird 才可以!如下:
[root@tsai /root]# cp .bashrc /home/vbird [root@tsai /root]# cd /home/vbird [root@tsai vbird]# chown vbird .bashrc
那如果想要將整個(gè)目錄下的檔案都改變擁有者與擁有群組呢?可以下達
chown -R username:groupname directory (ex> chown -R root:root /root)
即可喔!
chgrp
作用與 chown 相似,只是在改變檔案或目錄的『擁有群組』。
df
這是用來(lái)察看硬碟空間的指令。由于我們目前將檔案都建立在根目錄『/』下,所以只要沒(méi)有空間,則所有檔案都無(wú)法復制進(jìn)來(lái)系統。不過(guò),若你規劃出多的硬碟,則可以察看你的硬碟空間資訊,如下所示:
[root@tsai /root]# df Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda5 964312 87648 827680 10% / /dev/hdb5 2150420 745500 1295680 37% /home /dev/hdb1 2016016 1419708 493896 74% /usr /dev/hda1 1022080 349880 672200 34% /win98
上面說(shuō),Filesystem 是硬碟所在的劃分表, Used 是指使用掉的硬碟空間(KB),Available是剩下空間,Mounted on則是這顆硬碟代表哪一個(gè)目錄。如上所示,根目錄(/)在 hda5 這顆硬碟,總空間有 964312 KB,剩下可用空間為 827680KB,至于 /win98 則在 hda1 中,且全部空間有 1022080 KB。
如果要將資料型態(tài)以 MB 數顯示的話(huà),可以輸入 df -m 來(lái)達成。
du
這是用來(lái)察看目錄內所有檔案使用掉的空間的情況,如下所示:
[root@tsai /root]# du -m
其中, du 預設的檔案輸出資料為 KB,以參數 -m 使檔案資料顯示為 MB。
磁碟與硬體管理
mount
這是將硬碟或者是光碟、軟碟接掛上系統的指令!之前有提過(guò),在 Linux 下面,每一個(gè)裝置都是一個(gè)檔案(或目錄),而每一種裝置的檔案型態(tài)都不相同,因此對于 mount 后面加的參數就很重要啰:例如:
[root@tsai /root]# mount -t iso9660 /dev/cdrom /mnt/cdrom <=光碟 [root@tsai /root]# mount -t vfat /dev/fd0 /mnt/floppy <=軟碟(windows 系統檔) [root@tsai /root]# mount -t ext2 /dev/fd0 /mnt/floppy <=軟碟(Linux 系統檔) [root@tsai /root]# mount -t ext2 /dev/hdc1 /mnt/harddisk <=硬碟
光碟裝置檔=/dev/cdrom、軟碟裝置檔=/dev/fd0、硬碟裝置檔=/dev/hdxx。
如上表所示, -t 是參數,至于 iso9660, vfat, ext2則是這些裝置的檔案型態(tài)!后面接的則是這個(gè)裝置所在的目錄!千萬(wàn)記得,這些目錄需要是早已存在的,而且最好是空的目錄,不然目錄里面原本存在的檔案會(huì )不見(jiàn)去!
另外,注意喔!當你 mount 上光碟機或軟碟的時(shí)候,請不要輕易的拿出磁片(而且光碟片也不會(huì )被你退出),因為會(huì )造成系統讀取的錯誤!你應該用 umount 來(lái)退出!指令為
umount /mnt/cdrom (umount 裝置所在目錄)
fdformat
這是用來(lái)『低階格式化』軟碟的指令。(注意:軟碟的裝置檔為 /dev/fd0 )不必將軟碟 mount 就可以格式化了,指令內容為:
[root@tsai /root]# fdformat /dev/fd0H1440
注意喔!在上面的裝置檔案為 /dev/fd0H1440 ,其中加在 /fd0 之后的 H1440 為表示 1.44MB 的軟碟容量!在低階格式化之后,還要將軟碟的檔案格式化為 Linux 的 ext2 之型態(tài),則需要使用 mke2fs 指令!
fdisk
這是對硬碟(也可以對軟碟喔)做分割的程式?;镜挠梅?> fdisk 裝置檔案,假設您有一顆硬碟要重新規劃,而這顆硬碟為 hdc ,則你可以輸入:
[root@tsai /root]# fdisk /dev/hdc
然后,按下 m 會(huì )出現 help 的選單,要知道的大概只有兩個(gè)子指令,一個(gè)是刪除 partition 按 d ,一個(gè)是增加 partition 按 n,假設你要增加一個(gè) primary partition,按下 n 再按 p 再按你要的 primary partition 號碼(1-4)就可以了。假設你的 hdc 需要規劃成為一個(gè)硬碟(即 hdc1)則在輸入 fdisk /dev/hdc 后,需要按:
n(增加) -> p(primary partition) -> 1(partition 1) -> w (儲存寫(xiě)入) -> q (離開(kāi))
同樣的,分割完硬碟(或軟碟)后,要以 mke2fs 格式化!
mke2fs
這是用來(lái)將磁碟格式化成 Linux 系統檔的指令?;旧?,只要寫(xiě)入對的裝置檔案就可以了。例如我們要格式化軟碟的話(huà),或是新的硬碟 hdc1 ,則可以如此寫(xiě):
[root@tsai /root]# mke2fs -c /dev/fd0 [root@tsai /root]# mke2fs -c /dev/hdc1
要記得的是,在你做這個(gè)格式化的動(dòng)作時(shí),軟碟與硬碟均不可 mount 到 Linux 的系統中。
mkbootdisk
這是制作開(kāi)機磁片的指令。指令很簡(jiǎn)單:
[root@tsai /root]# mkbootdisk --device /dev/fd0 `uname -r`
其中, `uname -r` 是目前 Linux 系統所使用的核心版本,如果你有多個(gè)核心版本的話(huà),你以可以直接輸入核心版本。例如在這個(gè)網(wǎng)頁(yè)中所使用的核心有兩個(gè)版本,一個(gè)是 2.2.12-20,另一個(gè)是 2.2.18,若要以 2.2.18 設定開(kāi)機的話(huà),可以使用: mkbootdisk --device /dev/fd0 2.2.18 !
badblocks
這是用來(lái)檢查硬碟或軟碟有沒(méi)有壞軌的指令,你可以用底下的方式來(lái)下達:
[root@tsai /root]# badblocks -svw /dev/hdc1
fsck
這是用來(lái)檢查與修正硬碟錯誤的指令。注意:通常只有身為 root 且你的系統有問(wèn)題的時(shí)候才使用這個(gè)指令,否則在正常狀況下使用此一指令,可能會(huì )造成對檔案的危害!
[root@tsai /root]# fsck /dev/hdc1
通常使用這個(gè)指令的場(chǎng)合都是在系統出現極大的問(wèn)題,導致你在 Linux 開(kāi)機的時(shí)候得進(jìn)入單人單機模式下進(jìn)行維護的行為時(shí),才必須使用此一指令!
rpm
這是一個(gè)安裝或者是解安裝 RedHat 軟體的指令,在 RedHat 中已經(jīng)有設定了一些有點(diǎn)像 Windows 的軟體安裝功能,這就是 rpm 這套軟體了!而 rpm 所安裝的軟體又分為兩種形式,因此你可以分別使用下面兩種參數對不同的檔案進(jìn)行安裝:
[root@tsai /root]# rpm -ivh xxxxx.rpm <==將 xxxxx.rpm 檔案安裝于 Linux 系統中 [root@tsai /root]# rpm -ivh --nodeps xxxxx.rpm <==將 xxxxx.rpm 檔案『強制』安裝于 Linux 系統中 [root@tsai /root]# rpm -Uvh xxxxx.rpm <==將 xxxxx.rpm 升級 [root@tsai /root]# rpm -e xxxxx.rpm <==將 xxxxx.rpm 解除安裝 [root@tsai /root]# rpm -q squid <==察看 squid 這一個(gè)軟體的版本 [root@tsai /root]# rpm --recompile yyyyy.src.rpm <==安裝檔名為 .src.rpm 的檔案!
這里要注意的是, rpm 的檔案主要有兩種形式,一種是已經(jīng)經(jīng)過(guò)編譯的 i386.rpm 檔案,令一種是未經(jīng)編譯的 .src.rpm 檔案,兩種檔案形式的安裝參數是不一樣的,請小心注意!
系統管理員
su
這是一個(gè)用來(lái)轉換你身份成為 super user (系統管理員)的指令,任何人只要知道 root 的密碼,就可以成為 super user,所以密碼可千萬(wàn)不要外流呀!由于 RedHat 在主機之外的終端機上,無(wú)法以 root 的身份直接連線(xiàn),所以你需要以一般身份的 user 連線(xiàn)之后,再以 su 指令來(lái)成為 super user:
[vbird@tsai vbird]# su <==輸入指令 Password: <==在這里輸入 root 的密碼 [root@tsai vibrd]# <==看,使用者名稱(chēng)變啰!
clear
這是用來(lái)清除螢幕畫(huà)面用的,沒(méi)有什么太大的用處。通常是你覺(jué)得畫(huà)面太亂的時(shí)候輸入用的!直接輸入 clear 就可以了!
dmesg
在開(kāi)機的時(shí)候你會(huì )發(fā)現有很多的訊息出現吧,例如 CPU 的形式、硬碟、光碟型號及硬碟分割表等等。但是訊息都是『刷』的一聲就跑過(guò)去了!這些訊息有時(shí)候對于系統管理員是很重要的,因為他提供了系統的資訊呀!要看這些訊息你可以用 dmesg 這個(gè)指令來(lái)觀(guān)看!
[root@tsai /root]# dmesg|more
加上 |more 的原因是因為訊息太多了,所以可以加入這個(gè)管線(xiàn)指令來(lái)使畫(huà)面暫停!
groupadd
這是用來(lái)增加群組的指令,通常鳥(niǎo)哥都不用這個(gè)指令的,因為有更容易使用的指令 /bin/userconf 可以使用哩(注意,在 RedHat 7.0 以后的版本,就要使用 /sbin/userconf 哩)!
useradd
這是用來(lái)增加使用者的指令,鳥(niǎo)哥通常不使用這個(gè)指令,你可以使用 /bin/userconf 這個(gè)指令,更簡(jiǎn)單易用喔(是視窗介面的喔?。ㄗ⒁?,在 RedHat 7.0 以后的版本,就要使用 /sbin/userconf 哩)
userconf
這是用來(lái)增加使用者、群組等,且以視窗為介面的一個(gè)指令!如果你是以遠端登入,并使用 su 指令成為 super user 的話(huà),直接輸入 userconf 可能會(huì )找不到這個(gè)指令,你可以輸入: /bin/userconf 來(lái)啟動(dòng)這個(gè)指令?。ㄗ⒁?,在 RedHat 7.0 以后的版本,就要使用 /sbin/userconf 哩),由于這個(gè)指令的圖示較多,請到這里來(lái)看看!
passwd
這是用來(lái)更改密碼的指令,很簡(jiǎn)單,只要在提示字元下輸入 passwd ,然后輸入目前的密碼,再輸入兩次欲修改成的新密碼,就修改OK了!不過(guò)要注意,密碼的形式:不能與賬號相同,且需要 8 個(gè)字元以上,另外,賬號也不能太簡(jiǎn)單!否則系統會(huì )不接受!
[vbird@tsai vbird]# passwd Changing password for vbird (current) UNIX password: <==這里輸入目前的密碼 New UNIX password: <==這里輸入新的密碼 Retype new UNIX password: <==這里再輸入新的密碼一次 passwd: all authentication tokens updated successfully
who
這是用來(lái)視察目前在系統上的使用者指令,你也可以使用 w 這個(gè)指令來(lái)下達動(dòng)作。
[root@tsai /root]# who root pts/0 Aug 2 20:43 [root@tsai /root]# w 8:48pm up 4 days, 5:08, 1 user, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.1.2 8:43pm 0.00s 0.38s ? -
基本上,who 與 w 的功能是相同的,只是 who 僅列出使用者名稱(chēng)與登入時(shí)間,至于 w 則會(huì )列出使用者的
· 來(lái)源位址(IP):就是 FROM 那一項即是IP;
· 登入時(shí)間:即是 LOGIN@ 那一項;
· 工作項目:就是 WHAT 那一項!
whoami
這是用來(lái)確認你目前的身份的指令,由于你可能會(huì )有幾個(gè)身份在你的機器上,所以需要以這個(gè)指令來(lái)確認你的身份,不過(guò)由于 Linux 會(huì )將使用者名稱(chēng)寫(xiě)在提示字元上,所以這個(gè)指令目前比較少用到了。
top
這是用來(lái)指示目前系統的服務(wù)項目的動(dòng)態(tài)資料。
[root@tsai /root]# top 10:14pm up 4 days, 6:34, 1 user, load average: 0.01, 0.01, 0.00 40 processes: 39 sleeping, 1 running, 0 zombie, 0 stopped CPU states: 0.5% user, 0.3% system, 0.0% nice, 99.0% idle Mem: 63124K av, 60844K used, 2280K free, 23604K shrd, 35648K buff Swap: 104380K av, 1684K used, 102696K free 10788K cached PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND 3121 root 20 0 1016 1016 820 R 0 0.9 1.6 0:47 top 1 root 0 0 380 368 320 S 0 0.0 0.5 0:04 init 2 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kflushd 3 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kupdate 4 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kpiod 5 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kswapd 6 root -20 -20 0 0 0 SW< 0 0.0 0.0 0:00 mdrecoveryd 366 bin 0 0 308 288 228 S 0 0.0 0.4 0:00 portmap 382 root 0 0 392 376 328 S 0 0.0 0.5 0:00 apmd 435 root 0 0 488 480 388 S 0 0.0 0.7 0:00 syslogd 446 root 0 0 688 676 316 S 0 0.0 1.0 0:00 klogd
輸入 top 之后,會(huì )出現類(lèi)似上面的顯示情況。上圖中說(shuō)明了你的記憶體有63124K,而下方的面版說(shuō)明了目前正在執行中的工作內容!
free
這是用來(lái)察看記憶體的指令。
[root@tsai /root]# free total used free shared buffers cached Mem: 63124 60732 2392 23136 35648 10796 -/+ buffers/cache: 14288 48836 Swap: 104380 1684 102696
如上圖中,說(shuō)明總記憶體容量為 63124K,而使用了 60732K,另外,虛擬記憶體(Swap)共有 104380K(亦即共有 100MB 的虛擬記憶體)。
quotacheck, edquota
這些檔案是用來(lái)限制使用者在 Linux 主機上的硬碟使用容量。例如,有十個(gè)人同時(shí)分享一個(gè) 2G 的硬碟空間,但是有一個(gè)使用者就用了 1.5 GB 的容量,那相對的,其他人可使用的空間就只有剩下 0.5G 啦!不公平對不對,而且也怕被使用者填充大量的垃圾,而使用系統資源被瓜分掉!因此就有 Quota 這個(gè)咚咚的出現啦!由于執行的步驟較為繁瑣,所以額外寫(xiě)了一個(gè)頁(yè)面,請到這里來(lái)看看。
壓縮指令
compress
這是用來(lái)壓縮及解壓縮檔名為 .Z 的壓縮檔。要注意的是,用 compress 壓縮的時(shí)候,會(huì )將原檔案殺掉而變成檔名為 .Z 的檔案,例如你壓縮一個(gè)名為 bird.test 的檔案,則壓縮完成后只會(huì )剩下 bird.test.Z 這個(gè)壓縮檔!當然,解壓縮的時(shí)候也是一樣的,壓縮檔不見(jiàn)了,只有剩下被解壓縮的檔案。指令如下:
[root@tsai /root]# compress xxxxx <==將 xxxxx 檔案壓縮成為 xxxxx.Z 檔名 [root@tsai /root]# compress -d xxxxx.Z <==將 xxxxx.Z 解壓縮成 xxxxx
上表中,解壓縮也可以用 uncompress xxxxx.Z 來(lái)達成!
gzip
這個(gè)也是一個(gè)壓縮指令,與 compress 很相似,指令的用法也相同!只是壓縮的檔名為 .gz 罷了!
[root@tsai /root]# gzip xxxxx <==這是壓縮指令 [root@tsai /root]# gzip -d xxxxx.gz <==這是解壓縮指令
tar
這是一個(gè)很棒的壓縮指令,這個(gè)指令可以配合 gzip 來(lái)進(jìn)行整個(gè)目錄的壓縮!例如有一個(gè)名為 bird 的目錄要被你整合成一個(gè)檔案,你可以使用:tar -xvf *.tar *(其中 * 為你所要整合的目錄名稱(chēng))。
[root@tsai /root]# tar -cvf bird.tar bird <==只有將目錄轉成一個(gè)檔案,沒(méi)有壓縮 [root@tsai /root]# tar -zcvf bird.tar.gz bird <==壓縮一整個(gè)目錄成為 .tar.gz 檔案
上面這個(gè)例子的 bird.tar 只是將 bird 這個(gè)目錄整個(gè)拷貝成為一個(gè)檔案而已,并沒(méi)有壓縮,而 bird.tar.gz 則是將 bird 這個(gè)目錄壓縮成為一個(gè)檔案!基本上,我們都是使用 -zxvf 來(lái)壓縮一整個(gè)目錄的!而如果是要解壓縮呢?由于有沒(méi)有壓縮所下的參數并不相同,所以針對兩種檔案也是有兩種參數的組合:
[root@tsai /root]# tar -xvf bird.tar [root@tsai /root]# tar -zxvf bird.tar.gz
上面則是解壓縮的參數!
注意了,用 compress 及 gzip 壓縮及解壓縮的時(shí)候,會(huì )將原檔案取代掉!而使用 tar 來(lái)壓縮及解壓縮的時(shí)候,原檔案將會(huì )與產(chǎn)生檔案同時(shí)存在!通常我們都是使用 tar 來(lái)進(jìn)行壓縮或解壓縮的?。ó斎?,你還是可以使用 compress 及 gzip 來(lái)壓縮一個(gè)大的檔案?。?div style="height:15px;">
這是用來(lái)查詢(xún)目前我們這個(gè)系統的網(wǎng)路卡的狀況的指令,可以查詢(xún) IP、子遮罩網(wǎng)路及網(wǎng)路卡的硬體資訊等等。例如:
[root@tsai /root]# ifconfig eth0 Link encap:Ethernet HWaddr 00:50:FC:20:F1:4D inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:7651977 errors:0 dropped:0 overruns:0 frame:0 TX packets:7467862 errors:0 dropped:0 overruns:0 carrier:0 collisions:961 txqueuelen:100 Interrupt:10 Base address:0x6100 eth1 Link encap:Ethernet HWaddr 00:80:C8:5A:87:01 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:7492497 errors:0 dropped:0 overruns:0 frame:0 TX packets:7617653 errors:0 dropped:0 overruns:0 carrier:0 collisions:289 txqueuelen:100 Interrupt:9 Base address:0x6200 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:3924 Metric:1 RX packets:512 errors:0 dropped:0 overruns:0 frame:0 TX packets:512 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 ppp0 Link encap:Point-to-Point Protocol inet addr:211.74.249.38 P-t-P:172.16.11.8 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1 RX packets:7469726 errors:0 dropped:0 overruns:0 frame:0 TX packets:7617651 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:10
由于上面的例子是使用兩張網(wǎng)路卡,因此會(huì )有 eth0 及 eth1 兩個(gè)介面,至于 lo 是系統內設的遞回網(wǎng)路,這是一定會(huì )有的咚咚,而且其 inet addr(IP)一定是 127.0.0.1!另外, ppp0 則是 ADSL 撥接之后所產(chǎn)生的虛擬介面(對外的介面?。?。在這個(gè)例子中,鳥(niǎo)哥使用了兩張網(wǎng)路卡, eth0 用在內部網(wǎng)路, eth1 用在 ADSL 撥接,所以 eth1 就沒(méi)有 address。至于第一張網(wǎng)路卡的網(wǎng)路位址是虛擬的 192.168.1.2。而真正的對外聯(lián)系是 ppp0 這一個(gè)撥接介面,其 internet 是 211.74.249.38!
這是用來(lái)看你的網(wǎng)路通訊包傳送的路由情況的指令。由于通信包是藉由一個(gè)一個(gè)的路由表來(lái)傳遞的,所以觀(guān)察你的路由表,對于網(wǎng)路除錯(debuge)就很重要啦!
[root@tsai /root]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.2 * 255.255.255.255 UH 0 0 0 eth0 172.16.11.8 * 255.255.255.255 UH 0 0 0 ppp0 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0 127.0.0.0 * 255.0.0.0 U 0 0 0 lo default 172.16.11.8 0.0.0.0 UG 0 0 0 ppp0
例如上表中,所有的通訊都是藉由 ppp0 這一個(gè)介面卡(Iface)并且其通訊閘(Gateway)為 172.16.11.8 這一個(gè)!另外,在虛擬 IP (內部網(wǎng)路)則是藉由 eth0 (192.168.1.2)這一塊網(wǎng)卡來(lái)連線(xiàn)的!
另外,你也可以使用 route 來(lái)加入你的路由表,假如你要將一個(gè)網(wǎng)路為 192.56.76.XXX 且子網(wǎng)路為 255.255.255.0 的位置加入你的 eth0 這個(gè)網(wǎng)路卡的連線(xiàn)處理中,就可以使用如下的語(yǔ)法:
[root@tsai /root]# netstat Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 126 swks249-38.adsl.:telnet 192.168.1.15:1341 ESTABLISHED Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ] DGRAM 87643 /dev/log unix 0 [ ] STREAM CONNECTED 116 @00000012
[root@tsai /root]# ping www.kimo.com.tw PING www.kimo.com.tw (202.1.237.21) from 211.74.249.38 : 56(84) bytes of data. 64 bytes from 202.1.237.21: icmp_seq=0 ttl=245 time=56.7 ms 64 bytes from 202.1.237.21: icmp_seq=1 ttl=245 time=58.0 ms 64 bytes from 202.1.237.21: icmp_seq=2 ttl=245 time=58.7 ms 64 bytes from 202.1.237.21: icmp_seq=3 ttl=245 time=52.0 ms 64 bytes from 202.1.237.21: icmp_seq=4 ttl=245 time=72.2 ms --- www.kimo.com.tw ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 52.0/59.5/72.2 ms
例如上表中,我們去觀(guān)察 www.kimo.com.tw 是否有啟動(dòng),看每一列的最后一行,會(huì )告訴你訊息回應的時(shí)間大約是 56ms?。?0-3 sec.)
[root@tsai /root]# nslookup www.kimo.com.tw Server: ksdns.seed.net.tw Address: 139.175.10.20 Non-authoritative answer: Name: www.kimo.com.tw Address: 202.1.237.21
系統會(huì )告訴你,我們使用的 DNS server 是 ksdns.seed.net.tw,而查詢(xún)到的網(wǎng)址是 202.1.237.21。如果需要更詳細的查詢(xún),可以用下面的方式來(lái)查!
[root@tsai /root]# nslookup Default Server: ksdns.seed.net.tw Address: 139.175.10.20 > set type=any <==告訴系統我們要詳細的資料! > www.kimo.com.tw Server: ksdns.seed.net.tw Address: 139.175.10.20 Non-authoritative answer: www.kimo.com.tw internet address = 202.1.237.21 Authoritative answers can be found from: kimo.com.tw nameserver = ns1.kimo.com.tw kimo.com.tw nameserver = ns1.yahoo.com kimo.com.tw nameserver = ns3.europe.yahoo.com kimo.com.tw nameserver = ns5.dcx.yahoo.com ns1.kimo.com.tw internet address = 210.59.144.1 ns1.yahoo.com internet address = 204.71.200.33 ns3.europe.yahoo.com internet address = 217.12.4.71 ns5.dcx.yahoo.com internet address = 216.32.74.10
[root@tsai /root]# /usr/sbin/traceroute proxy.ncku.edu.tw traceroute to proxy.ncku.edu.tw (163.28.112.100), 30 hops max, 38 byte packets 1 172.16.11.8 (172.16.11.8) 128.378 ms 68.920 ms 118.313 ms 2 139.175.15.1 (139.175.15.1) 54.146 ms 38.557 ms 44.320 ms 3 R58-37.seed.net.tw (139.175.58.37) 61.339 ms 43.177 ms 39.548 ms 4 R56-162.seed.net.tw (139.175.56.162) 66.631 ms 43.182 ms 41.429 ms 5 203.72.191.222 (203.72.191.222) 65.538 ms 61.379 ms 38.887 ms 6 140.116.241.230 (140.116.241.230) 40.159 ms 46.107 ms 46.854 ms 7 proxy.tnrc.edu.tw (163.28.112.100) 38.641 ms 57.286 ms 46.380 ms
系統會(huì )告訴你,總共通過(guò)了7個(gè)路由,并列出了每一個(gè)路由的 Internet 位址。這個(gè)東西有個(gè)好處,可以告訴你,當網(wǎng)路出問(wèn)題時(shí),問(wèn)題是在哪一個(gè)地方!
[root@tsai /root]# cal August 2001 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
這是用來(lái)搜尋某些特定字元的指令。例如使用 ps -aux 查詢(xún)系統服務(wù)時(shí),我們只需要知道 sendmail 是否有動(dòng)作,則可以使用管線(xiàn)指令『|』來(lái)加入 grep 這個(gè)指令同時(shí)運作。
[root@tsai /root]# ps -aux|grep sendmail root 443 0.0 1.0 2092 660 ? S Jul26 0:36 sendmail: accepti vbird 8387 0.0 0.7 1240 492 pts/1 S 19:11 0:00 grep sendmail
[root@tsai /root]# ftp linux.cis.nctu.edu.tw Connected to linux.cis.nctu.edu.tw. 220 ProFTPD 1.2.0rc3 Server (Linux.CIS FTP server) [linux.cis.nctu.edu.tw] Name (linux.cis.nctu.edu.tw:vbird): anonymous <==輸入 anonymous 匿名登入 331 Anonymous login ok, send your complete email address as your password. Password: <==輸入 name@server.xxx.xxx 型態(tài)的 mail-address 密碼 230 Anonymous access granted, restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp> dir <==檢查網(wǎng)站上的目錄 200 PORT command successful. 150 Opening ASCII mode data connection for file list. -rw-rw-rw- 1 linux adm 39491400 Aug 3 21:00 00ls-lR -rw-rw-rw- 1 linux adm 3091546 Aug 3 21:01 00ls-lR.gz -rw-r--r-- 1 linux wheel 232 Mar 15 22:00 00mirror.today drwxr-xr-x 5 linux wheel 4096 Oct 29 2000 java drwxr-xr-x 14 linux wheel 4096 Aug 2 19:31 kernel drwxr-xr-x 4 linux wheel 4096 Sep 28 2000 mirrors 226-Transfer complete. 226 Quotas off ftp> cd kernel/v2.4 <==進(jìn)入 kernel 底下的 v2.4 目錄 250 CWD command successful. ftp> get linux-2.4.0.tar.bz2.sign <==捉下 linux-2.4.0.tar.bz.2.sign 這個(gè)檔 local: linux-2.4.0.tar.bz2.sign remote: linux-2.4.0.tar.bz2.sign 200 PORT command successful. 150 Opening BINARY mode data connection for linux-2.4.0.tar.bz2.sign (248 bytes) . 226 Transfer complete. 248 bytes received in 0.014 secs (17 Kbytes/sec)
在使用 FTP 功能的時(shí)候,因為只能一次捉一個(gè)檔案,所以要捉一群檔案的時(shí)候就會(huì )有困擾。這時(shí)我們可以使用更容易登入匿名 FTP 站的 ncftp 來(lái)執行 FTP 功能!
[root@tsai /root]# ncftp linux.cis.nctu.edu.tw ncftp / > mget -R kernel <==將 kernel 這個(gè)目錄的東西全捉下來(lái)!
[root@tsai /root]# uname -a Linux vbird.adsldns.org 2.2.12-20 #1 Mon Sep 27 10:25:54 EDT 1999 i586 unknown
這個(gè)是常常使用來(lái)設定系統的一個(gè)指令,執行之后會(huì )有一個(gè)視窗出現,較常使用的是 System services 這一項,可用來(lái)設定開(kāi)機的時(shí)候要開(kāi)放的服務(wù)!
這是用來(lái)簡(jiǎn)易的設定 X-Windows 的指令,當你的 X-Windows 確定是可以跑的,而你想要改變一些設定,例如:解析度、色彩度等等,就直接使用這個(gè)指令啦!
這是用來(lái)設定 X-Windows 的指令!這個(gè)指令會(huì )比 Xconfigurator 麻煩,不過(guò)當你的 X-Windows 沒(méi)有辦法跑的時(shí)候,這個(gè)咚咚是很好用的!
1. Q:在 Linux 上面都是一些線(xiàn)上的英文說(shuō)明,有沒(méi)有中文說(shuō)明,或更詳細的說(shuō)明資料呢?
其實(shí)在網(wǎng)路上已經(jīng)有一票高手在進(jìn)行 Linux how to 的翻譯工作,這是一個(gè)很有意義的事情,因為可以讓新手或者是一些有需要使用 Linux 的人,有一個(gè)很好的學(xué)習文件。你可以來(lái)下面的網(wǎng)址看看:
2. Q:在 Linux 中如何加入新硬碟?
o 安裝硬碟:關(guān)掉 Linux 主機電源,調整 Hard Disk 的 Jump (master 或 slave),串接在 IDE 的介面,請注意,留意你增加的硬碟所串接的 IDE 介面為哪一個(gè)插槽,例如你插在 IDE2 的 Master ,則你的硬碟應為 hdc;
o 新增硬體于BIOS:開(kāi)啟電腦后,按 del 鍵進(jìn)入 BIOS,選擇 IDE Hard Disk Detector 字樣的選項,讓BIOS去捉硬碟,然后再選擇 Save and Exit;
o Linux 安裝:開(kāi)機進(jìn)入 Linux 的時(shí)候,系統會(huì )告訴你有捉到一個(gè)新的硬體,你可以按 『configure』 由系統直接安裝即可;
§ fdisk /dev/hdc <== hdc 與你的硬碟串接的IDE介面有關(guān),關(guān)于這個(gè)指令的介紹請參考上面的指令說(shuō)明;
§ mke2fs -c /dev/hdc1 <==假設硬碟全部配置成一個(gè)大硬碟,則硬碟應為 hdc1 ,以 mke2fs 將系統規劃為 Linux 的系統檔。
o 開(kāi)機自動(dòng)載入:再來(lái)則是以 vi 修改 /etc/fstab 檔案,讓每次開(kāi)機把這個(gè)硬碟直接掛入系統中。例如 hdc1 這顆硬碟掛在 /mnt/hdc1 中,則 fstab 的檔案有點(diǎn)像這樣:(/dev/hdc1 那一行是新加入的?。?div style="height:15px;">