Linux 必學的 60 個命令html
Linux 提供了大量的命令,利用它能夠有效地完成大量的工做,如磁盤操做、文件存
取、目錄操做、進程管理、文件權限設定等。因此,在 Linux 系統上工做離不開使用系統提
供的命令。要想真正理解 Linux 系統,就必須從 Linux 命令學起,經過基礎的命令學習能夠
進一步理解 Linux 系統。node
不一樣 Linux 發行版的命令數量不同,但 Linux 發行版本最少的命令也有 200 多個。
這裏筆者
把比較重要和使用頻率最多的命令,按照它們在系統中的做用分紅下面六個部分一一介紹。mysql
◆ 安裝和登陸命令:login、shutdown、halt、reboot、install、mount、umount、chsh、
exit、last;linux
◆ 文件處理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;ios
◆ 系統管理相關命令:df、top、free、quota、at、lp、adduser、groupadd、kill、
crontab;正則表達式
◆ 網絡操做命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、
finger、mail、 nslookup;sql
◆ 系統安全相關命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、
who;shell
◆ 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。express
本文以 Mandrake Linux 9.1(Kenrel 2.4.21)爲例,介紹 Linux 下的安裝和登陸命令。
login
1.做用
login 的做用是登陸系統,它的使用權限是全部用戶。編程
2.格式
login [name][-p ][-h 主機名稱]
3.主要參數
-p:通知 login 保持如今的環境參數。
-h:用來向遠程登陸的之間傳輸用戶名。
若是選擇用命令行模式登陸 Linux 的話,那麼看到的第一個 Linux 命令就是 login:。
通常界面是這樣的:
Manddrake Linux release 9.1(Bamboo) for i586
kennel 2.4.21-0.13mdk on i686 / tty1
localhost login:root
password:
上面代碼中,第一行是 Linux 發行版本號,第二行是內核版本號和登陸的虛擬控制檯,
咱們在第三行輸入登陸名,按「Enter」鍵在 Password 後輸入帳戶密碼,便可登陸系統。出
於安全考慮,輸入帳戶密碼時字符不會在屏幕上回顯,光標也不移動。
登陸後會看到下面這個界面(以超級用戶爲例):
[root@localhost root]#
last login:Tue ,Nov 18 10:00:55 on vc/1
上面顯示的是登陸星期、月、日、時間和使用的虛擬控制檯。
4.應用技巧
Linux 是一個真正的多用戶操做系統,能夠同時接受多個用戶登陸,還容許一個用戶
進行屢次登陸。這是由於 Linux 和許多版本的 Unix 同樣,提供了虛擬控制檯的訪問方式,
容許用戶在同一時間從控制檯(系統的控制檯是與系統直接相連的監視器和鍵盤)進行屢次
登陸。每一個虛擬控制檯能夠看做是一個獨立的工做站,工做臺之間能夠切換。虛擬控制檯的
切換能夠經過按下 Alt 鍵和一個功能鍵來實現,一般使用 F1-F6 。
例如,用戶登陸後,按一下「Alt+F2」鍵,用戶就能夠看到上面出現的「login:」提示
符,說明用戶看到了第二個虛擬控制檯。而後只需按「Alt+ F1」鍵,就能夠回到第一個虛
擬控制檯。一個新安裝的 Linux 系統容許用戶使用「Alt+F1」到「Alt+F6」鍵來訪問前六個
虛擬控制檯。虛擬控制檯最有用的是,當一個程序出錯形成系統死鎖時,能夠切換到其它虛
擬控制檯工做,關閉這個程序。
shutdown
1.做用
shutdown 命令的做用是關閉計算機,它的使用權限是超級用戶。
2.格式
shutdown [-h][-i][-k][-m][-t]
3.重要參數
-t:在改變到其它運行級別以前,告訴 init 程序多久之後關機。
-k:並不真正關機,只是送警告信號給每位登陸者。
-h:關機後關閉電源。
-c:cancel current process 取消目前正在執行的關機程序。因此這個選項固然沒有時間
參數,可是能夠輸入一個用來解釋的訊息,而這信息將會送到每位使用者。
-F:在重啓計算機時強迫 fsck。
-time:設定關機前的時間。
-m: 將系統改成單用戶模式。
-i:關機時顯示系統信息。
4.命令說明
shutdown 命令能夠安全地將系統關機。有些用戶會使用直接斷掉電源的方式來關閉
Linux 系統,這是十分危險的。由於 Linux 與 Windows 不一樣,其後臺運行着許多進程,因此
強制關機可能會致使進程的數據丟失,使系統處於不穩定的狀態,甚至在有的系統中會損壞
硬件設備(硬盤)。在系統關機前使用 shutdown 命令,系統管理員會通知全部登陸的用戶
系統將要關閉,而且 login 指令會被凍結,即新的用戶不能再登陸。
5.舉例
shutdown -h 3:40
說明 3:40 開始關機。
halt
1.做用
halt 命令的做用是關閉系統,它的使用權限是超級用戶。
2.格式
halt [-n] [-w] [-d] [-f] [-i] [-p]
3.主要參數說明
-n:防止 sync 系統調用,它用在用 fsck 修補根分區以後,以阻止內核用老版本的超級塊覆
蓋修補過的超級塊。
-w:並非真正的重啓或關機,只是寫 wtmp(/var/log/wtmp)紀錄。
-f:沒有調用 shutdown,而強制關機或重啓。
-i:關機(或重啓)前,關掉全部的網絡接口。
-f:強迫關機,不呼叫 shutdown 這個指令。
-p: 當關機的時候順便作關閉電源的動做。
-d:關閉系統,但不留下紀錄。
4.命令說明
halt 就是調用 shutdown -h。halt 執行時,殺死應用進程,執行 sync(將存於 buffer 中的資料
強制寫入硬盤中)系統調用,文件系統寫操做完成後就會中止內核。若系統的運行級別爲 0
或 6,則關閉系統;不然以 shutdown 指令(加上-h 參數)來取代。
reboot
1.做用
reboot 命令的做用是從新啓動計算機,它的使用權限是系統管理者。
2.格式
reboot [-n] [-w] [-d] [-f] [-i]
3.主要參數
-n: 在重開機前不作將記憶體資料寫回硬盤的動做。
-w: 並不會真的重開機,只是把記錄寫到/var/log/wtmp 文件裏。
-d: 不把記錄寫到/var/log/wtmp 文件裏(-n 這個參數包含了-d)。
-i: 在重開機以前先把全部與網絡相關的裝置中止。
install
1.做用
install 命令的做用是安裝或升級軟件或備份數據,它的使用權限是全部用戶。
2.格式
(1)install [選項]... 來源 目的地
(2)install [選項]... 來源... 目錄
(3)install -d [選項]... 目錄...
在前兩種格式中,會將<來源>複製至<目的地>或將多個<來源>文件複製至已存在的<目錄>,
同時設定權限模式及全部者/所屬組。在第三種格式中,會建立全部指定的目錄及它們的主
目錄。長選項必須用的參數在使用短選項時也是必須的。
3.主要參數
--backup[=CONTROL]:爲每一個已存在的目的地文件進行備份。
-b:相似 --backup,但不接受任何參數。
-c:(此選項不做處理)。
-d,--directory:全部參數都做爲目錄處理,並且會建立指定目錄的全部主目錄。
-D:建立<目的地>前的全部主目錄,而後將<來源>複製至 <目的地>;在第一種使用格式
中
有用。
-g,--group=組:自行設定所屬組,而不是進程目前的所屬組。
-m,--mode=模式:自行設定權限模式 (像 chmod),而不是 rwxr-xr-x。
-o,--owner=全部者:自行設定全部者 (只適用於超級用戶)。
-p,--preserve-timestamps:以<來源>文件的訪問/修改時間做爲相應的目的地文件的
時間屬性。
-s,--strip:用 strip 命令刪除 symbol table,只適用於第一及第二種使用格式。
-S,--suffix=後綴:自行指定備份文件的<後綴>。
-v,--verbose:處理每一個文件/目錄時印出名稱。
--help:顯示此幫助信息並離開。
--version:顯示版本信息並離開。
mount
1.做用
mount 命令的做用是加載文件系統,它的用權限是超級用戶或/etc/fstab 中容許的使用者。
2.格式
mount -a [-fv] [-t vfstype] [-n] [-rw] [-F] device dir
3.主要參數
-h:顯示輔助信息。
-v:顯示信息,一般和-f 用來除錯。
-a:將/etc/fstab 中定義的全部文件系統掛上。
-F:這個命令一般和-a 一塊兒使用,它會爲每個 mount 的動做產生一個行程負責執行。
在系統須要掛上大量 NFS 文件系統時能夠加快加載的速度。
-f:一般用於除錯。它會使 mount 不執行實際掛上的動做,而是模擬整個掛上的過程,通
常會和-v 一塊兒使用。
-t vfstype:顯示被加載文件系統的類型。
-n:通常而言,mount 掛上後會在/etc/mtab 中寫入一筆資料,在系統中沒有可寫入文件系
統的狀況下,能夠用這個選項取消這個動做。
4.應用技巧
在 Linux 和 Unix 系統上,全部文件都是做爲一個大型樹(以/爲根)的一部分訪問的。
要訪問 CD-ROM 上的文件,須要將 CD-ROM 設備掛裝在文件樹中的某個掛裝點。若是發行
版安裝了自動掛裝包,那麼這個步驟可自動進行。在 Linux 中,若是要使用硬盤、光驅等儲
存設備,就得先將它加載,當儲存設備掛上了以後,就能夠把它當成一個目錄來訪問。掛上
一個設備使用 mount 命令。在使用 mount 這個指令時,至少要先知道下列三種信息:要加
載對象的文件系統類型、要加載對象的設備名稱及要將設備加載到哪一個目錄下。
(1)Linux 能夠識別的文件系統
◆ Windows 95/98 經常使用的 FAT 32 文件系統:vfat ;
◆ Win NT/2000 的文件系統:ntfs ;
◆ OS/2 用的文件系統:hpfs;
◆ Linux 用的文件系統:ext二、ext3;
◆ CD-ROM 光盤用的文件系統:iso9660。
雖然 vfat 是指 FAT 32 系統,但事實上它也兼容 FAT 16 的文件系統類型。
(2)肯定設備的名稱
在 Linux 中,設備名稱一般都存在/dev 裏。這些設備名稱的命名都是有規則的,能夠用
「推理」的方式把設備名稱找出來。例如,/dev/hda1 這個 IDE 設備,hd 是 Hard Disk(硬盤)
的,sd 是 SCSI Device,fd 是 Floppy Device(或是 Floppy Disk?)。a 表明第一個設備,一般 IDE
接口能夠接上 4 個 IDE 設備(好比 4 塊硬盤)。因此要識別 IDE 硬盤的方法分別就是 hda、hdb、
hdc、 hdd。hda1 中的「1」表明 hda 的第一個硬盤分區 (partition),hda2 表明 hda 的第二主
分區,第一個邏輯分區從 hda5 開始,依此類推。此外,能夠直接檢查/var/log/messages 文件,
在該文件中能夠找到計算機開機後系統已辨認出來的設備代號。
(3)查找掛接點
在決定將設備掛接以前,先要查看一下計算機是否是有個/mnt 的空目錄,該目錄就是
專門用來看成掛載點(Mount Point)的目錄。建議在/mnt 裏建幾個/mnt/cdrom、/mnt/floppy、
/mnt/mo 等目錄,看成目錄的專用掛載點。舉例而言,如要掛載下列 5 個設備,其執行指令
可能以下 (假設都是 Linux 的 ext2 系統,若是是 Windows XX 請將 ext2 改爲 vfat):
軟盤 ===>mount -t ext2 /dev/fd0 /mnt/floppy
cdrom ===>mount -t iso9660 /dev/hdc /mnt/cdrom
SCSI cdrom ===>mount -t iso9660 /dev/sdb /mnt/scdrom
SCSI cdr ===>mount -t iso9660 /dev/sdc /mnt/scdr
不過目前大多數較新的 Linux 發行版本(包括紅旗 Linux、中軟 Linux、Mandrake Linux
等)均可以自動掛裝文件系統,但 Red Hat Linux 除外。
umount
1.做用
umount 命令的做用是卸載一個文件系統,它的使用權限是超級用戶或/etc/fstab 中容許的使
用者。
2.格式
umount -a [-fFnrsvw] [-t vfstype] [-n] [-rw] [-F] device dir
3.使用說明
umount 命令是 mount 命令的逆操做,它的參數和使用方法和 mount 命令是同樣的。
Linux 掛裝 CD-ROM 後,會鎖定 CD—ROM,這樣就不能用 CD-ROM 面板上的 Eject 按鈕
彈出它。可是,當再也不須要光盤時,若是已將/cdrom 做爲符號連接,請使用 umount/cdrom
來卸裝它。僅當無用戶正在使用光盤時,該命令纔會成功。該命令包括了將帶有當前工做目
錄看成該光盤中的目錄的終端窗口。
chsh
1.做用
chsh 命令的做用是更改使用者 shell 設定,它的使用權限是全部使用者。
2.格式
chsh [ -s ] [ -list] [ --help ] [ -v ] [ username ]
3.主要參數
-l:顯示系統全部 Shell 類型。
-v:顯示 Shell 版本號。
4.應用技巧
前面介紹了 Linux 下有多種 Shell,通常缺省的是 Bash,若是想更換 Shell 類型能夠使用
chsh 命令。先輸入帳戶密碼,而後輸入新 Shell 類型,若是操做正確系統會顯示「Shell change」。
其界面通常以下:
Changing fihanging shell for cao
Password:
New shell [/bin/bash]: /bin/tcsh
上面代碼中,[ ]內是目前使用的 Shell。普通用戶只能修改本身的 Shell,超級用戶能夠
修改全體用戶的 Shell。要想查詢系統提供哪些 Shell,能夠使用 chsh -l 命令,見圖 1 所示。
圖 1 系統能夠使用的 Shell 類型
從圖 1 中能夠看到,筆者系統中能夠使用的 Shell 有 bash(缺省)、csh、sh、tcsh 四種。
exit
1.做用
exit 命令的做用是退出系統,它的使用權限是全部用戶。
2.格式
exit
3.參數
exit 命令沒有參數,運行後退出系統進入登陸界面。
last
1.做用
last 命令的做用是顯示近期用戶或終端的登陸狀況,它的使用權限是全部用戶。經過 last 命
令查看該程序的 log,管理員能夠獲知誰曾經或企圖鏈接系統。
2.格式
1ast[—n][-f file][-t tty] [—h 節點][-I —IP][—1][-y][1D]
3.主要參數
-n:指定輸出記錄的條數。
-f file:指定用文件 file 做爲查詢用的 log 文件。
-t tty:只顯示指定的虛擬控制檯上登陸狀況。
-h 節點:只顯示指定的節點上的登陸狀況。
-i IP:只顯示指定的 IP 上登陸的狀況。
-1:用 IP 來顯示遠端地址。
-y:顯示記錄的年、月、日。
-ID:知道查詢的用戶名。
-x:顯示系統關閉、用戶登陸和退出的歷史。
動手練習
上面介紹了 Linux 安裝和登陸命令,下面介紹幾個實例,動手練習一下剛纔講過的命令。
1.一次運行多個命令
在一個命令行中能夠執行多個命令,用分號將各個命令隔開便可,例如:
#last -x;halt
上面代碼表示在顯示系統關閉、用戶登陸和退出的歷史後關閉計算機。
2.利用 mount 掛裝文件系統訪問 Windows 系統
許多 Linux 發行版本如今均可以自動加載 Vfat 分區來訪問 Windows 系統,而 Red Hat 各個
版本都沒有自動加載 Vfat 分區,所以還須要進行手工操做。
mount 能夠將 Windows 分區做爲 Linux 的一個「文件」掛接到 Linux 的一個空文件夾下,從
而將 Windows 的分區和/mnt 這個目錄聯繫起來。所以,只要訪問這個文件夾就至關於訪問
該分區了。首先要在/mnt 下創建 winc 文件夾,在命令提示符下輸入下面命令:
#mount -t vfat /dev/hda1 /mnt/winc
即表示將 Windows 的 C 分區掛到 Liunx 的/mnt/winc 目錄下。這時,在/mnt/winc 目錄下
就能夠看到 Windows 中 C 盤的內容了。使用相似的方法能夠訪問 Windows 系統的 D、E 盤。
在 Linux 系統顯示 Windows 的分區通常順序這樣的:hda1 爲 C 盤、hda5 爲 D 盤、 hda6 爲
E 盤……以此類推。
上述方法能夠查看 Windows 系統有一個很大的問題,就是 Windows 中的全部中文文件
名或文件夾名所有顯示爲問號 「?」,而英文卻能夠正常顯示。咱們能夠經過加入一些參數
讓它顯示中文。還以上面的操做爲例,此時輸入命令:
#mount -t vfat -o iocharset=cp936 /dev/hda1 /mnt/winc
如今它就能夠正常顯示中文了。
3.使用 mount 加掛閃盤上的文件系統
在 Linux 下使用閃盤很是簡單。Linux 對 USB 設備有很好的支持,當插入閃盤後,閃盤
被識別爲一個 SCSI 盤,一般輸入如下命令:
# mount /dev/sda1 /usb
就可以加掛閃盤上的文件系統。
小知識
Linux 命令與 Shell
所謂 Shell,就是命令解釋程序,它提供了程序設計接口,能夠使用程序來編程。學習
Shell 對於 Linux 初學者理解 Linux 系統是很是重要的。 Linux 系統的 Shell 做爲操做系統的
外殼,爲用戶提供了使用操做系統的接口。Shell 是命令語言、命令解釋程序及程序設計語
言的統稱,是用戶和 Linux 內核之間的接口程序。若是把 Linux 內核想象成一個球體的中心,
Shell 就是圍繞內核的外層。當從 Shell 或其它程序向 Linux 傳遞命令時,內核會作出相應的
反應。Shell 在 Linux 系統的做用和 MS DOS 下的 COMMAND.COM 和 Windows 95/98 的
explorer.exe 類似。Shell 雖然不是系統核心的一部分,只是系統核心的一個外延,但它可以
調用系統內核的大部分功能。所以,能夠說 Shell 是 Unux/Linux 最重要的實用程序。Linux
中的 Shell 有多種類型,其中最經常使用的是 Bourne Shell(sh)、C Shell(csh)和 Korn Shell(ksh)。
大多數 Linux 發行版本缺省的 Shell 是 Bourne Again Shell,它是 BourneShell 的擴展,簡稱
bash,與 Bourne Shell 徹底向後兼容,而且在 Bourne Shell 的基礎上增長了不少特性。bash
放在/bin/bash 中,能夠提供如命令補全、命令編輯和命令歷史表等功能。它還包含了不少 C
Shell 和 Korn Shell 中的優勢,有靈活和強大的編程接口,同時又有很友好的用戶界面。Linux
系統中 200 多個命令中有 40 個是 bash 的內部命令,主要包括 exit、less、lp、kill、 cd、pwd、
fc、fg 等。
Linux 必學的 60 個命令(2)-文件處理
Linux 必學的 60 個命令 -文件操做
Linux 系統信息存放在文件裏,文件與普通的公務文件相似。每一個文件都有本身的名字、
內容、存放地址及其它一些管理信息,如文件的用戶、文件的大小等。文件能夠是一封信、
一個通信錄,或者是程序的源語句、程序的數據,甚至能夠包括可執行的程序和其它非正文
內容。 Linux 文件系統具備良好的結構,系統提供了不少文件處理程頡U飫鎦饕 檣艹S
玫?文件處理命令。
file
1.做用 件內容判斷文件類型,使用權限是全部用戶。
2.格式
file 經過探測文
file [options] 文件名
3.[options]主要參數
-v:在標準輸出後顯示版本信息,而且退出。
-z:探測壓縮過的文件類型。
-L:容許符合鏈接。
-f name:從文件 namefile 中讀取要分析的文件名列表。
4.簡單說明
使用 file 命令能夠知道某個文件到底是二進制(ELF 格式)的可執行文件, 仍是
ShellScript 文件,或者是其它的什麼格式。file 能識別的文件類型有目錄、Shell 腳本、英文
文本、二進制可執行文件、C 語言源文件、文本文件、DOS 的可執行文件。
5.應用實例
若是咱們看到一個沒有後綴的文件 grap,能夠使用下面命令:
$ file grap
grap: English text
此時系統顯示這是一個英文文本文件。須要說明的是,file 命令不能探測包括圖形、音頻、
視頻等多媒體文件類型。
mkdir
1.做用
mkdir 命令的做用是創建名稱爲 dirname 的子目錄,與 MS DOS 下的 md 命令相似,它的使
用權限是全部用戶。
2.格式
mkdir [options] 目錄名
3.[options]主要參數
-m, --mode=模式:設定權限<模式>,與 chmod 相似。
-p, --parents:須要時建立上層目錄;若是目錄早已存在,則不看成錯誤。
-v, --verbose:每次建立新目錄都顯示信息。
--version:顯示版本信息後離開。
4.應用實例
在進行目錄建立時能夠設置目錄的權限,此時使用的參數是「-m」。假設要建立的目錄名
是「tsk」,讓全部用戶都有 rwx(即讀、寫、執行的權限),那麼能夠使用如下命令:
$ mkdir -m 777 tsk
grep
1.做用
grep 命令能夠指定文件中搜索特定的內容,並將含有這些內容的行標準輸出。grep 全稱是
Global Regular Expression Print,表示全局正則表達式版本,它的使用權限是全部用戶。
2.格式
grep [options]
3.主要參數
[options]主要參數:
-c:只輸出匹配行的計數。
-I:不區分大小寫(只適用於單字符)。
-h:查詢多文件時不顯示文件名。
-l:查詢多文件時只輸出包含匹配字符的文件名。
-n:顯示匹配行及行號。
-s:不顯示不存在或無匹配文本的錯誤信息。
-v:顯示不包含匹配文本的全部行。
pattern 正則表達式主要參數:
\:忽略正則表達式中特殊字符的原有含義。
^:匹配正則表達式的開始行。
$: 匹配正則表達式的結束行。
\<:從匹配正則表達式的行開始。
\>:到匹配正則表達式的行結束。
[ ]:單個字符,如[A]即 A 符合要求 。
[ - ]:範圍,如[A-Z],即 A、B、C 一直到 Z 都符合要求 。
. :全部的單個字符。
* :有字符,長度能夠爲 0。
正則表達式是 Linux/Unix 系統中很是重要的概念。正則表達式(也稱爲「regex」或
「regexp」)是一個能夠描述一類字符串的模式(Pattern)。若是一個字符串能夠用某個正則
表達式來描述,咱們就說這個字符和該正則表達式匹配(Match)。這和 DOS 中用戶能夠使
用通配符 「*」表明任意字符相似。在 Linux 系統上,正則表達式一般被用來查找文本的模
式,以及對文本執行「搜索-替換」操做和其它功能。
4.應用實例
查詢 DNS 服務是平常工做之一,這意味着要維護覆蓋不一樣網絡的大量 IP 地址。有時 IP
地址會超過 2000 個。若是要查看 nnn.nnn 網絡地址,可是卻忘了第二部分中的其他部分,
只知到有兩個句點,例如 nnn nn..。要抽取其中全部 nnn.nnn IP 地址,使用[0-9 ]\{3 \}\.[0
-0\{3\}\。含義是任意數字出現 3 次,後跟句點,接着是任意數字出現 3 次,後跟句點。
$grep '[0-9 ]\{3 \}\.[0-0\{3\}\' ipfile
補充說明,grep 家族還包括 fgrep 和 egrep。fgrep 是 fix grep,容許查找字符串而不是一
個模式;egrep 是擴展 grep,支持基本及擴展的正則表達式,但不支持\q 模式範圍的應用及
與之相對應的一些更加規範的模式。
dd
1.做用
dd 命令用來複制文件,並根據參數將數據轉換和格式化。
2.格式
dd [options]
3.[opitions]主要參數
bs=字節:強迫 ibs=<字節>及 obs=<字節>。
cbs=字節:每次轉換指定的<字節>。
conv=關鍵字:根據以逗號分隔的關鍵字表示的方式來轉換文件。
count=塊數目:只複製指定<塊數目>的輸入數據。
ibs=字節:每次讀取指定的<字節>。
if=文件:讀取<文件>內容,而非標準輸入的數據。
obs=字節:每次寫入指定的<字節>。
of=文件:將數據寫入<文件>,而不在標準輸出顯示。
seek=塊數目:先略過以 obs 爲單位的指定<塊數目>的輸出數據。
skip=塊數目:先略過以 ibs 爲單位的指定<塊數目>的輸入數據。
4.應用實例
dd 命令經常用來製做 Linux 啓動盤。先找一個可引導內核,令它的根設備指向正確的根分
區
,而後使用 dd 命令將其寫入軟盤:
$ rdev vmlinuz /dev/hda
$dd if=vmlinuz of=/dev/fd0
上面代碼說明,使用rdev命令將可引導內核vmlinuz中的根設備指向/dev/hda,請把「hda」
換成本身的根分區,接下來用 dd 命令將該內核寫入軟盤。
find
1.做用
find 命令的做用是在目錄中搜索文件,它的使用權限是全部用戶。
2.格式
find [path][options][expression]
path 指定目錄路徑,系統從這裏開始沿着目錄樹向下查找文件。它是一個路徑列表,相互用
空格分離,若是不寫 path,那麼默認爲當前目錄。
3.主要參數
[options]參數:
-depth:使用深度級別的查找過程方式,在某層指定目錄中優先查找文件內容。
-maxdepth levels:表示至多查找到開始目錄的第 level 層子目錄。level 是一個非負數,如
果 level 是 0 的話表示僅在當前目錄中查找。
-mindepth levels:表示至少查找到開始目錄的第 level 層子目錄。
-mount:不在其它文件系統(如 Msdos、Vfat 等)的目錄和文件中查找。
-version:打印版本。
[expression]是匹配表達式,是 find 命令接受的表達式,find 命令的全部操做都是針對表達式
的。它的參數很是多,這裏只介紹一些經常使用的參數。
—name:支持統配符*和?。
-atime n:搜索在過去 n 天讀取過的文件。
-ctime n:搜索在過去 n 天修改過的文件。
-group grpoupname:搜索全部組爲 grpoupname 的文件。
-user 用戶名:搜索全部文件屬主爲用戶名(ID 或名稱)的文件。
-size n:搜索文件大小是 n 個 block 的文件。
-print:輸出搜索結果,而且打印。
4.應用技巧
find 命令查找文件的幾種方法:
(1)根據文件名查找
例如,咱們想要查找一個文件名是 lilo.conf 的文件,能夠使用以下命令:
find / -name lilo.conf
find 命令後的「/」表示搜索整個硬盤。
(2)快速查找文件
根據文件名查找文件會遇到一個實際問題,就是要花費至關長的一段時間,特別是大
型 Linux 文件系統和大容量硬盤文件放在很深的子目錄中時。若是咱們知道了這個文件存放
在某個目錄中,那麼只要在這個目錄中往下尋找就能節省不少時間。好比 smb.conf 文件,
從它的文件後綴「.conf」能夠判斷這是一個配置文件,那麼它應該在/etc 目錄內,此時能夠
使用下面命令:
find /etc -name smb.conf
這樣,使用「快速查找文件」方式能夠縮短期。
(3)根據部分文件名查找方法
有時咱們知道只某個文件包含有 abvd 這 4 個字,那麼要查找系統中全部包含有這 4 個
字符的文件能夠輸入下面命令:
find / -name '*abvd*'
輸入這個命令之後,Linux 系統會將在/目錄中查找全部的包含有 abvd 這 4 個字符的文
件(其中*是通配符),好比 abvdrmyz 等符合條件的文件都能顯示出來。
(4) 使用混合查找方式查找文件
find 命令能夠使用混合查找的方法,例如,咱們想在/etc 目錄中查找大於 500000 字節,並
且在 24 小時內修改的某個文件,則能夠使用-and (與)把兩個查找參數連接起來組合成一個
混合的查找方式。
find /etc -size +500000c -and -mtime +1
mv
1.做用
mv 命令用來爲文件或目錄更名,或者將文件由一個目錄移入另外一個目錄中,它的使用權限
是全部用戶。該命令如同 DOS 命令中的 ren 和 move 的組合。
2.格式
mv[options] 源文件或目錄 目標文件或目錄
3.[options]主要參數
-i:交互方式操做。若是 mv 操做將致使對已存在的目標文件的覆蓋,此時系統詢問是否
重寫,要求用戶回答「y」或「n」,這樣能夠避免誤覆蓋文件。
-f:禁止交互操做。mv 操做要覆蓋某個已有的目標文件時不給任何指示,指定此參數後 i
參
數將再也不起做用。
4.應用實例
(1)將/usr/cbu 中的全部文件移到當前目錄(用「.」表示)中:
$ mv /usr/cbu/ * .
(2)將文件 cjh.txt 重命名爲 wjz.txt:
$ mv cjh.txt wjz.txt
ls
1.做用
ls 命令用於顯示目錄內容,相似 DOS 下的 dir 命令,它的使用權限是全部用戶。
2.格式
ls [options][filename]
3.options 主要參數
-a, --all:不隱藏任何以「.」 字符開始的項目。
-A, --almost-all:列出除了「 . 」及 「.. 」之外的任何項目。
--author:印出每一個文件著做者。
-b, --escape:以八進制溢出序列表示不可打印的字符。
--block-size=大小:塊以指定<大小>的字節爲單位。
-B, --ignore-backups:不列出任何以 ~ 字符結束的項目。
-f:不進行排序,-aU 參數生效,-lst 參數失效。
-F, --classify:加上文件類型的指示符號 (*/=@| 其中一個)。
-g:like -l, but do not list owner。
-G, --no-group:inhibit display of group information。
-i, --inode:列出每一個文件的 inode 號。
-I, --ignore=樣式:不印出任何符合 Shell 萬用字符<樣式>的項目。
-k:即--block-size=1K。
-l:使用較長格式列出信息。
-L, --dereference:當顯示符號連接的文件信息時,顯示符號連接所指示的對象,而並不是
符號連接自己的信息。
-m:全部項目以逗號分隔,並填滿整行行寬。
-n, --numeric-uid-gid:相似-l,但列出 UID 及 GID 號。
-N, --literal:列出未經處理的項目名稱,例如不特別處理控制字符。
-p, --file-type:加上文件類型的指示符號 (/=@| 其中一個)。
-Q, --quote-name:將項目名稱括上雙引號。
-r, --reverse:依相反次序排列。
-R, --recursive:同時列出全部子目錄層。
-s, --size:以塊大小爲序。
4.應用舉例
ls 命令是 Linux 系統使用頻率最多的命令,它的參數也是 Linux 命令中最多的。使用 ls
命令時會有幾種不一樣的顏色,其中藍色表示是目錄,綠色表示是可執行文件,紅色表示是壓
縮文件,淺藍色表示是連接文件,加粗的黑色表示符號連接,灰色表示是其它格式文件。ls
最常使用的是 ls- l,見圖 1 所示。
圖 1 使用 ls-l 命令
文件類型開頭是由 10 個字符構成的字符串。其中第一個字符表示文件類型,它能夠是
下述類型之一:-(普通文件)、d(目錄)、l(符號連接)、b(塊設備文件)、c(字符設備
文件)。後面的 9 個字符表示文件的訪問權限,分爲 3 組,每組 3 位。第一組表示文件屬主
的權限,第二組表示同組用戶的權限,第三組表示其餘用戶的權限。每一組的三個字符分別
表示對文件的讀(r)、寫(w)和執行權限(x)。對於目錄,表示進入權限。s 表示當文件
被執行時,把該文件的 UID 或 GID 賦予執行進程的 UID(用戶 ID)或 GID(組 ID)。t 表
示設置標誌位(留在內存,不被換出)。若是該文件是目錄,那麼在該目錄中的文件只能被
超級用戶、目錄擁有者或文件屬主刪除。若是它是可執行文件,那麼在該文件執行後,指向
其正文段的指針仍留在內存。這樣再次執行它時,系統就能更快地裝入該文件。接着顯示的
是文件大小、生成時間、文件或命令名稱。
diff
1.做用
diff 命令用於兩個文件之間的比較,並指出二者的不一樣,它的使用權限是全部用戶。
2.格式
diff [options] 源文件 目標文件
3.[options]主要參數
-a:將全部文件看成文本文件來處理。
-b:忽略空格形成的不一樣。
-B:忽略空行形成的不一樣。
-c:使用綱要輸出格式。
-H:利用試探法加速對大文件的搜索。
-I:忽略大小寫的變化。
-n --rcs:輸出 RCS 格式。
cmp
1.做用
cmp(「compare」的縮寫)命令用來簡要指出兩個文件是否存在差別,它的使用權限是全部
用戶。
2.格式
cmp[options] 文件名
3.[options]主要參數
-l: 將字節以十進制的方式輸出,並方便將兩個文件中不一樣的以八進制的方式輸出。
cat 1.做用cat(「concatenate」的縮寫)命令用於鏈接並顯示指定的一個和多個文件的有關信息,它的使用權限是全部用戶。2.格式cat [options] 文件 1 文件 2……3.[options]主要參數-n:由第一行開始對全部輸出的行數編號。-b:和-n 類似,只不過對於空白行不編號。-s:當遇到有連續兩行以上的空白行時,就代換爲一行的空白行。4.應用舉例(1)cat 命令一個最簡單的用處是顯示文本文件的內容。例如,咱們想在命令行看一下README 文件的內容,能夠使用命令:$ cat README(2)有時須要將幾個文件處理成一個文件,並將這種處理的結果保存到一個單獨的輸出文件。cat 命令在其輸入上接受一個或多個文件,並將它們做爲一個單獨的文件打印到它的輸出。例如,把 README 和 INSTALL 的文件內容加上行號(空白行不加)以後,將內容附加到一個新文本文件 File1 中:$ cat README INSTALL File1 (3)cat 還有一個重要的功能就是能夠對行進行編號,見圖 2 所示。這種功能對於程序文檔的編制,以及法律和科學文檔的編制很方便,打印在左邊的行號使得參考文檔的某一部分變得容易,這些在編程、科學研究、業務報告甚至是立法工做中都是很是重要的。圖 2 使用 cat 命令/etc/named.conf 文件進行編號對行進行編號功能有-b(只能對非空白行進行編號)和-n(能夠對全部行進行編號)兩個參數:$ cat -b /etc/named.conf ln 1.做用ln 命令用來在文件之間建立連接,它的使用權限是全部用戶。2.格式ln [options] 源文件 [連接名] 3.參數-f:鏈結時先將源文件刪除。-d:容許系統管理者硬鏈結本身的目錄。-s:進行軟鏈結(Symbolic Link)。-b:將在鏈結時會被覆蓋或刪除的文件進行備份。連接有兩種,一種被稱爲硬連接(Hard Link),另外一種被稱爲符號連接(Symbolic Link)。默認狀況下,ln 命令產生硬連接。硬鏈接指經過索引節點來進行的鏈接。在 Linux 的文件系統中,保存在磁盤分區中的文件無論是什麼類型都給它分配一個編號,稱爲索引節點號(Inode Index)。在 Linux 中,多個文件名指向同一索引節點是存在的。通常這種鏈接就是硬鏈接。硬鏈接的做用是容許一個文件擁有多個有效路徑名,這樣用戶就能夠創建硬鏈接到重要文件,以防止「誤刪」的功能。其緣由如上所述,由於對應該目錄的索引節點有一個以上的鏈接。只刪除一個鏈接並不影響索引節點自己和其它的鏈接,只有當最後一個鏈接被刪除後,文件的數據塊及目錄的鏈接纔會被釋放。也就是說,文件纔會被真正刪除。與硬鏈接相對應,Lnux 系統中還存在另外一種鏈接,稱爲符號鏈接(Symbilc Link),也叫軟鏈接。軟連接文件有點相似於 Windows 的快捷方式。它其實是特殊文件的一種。在符號鏈接中,文件其實是一個文本文件,其中包含的有另外一文件的位置信息。動手聯繫上面咱們介紹了 Linux 文件處理命令,下面介紹幾個實例,你們能夠動手練習一下剛纔講的命令。1.利用符號連接快速訪問關鍵目錄符號連接是一個很是實用的功能。假設有一些目錄或文件須要頻繁使用,但因爲 Linux的文件和目錄結構等緣由,這個文件或目錄在很深的子目錄中。好比, Apache Web 服務器文檔位於系統的/usr/local/httpd/htdocs 中,而且不想每次都要從主目錄進入這樣一個長的路徑之中(實際上,這個路徑也很是不容易記憶)。爲了解決這個問題,能夠在主目錄中建立一個符號連接,這樣在須要進入該目錄時,只需進入這個連接便可。爲了能方便地進入 Web 服務器(/usr/local/httpd/htdocs)文檔所在的目錄,在主目錄下能夠使用如下命令:$ ln -s /usr/local/httpd/htdocs gg 這樣每次進入 gg 目錄就可訪問 Web 服務器的文檔,之後若是再也不訪問 Web 服務器的文檔時,除 gg 便可,而真正的 Web 服務器的文檔並無刪除。2.使用 dd 命令將 init.rd 格式的 root.ram 內容導入內存dd if=/dev/fd0 of=floppy.fd dd if=root.ram of=/dev/ram0 # 3.grep 命令系統調用grep 是 Linux/Unix 中使用最普遍的命令之一,許多 Linux 系統內部均可以調用它。(1)若是要查詢目錄列表中的目錄,方法以下:$ ls -l | grep '∧d' (2)若是在一個目錄中查詢不包含目錄的全部文件,方法以下:$ ls -l | grep '∧[∧d]' (3)用 find 命令調用 grep,如全部 C 源代碼中的「Chinput」,方法以下:$find /ZhXwin -name *.c -exec grep -q -s Chinput {} \;-print Linux 必學的 60 個命令(3)-系統管理Linux 必學的 60 個命令:系統管理相關命令Linux 必學的系統管理命令對於 Linux 系統來講,不管是中央處理器、內存、磁盤驅動器、鍵盤、鼠標,仍是用戶等都是文件,Linux 系統管理的命令是它正常運行的核心。熟悉了 Linux 經常使用的文件處理命令之後,這一講介紹對系統和用戶進行管理的命令。df 1.做用df 命令用來檢查文件系統的磁盤空間佔用狀況,使用權限是全部用戶。2.格式df [options] 3.主要參數-s:對每一個 Names 參數只給出佔用的數據塊總數。-a:遞歸地顯示指定目錄中各文件及子目錄中各文件佔用的數據塊數。若既不指定-s,也不指定-a,則只顯示 Names 中的每個目錄及其中的各子目錄所佔的磁盤塊數。-k:以 1024 字節爲單位列出磁盤空間使用狀況。-x:跳過在不一樣文件系統上的目錄不予統計。-l:計算全部的文件大小,對硬連接文件則計算屢次。-i:顯示 inode 信息而非塊使用量。-h:以容易理解的格式印出文件系統大小,例如 136KB、254MB、21GB。-P:使用 POSIX 輸出格式。-T:顯示文件系統類型。4.說明df 命令被普遍地用來生成文件系統的使用統計數據,它能顯示系統中全部的文件系統的信息,包括總容量、可用的空閒空間、目前的安裝點等。超級權限用戶使用 df 命令時會發現這樣的狀況:某個分區的容量超過了 100%。這是由於 Linux 系統爲超級用戶保留了 10%的空間,由其單獨支配。也就是說,對於超級用戶而言,他所見到的硬盤容量將是 110%。這樣的安排對於系統管理而言是有好處的,當硬盤被使用的容量接近 100%時系統管理員還能夠正常工做。5.應用實例Linux 支持的文件系統很是多,包括 JFS、ReiserFS、ext、ext二、ext三、ISO9660、XFS、Minx、vfat、MSDOS 等。使用 df -T 命令查看磁盤空間時還能夠獲得文件系統的信息:#df -T 文件系統 類型 容量 已用 可用 已用% 掛載點/dev/hda7 reiserfs 5.2G 1.6G 3.7G 30% / /dev/hda1 vfat 2.4G 1.6G 827M 66% /windows/C /dev/hda5 vfat 3.0G 1.7G 1.3G 57% /windows/D /dev/hda9 vfat 3.0G 2.4G 566M 82% /windows/E /dev/hda10 NTFS 3.2G 573M 2.6G 18% /windows/F /dev/hda11 vfat 1.6G 1.5G 23M 99% /windows/G 從上面除了能夠看到磁盤空間的容量、使用狀況外,分區的文件系統類型、掛載點等信息也一覽無遺。top 1.做用top 命令用來顯示執行中的程序進程,使用權限是全部用戶。2.格式top [-] [d delay] [q] [c] [S] [s] [i] [n] 3.主要參數d:指定更新的間隔,以秒計算。q:沒有任何延遲的更新。若是使用者有超級用戶,則 top 命令將會以最高的優先序執行。c:顯示進程完整的路徑與名稱。S:累積模式,會將己完成或消失的子行程的 CPU 時間累積起來。s:安全模式。i:不顯示任何閒置(Idle)或無用(Zombie)的行程。n:顯示更新的次數,完成後將會退出 top。4.說明top 命令是 Linux 系統管理的一個主要命令,經過它能夠得到許多信息。這裏咱們結合圖 1來說明它給出的信息。圖 1 top 命令的顯示在圖 1 中,第一行表示的項目依次爲當前時間、系統啓動時間、當前系統登陸用戶數目、平均負載。第二行顯示的是全部啓動的進程、目前運行的、掛起 (Sleeping)的和無用(Zombie)的進程。第三行顯示的是目前 CPU 的使用狀況,包括系統佔用的比例、用戶使用比例、閒置(Idle)比例。第四行顯示物理內存的使用狀況,包括總的能夠使用的內存、已用內存、空閒內存、緩衝區佔用的內存。第五行顯示交換分區使用狀況,包括總的交換分區、使用的、空閒的和用於高速緩存的大小。第六行顯示的項目最多,下面列出了詳細解釋。PID(Process ID):進程標示號。USER:進程全部者的用戶名。PR:進程的優先級別。NI:進程的優先級別數值。VIRT:進程佔用的虛擬內存值。RES:進程佔用的物理內存值。SHR:進程使用的共享內存值。S:進程的狀態,其中 S 表示休眠,R 表示正在運行,Z 表示僵死狀態,N 表示該進程優先值是負數。%CPU:該進程佔用的 CPU 使用率。%MEM:該進程佔用的物理內存和總內存的百分比。TIME+:該進程啓動後佔用的總的 CPU 時間。Command:進程啓動的啓動命令名稱,若是這一行顯示不下,進程會有一個完整的命令行。top 命令使用過程當中,還能夠使用一些交互的命令來完成其它參數的功能。這些命令是經過快捷鍵啓動的。<空格>:馬上刷新。P:根據 CPU 使用大小進行排序。T:根據時間、累計時間排序。q:退出 top 命令。m:切換顯示內存信息。t:切換顯示進程和 CPU 狀態信息。c:切換顯示命令名稱和完整命令行。M:根據使用內存大小進行排序。W:將當前設置寫入~/.toprc 文件中。這是寫 top 配置文件的推薦方法。能夠看到,top 命令是一個功能十分強大的監控系統的工具,對於系統管理員而言尤爲重要。可是,它的缺點是會消耗不少系統資源。5.應用實例使用 top 命令能夠監視指定用戶,缺省狀況是監視全部用戶的進程。若是想查看指定用戶的狀況,在終端中按「U」鍵,而後輸入用戶名,系統就會切換爲指定用戶的進程運行界面,見圖 2 所示。圖 2 使用 top 命令監視指定用戶free 1.做用free 命令用來顯示內存的使用狀況,使用權限是全部用戶。2.格式free [-b|-k|-m] [-o] [-s delay] [-t] [-V] 3.主要參數-b -k -m:分別以字節(KB、MB)爲單位顯示內存使用狀況。-s delay:顯示每隔多少秒數來顯示一次內存使用狀況。-t:顯示內存總和列。-o:不顯示緩衝區調節列。4.應用實例free 命令是用來查看內存使用狀況的主要命令。和 top 命令相比,它的優勢是使用簡單,並且只佔用不多的系統資源。經過-S參數能夠使用free命令不間斷地監視有多少內存在使用,這樣能夠把它看成一個方便實時監控器。#free -b -s5 使用這個命令後終端會接二連三地報告內存使用狀況(以字節爲單位),每 5 秒更新一次。quota 1.做用quota 命令用來顯示磁盤使用狀況和限制狀況,使用權限超級用戶。2.格式quota [-g][-u][-v][-p] 用戶名 組名3.參數-g:顯示用戶所在組的磁盤使用限制。-u:顯示用戶的磁盤使用限制。-v:顯示沒有分配空間的文件系統的分配狀況。-p:顯示簡化信息。4.應用實例在企業應用中磁盤配額很是重要,普通用戶要學會看懂本身的磁盤使用狀況。要查詢自己的磁盤配額能夠使用下面命令(下例中用戶帳號是 caojh):#quota caojh Disk quotas for user caojh(uid 502): Filesystem blocks quota limit grace files quota limit grace /dev/hda3 58 200000 400000 41 500 1000 以上顯示 ID 號爲 502 的 caojh 帳號,文件個數設置爲 500~1000 個,硬盤空間限制設置爲 200MB~400MB。一旦磁盤配額要用完時,就須要刪除一些垃圾文件或向系統管理員請求追加配額。at 1.做用at 命令用來在指定時刻執行指定的命令序列。2.格式at [-V] [-q x] [-f file] [-m] time 3.主要參數-V:顯示標準錯誤輸出。-q:許多隊列輸出。-f:從文件中讀取做業。-m:執行完做業後發送電子郵件到用戶。time:設定做業執行的時間。time 格式有嚴格的要求,由小時、分鐘、日期和時間的偏移量組成,其中日期的格式爲 MM.DD.YY,MM 是分鐘,DD 是日期,YY 是指年份。偏移量的格式爲時間+偏移量,單位是 minutes、hours 和 days。4.應用實例#at -f data 15:30 +2 days 上面命令表示讓系統在兩天後的 17:30 執行文件 data 中指明的做業。lp 1.做用lp 是打印文件的命令,使用權限是全部用戶。2.格式lp [-c][-d][-m][-number][-title][-p] 3.主要參數-c:先拷貝文件再打印。-d:打印隊列文件。-m:打印結束後發送電子郵件到用戶。-number:打印份數。-title:打印標題。-p:設定打印的優先級別,最高爲 100。4.應用實例(1)使用 lp 命令打印多個文件#lp 2 3 4 request id is 11 (3 file(s)) 其中 二、三、4 分別是文件名;「request id is 11 (3 file(s)) 」表示這是第 11 個打印命令,依次打印這三個文件。(2)設定打印優先級別#lp lp -d LaserJet -p 90 /etc/aliases 經過添加「-p 90」,規定了打印做業的優先級爲 90。它將在優先級低於 90 的打印做業以前打印,包括沒有設置優先級的做業,缺省優先級是 50 useradd 1.做用useradd 命令用來創建用戶賬號和建立用戶的起始目錄,使用權限是超級用戶。2.格式useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name 3.主要參數-c:加上備註文字,備註文字保存在 passwd 的備註欄中。 -d:指定用戶登入時的啓始目錄。-D:變動預設值。-e:指定帳號的有效期限,缺省表示永久有效。-f:指定在密碼過時後多少天即關閉該帳號。-g:指定用戶所屬的羣組。-G:指定用戶所屬的附加羣組。-m:自動創建用戶的登入目錄。-M:不要自動創建用戶的登入目錄。-n:取消創建以用戶名稱爲名的羣組。-r:創建系統帳號。-s:指定用戶登入後所使用的 shell。-u:指定用戶 ID 號。4.說明useradd 可用來創建用戶帳號,它和 adduser 命令是相同的。帳號建好以後,再用 passwd 設定帳號的密碼。使用 useradd 命令所創建的帳號,其實是保存在/etc/passwd 文本文件中。5.應用實例創建一個新用戶帳戶,並設置 ID:#useradd caojh -u 544 須要說明的是,設定 ID 值時儘可能要大於 500,以避免衝突。由於 Linux 安裝後會創建一些特殊用戶,通常 0 到 499 之間的值留給 bin、mail 這樣的系統帳號。groupadd 1.做用groupadd 命令用於將新組加入系統。2.格式groupadd [-g gid] [-o]] [-r] [-f] groupname 3.主要參數-g gid:指定組 ID 號。-o:容許組 ID 號,沒必要唯一。-r:加入組 ID 號,低於 499 系統帳號。-f:加入已經有的組時,發展程序退出。4.應用實例創建一個新組,並設置組 ID 加入系統:#groupadd -g 344 cjh 此時在/etc/passwd 文件中產生一個組 ID(GID)是 344 的項目。kill 1.做用kill 命令用來停止一個進程。2.格式kill [ -s signal | -p ] [ -a ] pid ... kill -l [ signal ] 3.參數-s:指定發送的信號。-p:模擬發送信號。-l:指定信號的名稱列表。pid:要停止進程的 ID 號。Signal:表示信號。4.說明進程是 Linux 系統中一個很是重要的概念。Linux 是一個多任務的操做系統,系統上經常同時運行着多個進程。咱們不關心這些進程到底是如何分配的,或者是內核如何管理分配時間片的,所關心的是如何去控制這些進程,讓它們可以很好地爲用戶服務。Linux 操做系統包括三種不一樣類型的進程,每種進程都有本身的特色和屬性。交互進程是由一個 Shell 啓動的進程。交互進程既能夠在前臺運行,也能夠在後臺運行。批處理進程和終端沒有聯繫,是一個進程序列。監控進程(也稱系統守護進程)時 Linux 系統啓動時啓動的進程,並在後臺運行。例如,httpd 是著名的 Apache 服務器的監控進程。kill 命令的工做原理是,向 Linux 系統的內核發送一個系統操做信號和某個程序的進程標識號,而後系統內核就能夠對進程標識號指定的進程進行操做。好比在 top 命令中,咱們看到系統運行許多進程,有時就須要使用 kill 停止某些進程來提升系統資源。在講解安裝和登錄命令時,曾提到系統多個虛擬控制檯的做用是當一個程序出錯形成系統死鎖時,能夠切換到其它虛擬控制檯工做關閉這個程序。此時使用的命令就是 kill,由於 kill 是大多數 Shell內部命令能夠直接調用的。5.應用實例(1)強行停止(常用殺掉)一個進程標識號爲 324 的進程:#kill -9 324 (2)解除 Linux 系統的死鎖在 Linux 中有時會發生這樣一種狀況:一個程序崩潰,而且處於死鎖的狀態。此時一般不用從新啓動計算機,只須要停止(或者說是關閉)這個有問題的程序便可。當 kill 處於X-Window 界面時,主要的程序(除了崩潰的程序以外)通常都已經正常啓動了。此時打開一個終端,在那裏停止有問題的程序。好比,若是 Mozilla 瀏覽器程序出現了鎖死的狀況,可以使用kill命令來停止全部包含有Mozolla瀏覽器的程序。首先用top命令查處該程序的PID,而後使用 kill 命令中止這個程序:#kill -SIGKILL XXX 其中,XXX 是包含有 Mozolla 瀏覽器的程序的進程標識號。(3)使用命令回收內存咱們知道內存對於系統是很是重要的,回收內存能夠提升系統資源。kill 命令能夠及時地停止一些「越軌」的程序或很長時間沒有相應的程序。例如,使用 top 命令發現一個無用(Zombie) 的進程,此時能夠使用下面命令:#kill -9 XXX 其中,XXX 是無用的進程標識號。而後使用下面命令:#free 此時會發現可用內存容量增長了。(4)killall 命令Linux 下還提供了一個 killall 命令,能夠直接使用進程的名字而不是進程標識號,例如:# killall -HUP inetd crontab 1.做用使用 crontab 命令能夠修改 crontab 配置文件,而後該配置由 cron 公用程序在適當的時間執行,該命令使用權限是全部用戶。2.格式crontab [ -u user ] 文件crontab [ -u user ] { -l | -r | -e } 3.主要參數-e:執行文字編輯器來設定時程表,內定的文字編輯器是 vi。-r:刪除目前的時程表。-l:列出目前的時程表。crontab 文件的格式爲「M H D m d cmd」。其中,M 表明分鐘(0~59),H 表明小時(0~23),D 表明天(1~31),m 表明月(1~12),d 表明一星期內的天(0~6,0 爲星期天)。cmd 表示要運行的程序,它被送入 sh 執行,這個 Shell 只有 USER、HOME、SHELL 三個環境變量。4.說明和 at 命令相比,crontab 命令適合完成固定週期的任務。5.應用實例設置一個定時、按期的系統提示:[cao @www cao]#crontab -e 此時系統會打開一個 vi 編輯器。若是輸入如下內容:35 17 * * 5 wall "Tomorrow is Saturday I will go CS",而後存盤退出。這時在/var/spool/cron/目錄下會生產一個 cao 的文件,內容以下:# DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/crontab.2707 installed on Thu Jan 1 22:01:51 2004) # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) 35 17 * * 5 wall "Tomorrow is Saturday I will play CS " 這樣每一個星期五 17:35 系統就會彈出一個終端,提醒星期六能夠打打 CS 了!顯示結果見圖 3 所示。圖 3 一個定時、按期的系統提示動手練習1.聯合使用 kill 和 top 命令觀察系統性能的變化首先啓動一個終端運行 top 命令,而後再啓動一個終端使用 kill 命令,見圖 4 所示。圖 4 觀察 kill 命令對 top 終端的影響這時利用上面介紹的 kill 命令來停止一些程序:#kill SIGKILL XXX 而後再看 top 命令終端的變化,包括內存容量、CPU 使用率、系統負載等。注意,有些進程是不能停止的,不過學習 Linux 命令時能夠試試,看看系統有什麼反應。2.使用 at 和 halt 命令定時關機首先設定關機時間是 17:35,輸入下面代碼:#at 17:35 warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh at>halt `-i -p at> <EOT> job 6 at 2004-01-01 17:35 此時實際上就已經進入 Linux 系統的 Shell,而且編寫一個最簡單程序:halt -i -p。上面 Shell 中的文本結束符號表示按「Ctrl+D」組合鍵關閉命令,提交任務退出 Shell。「Job6 at 2004-01-01 17:35」表示系統接受第 6 個 at 命令,在「2004-01-01 17:35」時執行命令:先把全部網絡相關的裝置中止,關閉系統後關閉電源。3.用 crontab 命令實現天天定時的病毒掃描前面已經介紹了一個簡單的 crontab 命令操做,這裏看一些更重要的操做。(1)創建一個文件,文件名稱本身設定,假設爲 caoproject:#crontab -e (2)文件內容以下:05 09 * * * antivir 用 vi 編輯後存盤退出。antivir 是一個查殺 Linux 病毒的軟件,固然須要時先安裝在系統中。(3)使用 crontab 命令添加到任務列表中:#crontab caoproject 這樣系統內全部用戶在天天的 9 點 05 分會自動進行病毒掃描。4.用 kill 使修改的配置文件立刻生效Windows 用戶通常都知道,重要配置文件修改後每每都要從新啓動計算機才能使修改生效。而 Linux 因爲採用了模塊化設計,能夠本身根據須要實時設定服務。這裏以網絡服務inetd 爲例介紹一些操做技巧。inetd 是一個監聽守護進程,監聽與提供互聯網服務進程(如 rlogin、telnet、ftp、rsh)進行鏈接的要求,並擴展所需的服務進程。默認狀況下,inetd 監聽的這些 daemon 均列於/etc /inetd.conf 文件中。編輯/etc/inetd.conf 文件,能夠改變 inetd 啓動服務器守護進程的選項,然後驅使 inetd 以 SIGHUP(signal 1)向當前的 inetd 進程發送信號,使 inetd 重讀該文件。這一過程由 kill 命令來實現。用 vi 或其它編輯器修改 inetd.conf 後,首先使用下面命令:#ps -ef |grep inetd 上面代碼代表查詢 inetd.conf 的進程號(PID),這裏假設是 1426,而後使用下面命令:# kill -1426 inetd 這樣配置文件就生效了。這一講介紹的系統管理命令都是比較重要的,特別是 crontab 命令和 quota 命令使用起來會有必定難度,須要多作一些練習。另外,使用 kill 命令要注意「-9「這個參數,練習時最好不要運行一些重要的程序。Linux 必學的 60 個命令(4)-網絡操做Linux 必學的 60 個命令:網絡操做命令Linux 必學的網絡操做命令 (1) 由於 Linux 系統是在 Internet 上起源和發展的,它與生俱來擁有強大的網絡功能和豐富的網絡應用軟件,尤爲是 TCP/IP 網絡協議的實現尤其成熟。Linux 的網絡命令比較多,其中一些命令像 ping、 ftp、telnet、route、netstat 等在其它操做系統上也能看到,但也有一些Unix/Linux 系統獨有的命令,如 ifconfig、 finger、mail 等。Linux 網絡操做命令的一個特色是,命令參數選項和功能不少,一個命令每每還能夠實現其它命令的功能。 ifconfig 1.做用 ifconfig 用於查看和更改網絡接口的地址和參數,包括 IP 地址、網絡掩碼、廣播地址,使用權限是超級用戶。 2.格式 ifconfig -interface [options] address 3.主要參數-interface:指定的網絡接口名,如 eth0 和 eth1。up:激活指定的網絡接口卡。down:關閉指定的網絡接口。broadcast address:設置接口的廣播地址。pointopoint:啓用點對點方式。address:設置指定接口設備的 IP 地址。netmask address:設置接口的子網掩碼。 4.應用說明 ifconfig 是用來設置和配置網卡的命令行工具。爲了手工配置網絡,這是一個必須掌握的命令。使用該命令的好處是無須從新啓動機器。要賦給 eth0 接口 IP 地址 207.164.186.2,並且立刻激活它,使用下面命令: #fconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast 210.34.6.127 該命令的做用是設置網卡 eth0 的 IP 地址、網絡掩碼和網絡的本地廣播地址。若運行不帶任何參數的 ifconfig 命令,這個命令將顯示機器全部激活接詰男畔ⅰ4 小?a」參數的命令則顯示全部接口的信息,包括沒有激活的接口。注意,用 ifconfig 命令配置的網絡設備參數,機器從新啓動之後將會丟失。 若是要暫停某個網絡接口的工做,能夠使用 down 參數:#ifconfig eth0 down ip 1.做用 ip 是 iproute2 軟件包裏面的一個強大的網絡配置工具,它可以替代一些傳統的網絡管理工具,例如 ifconfig、route 等,使用權限爲超級用戶。幾乎全部的 Linux 發行版本都支持該命令。 2.格式ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]] 3.主要參數 OPTIONS 是修改 ip 行爲或改變其輸出的選項。全部的選項都是以-字符開頭,分爲長、短兩種形式。目前,ip 支持如表 1 所示選項。 OBJECT 是要管理者獲取信息的對象。目前 ip 認識的對象見表 2 所示。 表 1 ip 支持的選項-V,-Version 打印 ip 的版本並退出。-s,-stats,-statistics 輸出更爲詳盡的信息。若是這個選項出現兩次或屢次,則輸出的信息將更爲詳盡。-f,-family 這個選項後面接協議種類,包括 inet、inet6 或 link,強調使用的協議種類。若是沒有足夠的信息告訴 ip 使用的協議種類,ip 就會使用默認值 inet 或 any。link 比較特殊,它表示不涉及任何網絡協議。-4 是-family inet 的簡寫。-6 是-family inet6 的簡寫。-0 是-family link 的簡寫。-o,-oneline 對每行記錄都使用單行輸出,回行用字符代替。若是須要使用 wc、grep 等工具處理 ip 的輸出,則會用到這個選項。-r,-resolve 查詢域名解析系統,用得到的主機名代替主機 IP 地址 COMMAND 設置針對指定對象執行的操做,它和對象的類型有關。通常狀況下,ip 支持對象的增長(add)、刪除(delete)和展現(show 或 list)。有些對象不支持這些操做,或者有其它的一些命令。對於全部的對象,用戶能夠使用 help 命令得到幫助。這個命令會列出這個對象支持的命令和參數的語法。若是沒有指定對象的操做命令,ip 會使用默認的命令。通常狀況下,默認命令是 list,若是對象不能列出,就會執行 help 命令。 ARGUMENTS 是命令的一些參數,它們倚賴於對象和命令。ip 支持兩種類型的參數:flag 和 parameter。flag 由一個關鍵詞組成;parameter 由一個關鍵詞加一個數值組成。爲了方便,每一個命令都有一個能夠忽略的默認參數。例如,參數 dev 是 ip link 命令的默認參數,所以 ip link ls eth0 等於 ip link ls dev eth0。咱們將在後面的詳細介紹每一個命令的使用,命令的默認參數將使用 default 標出。 4.應用實例 添加 IP 地址 192.168.2.2/24 到 eth0 網卡上: #ip addr add 192.168.1.1/24 dev eth0 丟棄源地址屬於 192.168.2.0/24 網絡的全部數據報: #ip rule add from 192.168.2.0/24 prio 32777 reject ping 1.做用 ping 檢測主機網絡接口狀態,使用權限是全部用戶。 2.格式 ping [-dfnqrRv][-c][-i][-I][-l][-p][-s][-t] IP 地址 3.主要參數-d:使用 Socket 的 SO_DEBUG 功能。-c:設置完成要求迴應的次數。-f:極限檢測。-i:指定收發信息的間隔秒數。-I:網絡界面使用指定的網絡界面送出數據包。-l:前置載入,設置在送出要求信息以前,先行發出的數據包。-n:只輸出數值。-p:設置填滿數據包的範本樣式。-q:不顯示指令執行過程,開頭和結尾的相關信息除外。-r:忽略普通的 Routing Table,直接將數據包送到遠端主機上。-R:記錄路由過程。-s:設置數據包的大小。-t:設置存活數值 TTL 的大小。-v:詳細顯示指令的執行過程。 ping 命令是使用最多的網絡指令,一般咱們使用它檢測網絡是否連通,它使用 ICMP 協議。可是有時會有這樣的狀況,咱們能夠瀏覽器查看一個網頁,可是卻沒法 ping 通,這是由於一些網站處於安全考慮安裝了防火牆。另外,也能夠在本身計算機上試一試,經過下面的方法使系統對 ping 沒有反應:# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all netstat 1.做用 檢查整個 Linux 網絡狀態。 2.格式 netstat [-acCeFghilMnNoprstuvVwx][-A][--ip] 3.主要參數-a--all:顯示全部連線中的 Socket。-A:列出該網絡類型連線中的 IP 相關地址和網絡類型。-c--continuous:持續列出網絡狀態。-C--cache:顯示路由器配置的快取信息。-e--extend:顯示網絡其它相關信息。-F--fib:顯示 FIB。-g--groups:顯示多重廣播功能羣組組員名單。-h--help:在線幫助。-i--interfaces:顯示網絡界面信息表單。-l--listening:顯示監控中的服務器的 Socket。-M--masquerade:顯示假裝的網絡連線。-n--numeric:直接使用 IP 地址,而不經過域名服務器。-N--netlink--symbolic:顯示網絡硬件外圍設備的符號鏈接名稱。-o--timers:顯示計時器。-p--programs:顯示正在使用 Socket 的程序識別碼和程序名稱。-r--route:顯示 Routing Table。-s--statistice:顯示網絡工做信息統計表。-t--tcp:顯示 TCP 傳輸協議的連線情況。-u--udp:顯示 UDP 傳輸協議的連線情況。-v--verbose:顯示指令執行過程。-V--version:顯示版本信息。-w--raw:顯示 RAW 傳輸協議的連線情況。-x--unix:和指定「-A unix」參數相同。--ip--inet:和指定「-A inet」參數相同。 4.應用實例 netstat 主要用於 Linux 察看自身的網絡情況,如開啓的端口、在爲哪些用戶服務,以及服務的狀態等。此外,它還顯示系統路由表、網絡接口狀態等。能夠說,它是一個綜合性的網絡狀態的察看工具。在默認狀況下,netstat 只顯示已創建鏈接的端口。若是要顯示處於監聽狀態的全部端口,使用-a 參數便可:#netstat -a Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:32768 *:* LISTEN tcp 0 0 *:32769 *:* LISTEN tcp 0 0 *:nfs *:* LISTEN tcp 0 0 *:32770 *:* LISTEN tcp 0 0 *:868 *:* LISTEN tcp 0 0 *:617 *:* LISTEN tcp 0 0 *:mysql *:* LISTEN tcp 0 0 *:netbios-ssn *:* LISTEN tcp 0 0 *:sunrpc *:* LISTEN tcp 0 0 *:10000 *:* LISTEN tcp 0 0 *:http *:* LISTEN ...... 上面顯示出,這臺主機同時提供 HTTP、FTP、NFS、MySQL 等服務。 telnet 1.做用 telnet 表示開啓終端機階段做業,並登入遠端主機。telnet 是一個 Linux 命令,同時也是一個協議(遠程登錄協議)。 2.格式 telnet [-8acdEfFKLrx][-b][-e][-k][-l][-n][-S][-X][主機名稱 IP 地址<通訊端口>] 3.主要參數-8:容許使用 8 位字符資料,包括輸入與輸出。-a:嘗試自動登入遠端系統。-b:使用別名指定遠端主機名稱。-c:不讀取用戶專屬目錄裏的.telnetrc 文件。-d:啓動排錯模式。-e:設置脫離字符。-E:濾除脫離字符。-f:此參數的效果和指定「-F」參數相同。-F:使用 Kerberos V5 認證時,加上此參數可把本地主機的認證數據上傳到遠端主機。-k:使用 Kerberos 認證時,加上此參數讓遠端主機採用指定的領域名,而非該主機的域名。-K:不自動登入遠端主機。-l:指定要登入遠端主機的用戶名稱。-L:容許輸出 8 位字符資料。-n:指定文件記錄相關信息。-r:使用相似 rlogin 指令的用戶界面。-S:服務類型,設置 telnet 連線所需的 IP TOS 信息。-x:假設主機有支持數據加密的功能,就使用它。-X:關閉指定的認證形態。 4.應用說明 用戶使用 telnet 命令能夠進行遠程登陸,並在遠程計算機之間進行通訊。用戶經過網絡在遠程計算機上登陸,就像登陸到本地機上執行命令同樣。爲了經過 telnet 登陸到遠程計算機上,必須知道遠程機上的合法用戶名和口令。雖然有些系統確實爲遠程用戶提供登陸功能但出於對安全的考慮,要限制來賓的操做權限,所以,這種狀況下能使用的功能是不多的。 telnet 只爲普通終端提供終端仿真,而不支持 X-Window 等圖形環境。當容許遠程用戶登陸時,系統一般把這些用戶放在一個受限制的 Shell 中,以防系統被懷有惡意的或不當心的用戶破壞。用戶還能夠使用 telnet 從遠程站點登陸到本身的計算機上,檢查電子郵件、編輯文件和運行程序,就像在本地登陸同樣。 ftp 1.做用 ftp 命令進行遠程文件傳輸。FTP 是 ARPANet 的標準文件傳輸協議,該網絡就是現今Internet 的前身,因此 ftp 既是協議又是一個命令。 2.格式 ftp [-dignv][主機名稱 IP 地址] 3.主要參數-d:詳細顯示指令執行過程,便於排錯分析程序執行的情形。-i:關閉互動模式,不詢問任何問題。-g:關閉本地主機文件名稱支持特殊字符的擴充特性。-n:不使用自動登錄。-v:顯示指令執行過程。 4.應用說明 ftp 命令是標準的文件傳輸協議的用戶接口,是在 TCP/IP 網絡計算機之間傳輸文件簡單有效的方法,它容許用戶傳輸 ASCⅡ文件和二進制文件。爲了使用 ftp 來傳輸文件,用戶必須知道遠程計算機上的合法用戶名和口令。這個用戶名/口令的組合用來確認 ftp 會話,並用來肯定用戶對要傳輸的文件進行什麼樣的訪問。另外,用戶須要知道對其進行 ftp 會話的計算機名字的 IP 地址。 用戶能夠經過使用 ftp 客戶程序,鏈接到另外一臺計算機上;能夠在目錄中上下移動、列出目錄內容;能夠把文件從遠程計算機機拷貝到本地機上;還能夠把文件從本地機傳輸到遠程系統中。ftp 內部命令有 72 個,下面列出主要幾個內部命令:ls:列出遠程機的當前目錄。cd:在遠程機上改變工做目錄。lcd:在本地機上改變工做目錄。close:終止當前的 ftp 會話。hash:每次傳輸完數據緩衝區中的數據後就顯示一個#號。get(mget):從遠程機傳送指定文件到本地機。put(mput):從本地機傳送指定文件到遠程機。quit:斷開與遠程機的鏈接,並退出 ftp。 route 1.做用 route 表示手工產生、修改和查看路由表。 2.格式#route [-add][-net|-host] targetaddress [-netmask Nm][dev]If] #route [-delete][-net|-host] targetaddress [gw Gw] [-netmask Nm] [dev]If] 3.主要參數-add:增長路由。-delete:刪除路由。-net:路由到達的是一個網絡,而不是一臺主機。-host:路由到達的是一臺主機。-netmask Nm:指定路由的子網掩碼。gw:指定路由的網關。[dev]If:強迫路由鏈指定接口。 4.應用實例route 命令是用來查看和設置 Linux 系統的路由信息,以實現與其它網絡的通訊。要實現兩個不一樣的子網之間的通訊,須要一臺鏈接兩個網絡的路由器,或者同時位於兩個網絡的網關來實現。 在 Linux 系統中,設置路由一般是爲了解決如下問題:該 Linux 系統在一個局域網中,局域網中有一個網關,可以讓機器訪問 Internet,那麼就須要將這臺機器的 IP 地址設置爲Linux 機器的默認路由。使用下面命令能夠增長一個默認路由: route add 0.0.0.0 192.168.1.1 rlogin 1.做用 rlogin 用來進行遠程註冊。 2.格式 rlogin [ -8EKLdx ] [ -e char ] [-k realm ] [ - l username ] host 3.主要參數 -8:此選項始終容許 8 位輸入數據通道。該選項容許發送格式化的 ANSI 字符和其它的特殊代碼。若是不用這個選項,除非遠端的不是終止和啓動字符,不然就去掉奇偶校驗位。 -E:中止把任何字符看成轉義字符。當和-8 選項一塊兒使用時,它提供一個徹底的透明連接。 -K:關閉全部的 Kerberos 確認。只有與使用 Kerberos 確認協議的主機鏈接時才使用這個選項。 -L:容許 rlogin 會話在 litout 模式中運行。要了解更多信息,請查閱 tty 聯機幫助。 -d:打開與遠程主機進行通訊的 TCP sockets 的 socket 調試。要了解更多信息,請查閱setsockopt 的聯機幫助。 -e:爲 rlogin 會話設置轉義字符,默認的轉義字符是「~」。 -k:請求 rlogin 得到在指定區域內遠程主機的 Kerberos 許可,而不是得到由krb_realmofhost(3)肯定的遠程主機區域內的遠程主機的 Kerberos 許可。 -x:爲全部經過 rlogin 會話傳送的數據打開 DES 加密。這會影響響應時間和 CPU 利用率,可是能夠提升安全性。 4.使用說明 若是在網絡中的不一樣系統上都有帳號,或者能夠訪問別人在另外一個系統上的帳號,那麼要訪問別的系統中的帳號,首先就要註冊到系統中,接着經過網絡遠程註冊到帳號所在的系統中。rlogin 能夠遠程註冊到別的系統中,它的參數應是一個系統名。 rcp 1.做用 rcp 表明遠程文件拷貝,用於計算機之間文件拷貝,使用權限是全部用戶。 2.格式 rcp [-px] [-k realm] file1 file2 rcp [-px] [-r] [-k realm] file 3.主要參數 -r:遞歸地把源目錄中的全部內容拷貝到目的目錄中。要使用這個選項,目的必須是一個目錄。 -p:試圖保留源文件的修改時間和模式,忽略 umask。 -k:請求 rcp 得到在指定區域內的遠程主機的 Kerberos 許可,而不是得到由krb_relmofhost(3)肯定的遠程主機區域內的遠程主機的 Kerberos 許可。 -x:爲傳送的全部數據打開 DES 加密。 finger 1.做用 finger 用來查詢一臺主機上的登陸帳號的信息,一般會顯示用戶名、主目錄、停滯時間、登陸時間、登陸 Shell 等信息,使用權限爲全部用戶。 2.格式 finger [選項] [使用者] [用戶@主機] 3.主要參數 -s:顯示用戶註冊名、實際姓名、終端名稱、寫狀態、停滯時間、登陸時間等信息。 -l:除了用-s 選項顯示的信息外,還顯示用戶主目錄、登陸 Shell、郵件狀態等信息,以及用戶主目錄下的.plan、.project 和.forward 文件的內容。 -p:除了不顯示.plan 文件和.project 文件之外,與-l 選項相同。 4.應用實例 在計算機上使用 finger:[root@localhost root]# Finger Login Name Tty Idle Login Time Office Office Phone root root tty1 2 Dec 15 11 root root pts/0 1 Dec 15 11 root root *pts/1 Dec 15 11 5.應用說明 若是要查詢遠程機上的用戶信息,須要在用戶名後面接「@主機名」,採用[用戶名@主機名]的格式,不過要查詢的網絡主機須要運行 finger 守護進程的支持。 mail 1.做用 mail 做用是發送電子郵件,使用權限是全部用戶。此外,mail 仍是一個電子郵件程序。 2.格式mail [-s subject] [-c address] [-b address] mail -f [mailbox]mail [-u user] 3.主要參數-b address:表示輸出信息的匿名收信人地址清單。-c address:表示輸出信息的抄送()收信人地址清單。-f [mailbox]:從收件箱者指定郵箱讀取郵件。-s subject:指定輸出信息的主體行。[-u user]:端口指定優化的收件箱讀取郵件。 nslookup 1.做用 nslookup 命令的功能是查詢一臺機器的 IP 地址和其對應的域名。使用權限全部用戶。它一般須要一臺域名服務器來提供域名服務。若是用戶已經設置好域名服務器,就能夠用這個命令查看不一樣主機的 IP 地址對應的域名。 2.格式 nslookup [IP 地址/域名] 3.應用實例 (1)在本地計算機上使用 nslookup 命令$ nslookup Default Server: name.cao.com.cn Address: 192.168.1.9 > 在符號「>」後面輸入要查詢的 IP 地址域名,並回車便可。若是要退出該命令,輸入「exit」,並回車便可。 (2)使用 nslookup 命令測試 named 輸入下面命令: nslookup 而後就進入交換式 nslookup 環境。若是 named 正常啓動,則 nslookup 會顯示當前 DNS服務器的地址和域名,不然表示 named 沒能正常啓動。 下面簡單介紹一些基本的 DNS 診斷。 ◆ 檢查正向 DNS 解析,在 nslookup 提示符下輸入帶域名的主機名,如 hp712.my.com,nslookup應能顯示該主機名對應的IP地址。若是隻輸入hp712,nslookup會根據/etc/resolv.conf的定義,自動添加 my.com 域名,並回答對應的 IP 地址。 ◆檢查反向 DNS 解析,在 nslookup 提示符下輸入某個 IP 地址,如 192.22.33.20,nslookup應能回答該 IP 地址所對應的主機名。 ◆檢查 MX 郵件地址記錄在 nslookup 提示符下輸入: set q=mx 而後輸入某個域名,輸入 my.com 和 mail.my.com,nslookup 應可以回答對應的郵件服務器地址,即 support.my.com 和 support2.my.com。 動手練習 1.危險的網絡命令 互聯網的發展使安全成爲一個不能忽視的問題,finger、ftp、rcp 和 telnet 在本質上都是不安全的,由於它們在網絡上用明文傳送口令和數據,嗅探器能夠很是容易地截獲這些口令和數據。並且,這些服務程序的安全驗證方式也是有弱點的,很容易受到「中間服務器」方式的攻擊。這裏筆者把一些不安全的命令根據危險等級列出,見表 3 所示。 如今 ftp、telnet 能夠被 SSH 命令代替綁定在端口 22 上,其鏈接採用協商方式,使用RSA 加密。身份鑑別完成以後,後面的全部流量都使用 IDEA 進行加密。SSH(Secure Shell)程序能夠經過網絡登陸到遠程主機,並執行命令。rcp、rlogin 等遠程調用命令也逐漸被 VNC軟件代替。 2.在一張網卡上綁定多個 IP 地址 在 Linux 下,能夠使用 ifconfig 方便地綁定多個 IP 地址到一張網卡。例如,eth0 接口的原有 IP 地址爲 192.168.0 .254,能夠執行下面命令:ifconfig eth0:0 192.168.0.253 netmask 255.255.255.0 ifconfig eth0:1 192.168.0.252 netmask 255.255.255.0 ...... 3.修改網卡 MAC 地址 首先必須關閉網卡設備,命令以下: /sbin/ifconfig eth0 down 修改 MAC 地址,命令以下: /sbin/ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE 從新啓用網卡: /sbin/ifconfig eht0 up 這樣網卡的 MAC 地址就更改完成了。每張網卡的 MAC 地址是唯一,但不是不能修改的,只要保證在網絡中的 MAC 地址的唯一性就能夠了。 4.初步部署 IPv6 IPv4 技術在網絡發展中起到了巨大的做用,不過隨着時間的流逝它不管在網絡地址的提供、服務質量、安全性等方面都愈來愈力不從心,IPv6 呼之欲出。Linux 是全部操做系統中最早支持 IPv6 的,通常 Linux 基於 2.4 內核的 Linux 發行版本均可以直接使用 IPv6,不過主要發行版本沒有加載 IPv6 模塊,能夠使用命令手工加載,須要超級用戶的權限。 (1)加載 IPv6 模塊 使用命令檢測,其中 inet6 addr: fe80::5054:abff:fe34:5b09/64,就是 eth0 網卡的IPv6 地址。# modprobe IPv6 #ifconfig eth0 Link encap:Ethernet HWaddr 52:54:AB:34:5B:09 inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::5054:abff:fe34:5b09/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:21 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:1360 (1.3 Kb) Interrupt:5 Base address:0xec00 (2)使用 ping 命令檢測網卡的 IPv6 地址是否有效 #ping6 -I eth0 -c 2 fe80::200:e8ff:fea0:2586 和 IPv4 不同,使用 ping6 命令時必須指定一個網卡界面,不然系統不知道將數據包發送到哪一個網絡設備。I 表示 Interface、eth0 是第一個網卡,-c 表示迴路,2 表示 ping6 操做兩次。結果見圖 1 所示。圖 1 IPv6 網絡下的 ping6 命令 (3)使用 ip 命令在 IPv6 下爲 eth0 增長一個 IP 地址 #ip -6 addr add 3ffe:ffff:0:f101::1/64 dev eth0 使用 ifconfig 命令,查看網卡是否出現第二個 IPv6 地址。 Linux 網絡的主要優勢是可以實現資源和信息的共享,而且用戶能夠遠程訪問信息。Linux提供了一組強有力的網絡命令來爲用戶服務,這些工具可以幫助用戶進行網絡設定、檢查網絡情況、登陸到遠程計算機上、傳輸文件和執行遠程命令等。 上面介紹了 Linux 中比較重要的網絡命令,其實 Linux 還有許多命令須要學習。Linux 網絡操做命令的一個特色就是命令參數選項不少,並不要求所有記住,關鍵在於理解命令的主要用途和學會使用幫助信息。Linux 必學的 60 個命令(5)-網絡安全Linux 必學的 60 個命令:系統安全相關命令Linux 必學的系統安全命令 (1) 雖然 Linux 和 Windows NT/2000 系統同樣是一個多用戶的系統,可是它們之間有很多重要的差異。對於不少習慣了 Windows 系統的管理員來說,如何保證 Linux 操做系統安全、可靠將會面臨許多新的挑戰。本文將重點介紹 Linux 系統安全的命令。 passwd 1.做用 passwd 命令原來修改帳戶的登錄密碼,使用權限是全部用戶。 2.格式 passwd [選項] 帳戶名稱 3.主要參數 -l:鎖定已經命名的帳戶名稱,只有具有超級用戶權限的使用者方可以使用。 -u:解開帳戶鎖定狀態,只有具有超級用戶權限的使用者方可以使用。 -x, --maximum=DAYS:最大密碼使用時間(天),只有具有超級用戶權限的使用者方可使用。 -n, --minimum=DAYS:最小密碼使用時間(天),只有具有超級用戶權限的使用者方可使用。 -d:刪除使用者的密碼, 只有具有超級用戶權限的使用者方可以使用。 -S:檢查指定使用者的密碼認證種類, 只有具有超級用戶權限的使用者方可以使用。 4.應用實例$ passwd Changing password for user cao. Changing password for cao (current) UNIX password: New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. 從上面能夠看到,使用 passwd 命令須要輸入舊的密碼,而後再輸入兩次新密碼。 su 1.做用 su 的做用是變動爲其它使用者的身份,超級用戶除外,須要鍵入該使用者的密碼。 2.格式 su [選項]... [-] [USER [ARG]...] 3.主要參數 -f , --fast:沒必要讀啓動文件(如 csh.cshrc 等),僅用於 csh 或 tcsh 兩種 Shell。 -l , --login:加了這個參數以後,就好像是從新登錄爲該使用者同樣,大部分環境變量(例如 HOME、SHELL 和 USER 等)都是以該使用者(USER)爲主,而且工做目錄也會改變。若是沒有指定 USER,缺省狀況是 root。 -m, -p ,--preserve-environment:執行 su 時不改變環境變數。 -c command:變動帳號爲 USER 的使用者,並執行指令(command)後再變回原來使用者。 USER:欲變動的使用者帳號,ARG 傳入新的 Shell 參數。 4.應用實例 變動帳號爲超級用戶,並在執行 df 命令後還原使用者。 su -c df root umask 1.做用 umask 設置用戶文件和目錄的文件建立缺省屏蔽值,若將此命令放入 profile 文件,就可控制該用戶後續所建文件的存取許可。它告訴系統在建立文件時不給誰存取許可。使用權限是全部用戶。 2.格式 umask [-p] [-S] [mode] 3.參數 -S:肯定當前的 umask 設置。 -p:修改 umask 設置。 [mode]:修改數值。 4.說明 傳統 Unix 的 umask 值是 022,這樣就能夠防止同屬於該組的其它用戶及別的組的用戶修改該用戶的文件。既然每一個用戶都擁有並屬於一個本身的私有組,那麼這種「組保護模式」就不在須要了。嚴密的權限設定構成了 Linux 安全的基礎,在權限上犯錯誤是致命的。須要注意的是,umask 命令用來設置進程所建立的文件的讀寫權限,最保險的值是 0077,即關閉建立文件的進程之外的全部進程的讀寫權限,表示爲-rw-------。在~/.bash_profile 中,加上一行命令 umask 0077 能夠保證每次啓動 Shell 後, 進程的 umask 權限均可以被正確設定。 5.應用實例umask -S u=rwx,g=rx,o=rx umask -p 177 umask -S u=rw,g=,o= 上述 5 行命令,首先顯示當前狀態,而後把 umask 值改成 177,結果只有文件全部者具有讀寫文件的權限,其它用戶不能訪問該文件。這顯然是一種很是安全的設置。 chgrp 1.做用 chgrp 表示修改一個或多個文件或目錄所屬的組。使用權限是超級用戶。 2.格式 chgrp [選項]... 組 文件... 或 chgrp [選項]... --reference=參考文件 文件... 將每一個<文件>的所屬組設定爲<組>。 3.參數 -c, --changes :像 --verbose,但只在有更改時才顯示結果。 --dereference:會影響符號連接所指示的對象,而非符號連接自己。 -h, --no-dereference:會影響符號連接自己,而非符號連接所指示的目的地(當系統支持更改符號連接的全部者,此選項纔有效)。 -f, --silent, --quiet:去除大部分的錯誤信息。 --reference=參考文件:使用<參考文件>的所屬組,而非指定的<組>。 -R, --recursive:遞歸處理全部的文件及子目錄。 -v, --verbose:處理任何文件都會顯示信息。 4.應用說明 該命令改變指定指定文件所屬的用戶組。其中 group 能夠是用戶組 ID,也能夠是/etc/group文件中用戶組的組名。文件名是以空格分開的要改變屬組的文件列表,支持通配符。若是用戶不是該文件的屬主或超級用戶,則不能改變該文件的組。 5.應用實例 改變/opt/local /book/及其子目錄下的全部文件的屬組爲 book,命令以下: $ chgrp - R book /opt/local /book chmod 1.做用 chmod 命令是很是重要的,用於改變文件或目錄的訪問權限,用戶能夠用它控制文件或目錄的訪問權限,使用權限是超級用戶。 2.格式 chmod 命令有兩種用法。一種是包含字母和操做符表達式的字符設定法(相對權限設定);另外一種是包含數字的數字設定法(絕對權限設定)。 (1)字符設定法 chmod [who] [+ | - | =] [mode] 文件名 ◆操做對象 who 能夠是下述字母中的任一個或它們的組合 u:表示用戶,即文件或目錄的全部者。 g:表示同組用戶,即與文件屬主有相同組 ID 的全部用戶。 o:表示其它用戶。 a:表示全部用戶,它是系統默認值。 ◆操做符號 +:添加某個權限。 -:取消某個權限。 =:賦予給定權限,並取消其它全部權限(若是有的話)。 ◆設置 mode 的權限可用下述字母的任意組合 r:可讀。 w:可寫。 x:可執行。 X:只有目標文件對某些用戶是可執行的或該目標文件是目錄時才追加 x 屬性。 s:文件執行時把進程的屬主或組 ID 置爲該文件的文件屬主。方式「u+s」設置文件的用戶 ID 位,「g+s」設置組 ID 位。 t:保存程序的文本到交換設備上。 u:與文件屬主擁有同樣的權限。 g:與和文件屬主同組的用戶擁有同樣的權限。 o:與其它用戶擁有同樣的權限。 文件名:以空格分開的要改變權限的文件列表,支持通配符。 一個命令行中能夠給出多個權限方式,其間用逗號隔開。 (2) 數字設定法 數字設定法的通常形式爲: chmod [mode] 文件名 數字屬性的格式應爲 3 個 0 到 7 的八進制數,其順序是(u)(g)(o)文件名,以空格分開的要改變權限的文件列表,支持通配符。 數字表示的權限的含義以下:0001 爲全部者的執行權限;0002 爲全部者的寫權限;0004爲全部者的讀權限;0010 爲組的執行權限;0020 爲組的寫權限;0040 爲組的讀權限;0100爲其餘人的執行權限;0200 爲其餘人的寫權限;0400 爲其餘人的讀權限;1000 爲粘貼位置位;2000 表示假如這個文件是可執行文件,則爲組 ID 爲位置位,不然其中文件鎖定位置位;4000 表示假如這個文件是可執行文件,則爲用戶 ID 爲位置位。 3.實例 若是一個系統管理員寫了一個表格(tem)讓全部用戶填寫,那麼必須受權用戶對這個文件有讀寫權限,能夠使用命令:#chmod 666 tem 上面代碼中,這個 666 數字是如何計算出來的呢?0002 爲全部者的寫權限,0004 爲所有者的讀權限,0020 爲組的寫權限,0040 爲組的讀權限, 0200 爲其餘人的寫權限,0400爲其餘人的讀權限,這 6 個數字相加就是 666(注以上數字都是八進制數),結果見圖 1 所示。圖 1 用 chmod 數字方法設定文件權限 從圖 1 能夠看出,tem 文件的權限是-rw-rw-rw-,即用戶對這個文件有讀寫權限。 若是用字符權限設定使用下面命令: #chmod a =wx tem chown 1.做用 更改一個或多個文件或目錄的屬主和屬組。使用權限是超級用戶。 2.格式 chown [選項] 用戶或組 文件 3.主要參數 --dereference:受影響的是符號連接所指示的對象,而非符號連接自己。 -h, --no-dereference:會影響符號連接自己,而非符號連接所指示的目的地(當系統支持更改符號連接的全部者,此選項纔有效)。 --from=目前全部者:目前組只當每一個文件的全部者和組符合選項所指定的,纔會更改全部者和組。其中一個能夠省略,這已省略的屬性就不須要符合原有的屬性。 -f, --silent, --quiet:去除大部分的錯誤信息。 -R, --recursive:遞歸處理全部的文件及子目錄。 -v, --verbose:處理任何文件都會顯示信息。 4.說明 chown 將指定文件的擁有者改成指定的用戶或組,用戶能夠是用戶名或用戶 ID;組能夠是組名或組 ID;文件是以空格分開的要改變權限的文件列表,支持通配符。系統管理員經常使用 chown 命令,在將文件拷貝到另外一個用戶的目錄下之後,讓用戶擁有使用該文件的權限。 5.應用實例 1.把文件 shiyan.c 的全部者改成 wan $ chown wan shiyan.c 2.把目錄/hi 及其下的全部文件和子目錄的屬主改爲 wan,屬組改爲 users。 $ chown - R wan.users /hi chattr 1.做用 修改 ext2 和 ext3 文件系統屬性(attribute),使用權限超級用戶。 2.格式 chattr [-RV] [-+=AacDdijsSu] [-v version] 文件或目錄 3.主要參數 -R:遞歸處理全部的文件及子目錄。 -V:詳細顯示修改內容,並打印輸出。 -:失效屬性。 +:激活屬性。 = :指定屬性。 A:Atime,告訴系統不要修改對這個文件的最後訪問時間。 S:Sync,一旦應用程序對這個文件執行了寫操做,使系統馬上把修改的結果寫到磁盤。 a:Append Only,系統只容許在這個文件以後追加數據,不容許任何進程覆蓋或截斷這個文件。若是目錄具備這個屬性,系統將只容許在這個目錄下創建和修改文件,而不容許刪除任何文件。 i:Immutable,系統不容許對這個文件進行任何的修改。若是目錄具備這個屬性,那麼任何的進程只能修改目錄之下的文件,不容許創建和刪除文件。 D:檢查壓縮文件中的錯誤。 d:No dump,在進行文件系統備份時,dump 程序將忽略這個文件。 C:Compress,系統以透明的方式壓縮這個文件。從這個文件讀取時,返回的是解壓之後的數據;而向這個文件中寫入數據時,數據首先被壓縮以後才寫入磁盤。 s:Secure Delete,讓系統在刪除這個文件時,使用 0 填充文件所在的區域。 u:Undelete,當一個應用程序請求刪除這個文件,系統會保留其數據塊以便之後可以恢復刪除這個文件。 4.說明 chattr 命令的做用很大,其中一些功能是由 Linux 內核版原本支持的,若是 Linux 內核版本低於 2.2,那麼許多功能不能實現。一樣-D 檢查壓縮文件中的錯誤的功能,須要 2.5.19以上內核才能支持。另外,經過 chattr 命令修改屬性可以提升系統的安全性,可是它並不適合全部的目錄。chattr 命令不能保護/、/dev、/tmp、/var 目錄。 5.應用實例 1.恢復/root 目錄,即子目錄的全部文件 # chattr -R +u/root 2.用 chattr 命令防止系統中某個關鍵文件被修改 在 Linux 下,有些配置文件(passwd ,fatab)是不容許任何人修改的,爲了防止被誤刪除或修改,能夠設定該文件的「不可修改位(immutable)」,命令以下: # chattr +i /etc/fstab sudo 1.做用 sudo 是一種以限制配置文件中的命令爲基礎,在有限時間內給用戶使用,而且記錄到日誌中的命令,權限是全部用戶。 2.格式sudo [-bhHpV] [-s <shell>] [-u <用戶>] [指令] sudo [-klv] 3.主要參數-b:在後臺執行命令。-h:顯示幫助。-H:將 HOME 環境變量設爲新身份的 HOME 環境變量。-k:結束密碼的有效期,即下次將須要輸入密碼。-l:列出當前用戶能夠使用的命令。-p:改變詢問密碼的提示符號。-s <shell>:執行指定的 Shell。-u <用戶>:以指定的用戶爲新身份,不使用時默認爲 root。-v:延長密碼有效期 5 分鐘。 4.說明 sudo 命令的配置在/etc/sudoers 文件中。當用戶使用 sudo 時,須要輸入口令以驗證使用者身份。隨後的一段時間內能夠使用定義好的命令,當使用配置文件中沒有的命令時,將會有報警的記錄。sudo 是系統管理員用來容許某些用戶以 root 身份運行部分/所有系統命令的程序。一個明顯的用途是加強了站點的安全性,若是須要天天以超級用戶的身份作一些平常工做,常常執行一些固定的幾個只有超級用戶身份才能執行的命令,那麼用 sudo 是很是適合的。 ps 1.做用 ps 顯示瞬間進程 (process) 的動態,使用權限是全部使用者。 2.格式 ps [options] [--help] 3.主要參數 ps 的參數很是多, 此出僅列出幾個經常使用的參數。-A:列出全部的進程。-l:顯示長列表。-m:顯示內存信息。-w:顯示加寬能夠顯示較多的信息。-e:顯示全部進程。a:顯示終端上的全部進程,包括其它用戶的進程。-au:顯示較詳細的信息。-aux:顯示全部包含其它使用者的進程。 4.說明 要對進程進行監測和控制,首先要了解當前進程的狀況,也就是須要查看當前進程。ps命令就是最基本、也是很是強大的進程查看命令。使用該命令能夠肯定有哪些進程正在運行、運行的狀態、進程是否結束、進程有沒有殭屍、哪些進程佔用了過多的資源等。圖 2 給出了ps-aux 命令詳解。大部分信息均可以經過執行該命令獲得。最經常使用的三個參數是 u、a、x。下面就結合這三個參數詳細說明 ps 命令的做用:ps aux 圖 2 ps-aux 命令詳解 圖 2 第 2 行代碼中,USER 表示進程擁有者;PID 表示進程標示符;%CPU 表示佔用的CPU 使用率;%MEM 佔用的物理內存使用率;VSZ 表示佔用的虛擬內存大小;RSS 爲進程佔用的物理內存值;TTY 爲終端的次要裝置號碼。 STAT 表示進程的狀態,其中 D 爲不可中斷的靜止(I/O 動做);R 正在執行中;S 靜止狀態;T 暫停執行;Z 不存在,但暫時沒法消除;W 沒有足夠的內存分頁可分配;高優先序的進程;N 低優先序的進程;L 有內存分頁分配並鎖在內存體內 (實時系統或 I/O)。START爲進程開始時間。TIME 爲執行的時間。COMMAND 是所執行的指令。 4.應用實例 在進行系統維護時,常常會出現內存使用量驚人,而又不知道是哪個進程佔用了大量進程的狀況。除了能夠使用 top 命令查看內存使用狀況以外,還能夠使用下面的命令: ps aux | sort +5n who 1.做用 who 顯示系統中有哪些用戶登錄系統,顯示的資料包含了使用者 ID、使用的登錄終端、上線時間、呆滯時間、CPU 佔用,以及作了些什麼。 使用權限爲全部用戶。 2.格式 who - [husfV] [user] 3.主要參數-h:不要顯示標題列。-u:不要顯示使用者的動做/工做。-s:使用簡短的格式來顯示。-f:不要顯示使用者的上線位置。-V:顯示程序版本。 4.說明 該命令主要用於查看當前在線上的用戶狀況。若是用戶想和其它用戶創建即時通訊,比如使用 talk 命令,那麼首先要肯定的就是該用戶確實在線上,否則 talk 進程就沒法創建起來。又如,系統管理員但願監視每一個登陸的用戶此時此刻的所做所爲,也要使用 who 命令。who命令應用起來很是簡單,能夠比較準確地掌握用戶的狀況,因此使用很是普遍。 動手練習 1.使用 Linux 命令檢測系統入侵者 安裝過 Mandrake Linux 和 Red Hat Linux 的用戶都會知道,Linux 系統會內置三種不一樣級別(標準、高、更高)的防火牆,當進行了 Linux 服務器的安裝和一些基本的設置後,服務器應該說是比較安全的,可是也會有黑客經過各類方法利用系統管理員的疏忽侵入系統。如何快速查找黑客很是重要。通常來講,能夠使用命令查詢黑客是否入侵,見表 1。表 1 查詢黑客入侵現象的命令對應表 舉例說明,若是黑客嗅探網絡,那麼它必須使網卡接口處於混雜模式,使用下面命令進行查詢:#ifconfig -a eth0 Link encap:Ethernet HWaddr 00:00:E8:A0:25:86 inet addr:192.168.1.7 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING PROMISCUOUS MTU:1500 Metric:1 ...... 從這個命令的輸出中,能夠看到上面講到的這些概念。第一行的 00:00:E8:A0:25:86 是mac 地址,第二行的 192.168.1.7 是 IP 地址,第四行講的是接收數據狀態,這時正在被黑客嗅探。通常而言,網卡有幾種接收數據幀的狀態,如 Broadcast、Multicast、 Promiscuous 等。Broadcast 是指接收全部類型爲廣播報文的數據幀;Multicast 是指接收特定的組播報文;Promiscuous 則是一般說的混雜模式,是指對報文中的目的硬件地址不加任何檢查、所有接收的工做模式。 2.限制 su 命令的濫用 咱們知道,超級用戶在 Linux 中有最大的權利,幾乎全部黑客都想獲得這個目標。Linux能夠增長對切換到超級用戶的限制。使用 PAM (Pluggable Authentication Modules)能夠禁止除在 wheel 組之外的任何人 su 成 root,修改/etc/pam.d/su 文件,除去屏蔽標識#。使用/usr/sbin/usermod G10 bjecadm 將 bjecadm 這個帳號加入 gid 爲 10 的組,就是 wheel 組。命令以下:/etc/pam.d/su # 使用密碼驗證#auth sufficient /lib/security/pam_wheel.so debug # 限制只有 wheel 組用戶才能夠切換到 root#auth required /lib/security/pam_wheel.so use_uid chmod -G10 bjecadm 另外,每當用戶試圖使用 su 命令進入系統用戶時,命令將在/usr/adm/sulog 文件中寫一條信息,若該文件記錄了大量試圖用 su 進入 root 的無效操做信息,則代表了可能有人企圖破譯root 口令。 Linux 命令有着強大的功能。對於 Linux 系統管理員來講,每每只須要經過各類安全命令技巧,組合構成安全防線。從計算機安全的角度看,世界上沒有絕對安全的計算機系統,Linux 系統也不例外。Linux 必學的 60 個命令(6)-其餘Linux 必學的 60 個命令:其它Linux 必學的重要命令 (1) 在前面幾講中,咱們把 Linux 命令按照在系統中的做用分紅幾個部分分別予以介紹。但是,還有一些命令很差劃分,然而學習它們一樣是比較重要的。 tar 1.做用 tar 命令是 Unix/Linux 系統中備份文件的可靠方法,幾乎能夠工做於任何環境中,它的使用權限是全部用戶。 2.格式 tar [主選項+輔選項] 文件或目錄 3.主要參數 使用該命令時,主選項是必需要有的,它告訴 tar 要作什麼事情,輔選項是輔助使用的,能夠選用。 主選項: -c 建立新的檔案文件。若是用戶想備份一個目錄或是一些文件,就要選擇這個選項。 -r 把要存檔的文件追加到檔案文件的未尾。例如用戶已經作好備份文件,又發現還有一個目錄或是一些文件忘記備份了,這時能夠使用該選項,將忘記的目錄或文件追加到備份文件中。 -t 列出檔案文件的內容,查看已經備份了哪些文件。 -u 更新文件。就是說,用新增的文件取代原備份文件,若是在備份文件中找不到要更新的文件,則把它追加到備份文件的最後。 -x 從檔案文件中釋放文件。輔助選項: -b 該選項是爲磁帶機設定的,其後跟一數字,用來講明區塊的大小,系統預設值爲 20(20×512 bytes)。 -f 使用檔案文件或設備,這個選項一般是必選的。 -k 保存已經存在的文件。例如把某個文件還原,在還原的過程當中遇到相同的文件,不會進行覆蓋。 -m 在還原文件時,把全部文件的修改時間設定爲如今。 -M 建立多卷的檔案文件,以便在幾個磁盤中存放。 -v 詳細報告 tar 處理的文件信息。如無此選項,tar 不報告文件信息。 -w 每一步都要求確認。 -z 用 gzip 來壓縮/解壓縮文件,加上該選項後能夠將檔案文件進行壓縮,但還原時也一定要使用該選項進行解壓縮。 4.應用說明 tar 是 Tape Archive(磁帶歸檔)的縮寫,最初設計用於將文件打包到磁帶上。若是下載過 Linux 的源代碼,或許已經碰到過 tar 文件。tar 是一個基於文件的命令,它本質上是連續地、首尾相連地堆放文件。使用 tar 能夠打包整個目錄樹,這使得它特別適合用於備份。歸檔文件能夠所有還原,或者從中展開單獨的文件和目錄。備份能夠保存到基於文件的設備或磁帶設備上。文件能夠在還原時重定向,以便將它們從新放到一個與最初保存它們的目錄(或系統)不一樣的目錄(或系統)。tar 與文件系統無關,能夠使用在 ext二、ext三、JFS、Reiser 和其它文件系統上。它支持各類備份介質,包括軟盤、光盤寫入器、可重寫的光盤、JazZip、磁帶、高端磁帶等。Linux 中以.tar 結尾的文件都是用 tar 建立的。它的使用超出了單純的備份,可用來把許多不一樣文件放到一塊兒組成一個易於分開的文件。若是使用 Linux 源代碼安裝程序,必定使用過 tar 文件。這是一個基於文件的命令,它本質上是連續地、首尾相連地堆放文件。 tar 官方網址是 http://www.gnu. org/software/tar/tar.html。 請注意,不要忘了 Linux 是區分大小寫的。例如,tar 命令應該老是以小寫的形式執行。命令行開關能夠是大寫、小寫或大小寫的混合。例如,-t 和-T 執行不一樣的功能。文件或目錄名稱能夠混合使用大小寫,並且就像命令和命令行開關同樣是區分大小寫的。 5.應用實例 tar 是一個命令行的工具,沒有圖形界面。使用 Konsole 打開一個終端窗口,接下來是一個簡單的備份命令(在/temp 目錄中建立一個 back.tar 的文件,/usr 目錄中全部內容都包含在其中。): $tar cvf - /usr > /temp/back.tar 另外,tar 命令支持前面第三講中講過的 crontab 命令,能夠用 crontab 工具設置成基於時間的有規律地運行。例如,每晚 6 點把/usr 目錄備份到 hda—第一個 IDE 接口的主驅動器(老是位於第一個硬盤)中,只要將下面語句添加到 root 的 crontab 中便可: $00 06 * * * tar cvf /dev/hda1/usrfiles.tar - /usr 通常狀況下,如下這些目錄是須要備份的: ◆/etc 包含全部核心配置文件,其中包括網絡配置、系統名稱、防火牆規則、用戶、組,以及其它全局系統項。 ◆ /var 包含系統守護進程(服務)所使用的信息,包括 DNS 配置、DHCP 租期、郵件緩衝文件、HTTP 服務器文件、dB2 實例配置等。 ◆/home 包含全部默認用戶的主目錄,包括我的設置、已下載的文件和用戶不但願失去的其它信息。 ◆/root 根(root)用戶的主目錄。 ◆/opt 是安裝許多非系統文件的地方。IBM 軟件就安裝在這裏。OpenOffice、JDK 和其它軟件在默認狀況下也安裝在這裏。 有些目錄是能夠不備份的: ◆ /proc 應該永遠不要備份這個目錄。它不是一個真實的文件系統,而是運行內核和環境的虛擬化視圖,包括諸如/proc/kcore 這樣的文件,這個文件是整個運行內存的虛擬視圖。備份這些文件只是在浪費資源。 ◆/dev 包含硬件設備的文件表示。若是計劃還原到一個空白的系統,就能夠備份/dev 。然而,若是計劃還原到一個已安裝的 Linux 系統,那麼備份/dev 是沒有必要的。 unzip 1.做用 unzip 命令位於/usr/bin 目錄中,它們和 MS DOS 下的 pkzip、pkunzip 及 MS Windows 中的 Winzip 軟件功能同樣,將文件壓縮成.zip 文件,以節省硬盤空間,當須要的時候再將壓縮文件用 unzip 命令解開。該命令使用權限是全部用戶。 2.格式 unzip [-cflptuvz][-agCjLMnoqsVX][-P <密碼>][.zip 文件][文件][-d <目錄>][-x < 文件>] 3.主要參數 -c:將解壓縮的結果顯示到屏幕上,並對字符作適當的轉換。 -f:更新現有的文件。 -l:顯示壓縮文件內所包含的文件。 -p:與-c 參數相似,會將解壓縮的結果顯示到屏幕上,但不會執行任何的轉換。 -t:檢查壓縮文件是否正確。 -u:與-f 參數相似,可是除了更新現有的文件外,也會將壓縮文件中的其它文件解壓縮到目錄中。 -v:執行是時顯示詳細的信息。 -z:僅顯示壓縮文件的備註文字。 -a:對文本文件進行必要的字符轉換。 -b:不要對文本文件進行字符轉換。 -C:壓縮文件中的文件名稱區分大小寫。 -j:不處理壓縮文件中原有的目錄路徑。 -L:將壓縮文件中的所有文件名改成小寫。 -M:將輸出結果送到 more 程序處理。 -n:解壓縮時不要覆蓋原有的文件。 -o:沒必要先詢問用戶,unzip 執行後覆蓋原有文件。 -P<密碼>:使用 zip 的密碼選項。 -q:執行時不顯示任何信息。 -s:將文件名中的空白字符轉換爲底線字符。 -V:保留 VMS 的文件版本信息。 -X:解壓縮時同時回存文件原來的 UID/GID。 [.zip 文件]:指定.zip 壓縮文件。 [文件]:指定要處理.zip 壓縮文件中的哪些文件。 -d<目錄>:指定文件解壓縮後所要存儲的目錄。 -x<文件>:指定不要處理.zip 壓縮文件中的哪些文件。 -Z unzip:-Z 等於執行 zipinfo 指令。在 Linux 中,還提供了一個叫 zipinfo 的工具,能夠察看 zip 壓縮文件的詳細信息。unzip 最新版本是 5.50。 gunzip 1.做用 gunzip 命令做用是解壓文件,使用權限是全部用戶。 2.格式 gunzip [-acfhlLnNqrtvV][-s <壓縮字尾字符串>][文件...] 或者 gunzip [-acfhlLnNqrtvV][-s <壓縮字尾字符串>][目錄] 3.主要參數 -a 或--ascii:使用 ASCII 文字模式。 -c 或--stdout 或--to-stdout:把解壓後的文件輸出到標準輸出設備。 -f 或-force:強行解開壓縮文件,不理會文件名稱或硬鏈接是否存在,以及該文件是否爲符號鏈接。 -h 或--help:在線幫助。 -l 或--list:列出壓縮文件的相關信息。 -L 或--license:顯示版本與版權信息。 -n 或--no-name:解壓縮時,若壓縮文件內含有原來的文件名稱及時間戳記,則將其忽略不予處理。 -N 或--name:解壓縮時,若壓縮文件內含有原來的文件名稱及時間戳記,則將其回存到解開的文件上。 -q 或--quiet:不顯示警告信息。 -r 或--recursive:遞歸處理,將指定目錄下的全部文件及子目錄一併處理。 -S<壓縮字尾字符串>或--suffix<壓縮字尾字符串>:更改壓縮字尾字符串。 -t 或--test:測試壓縮文件是否正確無誤。 -v 或--verbose:顯示指令執行過程。 -V 或--version:顯示版本信息。 4.說明 gunzip 是個使用普遍的解壓縮程序,它用於解開被 gzip 壓縮過的文件,這些壓縮文件預設最後的擴展名爲「.gz」。事實上,gunzip 就是 gzip 的硬鏈接,所以不管是壓縮或解壓縮,均可經過 gzip 指令單獨完成。gunzip 最新版本是 1.3.3 。 unarj 1.做用 unarj 解壓縮格式爲.arj 格式的文件,使用權限是全部用戶。 2.格式 unarj [eltx][.arj 壓縮文件] 3.主要參數 e:解壓縮.arj 文件。 l:顯示壓縮文件內所包含的文件。 t:檢查壓縮文件是否正確。 x:解壓縮時保留原有的路徑。 4.說明 帶有.arj 擴展名的文件是由用於 MS DOS 和 Windows 的 ARJ 實用程序建立的。由於 ARJ是一種不能免費得到源代碼的共享件程序,因此在 Linux 平臺上幾乎不存在與其功能匹配的工具,要解壓縮.arj 文件,就要使用 unarj 實用程序。unarj 比 ARJ 慢,能力也不如 ARJ,但至少能夠順利地抽取大多數.arj 文件。unarj 只能將文件抽取到當前的工做目錄、列出檔案內容,或者測試檔案。從 ARJ Software 的站點或攜帶所需 Linux 發行版的 FTP 服務器上能夠下載unarj 源碼。另外,unarj 一般是基本 Linux 發行版的一部分,所以能夠在主要發行版本的CD-ROM 上找到它。若是須要可到全部 Linux 發行版連接的列表下載,ARJ 軟件網址爲http://www.arjsoft.com,ARJ 的下載頁面爲 http://www.arjsoft.com/files.htm。unarj 最新版本是2.65,注意 unarj 選項不是以減號(-)開頭的。 mtools 1.做用 mtools 其實是一個命令集合,是 DOS 文件系統的工具程序,它能夠模擬許多 DOS 命令,使用起來很是方便。使用權限是全部用戶。Linux 系統提供了一組稱爲 mtools 的可移植工具,可讓用戶輕鬆地從標準的 DOS 軟盤上讀、寫文件和目錄。它們對 DOS 和 Linux環境之間交換文件很是有用。mtools 的使用很是簡單,若是想把軟盤裏全部的文件都拷貝到硬盤上,那麼就能夠執行如下命令: mcopy a:*.* 也就是說,只須要在相應的 DOS 命令以前加上一個字母「m」,就能夠完成對應的功能了。通常 Linux 發行版本中都有這個軟件,能夠使用下面命令檢查一下。 rpm -qa|grep mtools 若是沒有安裝,也沒有關係,能夠從網上下載(http://mtools.linux.lu/)一個最新版原本安裝。目前可供下載的最新 mtools 版本是 3.9.9 ,下載連接爲http://mtools.linux.lu/mtools-3.9.9-3.i386.rpm。下載後安裝一下便可。 2.包括的命令 mcd 目錄名:改變 MS DOS 下的目錄。 mcopy 源文件 目標文件:在 MS DOS 和 Unix 之間複製文件。 mdel 文件名:刪除 MS DOS 下的文件。 mdir 目錄名:顯示 MS DOS 下的目錄。 mformat 驅動器號:在低級格式化的軟盤上建立 MS DOS 文件系統。 rnlabel 驅動器號:產生 MS DOS 下的卷標。 mmd 目錄名:創建 MS DOS 下的目錄。 mrd 目錄名:刪除 MS DOS 下的目錄。 mren 源文件 目標文件:從新命名已存在的 MS DOS 文件。 mtype 文件名:顯示 MS DOS 文件的內容。 請注意,這些命令和對應的 MS DOS 命令很是類似。在 mtools 命令中,「/」和「\」是可以混用的。由於文件列表的是 DOS 系統下的文檔,對大小寫並不敏感,因此「CDE」和「cde」在這裏是同樣的。 3.應用實例 (1)若是把軟盤進行快速格式化,能夠使用命令 mformat: mformat A: mtools 當初發展的目的是用來處理 DOS 文件系統的,因此只能用在 FAT 文件格式的分區上。須要注意的是,若是用 mount 命令來掛載了 FAT16/32 分區,那麼就不能使用 mtools的指令來處理這些分區上的文件。這是由於一旦 FAT16/32 分區掛到了 Linux 文件目錄下,Linux 就會將其視爲文件系統自己的一部分,這時若是要對其操做就必須使用 Linux 自己所附帶的指令集。 (2)將 DOS 盤上的文件 htca.c 複製到當前目錄下,並用 ls 命令進行驗證。$ mcopy a:\htca.c $ ls -l htca.c -rw-r- -r- - 1 xxq xxq 27136 Jan 1 01:80 htca.c man 1.做用man 命令用來提供在線幫助,使用權限是全部用戶。在 Linux 系統中存儲着一部聯機使用的手冊,以供用戶在終端上查找。使用 man 命令能夠調閱其中的幫助信息,很是方便和實用。 2.格式 man 命令名稱 man [-acdfhkKtwW] [-m system] [-p string] [-C config_file] [-M path] [-P pager] [-S section_list] [section] name ... 3.參數 -C config_file:指定設定文件 man.conf,缺省值是/etc/man.conf。 -M path:指定了聯機手冊的搜尋路徑, 若是沒有指定則使用環境變數 MANPATH 的設定;若是沒有使用 MANPATH,則會使用/usr/lib/man.conf 內的設定;若是 MANPATH 是空字串,則表示使用缺省值。 -P pager:指定使用何種 pager.man 會優先使用此選項設定,而後是依環境變數MANPAGER 設定,而後是環境變數 PAGER;man 缺省使用/usr/bin/less -is。 -S section_list man:所搜尋的章節列表(以冒號分隔),此選項會覆蓋環境變數MANSECT 的設定。 -a man:缺省狀況是在顯示第一個找到的手冊以後,就會中止搜尋,使用此選項會強迫man 繼續顯示全部符合 name 的聯機手冊。 -c:即便有最新的 cat page,也繼續對聯機手冊從新做排版,本選項在屏幕的行列數改變時或已排版的聯機手冊損壞時特別有意義。 -d:不要真的顯示聯機手冊,只顯示除錯訊息。 -D:同時顯示聯機手冊與除錯訊息。 -h:顯示求助訊息而後結束程式 。 -K:對全部的聯機手冊搜尋所指定的字串。請注意,本功能迴應速度可能很慢,若是指定 section(區域)會對速度有幫助。 -m system:依所指定的 system 名稱而指定另外一組的聯機手冊。 man:是 manual(手冊)的縮寫。在輸入命令有困難時,能夠馬上獲得這個文檔。例如,若是使用 ps 命令時遇到困難,能夠輸入 man ps 獲得幫助信息,此時會顯示出 ps 的手冊頁(man page)。 因爲手冊頁 man page 是用 less 程序來看的(能夠方便地使屏幕上翻和下翻), 因此在 man page 裏能夠使用 less 的全部選項。 less 中比較重要的功能鍵有: [q] 退出; [Enter] 一行行地下翻; [Space] 一頁頁地下翻; [b] 上翻一頁; [/] 後跟一個字符串和[Enter]來查找字符串; [n] 發現上一次查找的下一個匹配。 4.閱讀手冊頁 手冊頁在不多的空間裏提供了不少的信息,這裏簡單介紹一下大多數手冊頁中都有的部份內容。Linux 手冊頁主要有九個部分:用戶指令、系統調用、程序庫、設備說明、文件格式、遊戲、雜項、系統指令、內核,手冊頁快照見圖 1 所示。圖 1 ps 命令手冊頁快照 Linux 手冊頁佈局見表 1。 5.應用實例 Linux 命令中有一些基礎的、重要的命令,例如 ps、find、cat 和 ls 等。下面來舉一個綜合應用的例子,由此能夠看出 man 的地位在 Linux 中可謂相當重要。可是,man 所顯示的信息卻不是普通的文本,若是直接將這些文字重定向到一個文本文件,就會發如今 man 中高亮顯示的文字就變成了兩個,並且有不可勝數的製表符,使打印、編輯都變得很是不便。不過,使用下面這樣一條語句就能獲得 ps 命令打印。 # man ps | col -b | lpr 這條命令同時運用了輸出重定向和管道兩種技巧,做用是將 ps 命令的幫助信息能夠直接打印出來。更多的 Man 文件能夠查看 Linux Man Pages 簡體中文版主頁,其連接爲http://cmpp.linuxforum.net/ 。 unencode 1.做用 unencode 命令能夠把一個二進制文件表編碼爲一個文本文件,使用權限是全部用戶。 2.格式 uuencode [-hv] [源文件] 目標文件 3.主要參數 -h:列出指令使用格式(help) 。 -v:列出版本信息。 4.應用說明 uuencode 指令能夠將二進制文件轉化成可以使用電子郵件發送的 ASCII 編碼形式。uuencode 編碼後的資料都以 begin 開始,以 end 做爲結束,且一般其中的每一行的開始均爲「M」,中間部分是編碼過的文件,編碼後的文件比源文件要大一些。 uudecode 1.做用 uudecode 命令用來將 uuencode 編碼後的檔案還原,uudecode 只會將 begin 與 end 標記之間的編碼資料還原,程序會跳過標記之外的資料。它的使用權限爲全部用戶。 2.格式 uuencode [-hv] [file1 ...] 3.主要參數 -h:列出指令使用格式(help)。 -v:列出版本信息。 4.應用實例 使用下面命令一次還原幾個文件: uuencode file1.uud file2.uud file3.uud 動手練習 1.在 Linux 命令行下發送郵件 雖然 Linux 桌面應用發展很快,可是命令行(Shell)在 Linux 中依然有很強的生命力。若是能確認電子郵件服務器支持 8bit 的字節,就能夠直接使用下面命令: cat <附件文件名> | mail <郵件地址> cat(cat 是 concatenate 的縮寫)命令是將幾個文件處理成一個文件,並將這種處理的結果保存到一個單獨的輸出文件,這裏咱們用它來合併郵件的文本。 寫好郵件名稱,好比叫 cjkmail,而後使用下面命令: $uuencode <附件文件名> <附件文件名> >>cjkmail 這樣就能夠用 vi 編輯器寫 cjkmail 文件,並在前面寫上信的正文,而後寄出。 對方收到信後,把信中屬於 cjkmail 中的內容拷貝出來,存爲 themail.uue。若是對方是在Windows 下,就能夠用 WinRAR 或 WinZip 解壓,這樣就能夠看到附件。 若是對方也使用 Linux,能夠用 undecode 命令還原: $ uudencode -o<附件文件名> themail.uue 2.實現 tar 的分卷 筆者想把一個 378MB 的文件壓縮成多個 63MB 的文件(筆者的 USB 爲 64MB),使用下面命令: $tar czvf - dir | split -d -b 63m 而後合併命令: $cat x* > dir.tgz 以上例子實際是由三個命令組合完成的,即用 tar 打包,用 split 分割,用 cat 合併。「tar czvf - dir」的意思是把 dir 目錄打包,並輸出到標準輸出(argv),這樣就能夠直接用管道輸出給split. 3.連續執行一個命令 使用 watch 命令,能夠反覆執行命令。若是和 ls 配合,能夠達到觀察某文件大小變化的效果。 $watch ls -l file.name 4.用 tar 命令導出一個文件 有一個 tar 格式的 DVD 文件 GLvPro6.4_linux.tar,由於該文件很是大(4.7GB),若是全部解壓比較麻煩,能夠用下面命令先導出 readme.txt 看看。 tar xvf GLvPro6.4_linux.tar readme.txt 這樣 readme.txt 就單獨被導出了。 5.用 tar 打包一個目錄時只備份其中的幾個子目錄 tar cf --exclude home/cjh home/cao 這樣 home 目錄下只有 cjh 和 cao 兩個子目錄備份。 到此爲止,Linux 必學的 60 個命令已經所有介紹完了。Linux 的命令行方式功能強大,若是熟練掌握了 Linux 的經常使用命令,每每只須要經過各類技巧就能夠組合構成一條複雜的命令,從而完成用戶任務。Linux 系統中的命令實在是太多了,不可能像在 MS DOS 中把全部的命令及參數都記住。Linux 系統提供了一些方法,好比能夠經過「help」和「man」來查詢名令。