由於操作和使用環境的陌生,如果要完全熟悉Linux的應用我們首先要解決的問題就是對Linux常用命令的熟練掌握。本章我們就來介紹Linux的常用基本命令。
首先啓動Linux。啓動完畢後需要進行用戶的登錄,選擇登陸的用戶不同自然權限也不一樣,其中“系統管理員”擁有最高權限。
在啓動Linux後屏幕出現如下界面顯示:
……
Red Hat Linux release 9 (Shrike)
Kernel 2.4.20.8 on an i686
login:
輸入:root(管理員名)後,計算機顯示輸口令(password:),輸入你的口令即可。當計算機出現一個
“#”提示 符時,表明你登錄成功!
屏幕顯示Linux提示符: [root@localhost root]#_
這裏需要說明的是“Red Hat Linux release 9 (Shrike)”表示當前使用的操作系統的名稱及版本。
“2.4.20.8”表示Linux操作系統的核心版本編號。“i686”表示該臺電腦使用的CPU的等級。
下面我們來介紹常用基本命令
一,註銷,關機,重啓
註銷系統的logout命令
1,Logout 註銷是登陸的相對操作,登陸系統後,若要離開系統,用戶只要直接下達logout命令即可:
[root@localhost root]#logout
Red Hat Linuxrelease 9(Shike)
Kernel 2.4.20.8 on an i686
Login: ← 回到登陸的畫面
2,關機或重新啓動的shutdown命令
Shutdown命令可以關閉所有程序,依照用戶的需要,重新啓動或關機。
參數說明如下:
; 立即關機:-h 參數讓系統立即關機。範例如下:
[root@localhost root]#shutdown –h now ← 要求系統立即關機
; 指定關機時間:time參數可指定關機的時間;或設置多久時間後運行shutdown命令,範例如下:
[root@localhost root]#shutdown now ← 立刻關機
[root@localhost root]#shutdown +5 ← 5分鐘後關機
[root@localhost root]#shutdown 10:30 ← 在10:30時關機
; 關機後自動重啓:-r 參數設置關機後重新啓動。範例如下:
[root@localhost root]#shutdown -r now ← 立刻關閉系統並重啓
[root@localhost root]#shutdown -r 23:59 ← 指定在23:59時重啓動
3,重新啓動計算機的reboot命令
顧名思義,reboot命令是用來重新啓動系統的。常用的參數如下:
; -f 參數:不依正常的程序運行關機,直接關閉系統並重新啓動計算機。
; -I 參數:在在重新啓動之前關閉所有網絡接口。
雖然reboot命令有個參數可以使用,但是一般只需要單獨運行reboot命令就可以了
二,文件與目錄的操作
列出文件列表的ls命令
1,ls(list)命令是非常有用的命令,用來顯示當前目錄中的文件和子目錄列表。配合參數的使用
,能以不同的方式顯示目錄內容。範例如下:
; 顯示當前目錄的內容:
[tony@free tony]$ ls
Desktop mail myinstall.log test.txt ← 有兩個目錄及兩個文件夾
; 當運行ls命令時,並不會顯示名稱以“.”開頭的文件。因此可加上“-a”參數指定要列出這些文件。範例如下:
[tony@free tony]$ ls –a
; 以“-s”參數顯示每個文件所有的空間,並以“-S”參數指定按所有佔用空間的大小排序。範例如下:
[tony@free tony]$ ls –s –S
總計36
4 Desktop 4 mail 24 myinstall.log 4 test.txt
; 在ls命令後直接加上欲顯示的目錄路徑,就會列出該目錄的內容。範例如下:
[tony@free tony]$ ls –l/usr/games
2,切換目錄的cd命令
cd(change directory)命令可讓用戶切當前所在的目錄。範例如下:
[tony@free home]$ cd tony ← 切換到當前目錄下的tony子目錄
[tony@free tony]$ cd .. ← 切換到上一層目錄
[tony@free home]$ cd / ← 切換到系統根目錄
[tony@free /]$ cd ← 切換到用戶主目錄
[tony@free tony]$ cd /usr/bin ← 切換到/usr/bin目錄
3,創建目錄的mkdir命令
Mkdir(make directory)命令可用來創建子目錄。下面的範例會在所在目錄下創建tool子目錄。
[tony@free tony]$ mkdir tool
4,刪除目錄的rmdir命令
rmdir(remove directory)命令可用來刪除“空”的子目錄。範例如下:
[tony@free tony]$ rmdir tool ← 刪除tool目錄
5,複製文件的cp命令
cp(copy)命令可以將文件從一處複製到另一處。一般在使用cp命令將以個文件複製成另一個文件或複製到某個目錄時,需要指定原始文件名與目的文件名或目錄。範例如下:
[tony@free tony]$ cp data1.txt data2.txt ← 將data1.txt複製成data2.txt
[tony@free tony]$ cp data3.txt /tmp/data ← 將data3複製到/tmp/data目錄中
; 顯示覆制過程:加入-v參數可顯示命令執行過程。範例如下:
[tony@free tony]$ cp zip.txt zip2.txt ← 一般狀態下不會顯示覆制過程
[tony@free tony]$ cp –v zip.txt zip3.txt ← 以-v顯示覆制過程
zip.txt ->zip3.txt
; 遞迴複製:加入“-R”參數可同時複製目錄下的所有文件及子目錄。範例如下:
[tony@free tony]$ cp –v –R * backup ← 將所有文件(含子目錄文件)複製到backup目錄
6,刪除文件或目錄的rm命令
rm(remove)命令可以刪除文件或目錄。範例如下:
[tony@free tony]$ rm myfile ← 刪除指定的文件
[tony@free tony]$ rm * ← 刪除當前目錄中的所有文件
rm命令的常用參數如下:
; 強迫刪除:使用-f參數時,rm命令會直接刪除文件,不再詢問。範例如下:
[tony@free tony]$ rm –f *.txt ← 強迫刪除文件
; 遞迴刪除:-r 也是一個相當常用的參數,使用此參數可同時刪除指定目錄下的所有文件及子目錄。範例如下:
[tony@free tony]$ rm –r data ← 刪除data目錄(含data目錄下所有文件和子目錄)
[tony@free tony]$ rm –r * ← 刪除所有文件(含當前目錄所有文件,所有子目錄和子目錄下的文件)
; 強制刪除指定目錄:當使用-r參數刪除目錄時,若該目錄下有許多子目錄及文件,則系統會不間斷地詢問,以確認您的確要刪除目錄或文件。若已確定要刪除所存目錄及文件,則可以使用-rf參數,如此一來,系統將直接刪除該目錄中所有的文件及子目錄,不再詢問。範例如下:
[tony@free tony]$ rm –rf tmp 強制刪除tmp目錄及該目錄下所有文件及子目錄
; 顯示刪除過程:使用-v 參數。範例如下:
[tony@free tony]$ rm –v
7,讓顯示畫面暫停的more命令
爲了避免畫面顯示瞬間就閃過去,用戶可以使用more命令,讓畫面在顯示滿一頁時暫停,此時可按空格鍵繼續顯示下一個畫面,或按Q鍵停止顯示。
; 當使用ls命令查看文件列表時,若文件太多則可以配合more命令使用。範例如下:
[tony@free bin]$ ls –al
more
; 單獨使用more命令時,可用來顯示文字文件的內容。範例如下:
[tony@free tony]$ more data.txt
8,連接文件的cat命令
cat(concatenate) 命令可以顯示文件的內容(經常和more命令搭配使用),或是將數個文件合併成
一個文件。範例如下:
; 逐頁顯示 preface.txt的內容:
[tony@free tony]$ cat preface.txt
more
; 將preface.txt 附加到outline.txt文件之後:
[tony@free tony]$ cat preface.txt >> outline.txt
; 將new.txt和info.txt合併成readme.txt文件:
[tony@free tony]$ cat new.txt info.txt >readme.txt
9,移動或更換文件,目錄名稱的mv命令
mv (move)命令可以將文件及目錄移動到另一個目錄下面,或更換文件及目錄的名稱。範例如下:
[tony@free backup]$ mv a.txt .. ← 將a.txt文件移到上層目錄
[tony@free backup]$ mv z1.txt z3.txt ← 將 z1.txt改名成z3.txt
[tony@free backup]$ cd.. ← 切換到上一層目錄
[tony@free tony]$ mv backup.. ← backup 目錄上移一層
10,顯示當前所在目錄的pwd命令
pwd(print working directory)命令可顯示用戶當前所在的目錄。範例如下:
[tony@free tony]$ pwd
/home/tony ← 當前所在目錄爲“/home/tony”
11,查找文件的locate命令
locate 命令可用來搜索包含指定條件字符串的文件或目錄。範例如下:
[tony@free tony]$ locate zh_CN 列出所有包含“zh_CN”字符串的文件和目錄。
由於locate命令是從系統中保存文件及目錄名稱的數據庫中搜索文件,雖然系統會定時更新數據庫,但對於剛新增或刪除的文件、目錄,仍然可能會因爲數據庫尚未更新而無法查得,此時可用root身份運行
updatedb命令更新,爲此數據庫得內容正確。
12,搜索字符串得grep命令
grep 命令可以搜索特定字符串來並顯示出來,一般用來過濾先前得結果,避免顯示太多不必要得信息。範例如下:
[tony@free etc]$ grep text *.conf ← 搜索當前目錄中擴展名爲.conf且包含“text”字符串得文件。
grep:amd.conf: ← 拒絕不符權限得操作
grep:diskcheck.conf: ← 拒絕不符權限得操作
grep:grub.conf ← 拒絕不符權限得操作
; 若您是使用一般權限的用戶運行,上例的輸出結果會包含很多如“拒絕不符權限的操作之類的錯誤信息,可使用-s參數消除。
[tony@free etc]$ grep –s text *.conf
13,重導與管道
重導(redirect)可將某命令的結果輸出導文件中,它有兩中命令:“>”和“>>”。“>”可將結果輸出到文件中,該文件原有的內容會被刪除:“>>”則將結果附加到文件中,原文件內容不會被清除。範例如下:
[tony@free tony]$ ls –a>dir.txt ← 將ls –a命令執行結果輸出到dir.txt文件。
[tony@free tony]$ cat data1.txt >> data2.txt ← 將 data1.txt 內容附加到data2.txt文件之後。
通道(pipe)命令的符號是“ ”,可將某命令的結果輸出給另一命令,一下範例將ls命令的輸出結果傳給grep命令過濾:
[tony@free etc]$ ls
gerp conf ← 搜索並顯示ls命令運行結果中包含有“conf”字符串
在舉一個刪除文件或目錄的例子,可以利用yes命令重複輸出“y”字符的特性,將結果傳給rm命令,如此即可避免重複輸入“y”:
[tony@free tony]$ yes
rm –r mydir
三,使用光盤及軟盤
在Linux的文字模式下要使用光盤或軟盤,並不是只將光盤或軟盤放入即可,用戶需要運行加載的命令,纔可讀寫數據。所謂加載就是將存儲介質(如光盤和軟盤)指定成系統中的某個目錄(如/mnt/cdrom或mnt/floppy)。通過直接存取此加載目錄,即可讀寫存儲介質中的數據。以下就來看看文字模式下的加載及卸載命令。
1,加載的mount命令
要使用光盤時先把光盤放入光驅,然後執行加載的mount命令,將光盤加載至系統中:
[tony@free tony]# mount/dev/cdrom/mut/cdrom ← 加載光盤
同理,使用軟盤之前也需要和光盤一樣,必須先加載後才能使用:
[tony@free tony]# mount/dev/fd0/mut/floppy ← 加載軟盤
2,卸載的umount命令
如果不需要使用光盤或軟盤,則需先執行卸載命令之後,才能將光盤或軟盤退出。範例如下:
[tony@free tony]# umount / mnt/cdrom ← 光盤卸載
在不使用軟盤時執行umount 命令卸載軟盤,再將軟盤拿出
[tony@free tony]# umount / mnt/ ← 軟盤卸載
四,在後臺運行程序
用戶有時的程序有可能要花費很多時間,如果將它放在前臺運行,將導致無法繼續做其他事情,最好的方法就是將它放在後臺運行,甚至可能希望在用戶註銷系統後,程序還可以繼續運行。讓我們看看那如何實現這一目的。
1,在後臺運行程序的&、bg命令
將程序放到後臺運行的最簡單方法就是在命令最後加上“&”,範例如下:
[tony@free root]# updatedb & ← 在後臺執行 locate 數據庫更新命令
[tony@free root]# bg ← 將更新操作放到後臺運行
2,前臺運行的程序fg命令
如果用戶當前已有程序在後臺運行,可以輸入fg命令,將它從背景中移到前臺運行:
[tony@free root]# fg ← 放到前臺執行的命令會顯示出來
3,在退出後讓程序繼續運行的nohup命令
此命令可使用戶退出系統後,程序繼續運行。範例如下:
[tony@free rony]$ nohup myserver &
然後用戶就可以退出了,當再次登錄的時候,可以用ps –aux命令看到程序仍在後臺中運行。
五,任務調度命令
計算機有很多程序需要週期性的被運用,例如清理磁盤中不要的暫存盤、備份系統數據、檢查遠程服務器的郵件等。對於這些重複性的工作,其實不需要每次都辛苦地運行這些程序。可利用任務調度命令,指定系統定期在某個時間運行這些程序,輕輕鬆鬆完成想要執行的工作。
任務調度的crond常駐命令
crond 是Linux用來定期執行程序的命令。當安裝完成操作系統後,默認便會啓動此任務調動命令。crond命令每分鐘會定期檢查是否有要執行的工作,如果有要執行的工作,便會自動執行該工作。由於任務調度中間的操作過程十分繁雜,我們只將任務調度文件的寫法介紹給大家,供大家參閱:
Minute Hour Day Month DayOfWeek Command
在這段文字中除了“Command”是每次都必須指定的字段以外,其他自動皆可視需求自行決定是否指定。
六,任務調度的系統工作
/ect/crontab/文件是Linux系統工程的任務調度設置文件,其默認的內容如下:
SHELL=/bin/bash ← 指定執行任務調度工作時所使用的SHELL
PATH=/shin:/bin:/usr/sbin:/usr/bin ← 指定命令搜索的路徑
MAILTO=root ← 指定將輸出結果給root用戶
HOME=/ ← 指定跟目錄
七,任務調度的個人工作
除了上述任務調度的系統工作外,一般用戶則可利用crintab命令,自行設置要定期執行的工作。
每個用戶可執行crontab –e命令,編輯自己的任務調度設置文件,並在此文件加入要定期執行的工作。以下範例爲tony用戶編輯的任務調度設置文件:
[tony@free rony]$ crontab –e
執行上述命令後,即會進入VI文本編輯器自行編輯任務調度的工作。
八,刪除調度工作任務
如果不想再定期執行任務調動中的工作,則可執行crontab –r命令刪除所有任務調度的工作。範例如下:
[tony@free rony]$ crontab –r ← 刪除任務調度中的工作
[tony@free rony]$ crontab -1 ← 再查看一次任務調度中的工作
no crontab for tony ← 已經沒有任何任務調度工作
九,打包、壓縮與解壓縮
由於這是每一個Linux用戶都會經常用到的基本功能,因此我們將介紹最常見到的打包、壓縮和解壓縮程序。
1,打包文件的tar命令
tar命令位於/bin目錄中,它能將用戶所指定的文件或目錄打包成一個文件,不過它並不做壓縮。一般Unix上常用的壓縮方式是先用tar命令將許多文件打包成一個文件,再以gzip等壓縮命令壓縮文件。tar
命令參數繁多,以下舉例常用參數作說明:
; -c:創建一個新的tar文件;
; -v:顯示運作過程信息;
; -f:在:指定文件名稱;
; -z:調用gzip壓縮命令執行壓縮;
; -j:調用bzip2壓縮命令執行壓縮;
; -t:參看壓縮文件內容;
; -x:解開tar文件。
在此舉一常用範例:
[tony@free data]# tar cvf data.tar * ← 將目錄下所有文件打包成data.tar
[tony@free data]# tar cvf data.tar.gz * ← 將目錄所有文件打包成data.tar再用gzip命令壓縮
[tony@free data]# tar tvf data.tar * ← 查看data.tar文件中包括了哪些文件
[tony@free data]# tar xvf data.tar * ← 將data.tar解開
2,壓縮與解壓縮
tar命令本身沒有壓縮能力,但是可以在產生的tar文件後,立即使用其他壓縮命令來壓縮,省區需要輸入兩次命令的麻煩。
; 使用-z參數來解開最常見的.tar.gz文件:
[tony@free data]# tar –zxvf foo.tar.gz ←將文件解開至當前目錄下
; 使用-j參數解開tar.bz2壓縮文件:
[tony@free data]# tar –jxvf linux-2.4.20tar.bz2 ←將文件解開至當前目錄下
; 使用-Z參數指定以compress命令壓縮
[tony@free data]# tar –cZvf prcture.tar.Z*.tif 將該目錄下所有.tif打包並命令壓縮成.tar.Z文件
十,其他常用命令
Linux可用的命令相當多,本章我們只舉例幾個常用的命令進行說明,在以後的章節中,還會接觸到許多其他命令。
1,修改密碼的passwd命令
passwd(password)命令可讓用戶變更密碼。範例如下:
[tony@free tony]$ passwd
Changing password for user tony
Changing password for tony
(current)UNIX password: ← 輸入原密碼
New password: ← 輸入新密碼
Retype new password ← 在此輸入新密碼
passwd: all authentication tokens updated successfully ← 密碼修改成功
2,創建引導盤的mkbootdisk命令
如果安裝系統時,並沒有製作引導盤,或者引導盤已經損害,可以在安裝系統之後,利用mkbootdisk命令創建一張新的引導盤:
[root@free root]# mkbootdisk ‘uname -r’
執行上述指令便可以成功的創建一張引導盤了。請保存好出盤,已備緊急之用。
3,顯示與設置時間的date、clock和ntpdate命令
date 命令可以顯示當前日期時間。範例如下:
[tony@free rony]$ date
-9月 8 10:00:00 CST 2006
CST爲中部標準時間
clock命令也可以顯示出系統當前的日期與時間,不過clock命令默認不允許一般用戶執行,請用root賬號執行:
[root@free root]# clock
公元2006年9月8日(週五)10時00分00秒 0.112604 seconds
如果系統時間不正確要想更改,可以使用date命令來設置時間。用root賬號如下操作:
[root@free root]# date 09091200 ← 將時間設定爲9月9日12點00分
用戶有時可能會苦於不知道標準時間。沒關係,當前網絡上也有校對時服務器提供的標準時間。因此可執行ntpdate命令,將系統時間設成與校時服務器一致:
[root@free root]# ntpdate stdtime.microsoft.com ← 與微軟校時服務器校時。
然後再執行一次date命令,就會發現系統時間已經更改。不過這樣還沒有結束,還需要執行clock –w 命令將更改的時間寫入計算機的CMOS中,這樣下次啓動時纔會使用更改過的時間。 範例如下:
[root@free root]# clock –w