linux指令学习
命令行操作及常用命令使用
命令行操作
Shell簡(jiǎn)介
shell是用戶和Linux操作系統(tǒng)之間的接口,Linux中有多種shell,缺省使用的是bash。Linux系統(tǒng)的shell作為操作系統(tǒng)的外殼為用戶提供使用操作系統(tǒng)的接口,它是一個(gè)命令語言解釋器,有自己內(nèi)建的shell命令集,shell也能被系統(tǒng)中其他應(yīng)用程序所調(diào)用。用戶在提示符下輸入的命令都由shell先解釋然后傳給Linux核心。
Linux中的shell有多種類型,其中最常用的幾種是Bourneshell(sh)、Cshell(csh)和Kornshell(ksh)。三種shell各有優(yōu)缺點(diǎn)。
Bourneshell是UNIX最初使用的shell,并且在每種UNIX上都可以使用。Bourneshell在shell編程方面相當(dāng)優(yōu)秀,但在處理與用戶的交互方面做得不如其他幾種shell。Linux操作系統(tǒng)缺省的shell是BourneAgainshell,它是Bourneshell的擴(kuò)展,簡(jiǎn)稱bash。與Bourneshell完全向后兼容,并且在Bourneshell的基礎(chǔ)上增加增強(qiáng)了很多特性。它還包含了很多Cshell和Kornshell中的優(yōu)點(diǎn),有靈活和強(qiáng)大的編程接口同時(shí)又有很友好的用戶界面。
Cshell是一種比Bourneshell更適于編程的shell,它的語法與C語言很相似。Linux為喜歡使用Cshell的人提供了Tcsh。Tcsh是Cshell的一個(gè)擴(kuò)展版本。Tcsh包括命令行編輯可編程單詞補(bǔ)全、拼寫校正、歷史命令替換、作業(yè)控制和類似C語言的語法。它不僅和Bashshell是提示符兼容,而且還提供比Bashshell更多的提示符參數(shù)。Kornshell集合了Cshell和Bourneshell的優(yōu)點(diǎn)并且和Bourneshell完全兼容Linux系統(tǒng)提供了pdksh(ksh)的擴(kuò)展,它支持任務(wù)控制,可以在命令行上掛起、后臺(tái)執(zhí)行、喚醒或終止程序。
SuseLinux系統(tǒng)默認(rèn)的shell是bash,對(duì)普通用戶用>作提示符,對(duì)超級(jí)用戶root用#作提示符,一旦出現(xiàn)了shell提示符就可以鍵入命令名稱及命令所需要的參數(shù)。
用戶在登錄到Linux時(shí)由/etc/passwd文件來決定要使用哪個(gè)shell。例如該文件中含有類似如下一行:
zteiptv:x:1002:100::/home/zteiptv:/bin/bash
用戶使用的shell是該行末尾的(/bin/bash)。
Shell控制臺(tái)使用方法
首先介紹一個(gè)名詞“控制臺(tái)(console)”,它就是我們通常見到的使用字符操作界面的人機(jī)接口,我們說控制臺(tái)命令就是指通過字符界面輸入的可以操作系統(tǒng)的命令。我們現(xiàn)在要了解的是基于Linux操作系統(tǒng)的基本控制臺(tái)命令。
Linux是一個(gè)真正的多用戶操作系統(tǒng),這表示它可以同時(shí)接受多個(gè)用戶登錄。Linux還允許一個(gè)用戶進(jìn)行多次登錄,這是因?yàn)長(zhǎng)inux和許多版本的UNIX一樣提供了“虛擬控制臺(tái)”的訪問方式,允許用戶在同一時(shí)間從控制臺(tái)(系統(tǒng)的控制臺(tái)是與系統(tǒng)直接相連的監(jiān)視器和鍵盤)進(jìn)行多次登錄。
虛擬控制臺(tái)的選擇可以通過按下Alt鍵和一個(gè)功能鍵來實(shí)現(xiàn),通常使用F1-F6。例如用戶登錄后按一下Alt-F2鍵,用戶又可以看到“l(fā)ogin:”提示符,說明用戶看到了第二個(gè)虛擬控制臺(tái);然后只需按Alt-F1鍵就可以回到第一個(gè)虛擬控制臺(tái)。一個(gè)新安裝的Linux系統(tǒng)允許用戶使用Alt-F1到Alt-F6鍵來訪問前六個(gè)虛擬控制臺(tái)。
常用命令使用
登錄和退出Linux系統(tǒng)
用戶登錄系統(tǒng)時(shí)為了使系統(tǒng)能夠識(shí)別自己,必須輸入用戶名和密碼,經(jīng)系驗(yàn)證無誤后方能進(jìn)入系統(tǒng)。
在系統(tǒng)安裝過程中可以創(chuàng)建兩種帳號(hào):超級(jí)用戶帳號(hào)和普通用戶帳號(hào)。Linux使用者一般為普通用戶,而系統(tǒng)管理員一般使用超級(jí)用戶帳號(hào)完成一些系統(tǒng)管理的工作,如果只需要完成一些由普通用戶帳號(hào)就能完成的任務(wù),建議不要使用超級(jí)用戶帳號(hào),以免無意中破壞系統(tǒng)。
用戶登錄分兩步進(jìn)行,第一步輸入用戶的登錄名,系統(tǒng)根據(jù)該登錄名來識(shí)別用戶;第二步輸入用戶的口令,該口令是用戶自己選擇的一個(gè)字符串,對(duì)其他用戶是保密的,是在登錄時(shí)系統(tǒng)用來辨別真假用戶的關(guān)鍵字。
1.啟動(dòng)和登錄系統(tǒng)
超級(jí)用戶的用戶名為root,密碼在安裝系統(tǒng)時(shí)需要設(shè)定。當(dāng)用戶正確地輸入用戶名和口令后就能合法地進(jìn)入系統(tǒng)。
[root@loclhost/root]#
此時(shí)說明用戶已經(jīng)登錄到系統(tǒng)中可以進(jìn)行操作了。這里“#”是超級(jí)用戶的系統(tǒng)提示符普通用戶在建立了普通用戶帳號(hào)以后就可以進(jìn)行登錄了。
不論是超級(jí)用戶還是普通用戶需要退出系統(tǒng)時(shí),在shell提示符下鍵入exit命令即可。還有其他退出系統(tǒng)的方法但上面一種是最安全的。
2.重新啟動(dòng)系統(tǒng)
以root用戶登錄Linux操作系統(tǒng)后執(zhí)行reboot命令可以重新啟動(dòng)linux系統(tǒng):
[root@loclhost/root]#reboot
3.關(guān)閉系統(tǒng)
shutdown命令可以安全地關(guān)閉或重啟Linux系統(tǒng),它在系統(tǒng)關(guān)閉之前給系統(tǒng)上的所有登錄用戶提示一條警告信息。該命令還允許用戶指定一個(gè)時(shí)間參數(shù),可以是一個(gè)精確的時(shí)間,也可以是從現(xiàn)在開始的一個(gè)時(shí)間段,精確時(shí)間的格式是“hh:mm”,表示小時(shí)和分鐘,時(shí)間段由“+”和分鐘數(shù)表示。系統(tǒng)執(zhí)行該命令后會(huì)自動(dòng)進(jìn)行數(shù)據(jù)同步的工作。該命令的一般格式:
shutdown[選項(xiàng)][時(shí)間][警告信息]
命令中各選項(xiàng)的含義為:
-k并不真正關(guān)機(jī)而只是發(fā)出警告信息給所有用戶;
-r關(guān)機(jī)后立即重新啟動(dòng);
-h關(guān)機(jī)后不重新啟動(dòng);
-f快速關(guān)機(jī)重啟動(dòng)時(shí)跳過fsck;
-n快速關(guān)機(jī)不經(jīng)過init程序;
-c取消一個(gè)已經(jīng)運(yùn)行的shutdown;
需要特別說明的是該命令只能由超級(jí)用戶使用。
例1:系統(tǒng)在十分鐘后關(guān)機(jī)并且馬上重新啟動(dòng):
#shutdown–r+10
例2:系統(tǒng)馬上關(guān)機(jī)并且不重新啟動(dòng):
#shutdown–hnow
文件和目錄操作命令
1.ls命令
這個(gè)命令就相當(dāng)于dos下的dir命令一樣,也是Linux控制臺(tái)命令中最為重要幾個(gè)命令之一。ls最常用的參數(shù)有三個(gè):-a、-l和–F。
ls-a
Linux系統(tǒng)上的文件以.開頭的文件被系統(tǒng)視為隱藏文件,僅用ls命令是看不到他們的。而用ls–a,除了顯示一般文件名外,連隱藏文件也會(huì)顯示出來。
ls–l這個(gè)參數(shù)是字母L的小寫不是數(shù)字1
這個(gè)命令可以使用長(zhǎng)格式顯示文件內(nèi)容,如果需要察看更詳細(xì)的文件資料就要用到ls-l這個(gè)指令。
ls–F
在列出的文件(目錄)名稱后加一符號(hào),例如可執(zhí)行文件加“*”,目錄則加“/”。
2.cd命令
cd這個(gè)命令是用來進(jìn)出目錄的,Linux的目錄對(duì)大小寫是敏感的,如果大小寫拼寫有誤,你的cd操作是成功不了的。另外cd如果直接輸入,cd后面不加任何東西會(huì)回到使用者自己的Home目錄。假設(shè)用戶是root那就是回到/root目錄。
3.Mkdir、rmdir
mkdir命令用來建立新的目錄,如輸入如下命令:
mkdirwork
將在當(dāng)前目錄下新建一個(gè)work目錄。
rmdir用來刪除已建立的目錄,如輸入如下命令:
rmdirwork
將刪除已存在的空目錄work。
4.cp
cp這個(gè)命令是copy命令,具體用法是:
cp–r源文件(source)目的文件(target)
參數(shù)r是指連同源文件中的子目錄一同拷貝。
5.rm
rm這個(gè)命令是用來刪除文件的,rm命令常用的參數(shù)有三個(gè)-i、-r、-f。
比如我現(xiàn)在要?jiǎng)h除一個(gè)名字為text的一個(gè)文件,輸入如下命令:
rm–itest
系統(tǒng)會(huì)詢問我們是否要?jiǎng)h除test文件敲了“y/n”確認(rèn)是否要?jiǎng)h除test文件;
rm–r目錄名
這個(gè)操作可以連同這個(gè)目錄下面的子目錄都刪除,功能比上面講到的rmdir更強(qiáng)大,不僅可能刪除指定的目錄,而且可以刪除該目錄下所有文件和子目錄;
rm–f文件名
這個(gè)操作可以不經(jīng)確認(rèn)強(qiáng)制刪除文件。
6.mv
mv這個(gè)命令的功能是移動(dòng)目錄或文件,引申的功能是給目錄或文件重命名,比如:
mv/tmp/xxx.tar/root
該命令將/tmp目錄下的xxx.tar文件移動(dòng)到/root目錄下,而:
mvaaa.tarbbb.tar
則是將當(dāng)前目錄下的文件aaa.tar更名為bbb.tar。
7.cat
cat這個(gè)命令是linux中非常重要的一個(gè)命令,它的功能是顯示或連結(jié)一般的ascii文本文件,它的用法如下:
cattext
該命令顯示text這個(gè)文件的內(nèi)容:
catfile1file2
該命令依順序顯示file1、file2的內(nèi)容:
catfile1file2>file3
該命令把file1、file2的內(nèi)容結(jié)合起來再重定向到file3文件中。
8.more
more是顯示一般文本文件的指令,如果一個(gè)文本文件太長(zhǎng)了超過一個(gè)屏幕的畫面,用cat來看實(shí)在是不理想,就可以試試more用法如下:
morefile1
9.pwd
pwd這個(gè)命令的作用是顯示用戶當(dāng)前的工作路徑,直接輸入pwd即可。
用戶及用戶組管理命令
1.useradd
useradd命令可以創(chuàng)建一個(gè)新的用戶帳號(hào),其最基本用法為:
useradd用戶名
如輸入以下命令:
useraddnewuser
系統(tǒng)將創(chuàng)建一個(gè)新用戶newuser該用戶的Home目錄為/home/newuser。
useradd命令的參數(shù)較多,常用的組合為:
useradd用戶名-g組名–G組名-dHome目錄名-p密碼
其中:
-g指定該用戶的首要組;
-G指定該用戶的次要組;
-d指定該用戶的Home目錄;
-p指定該用戶的密碼。
如輸入以下命令:
useraddoracle–goinstall–Gdba–d/home/oracle–pora123
系統(tǒng)將創(chuàng)建一個(gè)用戶oracle,oracle用戶的首要組為oinstall,次要組為dba,Home目錄為/home/oracle,密碼為ora123。
2.userdel
userdel命令用于刪除一個(gè)已存在的帳號(hào),其用法為:
userdel用戶名
3.groupadd
groupadd命令可以創(chuàng)建一個(gè)新的用戶組,其最基本用法為:
groupadd組名
如輸入以下命令:
groupaddnewgroup
系統(tǒng)將創(chuàng)建一個(gè)新的用戶組newgroup。
4.groupdel
groupdel命令用于刪除一個(gè)已存在的用戶組,其用法為:
groupdel組名
5.passwd
出于系統(tǒng)安全考慮,Linux系統(tǒng)中的每一個(gè)用戶除了有其用戶名外還有其對(duì)應(yīng)的用戶口令,用戶可以隨時(shí)用passwd命令改變自己的口令。該命令的一般格式為:
Passwd
輸入該命令后,按系統(tǒng)提示依次輸入密碼和密碼確認(rèn)后,即可完成對(duì)超級(jí)用戶密碼的修改。此外超級(jí)用戶還可以修改其他用戶的口令,命令如下:
passwd用戶名
6.su
su命令這個(gè)命令非常重要,它可以讓一個(gè)普通用戶擁有超級(jí)用戶或其他用戶的權(quán)限,也可以讓超級(jí)用戶以普通用戶的身份做一些事情。普通用戶使用這個(gè)命令時(shí)必須有超級(jí)用戶或其他用戶的口令,如要離開當(dāng)前用戶的身份可以鍵入exit命令。su命令的一般形式為:
su-用戶名
7.chmod
chmod命令是非常重要的,用于改變文件或目錄的訪問權(quán)限,該命令有兩種用法。一種是包含字母和操作符表達(dá)式的文字設(shè)定法,另一種是包含數(shù)字的數(shù)字設(shè)定法。文字設(shè)定法的用法如下:
chmod[who][+|-|=][mode]文件名
命令中各選項(xiàng)的含義為:
1操作對(duì)象who可以是下述字母中的任一個(gè)或者它們的組合:
u表示用戶(user)即文件或目錄的所有者;
g表示同組(group)用戶即與文件屬主有相同組ID的所有用戶;
o表示其他(others)用戶;
a表示所有(all)用戶它是系統(tǒng)默認(rèn)值;
2操作符號(hào)可以是:
+添加某個(gè)權(quán)限;
-取消某個(gè)權(quán)限;
=賦予給定權(quán)限,并取消其他所有權(quán)限;
3mode表示權(quán)限常用的參數(shù)有:
r可讀;
w可寫;
x可執(zhí)行;
舉例:
1.將文件script的權(quán)限設(shè)為可執(zhí)行,命令如下:
chmod=rxtext
執(zhí)行成功后,用ls-lscript命令查看文件屬性的結(jié)果如下:
-r-xr-xr-x1usergroup0Feb1009:42script
2.將文件text的權(quán)限設(shè)為文件屬主可讀、可寫、可執(zhí)行,與文件屬主同組的用戶可讀而其他用戶不可讀,命令如下:
chmodu=rwx,g=r,o=text注意,后無空格o=后有空格
執(zhí)行成功后,用ls-ltext命令查看文件屬性的結(jié)果如下:
-rwxr-----1usergroup0Feb1009:42text
8.chown
chown用于更改某個(gè)文件或目錄的屬主和屬組,這個(gè)命令也很常用。例如root用戶把自己的一個(gè)文件拷貝給用戶oracle,為了讓用戶oracle能夠存取這個(gè)文件。root用戶應(yīng)該把這個(gè)文件的屬主設(shè)為oracle,否則用戶oracle無法存取這個(gè)文件。chown的基本用法為:
chown[用戶:組]文件
舉例:
chownoracle:dbatext
該命令將text文件的屬主和屬組分別改為oracle和dba。
進(jìn)程及任務(wù)管理命令
Linux系統(tǒng)上所有運(yùn)行的東西都可以稱之為一個(gè)進(jìn)程。每個(gè)用戶任務(wù)、每個(gè)系統(tǒng)管理守護(hù)進(jìn)程都可以稱之為進(jìn)程。Linux用分時(shí)管理方法使所有的任務(wù)共同分享系統(tǒng)資源。以下將介紹一些常用的查看和控制進(jìn)程的命令:
1.ps
ps命令是最基本同時(shí)也是非常強(qiáng)大的進(jìn)程查看命令,使用該命令可以查看有哪些進(jìn)程正在運(yùn)行以及運(yùn)行的狀態(tài)、進(jìn)程是否結(jié)束、進(jìn)程有沒有僵死,哪些進(jìn)程占用了過多的資源等等。
該命令的基本用法如下:
ps[選項(xiàng)]
其中常用的選項(xiàng)有:
-e顯示所有進(jìn)程;
-f全格式;
-l長(zhǎng)格式;
舉例:
(1) 在控制臺(tái)輸入ps命令得到類似如下的輸出:
PIDTTYTIMECMD
12039pts/000:00:00bash
18710pts/000:00:00ps
該命令顯示當(dāng)前登錄用戶的執(zhí)行進(jìn)程,顯示的項(xiàng)目共分為四項(xiàng),依次為:PID(進(jìn)程ID)、TTY(終端名稱)、TIME(進(jìn)程執(zhí)行時(shí)間)、CMD(該進(jìn)程的命令行輸入)。
(2) 在控制臺(tái)輸入以下命令:
ps–ef
UIDPIDPPIDCSTIMETTYTIMECMD
root100Jan14?00:00:05init
root210Jan14?00:00:00[keventd]
root310Jan14?00:00:00[kapmd]
…………………..
該命令將顯示所有執(zhí)行進(jìn)程的信息,顯示的項(xiàng)目依次為:UID執(zhí)行進(jìn)程的用戶ID、PID(進(jìn)程ID)、PPID(父進(jìn)程ID)、TTY(終端名稱)、STIME(進(jìn)程啟動(dòng)時(shí)間)、TIME(進(jìn)程執(zhí)行時(shí)間)、CMD(該進(jìn)程的命令行輸入)。
該命令的輸出較多,可以使用grep命令進(jìn)行過慮,以方便查看,如:
ps–ef|greporacle
將只顯示出包含oracle的輸出行,可以查詢執(zhí)行進(jìn)程的用戶為oracle的所有進(jìn)程。
2.top
top命令和ps命令的基本作用是相同的,即顯示系統(tǒng)當(dāng)前的進(jìn)程和其他狀況。但是top是一個(gè)動(dòng)態(tài)顯示過程,即可以通過用戶按交互來不斷刷新當(dāng)前狀態(tài)。
top的命令參數(shù)并不重要,簡(jiǎn)單的輸入top命令即可查看系統(tǒng)運(yùn)行狀態(tài),top命令執(zhí)行過程中可以使用交互命令。從使用角度來看,熟練的掌握這些命令比掌握選項(xiàng)還重要一些,這些命令都是單字母的常用的命令有:
<空格>立即刷新顯示;
h或者?顯示幫助畫面給出一些簡(jiǎn)短的命令總結(jié)說明;
m切換顯示內(nèi)存信息;
t切換顯示進(jìn)程和CPU狀態(tài)信息;
c切換顯示命令名稱和完整命令行;
M根據(jù)駐留內(nèi)存大小進(jìn)行排序;
P根據(jù)CPU使用百分比大小進(jìn)行排序;
q退出。
3.kill
kill命令可以用于終止后臺(tái)進(jìn)程,kill命令是通過向進(jìn)程發(fā)送指定的信號(hào)來結(jié)束進(jìn)程的。kill命令的語法格式很簡(jiǎn)單,大致有以下兩種方式:
kill[-s信號(hào)]進(jìn)程號(hào)
其中發(fā)出的信號(hào)既可以是信號(hào)名也可以對(duì)應(yīng)數(shù)字,如kill-91234命令將終止PID(進(jìn)程號(hào))為1234的進(jìn)程。
kill-l
該命令顯示信號(hào)列表。
4.cron
cron命令用來實(shí)現(xiàn)定時(shí)任務(wù)的完成,如每日?qǐng)?zhí)行一次的任務(wù)進(jìn)程。cron命令是不應(yīng)該手工啟動(dòng)的,一般情況下cron命令在系統(tǒng)啟動(dòng)時(shí)就由一個(gè)shell腳本自動(dòng)啟動(dòng),啟動(dòng)后cron命令會(huì)搜索/var/spool/cron目錄尋找以/etc/passwd文件中的用戶名命名的crontab文件,被找到的這種文件將載入內(nèi)存。例如一個(gè)用戶名為user的用戶它所對(duì)應(yīng)的crontab文件就應(yīng)該是/var/spool/cron/user。也就是說以該用戶命名的crontab文件存放在/var/spool/cron目錄下面。cron命令還將搜索/etc/crontab文件,這個(gè)文件是用不同的格式寫成的,cron啟動(dòng)以后它將首先檢查是否有用戶設(shè)置了crontab文件,如果沒有就轉(zhuǎn)入休眠狀態(tài),釋放系統(tǒng)資源。它每分鐘醒過來一次查看當(dāng)前是否有需要運(yùn)行的命令可以使用crontab–l命令查看目前已經(jīng)存在的cron任務(wù)。
磁盤及文件系統(tǒng)管理命令
管理文件系統(tǒng)其實(shí)是相當(dāng)復(fù)雜的工作,這里主要介紹掛裝和卸載硬盤分區(qū)等命令。
1.df
df命令可以顯示目前磁盤剩余的磁盤空間,常用的參數(shù)為-k,如:
df–k
該語句將顯示各分區(qū)的磁盤空間使用情況。
2.mount和umount
mount命令有很多參數(shù),其中大多數(shù)都不會(huì)在日常工作中用到mount命令,最常見的用法如下所示:
mount[選項(xiàng)]設(shè)備目錄
其中最常用的選項(xiàng)是-a,把/etc/fstab文件中列出的文件系統(tǒng)都掛裝上。
掛裝軟驅(qū)和光驅(qū)的命令比較簡(jiǎn)單,直接輸入以下命令即可:
Mount?/mnt/cdrom
Mount?/mnt/floppy
umount命令用于卸載一個(gè)文件系統(tǒng),命令的格式如下:
umount?[-f]?directory
其中directory是準(zhǔn)備卸載的目錄名,umount命令有一個(gè)不足之處,如果文件系統(tǒng)正在使用中,也就是說有人在那個(gè)分區(qū)上打開了文件,就無法把這個(gè)文件系統(tǒng)卸載下來。這時(shí)可以使用和-f參數(shù)強(qiáng)制執(zhí)行卸載操作。當(dāng)然,這種操作可能會(huì)造成用戶數(shù)據(jù)的丟失如:
Umount?–f?/mnt/cdrom
該命令將強(qiáng)制卸載掛裝在/mnt/cdrom目錄下的文件系統(tǒng)。
軟件安裝命令
1.tar
tar命令用于把多個(gè)文件合并于一個(gè)檔案文件中,并提供分解的合并后的檔案文件的功能。它獨(dú)立于壓縮工具,因此可以選擇在合并前是否壓縮。tar命令的基本用法為:
tar [選項(xiàng)] 文件名
常用的選項(xiàng)包括:
-c創(chuàng)建一個(gè)新的檔案文件;
-t查看檔案文件的內(nèi)容;
-x分解檔案文件的內(nèi)容;
-f指定檔案文件的名稱;
-v顯示過程信息;
-z采用壓縮方式。
舉例:
Tar?–czf?oracle.tar.gz/u01/app/oracle/etc/oratab/home/oracle
該命令將/u01/app/oracle目錄下的所有文件/etc/oratab文件和/home/oracl目錄下的所有文件合并到oracle.tar文件中,并采用壓縮方式。
Tar?–tzf?oracle.tar.gz
該命令列出歸檔文件oracle.tar中的所有文件列表。
Tar?–xzvf?oracle.tar.gz
該命令將歸檔文件分解并解壓縮到原有文件的路徑中
2.rpm
rpm命令的功能有很多,在這里我們只介紹如何利用rpm安裝、升級(jí)、查詢、卸載的軟件。
rpm安裝軟件包的基本語法如下:
rpm –I?rpm包名
例如:
Rpm?–I?tomcat4.rpm
該命令將安裝Tomcat軟件并進(jìn)行相關(guān)系統(tǒng)配置;
rpm升級(jí)軟件包的基本語法如下:
rpm –U rpm包名
例如:
Rpm?–U?tomcat4.rpm
該命令將升級(jí)Tomcat軟件并進(jìn)行相關(guān)系統(tǒng)配置;
查看已安裝的軟件,要想列出已經(jīng)安裝的全部軟件包,可以通過以下命令:
Rpm?–qa
可以使用grep命令指定軟件包的名稱,或者部分名稱,如下所示:
Rpm?-qa|grep?'tomcat'
該命令將列出包名中包含tomcat的軟件包;
此外要想找出某個(gè)特定的文件到底是屬于哪個(gè)軟件包的,可以輸入:
Rpm?–qf?filename
其中filename是準(zhǔn)備要查找其歸屬的文件名稱。要想查出某個(gè)已經(jīng)安裝的軟件包的功能,可以用如下命令:
Rpm?–qi?packagename
其中packagename是要查找其用途的軟件包名稱;
使用RPM刪除軟件包就像安裝它們一樣簡(jiǎn)單,大多數(shù)情況下用戶只需要輸入命令:
Rpm?–e?packagename
其中packagename是要查刪除的軟件包名稱。
文件查看/編輯方法介紹
cat命令介紹
cat命令的原含義為連接concatenate,用于連接多個(gè)文件內(nèi)容并輸出到標(biāo)準(zhǔn)輸出流中,標(biāo)準(zhǔn)輸出流默認(rèn)為屏幕。實(shí)際運(yùn)用過程中我們常使用它來顯示文件內(nèi)容,cat命令的常用示例如下:
catfile1.txt顯示file1.txt文件的內(nèi)容
catfile1.txtfile2.txt顯示file1.txt和file2.txt文件的內(nèi)容
cat-nfile1.txt顯示file1.txt文件的內(nèi)容同時(shí)顯示行號(hào)
vi命令介紹
vi是VisualInterface的簡(jiǎn)稱它可以執(zhí)行輸出、刪除、查找、替換、塊操作等眾多文本操作。而且用戶可以根據(jù)自己的需要對(duì)其進(jìn)行定制,這是其他編輯程序所沒有的。vi不是一個(gè)排版程序,不象Word或WPS那樣可以對(duì)字體、格式、段落等其他屬性進(jìn)行編排,它只是一個(gè)文本編輯程序。vi沒有菜單,只有命令,且命令繁多。
Vi有三種基本工作模式:命令行模式、文本輸入模式和末行模式。
命令行模式:
任何時(shí)候不管用戶處于何種模式,只要按一下ESC鍵即可使vi進(jìn)入命令行模式,當(dāng)在shell環(huán)境下輸入vi命令啟動(dòng)vi編輯器時(shí),也是處于該模式下。在該模式下用戶可以輸入各種合法的vi命令,用于管理自己的文檔,此時(shí)從鍵盤上輸入的任何字符都被當(dāng)作編輯命令來解釋。若輸入的字符是合法的,vi命令在接受用戶命令之后完成相應(yīng)的動(dòng)作。但需注意的是所輸入的命令并不在屏幕上顯示出來,若輸入的字符不是vi的合法命令vi會(huì)有報(bào)警提示。
文本輸入模式:
在命令模式下輸入插入命令i、附加命令a、打開命令o、修改命令c、取代命令r或替換命令s,都可以進(jìn)入文本輸入模式。在該模式下,用戶輸入的任何字符都被vi當(dāng)做文件內(nèi)容保存起來,并將其顯示在屏幕上,在文本輸入過程中若想回到命令模式下。按ESC鍵即可;
末行模式:
在命令模式下用戶按:鍵即可進(jìn)入末行模式下。此時(shí)Vi會(huì)在顯示窗口的最后一行。通常也是屏幕的最后一行。顯示一個(gè):作為末行模式的提示符,等待用戶輸入命令。多數(shù)文件管理命令都是在此模式下執(zhí)行的,如把編輯緩沖區(qū)的內(nèi)容寫到文件中等。末行命令執(zhí)行完后vi自動(dòng)回到命令模式。若在末行模式下輸入命令過程中改變了主意,可按ESC鍵或用退格鍵將輸入的命令全部刪除之后再按一下退格鍵,即可使vi回到命令模式下。
vi的進(jìn)入與退出
在shell模式下鍵入vi及需要編輯的文件名,即可進(jìn)入vi。例如:
viexample.txt
即可編輯example.txt文件,如果該文件存在,則編輯界面中會(huì)顯示該文件的內(nèi)容,并將光標(biāo)定位在文件的第一行。如果文件不存在,則編輯界面中無任何內(nèi)容,如果需要在進(jìn)入vi編輯界面后將光標(biāo)置于文件的第n行,則在vi命令后面加上+n參數(shù)即可。例如需要從example.txt文件的第5行開始顯示,則使用如下命令:
vi+5example.txt
退出v時(shí),需要在末行模式中輸入退出命令q,如果在文本輸入模式下首先按ESC鍵進(jìn)入命令模式,然后輸入:進(jìn)入末行模式。在末行模式下可使用如下退出命令:
:q直接退出。如果在文本輸入模式下修改了文檔內(nèi)容,則不能退出;
:wq保存后退出;
:x和wq一樣;
:q!不保存內(nèi)容,強(qiáng)制退出。
vi中顯示行號(hào)
在末行模式下,輸入如下命令:
setnumber
可使vi在編輯界面中顯示行號(hào)。此外在末行模式下可使用如下‘nu’命令(number的簡(jiǎn)寫)來顯示光標(biāo)所在行的行號(hào)及該行的內(nèi)容。
光標(biāo)移動(dòng)操作
全屏幕文本編輯器中光標(biāo)的移動(dòng)操作無疑是最經(jīng)常使用的操作了。用戶只有熟練地使用移動(dòng)光標(biāo)的這些命令才能迅速準(zhǔn)確地到達(dá)所期望的位置處進(jìn)行編輯。
vi中的光標(biāo)移動(dòng)既可以在命令模式下也可以在文本輸入模式下,但操作的方法不盡相同,在文本輸入模式下可直接使用鍵盤上的四個(gè)方向鍵移動(dòng)光標(biāo)。在命令模式下有很多移動(dòng)光標(biāo)的方法,不但可以使用四個(gè)方向鍵來移動(dòng)光標(biāo),還可以用hjkl這四個(gè)鍵代替四個(gè)方向鍵來移動(dòng)光標(biāo)。這樣可以避免由于不同機(jī)器上的不同鍵盤定義所帶來的矛盾,而且使用熟練后可以手不離開字母鍵盤位置就能完成所有操作,從而提高工作效率。以下命令均在命令行模式下完成光標(biāo)移動(dòng):
h光標(biāo)左移,如果在按h命令前輸入數(shù)字n,則光標(biāo)左移n個(gè)字符;
l光標(biāo)右移,如果在按l命令前輸入數(shù)字n,則光標(biāo)右移n個(gè)字符;
j光標(biāo)上移,如果在按j命令前輸入數(shù)字n,則光標(biāo)上移n個(gè)字符;
k光標(biāo)下移,如果在按k命令前輸入數(shù)字n,則光標(biāo)下移n個(gè)字符;
0光標(biāo)移到行首;
$光標(biāo)移到行尾;
H光標(biāo)移到屏幕上顯示的第一行,并不一定是文件頭;
L光標(biāo)移到屏幕上顯示的最后一行,并不一定是文件尾;
M光標(biāo)移到屏幕的中間一行;
nG光標(biāo)移到第n行;
w或W將光標(biāo)右移至下一個(gè)單詞的詞首;
e或E如果光標(biāo)起始位置處于單詞內(nèi),即非單詞尾處,則該命令將把光標(biāo)移到本單詞詞尾,如果光標(biāo)起始位置處于單詞尾。則該命令將把光標(biāo)移動(dòng)到下一個(gè)單詞的詞尾;
b或B如果光標(biāo)處于所在單詞內(nèi),即非單詞首,則該命令將把光標(biāo)移至本單詞詞首,如果光標(biāo)處于所在單詞的詞首,則該命令將把光標(biāo)移到上一個(gè)單詞的詞首;
Ctrl+G狀態(tài)命令,顯示當(dāng)前編輯文檔的狀態(tài),包括正在編輯的文件名是否修改過、當(dāng)前行號(hào)、文件的行數(shù)以及光標(biāo)之前的行占整個(gè)文件的百分比。此外,也可以通過以下末行模式下的命令完成光標(biāo)在整個(gè)文件中的移動(dòng)操作。
:n光標(biāo)移到文件的第n行;
:$光標(biāo)移到文件的最后一行。
文本插入操作
在命令模式下,用戶輸入的任何字符都被vi當(dāng)作命令加以解釋執(zhí)行。如果用戶要將輸入的字符當(dāng)作是文本內(nèi)容時(shí),則首先應(yīng)將vi的工作模式從命令模式切換到文本輸入模式。切換的方式是使用下面的命令:
1.vi提供了兩個(gè)插入Insert命令i和I:
i命令,插入文本從光標(biāo)所在位置前開始并且插入過程中可以使用;
<Backspace>鍵刪除錯(cuò)誤的輸入,此時(shí)vi處于插入狀態(tài),屏幕最下行顯示:
--INSERT--插入字樣
I命令,該命令是將光標(biāo)移到當(dāng)前行的行首,然后在其前插入文本;
2.附加append命令:
vi提供了兩個(gè)附加插入命令a和A:
a命令,該命令用于在光標(biāo)當(dāng)前所在位置之后追加新文本,新輸入的文本放在光標(biāo)之后在光標(biāo)后的原文本將相應(yīng)地向后移動(dòng)光標(biāo)可在一行的任何位置;
A命令,該命令與a命令不同的是A命令將把光標(biāo)挪到所在行的行尾,從那里開始插入新文本,當(dāng)輸入A命令后光標(biāo)自動(dòng)移到該行的行尾;
a和A命令是把文本插入到行尾的唯一方法。
3.打開open命令:
不論是Insert命令也好還是append命令也好,所插入的內(nèi)容都是從當(dāng)前行中的某個(gè)位置開始的,若我們希望在某行之前或某行之后插入一些新行則應(yīng)使用open命令。
vi提供了兩個(gè)打開命令o和O:
1.o命令,該命令將在光標(biāo)所在行的下面新開一行并將光標(biāo)置于該行的行首,等待輸入文本,要注意當(dāng)使用<Backspace>刪除字符時(shí)只能刪除從插入模式開始的位置以后的字符,對(duì)于以前的字符不起作用;
2.O命令,和o命令相反O命令是在光標(biāo)所在行的上面插入一行并將光標(biāo)置于該行的行首等待輸入文本。
文本修改操作
在命令模式下可以使用vi提供的各種有關(guān)命令對(duì)文本進(jìn)行修改,包括對(duì)文本內(nèi)容的刪除、復(fù)制、取代和替換等。
1.文本刪除/移動(dòng):
在編輯文本時(shí)經(jīng)常需要?jiǎng)h除一些不需要的文本,我們可以用<Backspace>鍵將輸錯(cuò)或不需要的文本刪除。但此時(shí)有一個(gè)限制就是當(dāng)刪到行頭之后再想刪上面那行的內(nèi)容是不可能的。在命令模式下vi提供了許多刪除命令,這些命令大多是以d開頭的。
常用的有:
1.刪除單個(gè)字符:
x刪除光標(biāo)處的字符,若在x之前加上一個(gè)數(shù)字n則刪除從光標(biāo)所在位置開始向右的n個(gè)字符;
X刪除光標(biāo)前面的那個(gè)字符,若在X之前加上一個(gè)數(shù)字n則刪除從光標(biāo)前面那個(gè)字符開始向左的n個(gè)字符;
顯然這兩個(gè)命令是刪除少量字符的快捷方法。
2.刪除多個(gè)字符:
dd刪除光標(biāo)所在的整行,在dd前可加上一個(gè)數(shù)字n表示刪除當(dāng)前行及其后n-1行的內(nèi)容;
D或d$兩命令功能一樣,都是刪除從光標(biāo)所在處開始到行尾的內(nèi)容;
d0刪除從光標(biāo)前一個(gè)字符開始到行首的內(nèi)容;
dw刪除一個(gè)單詞,若光標(biāo)處在某個(gè)詞的中間,則從光標(biāo)所在位置開始刪至詞尾同dd命令一樣,可在dw之前加一個(gè)數(shù)字n表示刪除n個(gè)指定的單詞。
如果用戶不小心進(jìn)行了誤刪除操作也不要緊,vi提供了恢復(fù)誤操作的命令,并且可以將恢復(fù)的內(nèi)容移動(dòng)放在文本的任何地方恢復(fù)命令用np,其中n為需要恢復(fù)的次數(shù)。例如使用dd命令刪除了一行內(nèi)容,然后使用2p命令,則被刪除的內(nèi)容會(huì)被重新插入兩遍,通過dd命令及p命令的結(jié)合使用可以很方便的實(shí)現(xiàn)文本行的移動(dòng)操作。
2.文本復(fù)制命令
yy復(fù)制光標(biāo)所在的整行,在yy前可加上一個(gè)數(shù)字n表示復(fù)制當(dāng)前行及其后n-1行的內(nèi)容,文本行復(fù)制后通過使用上面介紹的p命令可以將文本行粘貼到任何地方。
3.取消上一命令Undo
Undo也稱復(fù)原命令,是非常有用的命令。它可以取消前一次的誤操作或不合適的操作對(duì)文件造成的影響,使之回復(fù)到這種誤操作或不合適操作被執(zhí)行之前的狀態(tài)。取消上一命令有兩種形式在命令模式下鍵入字符u和U,它們的功能都是取消剛才輸入的命令恢復(fù)到原來的情況。小寫u和大寫U在具體細(xì)節(jié)上有所不同,二者的區(qū)別在于大寫U命令的功能是恢復(fù)到誤操作命令前的情況,即如果插入命令后使用U命令就刪除剛剛插入的內(nèi)容,如果刪除命令后使用U命令就相當(dāng)于在光標(biāo)處又插入剛剛刪除的內(nèi)容。這里把所有修改文本的命令都視為插入命令,也就是說U命令只能取消前一步操作。如果用U命令撤消了前一步操作,當(dāng)再按U鍵時(shí)并不是撤消再前一步的操作而是撤消了剛才U命令執(zhí)行的操作,也就是又恢復(fù)到第一次使用U命令之前的狀態(tài),結(jié)果是什么都沒做。而小寫u命令的功能是把當(dāng)前行恢復(fù)成被編輯前的狀態(tài)而不管此行被編輯了多少次。
4.重復(fù)命令Redo
重復(fù)命令也是一個(gè)非常常用的命令,在文本編輯中經(jīng)常會(huì)碰到需要機(jī)械地重復(fù)一些操作,這時(shí)就需要用到重復(fù)命令它可以讓用戶方便地再執(zhí)行一次前面剛完成的某個(gè)復(fù)雜的命令。重復(fù)命令只能在命令模式下工作在該模式下按’.’鍵既可執(zhí)行一個(gè)重復(fù)命令,其結(jié)果是依賴于光標(biāo)當(dāng)前位置的。
文本搜索與替換操作
在進(jìn)行文本編輯的時(shí)候可以需要搜索或定位特定的單詞或單詞的一部分,vi編輯器有向前或向后搜索指定模式的功能。/是vi編輯器的模式搜索命令,鍵入/后屏幕的底部會(huì)出現(xiàn)一行同時(shí)一個(gè)斜扛會(huì)出現(xiàn)在底行的行首上,且光標(biāo)被放置在斜扛之后。此時(shí)可以在光標(biāo)位置鍵入需要搜索的模式,輸入完成并按下ENTER鍵后編輯器將開始從光標(biāo)所在的位置起向文件尾部搜索你鍵入的模式。如果輸入的模式被找到,光標(biāo)將停留在找到的模式上,在找到一個(gè)匹配的模式后如果您還需要搜索下一個(gè)匹配的模式使用命令n即可,如果需要找到上一個(gè)匹配的模式則使用N命令即可。
此外?命令也是模式搜索命令,與/的區(qū)別在于/是從光標(biāo)當(dāng)前所在位置向文件尾部搜索,而?命令則是由光標(biāo)當(dāng)前所在位置向文件頭部搜索。
文本替換操作需要使用末行模式進(jìn)行操作即所有文本替換操作命令均以:開頭。
文本替換命令的格式為:
:s/text1/text2
用于將光標(biāo)所在段落搜索到的第一個(gè)text1替換為text2;
:s/text1/text2/g
用于將光標(biāo)所在段落的所有text1替換為text2;
:m,ns/text1/text2/g
用于將從m行開始至n行結(jié)束的所有搜索到的text1替換為text2,其中可以使用$表示末行即1,$表示替換文檔中的所有符合條件的字符。
head及tail命令介紹
當(dāng)需要查看一個(gè)文本文件的頭部或尾部時(shí),head命令及tail命令可以非常方便的完成該操作。head命令用于查看一個(gè)文本文件的開頭部分,而tail命令則用于顯示文本文件的末尾幾行。這兩個(gè)命令舉例如下:
Head example.txt 顯示文件example.txt的前十行內(nèi)容;
Head -n20 example.txt 顯示文件example.txt的前二十行內(nèi)容;
Tail example.txt 顯示文件example.txt的后十行內(nèi)容;
Tail -n20 example.txt 顯示文件example.txt的后二十行內(nèi)容;
Tail –f example.txt 顯示文件example.txt的后十行內(nèi)容并在文件內(nèi)容增加后自動(dòng)顯示新增的文件內(nèi)容。
最后一條命令非常有用,尤其在監(jiān)控日志文件時(shí)可以在屏幕上一直顯示新增的日志信息。
網(wǎng)絡(luò)配置及操作
網(wǎng)絡(luò)配置命令
Linux系統(tǒng)中最常用的網(wǎng)絡(luò)配置命令包括ifconfig和route,其中ifconfig用來查看和配置網(wǎng)絡(luò)接口,通常是網(wǎng)卡信息,包括網(wǎng)絡(luò)接口設(shè)備的IP地址、掩碼等。route用來管理Linux系統(tǒng)內(nèi)核中的路由表,它最大的用途就是用來設(shè)定靜態(tài)的路由表項(xiàng),通常是在系統(tǒng)用ifconfig配置網(wǎng)絡(luò)接口后,用它來設(shè)定主機(jī)或者一網(wǎng)段的IP地址應(yīng)該通過什么接口發(fā)送。
ifconfig
ifconfig的語法為:
ifconfig[-a][-V][-s]<interface>[[<AF>]<address>]
[[-]broadcast[<address>]]
[netmask<address>]
[up|down]
其中interface為網(wǎng)卡名,address為IP地址,broadcast表示設(shè)置廣播地址,其后的address為廣播地址的IP,netmask表示設(shè)置子網(wǎng)掩碼,其后的address為子網(wǎng)掩碼的IP。Up、down設(shè)置當(dāng)前網(wǎng)卡的狀態(tài)up,表示啟用當(dāng)前網(wǎng)卡,down表示關(guān)閉當(dāng)前網(wǎng)卡。
Ifconfig的常用參數(shù)說明如下:
-a 查看所有網(wǎng)卡狀態(tài);
-V 查看ifconfig命令的版本信息;
-s 查看統(tǒng)計(jì)信息;
示例:
1.將第一塊網(wǎng)卡的IP地址設(shè)置為192.168.0.1:
Ifconfig eth0 192.168.0.1 (格式:ifconfig 網(wǎng)絡(luò)設(shè)備名 IP地址)
2.暫時(shí)關(guān)閉或啟用網(wǎng)卡:
關(guān)閉第一塊網(wǎng)卡:ifconfig eth0 down
啟用第一塊網(wǎng)卡:ifconfig eth0 up
3.將第一塊網(wǎng)卡的子網(wǎng)掩碼設(shè)置為255.255.255.0:
ifconfig eth0 netmask 255.255.255.0(格式:ifconfig 網(wǎng)絡(luò)設(shè)備名 netmask子網(wǎng)掩碼)
我們也可以同時(shí)設(shè)置IP地址和子網(wǎng)掩碼:
ifconfigeth0192.168.0.1netmask255.255.255.0
4.查看第一塊網(wǎng)卡的狀態(tài):
ifconfig?eth0
如果要查看所有的網(wǎng)卡狀態(tài),則直接使用不帶參數(shù)的ifconfig命令即可。ifconfig輸出的幾個(gè)狀態(tài)比較重要:
UP/DOWN:網(wǎng)卡是否啟動(dòng)了,如果是DOWN的話,那肯定無法用的;
RXpackets中的errors包的數(shù)量如果過大說明網(wǎng)卡在接收時(shí)有問題;
TXpackets中的errors包的數(shù)量如果過大說明網(wǎng)卡在發(fā)送時(shí)有問題。
route
route命令的語法為:
route[-CFvnee]
route[-v][-Afamily]add[-net|-host]target[netmaskNm][gwGw]
[metricN][mod][reinstate][[dev]If]
route[-v][-Afamily]del[-net|-host]target[gwGw][netmaskNm][metric
N][[dev]If]
route[-V][--version][-h][--help]
route的常用參數(shù)說明如下:
-v 使用冗余輸出模式;
-A family 指定特定的地址族(例如"inet"、"inet6");
-n 使用數(shù)字顯示的地址(例如:202.38.75.75)而不是去解釋域名;
-e 使用與netstat相同的輸出格式;
-ee 參數(shù)會(huì)產(chǎn)生很長(zhǎng)的輸出,包括內(nèi)核路由表的幾乎所有信息;
-net 目標(biāo)target是一個(gè)網(wǎng)段;
-host 目標(biāo)target是一個(gè)單獨(dú)的主機(jī);
-F 顯示內(nèi)核FIB路由表,結(jié)果可能被-e和-ee參數(shù)改變;
-C 顯示內(nèi)核中路由緩存信息;
del?刪除一個(gè)路由表項(xiàng);
add?增加一個(gè)路由表項(xiàng);
Target 配置的目的網(wǎng)段或者主機(jī),可以是IP或者是網(wǎng)絡(luò)或主機(jī)名;
netmask?Nm 用來指明要添加的路由表項(xiàng)的網(wǎng)絡(luò)掩碼;
gw?Gw 任何通往目的target的IP分組都要通過這個(gè)網(wǎng)關(guān)
metric M 設(shè)置路由表中該項(xiàng)的尺度域(metric field)為M。
示例:
1.添加一條路由表項(xiàng)網(wǎng)段192.168.0.x應(yīng)該從接口"eth0"走:
route?add?–net?192.168.0.0?netmask?255.255.255.0?dev?eth0
2.添加一條缺省路由:
route add 0.0.0.0 gw 網(wǎng)關(guān)地址
如果沒有其他匹配的路由項(xiàng),就使用這個(gè)路由規(guī)則;
3.刪除缺省路由:
route del 0.0.0.0 gw 網(wǎng)關(guān)地址
4.route命令的輸出有以下幾欄:
Destination 目標(biāo)網(wǎng)段或者主機(jī);
Gateway 網(wǎng)關(guān)地址如果沒有設(shè)置則是"*"表示;
Genmask 網(wǎng)絡(luò)掩碼;
Flags一些可能的標(biāo)記如下:
U (路由是活動(dòng)的);
H (目標(biāo)是一個(gè)主機(jī));
G (使用網(wǎng)關(guān)gateway);
R (reinstate route動(dòng)態(tài)路由產(chǎn)生的表項(xiàng));
D?(dynamically?installed?by?daemon?or?redirect);
M?(modified?from?routing?daemon?or?redirect);
!??(reject?route);
Metric 路由距離;
Ref 路由項(xiàng)引用次數(shù);
Use 查找路由項(xiàng)的次數(shù);
Iface 該路由表項(xiàng)對(duì)應(yīng)的輸出接口。
網(wǎng)絡(luò)操作命令
Linux系統(tǒng)常用的網(wǎng)絡(luò)操作命令包括netstat、nslookup、host、finger和ping。
netstat命令的功能是顯示網(wǎng)絡(luò)連接、路由表和網(wǎng)絡(luò)接口信息,可以讓用戶得知目前都有哪些網(wǎng)絡(luò)連接正在運(yùn)作。nslookup命令的功能是查詢一臺(tái)機(jī)器的IP地址和其對(duì)應(yīng)的域名。它通常需要一臺(tái)域名服務(wù)器來提供域名服務(wù)。如果用戶已經(jīng)設(shè)置好域名服務(wù)器,就可以用這個(gè)命令查看不同主機(jī)的IP地址對(duì)應(yīng)的域名。host命令可根據(jù)主機(jī)名查詢主機(jī)的IP地址或根據(jù)主機(jī)IP地址查詢主機(jī)名。finger命令的功能是查詢用戶的信息,通常會(huì)顯示系統(tǒng)中某個(gè)用戶的用戶名、主目錄、停滯時(shí)間、登錄時(shí)間、登錄shell等信息。ping命令用于查看網(wǎng)絡(luò)上的主機(jī)是否在工作。
netstat
netstat命令的語法為:
netstat [選項(xiàng)]
netstat的常用參數(shù)說明如下:
-a 顯示所有socket包括正在監(jiān)聽的;
-c 每隔1秒就重新顯示一遍直到用戶中斷它;
-I?顯示所有網(wǎng)絡(luò)接口的信息格式同“ifconfig–e”;
-n 以網(wǎng)絡(luò)IP地址代替名稱顯示出網(wǎng)絡(luò)連接情形;
-r 顯示核心路由表格式同“route–e”;
-t 顯示TCP協(xié)議的連接情況;
-u 顯示UDP協(xié)議的連接情況;
-v 顯示正在進(jìn)行的工作。
示例:
在本機(jī)使用netstat命令,其輸出為如下:
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address ??????????Foreign Address ????????State ????
tcp ???????0 ???256 10.153.89.66:ssh ???????10.153.21.168:1054 ?????ESTABLISHED ?
tcp ???????0 ?????0 10.153.89.66:ssh ???????10.153.21.166:1222 ?????ESTABLISHED ?
tcp ???????0 ?????0 10.153.89.66:1521 ??????10.153.21.166:2625 ?????ESTABLISHED ?
tcp ???????0 ?????0 10.153.89.66:1521 ??????10.153.21.166:2623 ?????ESTABLISHED ?
……?
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags ??????Type ??????State ????????I-Node Path
unix ?9 ?????[ ] ????????DGRAM ???????????????????919 ???/dev/log
unix ?2 ?????[ ] ????????STREAM ????CONNECTED ????50246124 ?
unix ?3 ?????[ ] ????????STREAM ????CONNECTED ????3914245
/tmp/.ICE-unix/dcop18694-1074144356
unix ?3 ?????[ ] ????????STREAM ????CONNECTED ????3914244 ?
unix ?3 ?????[ ] ????????STREAM ????CONNECTED ????3914127 /tmp/.X11-unix/X0
nslookup
nslookup命令的功能是查詢一臺(tái)機(jī)器的IP地址和其對(duì)應(yīng)的域名。它通常需要一臺(tái)域名服務(wù)器來提供域名服務(wù)。如果用戶已經(jīng)設(shè)置好域名服務(wù)器,就可以用這個(gè)命令查看不同主機(jī)的IP地址對(duì)應(yīng)的域名。命令的語法為:
nslookup [IP地址/域名]
示例:
在本機(jī)執(zhí)行nslookup命令:
Default?Server:name.tlc.com.cn
Address:192.168.1.99
>
在符號(hào)”>”后面輸入要查詢的IP地址或域名并回車即可。如果要退出該命令輸入exit并回車即可。
host
host命令的功能基本與nslookup相同。命令的語法為:
host [選項(xiàng)][IP地址/域名/主機(jī)名]
host 的常用參數(shù)如下:
-a 顯示所查域名或IP地址、域名或主機(jī)名的相關(guān)信息。
示例:
[root]#host?zte.com.cn
zte.com.cn?has?address172.16.1.1
finger
finger命令的功能是查詢用戶的信息,通常會(huì)顯示系統(tǒng)中某個(gè)用戶的用戶名、主目錄、停滯時(shí)間、登錄時(shí)間、登錄shell等信息。如果要查詢遠(yuǎn)程機(jī)上的用戶信息,需要在用戶名后面接“@主機(jī)名”,采用[用戶名@主機(jī)名]的格式,不過要查詢的網(wǎng)絡(luò)主機(jī)需要運(yùn)行finger守護(hù)進(jìn)程。該命令的一般格式為:
finger [選項(xiàng)] [使用者] [用戶@主機(jī)]
finger的常用參數(shù)如下:
-s 顯示用戶的注冊(cè)名、實(shí)際姓名、終端名稱、寫狀態(tài)、停滯時(shí)間、登錄時(shí)間等信息;
-l 除了用-s選項(xiàng)顯示的信息外,還顯示用戶主目錄、登錄shell、郵件狀態(tài)等信息,以及用戶主目錄下的.plan、.project和.forward文件的內(nèi)容;
-p 除了不顯示.plan文件和.project文件以外與-l選項(xiàng)相同。
示例:
1.顯示用戶orcale的信息:
finger?oracle
其顯示結(jié)果為:
Login: oracle ??????????????????????????Name: (null)
Directory: /home/oracle ????????????????Shell: /bin/bash
On since Fri Feb ?6 16:26 (CST) on pts/1 from 10.153.21.166 ?33 seconds
idle
On since Wed Feb ?4 20:10 (CST) on pts/2 from 10.153.21.166 ??1 second
idle
No mail.
No Plan.
Ping命令
ping命令用于查看網(wǎng)絡(luò)上的主機(jī)是否在工作,它向該主機(jī)發(fā)送ICMPECHO_REQUEST包。有時(shí)我們想從網(wǎng)絡(luò)上的某臺(tái)主機(jī)上下載文件,可是又不知道那臺(tái)主機(jī)是否開著,就需要使用ping命令查看。該命令的一般格式為:
ping [選項(xiàng)] [主機(jī)名/IP地址]
ping的常用參數(shù)如下:
-c 數(shù)目 在發(fā)送指定數(shù)目的包后停止;
-d 設(shè)定SO_DEBUG的選項(xiàng);
-f 大量且快速地送網(wǎng)絡(luò)封包給一臺(tái)機(jī)器看它的回應(yīng);
-I 秒數(shù) 設(shè)定間隔幾秒送一個(gè)網(wǎng)絡(luò)封包給一臺(tái)機(jī)器預(yù)設(shè)值是一秒送一次;
-l 次數(shù) 在指定次數(shù)內(nèi)以最快的方式送封包數(shù)據(jù)到指定機(jī)器只有超級(jí)用戶可以使用此選項(xiàng);
-q 不顯示任何傳送封包的信息只顯示最后的結(jié)果;
-r 不經(jīng)由網(wǎng)關(guān)而直接送封包到一臺(tái)機(jī)器,通常是查看本機(jī)的網(wǎng)絡(luò)接口是否有問題;
-s 字節(jié)數(shù) 指定發(fā)送的數(shù)據(jù)字節(jié)數(shù),預(yù)設(shè)值是56,加上8字節(jié)的ICMP頭,一共是64ICMP數(shù)據(jù)字節(jié)。
常用網(wǎng)絡(luò)配置文件介紹
在Linux系統(tǒng)中,TCP/IP網(wǎng)絡(luò)是通過若干個(gè)文本文件進(jìn)行配置的,需要編輯這些文件來完成聯(lián)網(wǎng)工作。系統(tǒng)中重要的有關(guān)網(wǎng)絡(luò)配置文件為:
/etc/sysconfig/network
/etc/hosts
/etc/services
/etc/host.conf
/etc/nsswitch.conf
/etc/resolv.conf
/etc/xinetd.conf
/etc/modules.conf
/etc/sysconfig/network-scripts/ifcfg-ethN
這些文件都可以在系統(tǒng)運(yùn)行時(shí)進(jìn)行修改,不用啟動(dòng)或者停止任何守護(hù)程序,更改會(huì)立刻生效(除了/etc/sysconfig/network)。另外這些文件都支持由"#"開頭的注釋,每一個(gè)文
件都可以用man命令來獲取它們。
該文件用來指定服務(wù)器上的網(wǎng)絡(luò)配置信息,包含了控制和網(wǎng)絡(luò)有關(guān)的文件和守護(hù)程序的行為的參數(shù)。下面是一個(gè)例子文件:
NETWORKING=yes
HOSTNAME=machine1
GATEWAY=210.34.6.2
FORWARD_IPV4=yes
GATEWAYDEV=
其中NETWORK=yes/no表示網(wǎng)絡(luò)是否被配置;
HOSTNAME=hostname?hostname表示服務(wù)器的主機(jī)名;
GATEWAY=gw-ip?gw-ip表示網(wǎng)絡(luò)網(wǎng)關(guān)的IP地址;
FORWARD_IPV4=yes/no是否開啟IP轉(zhuǎn)發(fā)功能;
GAREWAYDEV=gw-dev?gw-dw表示網(wǎng)關(guān)的設(shè)備名,如eth0等。
/etc/hosts中包含了IP地址和主機(jī)名之間的映射,還包括主機(jī)名的別名,IP地址的設(shè)計(jì)使計(jì)算機(jī)容易識(shí)別,但對(duì)于人卻很難記住它們,為了解決這個(gè)問題,創(chuàng)建了/etc/hosts這個(gè)文件。下面是一個(gè)例子文件:
127.0.0.1 machine1 localhost.localdomain localhost
192.168.1.100 machine7
192.168.1.101 otherpc otheralias
在這個(gè)例子中,本機(jī)名是machine1,otherpc還有別名otheralias,它可以指向otheralias。一旦配置完機(jī)器的網(wǎng)絡(luò)配置文件,應(yīng)該重新啟動(dòng)網(wǎng)絡(luò)以使修改生效使用下面的命令來重新啟動(dòng)網(wǎng)絡(luò):
service?network?restart
/etc/hosts文件通常含有主機(jī)名、localhost和系統(tǒng)管理員經(jīng)常使用的系統(tǒng)別名,有時(shí)候telnet到Linux機(jī)器要等待很長(zhǎng)時(shí)間,可以通過在"/etc/hosts"加入客戶的機(jī)器的IP地址和主機(jī)名的匹配項(xiàng),就可以減少登錄等待時(shí)間。在沒有域名服務(wù)器情況下,系統(tǒng)上的所有網(wǎng)絡(luò)程序都通過查詢?cè)撐募斫馕鰧?duì)應(yīng)于某個(gè)主機(jī)名的IP地址,否則,其他的主機(jī)名通常使用DNS來解決,DNS客戶部分的配置在文件/etc/resolv.conf中。
/etc/services中包含了服務(wù)名和端口號(hào)之間的映射,不少的系統(tǒng)程序要使用這個(gè)文件,下面是缺省的/etc/services中的前幾行:
tcpmux 1/tcp ??????????????????????# TCP port service multiplexer
echo 7/tcp ?
echo 7/udp ?
discard 9/tcp sink null ?
discard 9/udp sink null ?
systat 11/tcp users ?
最左邊一列是主機(jī)服務(wù)名,中間一列是端口號(hào),“/”后面是端口類型,可以是TCP也可以是UDP。任何后面的列都是前面服務(wù)的別名。在這個(gè)文件中也存在著別名,它們出現(xiàn)在端口號(hào)后面,在上述例子中sink和null都是discard服務(wù)的別名。
/etc/host.conf文件指定如何解析主機(jī)名,Linux通過解析器庫來獲得主機(jī)名對(duì)應(yīng)的IP地址。下面是安裝后缺省的"/etc/host.conf"內(nèi)容:
order?hosts.bind
multi?on
"order" 指定主機(jī)名查詢順序,其參數(shù)為用逗號(hào)隔開的查找方法,支持的查找方法為bind、hosts和nis,分別代表DNS、/etc/hosts和NIS。這里規(guī)定先查詢"/etc/hosts"文件然后再使用DNS來解析域名。
"trim" 表明當(dāng)通過DNS進(jìn)行地址到主機(jī)名的轉(zhuǎn)換時(shí),域名將從主機(jī)名中被裁剪掉,trim可以被多個(gè)域包含多次,對(duì)/etc/hosts和NIS查詢方法不起作用,注意在/etc/hosts和NIS表中主機(jī)名是被適當(dāng)?shù)?有或沒有全域名)列出的。
"multi" 指定是否"/etc/hosts"文件中指定的主機(jī)可以有多個(gè)地址,值為on表示允許,擁有多個(gè)IP地址的主機(jī)一般稱為具有多個(gè)網(wǎng)絡(luò)界面;
"nospoof" 指是否允許對(duì)該服務(wù)器進(jìn)行IP地址欺騙值,為on表示不允許,IP欺騙是一種攻擊系統(tǒng)安全的手段,通過把IP地址偽裝成別的計(jì)算機(jī)來取得其它計(jì)算機(jī)的信任;
"alert" 當(dāng)nospoof指令為on時(shí),alert控制欺騙的企圖是否用syslog工具進(jìn)行記錄,值為on表示使用,缺省值為off;
rccorder" 如果被設(shè)置為on,所有的查詢將被重新排序所以在同一子網(wǎng)中的主機(jī)將首選被返回,缺省值為off。
/etc/nsswitch.conf文件是由Sun公司開發(fā)并用于管理系統(tǒng)中多個(gè)配置文件查找的順序,它比/etc/host.conf文件提供了更多的功能。/etc/nsswitch.conf中的每一行或者是注釋(以#號(hào)開頭)或者是一個(gè)關(guān)鍵字后跟冒號(hào)和一系列要試用的有順序的方法。每一個(gè)關(guān)鍵字是在/etc/目錄可以被/etc/nsswitch.conf控制的/etc文件的名字。下面是可以被包含的關(guān)鍵字:
aliases 郵件別名;
passwd 系統(tǒng)用戶;
group 用戶組;
shadow 隱蔽口令;
hosts 主機(jī)名和IP地址;
networks 網(wǎng)絡(luò)名和號(hào);
protocols 網(wǎng)絡(luò)協(xié)議;
services 端口號(hào)和服務(wù)名稱;
ethers 以太網(wǎng)號(hào);
rpc 遠(yuǎn)程進(jìn)程調(diào)用的名稱和號(hào);
netgroup 網(wǎng)內(nèi)組。
文件/etc/resolv.conf配置DNS客戶,它包含了主機(jī)的域名搜索順序和DNS服務(wù)器的地址,每一行應(yīng)包含一個(gè)關(guān)鍵字和一個(gè)或多個(gè)的由空格隔開的參數(shù)。
下面是一個(gè)例子文件:
nameserver?192.168.0.36
nameserve?r192.168.0.37
search?zte.com.cn
合法的參數(shù)及其意義如下:
nameserver表明DNS服務(wù)器的IP地址。可以有很多行的nameserver,每一個(gè)帶一個(gè)IP地址。在查詢時(shí)就按nameserver在本文件中的順序進(jìn)行,且只有當(dāng)?shù)谝粋€(gè)nameserver沒有反應(yīng)時(shí)才查詢下面的nameserver。
domain聲明主機(jī)的域名,很多程序用到它,如郵件系統(tǒng)。當(dāng)為沒有域名的主機(jī)進(jìn)行DNS查詢時(shí),也要用到。如果沒有域名,主機(jī)名將被使用,刪除所有在第一個(gè)點(diǎn)(.)前面的內(nèi)容。
search它的多個(gè)參數(shù)指明域名查詢順序,當(dāng)要查詢沒有域名的主機(jī),主機(jī)將在由search聲明的域中分別查找。domain和search不能共存,如果同時(shí)存在后面出現(xiàn)的將會(huì)被使用。
sortlist允許將得到域名結(jié)果進(jìn)行特定的排序。它的參數(shù)為網(wǎng)絡(luò)/掩碼對(duì),允許任意的排列順序。
xinetd的默認(rèn)配置文件是/etc/xinetd.conf。配置文件格式為
serviceservice-name
{
disabled=yes/no; //是否禁用
socket_type=xxx;?//TCP/IPsockettype,suchasstream,dgram,raw,....
protocol=xxx; //服務(wù)使用的協(xié)議
server=xxx; //服務(wù)daemon的完整路徑
server_args=xxx; //服務(wù)的參數(shù)
port=xxx; //指定服務(wù)的端口號(hào)
wait=xxx; //是否阻塞服務(wù)即單線程或多線程
user=xxx; //服務(wù)進(jìn)程的uid
group=xxx;?//gid
REUSE=xxx; //可重用標(biāo)志
......
}
示例:
1.配置ftp服務(wù)
在/etc/xinetd.d目錄下編輯vsftpd:
#default:on
#description:Thewu-ftpdFTPserverservesFTPconnections.Ituses
\
#normal,unencryptedusernamesandpasswordsforauthentication.
service?ftp
{
disable=no
socket_type=stream
wait=no
user=root
server=/usr/sbin/in.ftpd
server_args=-l-a
log_on_success+=DURATION
nice=10
}
2配置telnet服務(wù)
在/etc/xinetd.d目錄下編輯telnet:
#default:on
service?telnet
{
disable=no
flags=REUSE
socket_type=stream
wait=no
user=root
server=/usr/sbin/in.telnetd
log_on_failure+=USERID
}
配置完成后,重新啟動(dòng)服務(wù):
#/etc/rc.d/init.d/xinetd?restart
該配置文件定義了各種需要在啟動(dòng)時(shí)加載的模塊的參數(shù)信息,文件格式如下:
alias?eth0?tg3
alias?eth13?c905
系統(tǒng)網(wǎng)絡(luò)設(shè)備的配置文件保存在“/etc/sysconfig/network-scripts”目錄下,ifcfg-eth0包含第一塊網(wǎng)卡的配置信息,ifcfg-eth1包含第二塊網(wǎng)卡的配置信息。
下面是“/etc/sysconfig/network-scripts/ifcfg-eth0”文件的示例:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.66
NETMASK=255.255.255.0
GATEWAY=192.168.0.65
若希望手工修改網(wǎng)絡(luò)地址或在新的接口上增加新的網(wǎng)絡(luò)界面,可以通過修改對(duì)應(yīng)的文件(ifcfg-ethN)或創(chuàng)建新的文件來實(shí)現(xiàn)。
常用網(wǎng)絡(luò)操作方法
Linux提供了一組強(qiáng)有力的網(wǎng)絡(luò)命令來為用戶服務(wù),這些工具能夠幫助用戶登錄到遠(yuǎn)程計(jì)算機(jī)上、傳輸文件和執(zhí)行遠(yuǎn)程命令等。本節(jié)介紹下列幾個(gè)常用的有關(guān)網(wǎng)絡(luò)操作的命令ftp、telnet、r-等。
ftp遠(yuǎn)程文件傳輸
ftp命令是標(biāo)準(zhǔn)的文件傳輸協(xié)議的用戶接口。ftp是在TCP/IP網(wǎng)絡(luò)上的計(jì)算機(jī)之間傳輸文件的簡(jiǎn)單有效的方法。它允許用戶傳輸ASCII文件和二進(jìn)制文件。在ftp會(huì)話過程中,用戶可以通過使用ftp客戶程序連接到另一臺(tái)計(jì)算機(jī)上。從此用戶可以在目錄中上下移動(dòng)、列出目錄內(nèi)容、把文件從遠(yuǎn)程機(jī)拷貝到本地機(jī)上、把文件從本地機(jī)傳輸?shù)竭h(yuǎn)程系統(tǒng)中。需要注意的是,如果用戶沒有那個(gè)文件的存取權(quán)限,就不能從遠(yuǎn)程系統(tǒng)中獲得文件或向遠(yuǎn)程系統(tǒng)傳輸文件。為了使用ftp來傳輸文件,用戶必須知道遠(yuǎn)程計(jì)算機(jī)上的合法用戶名和口令,這個(gè)用戶名/口令的組合用來確認(rèn)ftp會(huì)話,并用來確定用戶對(duì)要傳輸?shù)奈募梢赃M(jìn)行什么樣的訪問。
ftp命令的一般格式如下:
$ftp 主機(jī)名/IP,如果沒有指定主機(jī)名ftp將給出提示符等待用戶輸入命令;
$ftp
ftp>
此時(shí)在ftp>提示符后面輸入open命令加主機(jī)名或IP地址,將試圖連接指定的主機(jī)。不管使用哪一種方法,如果連接成功,需要在遠(yuǎn)程機(jī)上登錄。用戶如果在遠(yuǎn)程機(jī)上有帳號(hào),就可以通過ftp使用這一帳號(hào)并需要提供口令。在遠(yuǎn)程機(jī)上的用戶帳號(hào)的讀寫權(quán)限決定該用戶在遠(yuǎn)程機(jī)上能下載什么文件和將上載文件放到哪個(gè)目錄中。
一旦用戶使用ftp在遠(yuǎn)程站點(diǎn)上登錄成功將,得到“ftp>“提示符。現(xiàn)在可以自由使用ftp提供的命令,可以用help命令取得可供使用的命令清單,也可以在help命令后面指定具體的命令名稱,獲得這條命令的說明。
最常用的命令有:
ls 列出遠(yuǎn)程機(jī)的當(dāng)前目錄;
cd 在遠(yuǎn)程機(jī)上改變工作目錄;
lcd 在本地機(jī)上改變工作目錄;
ascii 設(shè)置文件傳輸方式為ASCII模式,默認(rèn)情況下,ftp按ASCII模式傳輸文件用戶也可以指定其他模式。ascii和brinary命令的功能是設(shè)置傳輸?shù)哪J健S肁SCII模式傳輸文件對(duì)純文本是非常好的,但為避免對(duì)二進(jìn)制文件的破壞,用戶可以以二進(jìn)制模式傳輸文件;
binary 設(shè)置文件傳輸方式為二進(jìn)制模式;
close 終止當(dāng)前的ftp會(huì)話;
hash 每次傳輸完數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)后就顯示一個(gè)#號(hào);
get(mget) 從遠(yuǎn)程機(jī)傳送指定文件到本地機(jī),get命令的一般格式為:
get 文件名
mget 命令一次獲取多個(gè)遠(yuǎn)程文件,mget命令的一般格式為:
mget 文件名列表;
使用用空格分隔的或帶通配符的文件名列表來指定要獲取的文件,對(duì)其中的每個(gè)文件都要求用戶確認(rèn)是否傳送;
put(mput) 從本地機(jī)傳送指定文件到遠(yuǎn)程機(jī),put命令的一般格式為:
put 文件名
mput 命令一次發(fā)送多個(gè)本地文件mput命令的一般格式為:
mput 文件名列表;
使用用空格分隔的或帶通配符的文件名列表來指定要發(fā)送的文件,對(duì)其中的每個(gè)文件都要求用戶確認(rèn)是否發(fā)送;
open 連接遠(yuǎn)程ftp站點(diǎn);
quit 斷開與遠(yuǎn)程機(jī)的連接并退出ftp;
? 顯示本地幫助信息;
! 轉(zhuǎn)到Shell中;
示例:
使用ftp傳輸文件過程如下:
[root@localhost root]# ftp 192.168.1.66
Connected to 192.168.1.66 (192.168.1.66).
220 localhost.localdomain FTP server (Version wu-2.6.2-5) ready.
Name (192.168.1.66:root): test
331 Password required for test.
Password:
230 User oracle logged in. ?Access restrictions apply.
telnet
用戶使用telnet命令進(jìn)行遠(yuǎn)程登錄,該命令允許用戶使用telnet協(xié)議在遠(yuǎn)程計(jì)算機(jī)之間進(jìn)行通信,用戶可以通過網(wǎng)絡(luò)在遠(yuǎn)程計(jì)算機(jī)上登錄,就像登錄到本地機(jī)上執(zhí)行命令一樣。為了通過telnet登錄到遠(yuǎn)程計(jì)算機(jī)上,必須知道遠(yuǎn)程機(jī)上的合法用戶名和口令。雖然有些系統(tǒng)確實(shí)為遠(yuǎn)程用戶提供登錄功能,但出于對(duì)安全的考慮,要限制來賓的操作權(quán)限,因此這種情況下能使用的功能是很少的。當(dāng)允許遠(yuǎn)程用戶登錄時(shí),系統(tǒng)通常把這些用戶放在一個(gè)受限制的shell中,以防系統(tǒng)被懷有惡意的或不小心的用戶破壞。用戶還可以使用telnet從遠(yuǎn)程站點(diǎn)登錄到自己的計(jì)算機(jī)上,檢查電子郵件、編輯文件和運(yùn)行程序,就像在本地登錄一樣。但是用戶只能使用基于終端的環(huán)境而不是XWndows環(huán)境,telnet只為普通終端提供終端仿真,而不支持XWndow等圖形環(huán)境。
telnet命令的一般形式為:
telnet 主機(jī)名/IP
其中“主機(jī)名/IP”是要連接的遠(yuǎn)程機(jī)的主機(jī)名或IP地址。如果這一命令執(zhí)行成功將從遠(yuǎn)程機(jī)上得到login:提示符。
使用telnet命令登錄的過程如下:
$telnet 主機(jī)名/IP
一旦telnet成功地連接到遠(yuǎn)程系統(tǒng)上,就顯示登錄信息并提示用戶輸人用戶名和口令。如果用戶名和口令輸入正確,就能成功登錄并在遠(yuǎn)程系統(tǒng)上工作。在telnet提示符后面可以輸入很多命令,用來控制telnet會(huì)話過程,在telnet聯(lián)機(jī)幫助手冊(cè)中對(duì)這些命令有詳細(xì)的說明。
示例:
#telnet?192.168.1.66
Trying?192.168.1.66...
Connected?to?192.168.1.66.
Escapecharacteris'^]'.
login:?test
Password:
Last?login:?Mon?Feb?9?15:03:56?from?10.153.21.166
r-系列命令
除ftp和telnet以外,還可以使用r-系列命令訪問遠(yuǎn)程計(jì)算機(jī)和在網(wǎng)絡(luò)上交換文件。使用r-系列命令需要特別注意,因?yàn)槿绻脩舨恍⌒木蜁?huì)造成嚴(yán)重的安全漏洞。用戶發(fā)出一個(gè)r-系列命令后,遠(yuǎn)程系統(tǒng)檢查名為/etc/hosts.equiv的文件,以查看用戶的主機(jī)是否列在這個(gè)文件中。如果它沒有找到用戶的主機(jī)就檢查遠(yuǎn)程機(jī)上同名用戶的主目錄中名為.rhosts的文件,看是否包括該用戶的主機(jī)如果該用戶的主機(jī)包括在這兩個(gè)文件中的任何一個(gè)之中,該用戶執(zhí)行r-系列命令就不用提供口令。
rlogin命令:
rlogin是“remote login”(遠(yuǎn)程登錄)的縮寫。該命令與telnet命令很相似,允許用戶啟動(dòng)遠(yuǎn)程系統(tǒng)上的交互命令會(huì)話。rlogin的一般格式是:
rlogin [ -8EKLdx ] [ -e char ] [-k realm ] [ - l username ] host ?
一般最常用的格式是:
rlogin?host
rsh命令:
rsh是“remote shell”(遠(yuǎn)程shell)的縮寫。該命令在指定的遠(yuǎn)程主機(jī)上啟動(dòng)一個(gè)shell并執(zhí)行用戶在rsh命令行中指定的命令。如果用戶沒有給出要執(zhí)行的命令,rsh就用rlogin命令使用戶登錄到遠(yuǎn)程機(jī)上,rsh命令的一般格式是:
rsh [-Kdnx] [-k realm] [-l username] host [command] ?
一般常用的格式是:
rsh?host?[command]
command可以是從shell提示符下鍵入的任何Linux命令。
常用使用技巧
Linux下軟件包的安裝及卸載
在Linux操作系統(tǒng)下,幾乎所有的軟件均通過RPM進(jìn)行安裝卸載及管理等操作。RPM的全稱為Redhat Package Manager,是由Redhat公司提出的用于管理Linux下軟件包的軟件。Linux安裝時(shí),除了幾個(gè)核心模塊以外,其余幾乎所有的模塊均通過RPM完成安裝。RPM有五種操作模式分別為安裝、卸載、升級(jí)、查詢和驗(yàn)證。
RPM安裝操作
命令:
rpm –I?需要安裝的包文件名
舉例如下:
rpm-I?example.rpm 安裝example.rpm包;
rpm -iv example.rpm 安裝example.rpm包并在安裝過程中顯示正在安裝的文件信息;
rpm –ivh example.rpm 安裝example.rpm包并在安裝過程中顯示正在安裝的文件信息及安裝進(jìn)度。
RPM查詢操作
命令:
rpm?–q xxx
附加查詢命令:
a 查詢所有已經(jīng)安裝的包。
以下兩個(gè)附加命令用于查詢安裝包的信息:
i 顯示安裝包的信息;
l 顯示安裝包中的所有文件被安裝到哪些目錄下;
s 顯示安裝版中的所有文件狀態(tài)及被安裝到哪些目錄下。
以下兩個(gè)附加命令用于指定需要查詢的是安裝包還是已安裝后的文件:
p 查詢的是安裝包的信息;
f 查詢的是已安裝的某文件信息。
舉例如下:
rpm -qa|grep tomcat4 查看tomcat4是否被安裝;
rpm –qip example.rpm 查看example.rpm安裝包的信息;
rpm -qif /bin/df 查看/bin/df文件所在安裝包的信息;
rpm –qlf /bin/df 查看/bin/df文件所在安裝包中的各個(gè)文件分別被安裝到哪個(gè)目錄下;
RPM卸載操作
命令:
rpm –e 需要卸載的安裝包;
在卸載之前通常需要使用”rpm –q xx”命令查出需要卸載的安裝包名稱。
舉例如下:
rpm –et omcat4 卸載tomcat4軟件包
RPM升級(jí)操作
命令:
rpm –U 需要升級(jí)的包
舉例如下:
rpm –Uvh example.rpm 升級(jí)example.rpm軟件包
RPM驗(yàn)證操作
命令:
rpm –V 需要驗(yàn)證的包
舉例如下
rpm?–Vf?/etc/tomcat4/tomcat4.conf
輸出信息類似如下:
S.5?....T?c?/etc/tomcat4/tomcat4.conf
其中,S表示文件大小修改過,T表示文件日期修改過。
RPM的其他附加命令
--force 強(qiáng)制操作如強(qiáng)制安裝刪除等;
--requires 顯示該包的依賴關(guān)系;
--nodeps 忽略依賴關(guān)系并繼續(xù)操作。
Linux操作系統(tǒng)的時(shí)鐘系統(tǒng)
時(shí)鐘系統(tǒng)介紹
對(duì)于Linux操作系統(tǒng),主要有兩種時(shí)鐘系統(tǒng):
1.硬件時(shí)鐘系統(tǒng):該時(shí)鐘系統(tǒng)的運(yùn)行獨(dú)立于任何系統(tǒng)控制程序,在CPU內(nèi)部運(yùn)行,既使系統(tǒng)斷電,該時(shí)鐘系統(tǒng)仍然保持運(yùn)行。此時(shí)鐘系統(tǒng)常常被稱為實(shí)時(shí)時(shí)鐘系統(tǒng)RTC、BIOS時(shí)鐘系統(tǒng)或CMOS時(shí)鐘系統(tǒng)。
2.系統(tǒng)時(shí)間:該時(shí)間為L(zhǎng)inux內(nèi)核的時(shí)鐘系統(tǒng)所維護(hù),并且被定時(shí)中斷程序所驅(qū)動(dòng)。該時(shí)間僅當(dāng)Linux系統(tǒng)運(yùn)行過程中有意義,該系統(tǒng)時(shí)間表示為以UTC(通用協(xié)調(diào)時(shí)間 Universal Time Coordinated)計(jì)算。自1970年1月1日0時(shí)0分0秒起至當(dāng)前時(shí)刻所經(jīng)過的秒數(shù)(該數(shù)字不是整數(shù)以小數(shù)方式表示精度)。
在Linux系統(tǒng)中,真正起作用的是系統(tǒng)時(shí)間。硬件時(shí)鐘系統(tǒng)的唯一作用是在Linux系統(tǒng)沒有運(yùn)行時(shí),保持時(shí)間的運(yùn)行。當(dāng)Linux操作系統(tǒng)啟動(dòng)時(shí)系統(tǒng)會(huì)自動(dòng)將硬件時(shí)鐘系統(tǒng)的時(shí)間同步到Linux系統(tǒng)時(shí)間,并且在之后的整個(gè)Linux運(yùn)行過程中不再使用該硬件時(shí)鐘系統(tǒng)。而在Linux操作系統(tǒng)關(guān)閉時(shí),系統(tǒng)會(huì)自動(dòng)將當(dāng)前的Linux系統(tǒng)時(shí)間同步到硬件時(shí)鐘系統(tǒng)所維護(hù)的時(shí)間。
硬件時(shí)鐘系統(tǒng)與系統(tǒng)時(shí)間的同步
/sbin/hwclock用于同步硬件時(shí)鐘系統(tǒng)的時(shí)間與Linux操作系統(tǒng)時(shí)間。
查看當(dāng)前硬件時(shí)鐘系統(tǒng)時(shí)間的命令為:
/sbin/hwclock?--show
將硬件時(shí)鐘系統(tǒng)時(shí)間同步到Linux操作系統(tǒng)時(shí)間的命令為:
/sbin/hwclock?--hctosys
將Linux操作系統(tǒng)時(shí)間同步到硬件時(shí)鐘系統(tǒng)時(shí)間的命令為:
/sbin/hwclock?--systohc
如果觀察系統(tǒng)啟動(dòng)/關(guān)閉時(shí)執(zhí)行的初始化腳本”/etc/rc.d/rc.sysinit”,可以發(fā)現(xiàn)系統(tǒng)啟動(dòng)過程中,自動(dòng)調(diào)用“/sbin/hwclock –hctosys”將硬件時(shí)鐘系統(tǒng)時(shí)間同步到操作系統(tǒng)時(shí)間;而在系統(tǒng)關(guān)閉過程中,自動(dòng)調(diào)用“/sbin/hwclock –systohc”將操作系統(tǒng)時(shí)間同步到硬件時(shí)鐘系統(tǒng)時(shí)間。
系統(tǒng)信息及運(yùn)行狀態(tài)監(jiān)控
Linux的文件系統(tǒng)中,有一個(gè)特殊目錄“/proc”,該目錄下列出的文件并非保存在磁盤上,而是內(nèi)存中的一個(gè)映像。在該目錄下可以找到許多有意思的東西,例如:
/proc/cpuinfo 本機(jī)CPU的相關(guān)信息
/proc/meminfo 本機(jī)內(nèi)存及交換分區(qū)的使用信息
/proc/modules 本機(jī)已安裝的硬件模塊信息
/proc/mounts 本機(jī)已掛載mount上的設(shè)備信息
此外,該目錄下有一些以數(shù)字為名稱的子目錄,每個(gè)子目錄用于維護(hù)一個(gè)正在運(yùn)行的進(jìn)程,而目錄名即為相應(yīng)的進(jìn)程ID。例如進(jìn)入名稱為“1”的子目錄:
cd?/proc/1
該目錄下,文件cmdline中的內(nèi)容為該進(jìn)程運(yùn)行時(shí)執(zhí)行的命令行,environ文件中的內(nèi)容為該進(jìn)程運(yùn)行時(shí)的環(huán)境變量信息,stat文件中存放的時(shí)該進(jìn)程運(yùn)行的狀態(tài)信息等。
通過查看/proc目錄下的文件,可以獲取幾乎所有的系統(tǒng)信息及系統(tǒng)的運(yùn)行狀態(tài)信息。事實(shí)上,Linux下的諸多查詢系統(tǒng)狀態(tài)信息的命令,也是通過讀取該目錄下的文件而獲取的。
以下是一些用于查看系統(tǒng)狀態(tài)信息的命令。
df命令
用于查看Linux文件系統(tǒng)的狀態(tài)信息,顯示各個(gè)分區(qū)的容量、已使用量、未使用量及掛載點(diǎn)等信息。如:
df –k 以千字節(jié)KB為單位顯示各分區(qū)的信息;
df –a 顯示所有分區(qū)包括大小為0的分區(qū);
df –T 顯示分區(qū)類型;
du命令
用于查看文件或文件夾的大小,如:
du –b /home 以字節(jié)為單位顯示/home文件夾下各個(gè)子文件夾的大小;
du –ks /home以千字節(jié)KB為單位顯示/home文件夾的總大小
top命令
用于實(shí)時(shí)查看系統(tǒng)狀態(tài)信息。運(yùn)行該命令后屏幕上會(huì)顯示如下信息:
CPU狀態(tài)(CPU states):包括用戶進(jìn)程占用比率、系統(tǒng)進(jìn)程占用比率、用戶的nice優(yōu)先級(jí)進(jìn)程占用比率及空閑CPU資源比率等;
內(nèi)存狀態(tài)(Mem);包括內(nèi)存總量、使用量、空閑量等;
交換分區(qū)狀態(tài)(Swap);包括交換分區(qū)總量、使用量、空閑量等;
每個(gè)進(jìn)程的狀態(tài):包括進(jìn)程ID、用戶名、優(yōu)先級(jí)、CPU和內(nèi)存使用量,以及運(yùn)行該進(jìn)程時(shí)執(zhí)行的命令行;
執(zhí)行top命令后,每隔5秒,系統(tǒng)會(huì)自動(dòng)刷新一次狀態(tài)信息。如果要指定刷新間隔,在啟動(dòng)時(shí)加入-d參數(shù)即可。例如:
top –d 1 啟動(dòng)top并且每隔1秒刷新一次
進(jìn)入top,后按下如下按鈕會(huì)有相應(yīng)功能:
空格 立即刷新顯示信息;
M 按內(nèi)存使用量排序;
N 按進(jìn)程ID排序;
P 按CPU使用量排序;
c 擴(kuò)展命令行信息,顯示完整的命令行;
? 顯示幫助信息;
q 退出top程序。
iostat命令
統(tǒng)計(jì)并輸出CPU使用信息及特定設(shè)備或分區(qū)的IO信息。
iostat –c 僅顯示CPU使用情況統(tǒng)計(jì)信息;
iostat –d 僅顯示設(shè)備/分區(qū)使用情況統(tǒng)計(jì)信息;
iostat –d 2 統(tǒng)計(jì)設(shè)備/分區(qū)使用情況并每隔2秒刷新一次;
顯示的IO統(tǒng)計(jì)信息中各部分說明如下:
tps 設(shè)備每秒收到的IO傳送請(qǐng)求數(shù);
Blk_read/s 設(shè)備每秒讀入的塊數(shù)量;
Blk_wrtn/s 設(shè)備每秒寫入的塊數(shù)量;
Blk_read 設(shè)備讀入的總塊數(shù)量;
Blk_wrtn 設(shè)備寫入的總塊數(shù)量;
顯示的CPU統(tǒng)計(jì)信息,各部分的含義同top。
打包/壓縮工具tar
tar是Linux下最常用的打包、壓縮工具,它在Linux中扮演類似于WinZip或
WinRAR在Windows下的角色。下面是該工具的常用命令參數(shù)及運(yùn)用舉例。
主要命令:
-c 創(chuàng)建包;
-x 解包‘
-t 列出包中的內(nèi)容;
-r 增加文件到指定包中;
-u 更新包中的文件。
可選命令:
-j 創(chuàng)建或解開包時(shí)使用bzip2進(jìn)行壓縮或解壓;
-z 創(chuàng)建或解開包時(shí)使用gzip進(jìn)行壓縮或解壓;
-Z 創(chuàng)建或解開包時(shí)使用compress進(jìn)行壓縮或解壓;
-f 后面跟指定的包文件名;
-v 顯示打包/解包過程;
-C 指定解包后的路徑。
例如:
tar –czf tmp.tar.gz /tmp 將/tmp目錄壓縮打包,存放為tmp.tar.gz;
tar –xzf tmp.tar.gz -C /home將tmp.tar.gz包解到/home目錄下;
tar –t tmp.tar.gz 查看tmp.tar.gz包中的文件信息;
文件及文件內(nèi)容的查找
Linux下提供完善的文件及文件內(nèi)容查找命令,分別介紹如下。
文件查找命令find
find命令用于查找文件系統(tǒng)中的指定文件,其命令格式為:
find 要查找的路徑 表達(dá)式
例如
find . -name1.txt 在當(dāng)前目錄及其子目錄下查找文件1.txt;
find /tmp -name1.txt 在/tmp目錄及其子目錄下查找文件1.txt;
文件內(nèi)容查找命令grep
grep命令用于查找指定的模式匹配,格式為:
grep [命令選項(xiàng)] 要查找的匹配模式 [要查找的文件]
例如:
grep cams test.txt 在test.txt文件中查找cams字符串;
grep –r cams /root/cams 在/root/cams目錄及其子目錄下的所有文件中查找cams字符串;
grep命令除了能夠查找文件外,還能夠?qū)⑷我廨敵隽髦囟ㄏ虻絞rep進(jìn)行查找:
ps- ef|grep ora 查找進(jìn)程名中包含ora的所有進(jìn)程信息;
Linux的系統(tǒng)服務(wù)及其配置
服務(wù)簡(jiǎn)介
Linux系統(tǒng)服務(wù)是在Linux啟動(dòng)時(shí)自動(dòng)加載,并在Linux退出時(shí)自動(dòng)停止的系統(tǒng)任務(wù)。在Linux啟動(dòng)過程中,我們可以看得很多“starting…”提示信息,該信息表示正在啟動(dòng)系統(tǒng)服務(wù)。而在Linux退出時(shí)我們也能夠看到相應(yīng)的“Stopping…”信息,表示系統(tǒng)服務(wù)正在停止。Linux自身有許多系統(tǒng)任務(wù),如network服務(wù)用于支持網(wǎng)絡(luò)連接等。
啟動(dòng)和停止服務(wù)
service命令用于啟動(dòng)及停止某個(gè)服務(wù),例如:
service zte stop 停止zte服務(wù)
service oracle?start 啟動(dòng)oracled服務(wù)
service tomcat4 start 啟動(dòng)tomcat4服務(wù)
CAMS引入的三個(gè)服務(wù)間有依賴關(guān)系,即zte服務(wù)和tomcat4服務(wù)依賴與oracled服務(wù),在oracled服務(wù)啟動(dòng)前不能啟動(dòng)zte服務(wù)和tomcat4服務(wù),而在oracled服務(wù)停止前必須先停止zte服務(wù)和tomcat4服務(wù)。
服務(wù)的添加刪除自動(dòng)運(yùn)行及狀態(tài)
CAMS在安裝過程中會(huì)自動(dòng)添加相關(guān)的服務(wù),在安裝的最后過程中會(huì)提示用戶是否啟動(dòng)服務(wù)使服務(wù)生效。需要注意的是一個(gè)服務(wù)被添加后并不表示該服務(wù)在系統(tǒng)啟動(dòng)過程中會(huì)自動(dòng)運(yùn)行,僅表示可以使用service命令來啟動(dòng)、停止服務(wù):
添加服務(wù)的步驟為:
chkconfig --add zte
將服務(wù)添加以后,該服務(wù)即可以使用service來啟動(dòng)/停止了。
刪除服務(wù):
如果要?jiǎng)h除某項(xiàng)服務(wù)將上述命令的add改為del即可:
chkconfig --del zte
3.設(shè)置服務(wù)自動(dòng)運(yùn)行
Linux運(yùn)行有7種運(yùn)行級(jí)別,分別使用0-6來表示,控制臺(tái)界面運(yùn)行級(jí)別為3,圖形界面運(yùn)行級(jí)別為5。要使某服務(wù)在系統(tǒng)啟動(dòng)時(shí)自動(dòng)運(yùn)行,使用chkconfig將該服務(wù)添加到相應(yīng)級(jí)別的自啟動(dòng)服務(wù)列表中即可:
chkconfig --evel 35 zte on
上面的命令將zte服務(wù)添加到級(jí)別為3、5的自啟動(dòng)服務(wù)列表中,而下面的命令則將服務(wù)zte從級(jí)別為3、5的自啟動(dòng)服務(wù)列表中刪除:
chkconfig –level 35 zte off
如果需要查看某項(xiàng)服務(wù)的自啟動(dòng)狀態(tài)信息,使用如下命令即可:
chkconfig –list zte
總結(jié)
- 上一篇: 关于PWM的一些事
- 下一篇: 微软开源 纸牌游戏代码_5个适用于Lin