1.uname查看linux內(nèi)核版本 最常用 的命令,適用于CentOS,F(xiàn)edora,Debian,Ubuntu等各種linux發(fā)行版本。
創(chuàng)新互聯(lián)建站專(zhuān)注于企業(yè)成都全網(wǎng)營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、阿合奇網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁(yè)面制作、商城網(wǎng)站定制開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為阿合奇等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
這里我用的服務(wù)器是CentOS7版本
uname -a
列出系統(tǒng)所有信息
解釋如下
也可以只查詢(xún)某一項(xiàng)信息
a.顯示主機(jī)類(lèi)型:
uname -m
b.顯示主機(jī)名
uname -n
c.顯示操作系統(tǒng)發(fā)行編號(hào):
uname -r
d.顯示操作系統(tǒng)名稱(chēng):
uname -s
e.顯示系統(tǒng)版本與時(shí)間:
uname -v
2.使用linux配置文件查看
a.查看內(nèi)核版本
cat /proc/version
相比較uname而言可以看到開(kāi)發(fā)者組織和gcc版本號(hào)
b.查看發(fā)行版本
cat /etc/redhat-release
3.Linux dmesg命令用于顯示開(kāi)機(jī)信息
kernel會(huì)將開(kāi)機(jī)信息存儲(chǔ)在ring buffer中。開(kāi)機(jī)信息亦保存在/var/log目錄中,名稱(chēng)為dmesg的文件里。
查看linux內(nèi)核版本
dmesg | grep Linux
一、Linux0.11下添加系統(tǒng)調(diào)用:\x0d\x0a\x0d\x0a我在bochs2.2.1中對(duì)linux0.11內(nèi)核添加了一個(gè)新的系統(tǒng)調(diào)用,步驟如下: \x0d\x0a1./usr/src/linux/include/unistd.h中添加:#define __NR_mytest 87 \x0d\x0a然后在下面聲明函數(shù)原型:int mytest(); \x0d\x0a2./usr/src/linux/include/linux/sys.h中添加:extern int sys_mytest(); \x0d\x0a然后在sys_call_table中最后加上sys_mytest; \x0d\x0a3.在/usr/src/linux/kernel/sys.c中添加函數(shù)實(shí)現(xiàn)如下: \x0d\x0aint sys_mytest(){ \x0d\x0aprintk("This is a test!"); \x0d\x0areturn 123; \x0d\x0a} \x0d\x0a4.在/usr/src/linux/kernel/system_call.s中對(duì)系統(tǒng)調(diào)用號(hào)加1(原來(lái)是86改成了87) \x0d\x0a5.然后到/usr/src/linux目錄下編譯內(nèi)核make clean; make Image \x0d\x0a6. cp /usr/src/linux/include/unistd.h /usr/include/unistd.h \x0d\x0a7. reset bochs \x0d\x0a8. 在/usr/root中生成test.c文件如下: \x0d\x0a#define __LIBRARY__ \x0d\x0a#include \x0d\x0a_syscall0(int,mytest) \x0d\x0aint main(){ \x0d\x0aint a; \x0d\x0aa = mytest(); \x0d\x0aprintf("%d", a); \x0d\x0areturn 0; \x0d\x0a} \x0d\x0a9.然后gcc test.c編譯之后運(yùn)行a.out,前面所有步驟都通過(guò),但是每次調(diào)用都是返回-1,然后我查過(guò)errno為1(表示操作不允許),就不知道為什么了? \x0d\x0a系統(tǒng)知道的高手們能夠告知一下,不勝感激!這個(gè)問(wèn)題困擾我很久了! \x0d\x0a\x0d\x0a二、新Linux內(nèi)核添加系統(tǒng)調(diào)用\x0d\x0a\x0d\x0a如何在Linux系統(tǒng)中添加新的系統(tǒng)調(diào)用\x0d\x0a系統(tǒng)調(diào)用是應(yīng)用程序和操作系統(tǒng)內(nèi)核之間的功能接口。其主要目的是使得用戶(hù)可以使用操作系統(tǒng)提供的有關(guān)設(shè)備管理、輸入/輸入系統(tǒng)、文件系統(tǒng)和進(jìn)程控制、通信以及存儲(chǔ)管理等方面的功能,而不必了解系統(tǒng)程序的內(nèi)部結(jié)構(gòu)和有關(guān)硬件細(xì)節(jié),從而起到減輕用戶(hù)負(fù)擔(dān)和保護(hù)系統(tǒng)以及提高資源利用率的作用。\x0d\x0a\x0d\x0aLinux操作系統(tǒng)作為自由軟件的代表,它優(yōu)良的性能使得它的應(yīng)用日益廣泛,不僅得到專(zhuān)業(yè)人士的肯定,而且商業(yè)化的應(yīng)用也是如火如荼。在Linux中,大部分的系統(tǒng)調(diào)用包含在Linux的libc庫(kù)中,通過(guò)標(biāo)準(zhǔn)的C函數(shù)調(diào)用方法可以調(diào)用這些系統(tǒng)調(diào)用。那么,對(duì)Linux的發(fā)燒友來(lái)說(shuō),如何在Linux中增加新的系統(tǒng)調(diào)用呢? \x0d\x0a1 Linux系統(tǒng)調(diào)用機(jī)制\x0d\x0a\x0d\x0a在Linux系統(tǒng)中,系統(tǒng)調(diào)用是作為一種異常類(lèi)型實(shí)現(xiàn)的。它將執(zhí)行相應(yīng)的機(jī)器代碼指令來(lái)產(chǎn)生異常信號(hào)。產(chǎn)生中斷或異常的重要效果是系統(tǒng)自動(dòng)將用戶(hù)態(tài)切換為核心態(tài)來(lái)對(duì)它進(jìn)行處理。這就是說(shuō),執(zhí)行系統(tǒng)調(diào)用異常指令時(shí),自動(dòng)地將系統(tǒng)切換為核心態(tài),并安排異常處理程序的執(zhí)行。Linux用來(lái)實(shí)現(xiàn)系統(tǒng)調(diào)用異常的實(shí)際指令是:\x0d\x0a\x0d\x0aInt $0x80\x0d\x0a\x0d\x0a這一指令使用中斷/異常向量號(hào)128(即16進(jìn)制的80)將控制權(quán)轉(zhuǎn)移給內(nèi)核。為達(dá)到在使用系統(tǒng)調(diào)用時(shí)不必用機(jī)器指令編程,在標(biāo)準(zhǔn)的C語(yǔ)言庫(kù)中為每一系統(tǒng)調(diào)用提供了一段短的子程序,完成機(jī)器代碼的編程工作。事實(shí)上,機(jī)器代碼段非常簡(jiǎn)短。它所要做的工作只是將送給系統(tǒng)調(diào)用的參數(shù)加載到CPU寄存器中,接著執(zhí)行int $0x80指令。然后運(yùn)行系統(tǒng)調(diào)用,系統(tǒng)調(diào)用的返回值將送入CPU的一個(gè)寄存器中,標(biāo)準(zhǔn)的庫(kù)子程序取得這一返回值,并將它送回用戶(hù)程序。\x0d\x0a\x0d\x0a為使系統(tǒng)調(diào)用的執(zhí)行成為一項(xiàng)簡(jiǎn)單的任務(wù),Linux提供了一組預(yù)處理宏指令。它們可以用在程序中。這些宏指令取一定的參數(shù),然后擴(kuò)展為調(diào)用指定的系統(tǒng)調(diào)用的函數(shù)。\x0d\x0a\x0d\x0a這些宏指令具有類(lèi)似下面的名稱(chēng)格式:\x0d\x0a\x0d\x0a_syscallN(parameters)\x0d\x0a\x0d\x0a其中N是系統(tǒng)調(diào)用所需的參數(shù)數(shù)目,而parameters則用一組參數(shù)代替。這些參數(shù)使宏指令完成適合于特定的系統(tǒng)調(diào)用的擴(kuò)展。例如,為了建立調(diào)用setuid()系統(tǒng)調(diào)用的函數(shù),應(yīng)該使用:\x0d\x0a\x0d\x0a_syscall1( int, setuid, uid_t, uid )\x0d\x0a\x0d\x0asyscallN( )宏指令的第1個(gè)參數(shù)int說(shuō)明產(chǎn)生的函數(shù)的返回值的類(lèi)型是整型,第2個(gè)參數(shù)setuid說(shuō)明產(chǎn)生的函數(shù)的名稱(chēng)。后面是系統(tǒng)調(diào)用所需要的每個(gè)參數(shù)。這一宏指令后面還有兩個(gè)參數(shù)uid_t和uid分別用來(lái)指定參數(shù)的類(lèi)型和名稱(chēng)。\x0d\x0a\x0d\x0a另外,用作系統(tǒng)調(diào)用的參數(shù)的數(shù)據(jù)類(lèi)型有一個(gè)限制,它們的容量不能超過(guò)四個(gè)字節(jié)。這是因?yàn)閳?zhí)行int $0x80指令進(jìn)行系統(tǒng)調(diào)用時(shí),所有的參數(shù)值都存在32位的CPU寄存器中。使用CPU寄存器傳遞參數(shù)帶來(lái)的另一個(gè)限制是可以傳送給系統(tǒng)調(diào)用的參數(shù)的數(shù)目。這個(gè)限制是最多可以傳遞5個(gè)參數(shù)。所以Linux一共定義了6個(gè)不同的_syscallN()宏指令,從_syscall0()、_syscall1()直到_syscall5()。\x0d\x0a\x0d\x0a一旦_syscallN()宏指令用特定系統(tǒng)調(diào)用的相應(yīng)參數(shù)進(jìn)行了擴(kuò)展,得到的結(jié)果是一個(gè)與系統(tǒng)調(diào)用同名的函數(shù),它可以在用戶(hù)程序中執(zhí)行這一系統(tǒng)調(diào)用。\x0d\x0a2 添加新的系統(tǒng)調(diào)用 \x0d\x0a如果用戶(hù)在Linux中添加新的系統(tǒng)調(diào)用,應(yīng)該遵循幾個(gè)步驟才能添加成功,下面幾個(gè)步驟詳細(xì)說(shuō)明了添加系統(tǒng)調(diào)用的相關(guān)內(nèi)容。\x0d\x0a\x0d\x0a(1) 添加源代碼\x0d\x0a\x0d\x0a第一個(gè)任務(wù)是編寫(xiě)加到內(nèi)核中的源程序,即將要加到一個(gè)內(nèi)核文件中去的一個(gè)函數(shù),該函數(shù)的名稱(chēng)應(yīng)該是新的系統(tǒng)調(diào)用名稱(chēng)前面加上sys_標(biāo)志。假設(shè)新加的系統(tǒng)調(diào)用為mycall(int number),在/usr/src/linux/kernel/sys.c文件中添加源代碼,如下所示:\x0d\x0aasmlinkage int sys_mycall(int number) \x0d\x0a{ \x0d\x0areturn number; \x0d\x0a}\x0d\x0a作為一個(gè)最簡(jiǎn)單的例子,我們新加的系統(tǒng)調(diào)用僅僅返回一個(gè)整型值。\x0d\x0a\x0d\x0a(2) 連接新的系統(tǒng)調(diào)用\x0d\x0a\x0d\x0a添加新的系統(tǒng)調(diào)用后,下一個(gè)任務(wù)是使Linux內(nèi)核的其余部分知道該程序的存在。為了從已有的內(nèi)核程序中增加到新的函數(shù)的連接,需要編輯兩個(gè)文件。\x0d\x0a\x0d\x0a在我們所用的Linux內(nèi)核版本(RedHat 6.0,內(nèi)核為2.2.5-15)中,第一個(gè)要修改的文件是:\x0d\x0a\x0d\x0a/usr/src/linux/include/asm-i386/unistd.h\x0d\x0a\x0d\x0a該文件中包含了系統(tǒng)調(diào)用清單,用來(lái)給每個(gè)系統(tǒng)調(diào)用分配一個(gè)唯一的號(hào)碼。文件中每一行的格式如下:\x0d\x0a\x0d\x0a#define __NR_name NNN\x0d\x0a\x0d\x0a其中,name用系統(tǒng)調(diào)用名稱(chēng)代替,而NNN則是該系統(tǒng)調(diào)用對(duì)應(yīng)的號(hào)碼。應(yīng)該將新的系統(tǒng)調(diào)用名稱(chēng)加到清單的最后,并給它分配號(hào)碼序列中下一個(gè)可用的系統(tǒng)調(diào)用號(hào)。我們的系統(tǒng)調(diào)用如下:\x0d\x0a\x0d\x0a#define __NR_mycall 191\x0d\x0a\x0d\x0a系統(tǒng)調(diào)用號(hào)為191,之所以系統(tǒng)調(diào)用號(hào)是191,是因?yàn)長(zhǎng)inux-2.2內(nèi)核自身的系統(tǒng)調(diào)用號(hào)碼已經(jīng)用到190。\x0d\x0a\x0d\x0a第二個(gè)要修改的文件是:\x0d\x0a\x0d\x0a/usr/src/linux/arch/i386/kernel/entry.S\x0d\x0a\x0d\x0a該文件中有類(lèi)似如下的清單:\x0d\x0a.long SYMBOL_NAME()\x0d\x0a\x0d\x0a該清單用來(lái)對(duì)sys_call_table[]數(shù)組進(jìn)行初始化。該數(shù)組包含指向內(nèi)核中每個(gè)系統(tǒng)調(diào)用的指針。這樣就在數(shù)組中增加了新的內(nèi)核函數(shù)的指針。我們?cè)谇鍐巫詈筇砑右恍校篭x0d\x0a.long SYMBOL_NAME(sys_mycall)\x0d\x0a\x0d\x0a(3) 重建新的Linux內(nèi)核\x0d\x0a\x0d\x0a為使新的系統(tǒng)調(diào)用生效,需要重建Linux的內(nèi)核。這需要以超級(jí)用戶(hù)身份登錄。\x0d\x0a#pwd \x0d\x0a/usr/src/linux \x0d\x0a#\x0d\x0a\x0d\x0a超級(jí)用戶(hù)在當(dāng)前工作目錄(/usr/src/linux)下,才可以重建內(nèi)核。\x0d\x0a\x0d\x0a#make config \x0d\x0a#make dep \x0d\x0a#make clearn \x0d\x0a#make bzImage\x0d\x0a\x0d\x0a編譯完畢后,系統(tǒng)生成一可用于安裝的、壓縮的內(nèi)核映象文件:\x0d\x0a\x0d\x0a/usr/src/linux/arch/i386/boot/bzImage \x0d\x0a(4) 用新的內(nèi)核啟動(dòng)系統(tǒng) \x0d\x0a要使用新的系統(tǒng)調(diào)用,需要用重建的新內(nèi)核重新引導(dǎo)系統(tǒng)。為此,需要修改/etc/lilo.conf文件,在我們的系統(tǒng)中,該文件內(nèi)容如下:\x0d\x0a\x0d\x0aboot=/dev/hda \x0d\x0amap=/boot/map \x0d\x0ainstall=/boot/boot.b \x0d\x0aprompt \x0d\x0atimeout=50 \x0d\x0a\x0d\x0aimage=/boot/vmlinuz-2.2.5-15 \x0d\x0alabel=linux \x0d\x0aroot=/dev/hdb1 \x0d\x0a read-only \x0d\x0a\x0d\x0aother=/dev/hda1 \x0d\x0alabel=dos \x0d\x0atable=/dev/had\x0d\x0a\x0d\x0a首先編輯該文件,添加新的引導(dǎo)內(nèi)核:\x0d\x0aimage=/boot/bzImage-new \x0d\x0alabel=linux-new \x0d\x0aroot=/dev/hdb1 \x0d\x0aread-only\x0d\x0a\x0d\x0a添加完畢,該文件內(nèi)容如下所示:\x0d\x0aboot=/dev/hda \x0d\x0amap=/boot/map \x0d\x0ainstall=/boot/boot.b \x0d\x0aprompt \x0d\x0atimeout=50 \x0d\x0a\x0d\x0aimage=/boot/bzImage-new \x0d\x0alabel=linux-new \x0d\x0aroot=/dev/hdb1 \x0d\x0aread-only \x0d\x0a\x0d\x0aimage=/boot/vmlinuz-2.2.5-15 \x0d\x0alabel=linux \x0d\x0aroot=/dev/hdb1 \x0d\x0aread-only \x0d\x0a\x0d\x0aother=/dev/hda1 \x0d\x0alabel=dos \x0d\x0atable=/dev/hda\x0d\x0a\x0d\x0a這樣,新的內(nèi)核映象bzImage-new成為缺省的引導(dǎo)內(nèi)核。為了使用新的lilo.conf配置文件,還應(yīng)執(zhí)行下面的命令:\x0d\x0a#cp /usr/src/linux/arch/i386/boot/zImage /boot/bzImage-new\x0d\x0a\x0d\x0a其次配置lilo:\x0d\x0a\x0d\x0a# /sbin/lilo\x0d\x0a\x0d\x0a現(xiàn)在,當(dāng)重新引導(dǎo)系統(tǒng)時(shí),在boot:提示符后面有三種選擇:linux-new 、linux、dos,新內(nèi)核成為缺省的引導(dǎo)內(nèi)核。\x0d\x0a至此,新的Linux內(nèi)核已經(jīng)建立,新添加的系統(tǒng)調(diào)用已成為操作系統(tǒng)的一部分,重新啟動(dòng)Linux,用戶(hù)就可以在應(yīng)用程序中使用該系統(tǒng)調(diào)用了。\x0d\x0a\x0d\x0a(5)使用新的系統(tǒng)調(diào)用\x0d\x0a\x0d\x0a在應(yīng)用程序中使用新添加的系統(tǒng)調(diào)用mycall。同樣為實(shí)驗(yàn)?zāi)康模覀儗?xiě)了一個(gè)簡(jiǎn)單的例子xtdy.c。\x0d\x0a\x0d\x0a/* xtdy.c */ \x0d\x0a#include \x0d\x0a_syscall1(int,mycall,int,ret) \x0d\x0amain() \x0d\x0a{ \x0d\x0aprintf("%d \n",mycall(100)); \x0d\x0a}\x0d\x0a編譯該程序:\x0d\x0a# cc -o xtdy xtdy.c\x0d\x0a執(zhí)行:\x0d\x0a# xtdy\x0d\x0a結(jié)果:\x0d\x0a# 100\x0d\x0a注意,由于使用了系統(tǒng)調(diào)用,編譯和執(zhí)行程序時(shí),用戶(hù)都應(yīng)該是超級(jí)用戶(hù)身份。
看系統(tǒng)調(diào)用,還有庫(kù)函數(shù),以前一直不明白,總是以為 系統(tǒng)調(diào)用跟庫(kù)函數(shù)是一樣的,但是今天才知道是不一樣的。
庫(kù)函數(shù)也就是我們通常所說(shuō)的應(yīng)用編程接口API,它其實(shí)就是一個(gè)函數(shù)定義,比如常見(jiàn)read()、write()等函數(shù)說(shuō)明了如何獲得一個(gè)給定的服務(wù),但是系統(tǒng)調(diào)用是通過(guò)軟中斷向內(nèi)核發(fā)出一個(gè)明確的請(qǐng)求,再者系統(tǒng)調(diào)用是在內(nèi)核完成的,而用戶(hù)態(tài)的函數(shù)是在函數(shù)庫(kù)完成的。
系統(tǒng)調(diào)用發(fā)生在內(nèi)核空間,因此如果在用戶(hù)空間的一般應(yīng)用程序中使用系統(tǒng)調(diào)用來(lái)進(jìn)行文件操作,會(huì)有用戶(hù)空間到內(nèi)核空間切換的開(kāi)銷(xiāo)。事實(shí)上,即使在用戶(hù)空間使用庫(kù)函數(shù)來(lái)對(duì)文件進(jìn)行操作,因?yàn)槲募偸谴嬖谟诖鎯?chǔ)介質(zhì)上,因此不管是讀寫(xiě)操作,都是對(duì)硬件(存儲(chǔ)器)的操作,都必然會(huì)引起系統(tǒng)調(diào)用。也就是說(shuō),庫(kù)函數(shù)對(duì)文件的操作實(shí)際上是通過(guò)系統(tǒng)調(diào)用來(lái)實(shí)現(xiàn)的。例如C庫(kù)函數(shù)fwrite()就是通過(guò)write()系統(tǒng)調(diào)用來(lái)實(shí)現(xiàn)的。
這樣的話(huà),使用庫(kù)函數(shù)也有系統(tǒng)調(diào)用的開(kāi)銷(xiāo),為什么不直接使用系統(tǒng)調(diào)用呢?這是因?yàn)椋x寫(xiě)文件通常是大量的數(shù)據(jù)(這種大量是相對(duì)于底層驅(qū)動(dòng)的系統(tǒng)調(diào)用所實(shí)現(xiàn)的數(shù)據(jù)操作單位而言),這時(shí),使用庫(kù)函數(shù)就可以大大減少系統(tǒng)調(diào)用的次數(shù)。這一結(jié)果又緣于緩沖區(qū)技術(shù)。在用戶(hù)空間和內(nèi)核空間,對(duì)文件操作都使用了緩沖區(qū),例如用fwrite寫(xiě)文件,都是先將內(nèi)容寫(xiě)到用戶(hù)空間緩沖區(qū),當(dāng)用戶(hù)空間緩沖區(qū)滿(mǎn)或者寫(xiě)操作結(jié)束時(shí),才將用戶(hù)緩沖區(qū)的內(nèi)容寫(xiě)到內(nèi)核緩沖區(qū),同樣的道理,當(dāng)內(nèi)核緩沖區(qū)滿(mǎn)或?qū)懡Y(jié)束時(shí)才將內(nèi)核緩沖區(qū)內(nèi)容寫(xiě)到文件對(duì)應(yīng)的硬件媒介。
系統(tǒng)調(diào)用與系統(tǒng)命令:系統(tǒng)命令相對(duì)API更高一層,每個(gè)系統(tǒng)命令都是一個(gè)可執(zhí)行程序,比如常用的系統(tǒng)命令ls、hostname等,比如strace ls就會(huì)發(fā)現(xiàn)他們調(diào)用了諸如open(),brk(),fstat(),ioctl()等系統(tǒng)調(diào)用。
系統(tǒng)調(diào)用是用戶(hù)進(jìn)程進(jìn)入內(nèi)核的接口層,它本身并非內(nèi)核函數(shù),但他是由內(nèi)核函數(shù)實(shí)現(xiàn)的,進(jìn)入系統(tǒng)內(nèi)核后,不同的系統(tǒng)調(diào)用會(huì)找到各自對(duì)應(yīng)的內(nèi)核函數(shù),這寫(xiě)內(nèi)核函數(shù)被稱(chēng)為系統(tǒng)調(diào)用的“服務(wù)例程”。也可以說(shuō)系統(tǒng)調(diào)用是服務(wù)例程的封裝例程。
cp命令
該命令的功能是將給出的文件或目錄拷貝到另一文件或目錄中,同MSDOS下的copy命令一樣,功能十分強(qiáng)大
語(yǔ)法: cp [選項(xiàng)] 源文件或目錄 目標(biāo)文件或目錄
說(shuō)明:該命令把指定的源文件復(fù)制到目標(biāo)文件或把多個(gè)源文件復(fù)制到目標(biāo)目錄中
-r 若給出的源文件是一目錄文件,此時(shí)cp將遞歸復(fù)制該目錄下所有的子目錄和文件
mv命令
用戶(hù)可以使用mv命令來(lái)為文件或目錄改名或?qū)⑽募梢粋€(gè)目錄移入另一個(gè)目錄中。該命令如同MSDOS下的ren和move的組合
語(yǔ)法:mv [選項(xiàng)] 源文件或目錄 目標(biāo)文件或目錄
rm命令
該命令的功能為刪除一個(gè)目錄中的一個(gè)或多個(gè)文件或目錄,它也可以將某個(gè)目錄及其下的所有文件及子目錄均刪除
rm命令的一般形式為:
rm [選項(xiàng)] 文件…
如果沒(méi)有使用-r選項(xiàng),則rm不會(huì)刪除目錄
該命令的各選項(xiàng)含義如下:
-f 忽略不存在的文件,從不給出提示
-r 指示rm將參數(shù)中列出的全部目錄和子目錄均遞歸地刪除
Vi命令
插入模式
按「i」切換進(jìn)入插入模式「insert mode」,按“i”進(jìn)入插入模式后是從光標(biāo)當(dāng)前位置開(kāi)始輸入文件
按「a」進(jìn)入插入模式后,是從目前光標(biāo)所在位置的下一個(gè)位置開(kāi)始輸入文字
按「o」進(jìn)入插入模式后,是插入新的一行,從行首開(kāi)始輸入文字
從插入模式切換為命令行模式
按「ESC」鍵
查找字符
「/關(guān)鍵字」:先按「/」鍵,再輸入您想尋找的字符,如果第一次找的關(guān)鍵字不是您想要的,可以一直按「n」會(huì)往后尋找到您要的關(guān)鍵字為止
「?關(guān)鍵字」:先按「?」鍵,再輸入您想尋找的字符,如果第一次找的關(guān)鍵字不是您想要的,可以一直按「n」會(huì)往前尋找到您要的關(guān)鍵字為止
離開(kāi)vi
「q」:按「q」就是退出,如果無(wú)法離開(kāi)vi,可以在「q」后跟一個(gè)「!」強(qiáng)制離開(kāi)vi
「qw」:一般建議離開(kāi)時(shí),搭配「w」一起使用,這樣在退出的時(shí)候還可以保存文件
mkdir命令
功能:創(chuàng)建一個(gè)目錄(類(lèi)似MSDOS下的md命令)
語(yǔ)法:mkdir [選項(xiàng)] dir-name
說(shuō)明:該命令創(chuàng)建由dir-name命名的目錄。要求創(chuàng)建目錄的用戶(hù)在當(dāng)前目錄中(dir-name的父目錄中)具有寫(xiě)權(quán)限,并且dirname不能是當(dāng)前目錄中已有的目錄或 文件名稱(chēng)。
命令中各選項(xiàng)的含義為:
-p 可以是一個(gè)路徑名稱(chēng)。此時(shí)若路徑中的某些目錄尚不存在, 加上此選項(xiàng)后, 系統(tǒng)將自動(dòng)建立好那些尚不存在的目錄,即一次可以建立多個(gè)目錄
cd 命令
功能:改變工作目錄
語(yǔ)法:cd [directory]
說(shuō)明:該命令將當(dāng)前目錄改變至directory所指定的目錄。若沒(méi)有指定directory, 則回到用戶(hù)的主目錄。為了改變到指定目錄,用戶(hù)必須擁有對(duì)指定目錄的執(zhí)行和讀權(quán)限
ls 命令
功能: 列出目錄的內(nèi)容,該命令類(lèi)似于DOS下的dir命令
語(yǔ)法:ls [選項(xiàng)] [目錄或是文件]
對(duì)于每個(gè)目錄,該命令將列出其中的所有子目錄與文件。對(duì)于每個(gè)文件,ls將輸出 其文件名以及所要求的其他信息。默認(rèn)情況下,輸出條目按字母順序排序。當(dāng)未給出目錄名或是文件名時(shí),就顯示當(dāng)前目錄的信息。
命令中各選項(xiàng)的含義如下:
-a 顯示指定目錄下所有子目錄與文件,包括隱藏文件
-c 按文件的修改時(shí)間排序
-t 顯示時(shí)按修改時(shí)間(最近優(yōu)先)而不是按名字排序。若文件修改時(shí)間相同,則 按字典順序。修改時(shí)間取決于是否使用了c或u選頂。缺省的時(shí)間標(biāo)記是最后一次修改時(shí)間
tar命令
tar可以為文件和目錄創(chuàng)建檔案。利用tar,用戶(hù)可以為某一特定文件創(chuàng)建檔案(備份文件),也可以在檔案中改變文件,或者向檔案中加入新的文件。tar最初被用來(lái)在磁帶上創(chuàng)建檔案,現(xiàn)在,用戶(hù)可以在任何設(shè)備上創(chuàng)建檔案,如軟盤(pán)。利用tar命令,可以把一大堆的文件和目錄全部打包成一個(gè)文件,這對(duì)于備份文件或?qū)讉€(gè)文件組合成為一個(gè)文件以便于網(wǎng)絡(luò)傳輸是非常有用的。Linux上的tar是GNU版本的。
語(yǔ)法:tar [主選項(xiàng)+輔選項(xiàng)] 文件或者目錄
使用該命令時(shí),主選項(xiàng)是必須要有的,它告訴tar要做什么事情,輔選項(xiàng)是輔助使用的,可以選用。
主選項(xiàng):
-c 創(chuàng)建新的檔案文件。如果用戶(hù)想備份一個(gè)目錄或是一些文件,就要選擇這個(gè)選項(xiàng)。
-x 從檔案文件中釋放文件。
-f 使用檔案文件或設(shè)備,這個(gè)選項(xiàng)通常是必選的。
-v 詳細(xì)報(bào)告tar處理的文件信息。如無(wú)此選項(xiàng),tar不報(bào)告文件信息。
-z 用gzip來(lái)壓縮/解壓縮文件,加上該選項(xiàng)后可以將檔案文件進(jìn)行壓縮,但還原時(shí)也一定要使用該選項(xiàng)進(jìn)行解壓縮
文件或目錄的訪問(wèn)權(quán)限
Linux系統(tǒng)中的每個(gè)文件和目錄都有訪問(wèn)許可權(quán)限,用它來(lái)確定誰(shuí)可以通過(guò)何種方式對(duì)文件和目錄進(jìn)行訪問(wèn)和操作
文件或目錄的訪問(wèn)權(quán)限分為只讀,只寫(xiě)和可執(zhí)行三種。以文件為例,只讀權(quán)限表示只允許讀其內(nèi)容,而禁止對(duì)其做任何的更改操作??蓤?zhí)行權(quán)限表示允許將該文件作為一個(gè)程序執(zhí)行。文件被創(chuàng)建時(shí),文件所有者自動(dòng)擁有對(duì)該文件的讀、寫(xiě)和可執(zhí)行權(quán)限,以便于對(duì)文件的閱讀和修改。用戶(hù)也可根據(jù)需要把訪問(wèn)權(quán)限設(shè)置為需要的任何組合
有三種不同類(lèi)型的用戶(hù)可對(duì)文件或目錄進(jìn)行訪問(wèn):文件所有者,同組用戶(hù)、其他用戶(hù)。所有者一般是文件的創(chuàng)建者。所有者可以允許同組用戶(hù)有權(quán)訪問(wèn)文件,還可以將文件的訪問(wèn)權(quán)限賦予系統(tǒng)中的其他用戶(hù)。在這種情況下,系統(tǒng)中每一位用戶(hù)都能訪問(wèn)該用戶(hù)擁有的文件或目錄
每一文件或目錄的訪問(wèn)權(quán)限都有三組,每組用三位表示,分別為文件屬主的讀、寫(xiě)和執(zhí)行權(quán)限;與屬主同組的用戶(hù)的讀、寫(xiě)和執(zhí)行權(quán)限;系統(tǒng)中其他用戶(hù)的讀、寫(xiě)和執(zhí)行權(quán)限。當(dāng)用ls -l命令顯示文件或目錄的詳細(xì)信息時(shí),最左邊的一列為文件的訪問(wèn)權(quán)限。
例如:
$ ls -l sobsrc. tgz
-rw-r–r– 1 root root 483997 Ju1 l5 17:3l sobsrc. tgz
橫線(xiàn)代表空許可。r代表只讀,w代表寫(xiě),x代表可執(zhí)行。注意這里共有10個(gè)位置。第一個(gè)字符指定了文件類(lèi)型。在通常意義上,一個(gè)目錄也是一個(gè)文件。如果第一個(gè)字符是橫線(xiàn),表示是一個(gè)非目錄的文件。如果是d,表示是一個(gè)目錄
例如:
- rw- r– r–
普通文件 文件主 組用戶(hù) 其他用戶(hù)
是文件sobsrc.tgz 的訪問(wèn)權(quán)限,表示sobsrc.tgz是一個(gè)普通文件;sobsrc.tgz的屬主有讀寫(xiě)權(quán)限;與sobsrc.tgz屬主同組的用戶(hù)只有讀權(quán)限;其他用戶(hù)也只有讀權(quán)限。
chmod 命令
chmod命令是非常重要的,用于改變文件或目錄的訪問(wèn)權(quán)限。用戶(hù)用它控制文件或目錄的訪問(wèn)權(quán)限。
該命令有兩種用法。一種是包含字母和操作符表達(dá)式的文字設(shè)定法;另一種是包含數(shù)字的數(shù)字設(shè)定法。
文字設(shè)定法
chmod [who] [+ | - | =] [mode] 文件名
命令中各選項(xiàng)的含義為:
操作對(duì)象who可是下述字母中的任一個(gè)或者它們的組合:
u 表示“用戶(hù)(user)”,即文件或目錄的所有者。
g 表示“同組(group)用戶(hù)”,即與文件屬主有相同組ID的所有用戶(hù)。
o 表示“其他(others)用戶(hù)”
a 表示“所有(all)用戶(hù)”。它是系統(tǒng)默認(rèn)值。
操作符號(hào)可以是:
+ 添加某個(gè)權(quán)限。
- 取消某個(gè)權(quán)限。
= 賦予給定權(quán)限并取消其他所有權(quán)限(如果有的話(huà))
設(shè)置mode所表示的權(quán)限可用下述字母的任意組合:
r 可讀
w 可寫(xiě)
x 可執(zhí)行
X 只有目標(biāo)文件對(duì)某些用戶(hù)是可執(zhí)行的或該目標(biāo)文件是目錄時(shí)才追加x 屬性。
s 在文件執(zhí)行時(shí)把進(jìn)程的屬主或組ID置為該文件的文件屬主。方式“u+s”設(shè)置文件的用戶(hù)ID位,“g+s”設(shè)置組ID位。
t 保存程序的文本到交換設(shè)備上。
u 與文件屬主擁有一樣的權(quán)限。
g 與和文件屬主同組的用戶(hù)擁有一樣的權(quán)限。
o 與其他用戶(hù)擁有一樣的權(quán)限。
文件名:以空格分開(kāi)的要改變權(quán)限的文件列表,支持通配符
在一個(gè)命令行中可給出多個(gè)權(quán)限方式,其間用逗號(hào)隔開(kāi)。
例如:chmod g+r,o+r example
使同組和其他用戶(hù)對(duì)文件example 有讀權(quán)限
chgrp命令
功能:改變文件或目錄所屬的組。
語(yǔ)法:chgrp [選項(xiàng)] group filename
該命令改變指定指定文件所屬的用戶(hù)組。其中g(shù)roup可以是用戶(hù)組ID,也可以是/etc/group文件中用戶(hù)組的組名。文件名是以空格分開(kāi)的要改變屬組的文件列表,支持通配符。如果用戶(hù)不是該文件的屬主或超級(jí)用戶(hù),則不能改變?cè)撐募慕M。
該命令的各選項(xiàng)含義為:
-R 遞歸式地改變指定目錄及其下的所有子目錄和文件的屬組
chown 命令
功能:更改某個(gè)文件或目錄的屬主和屬組。這個(gè)命令也很常用。例如root用戶(hù)把自己的一個(gè)文件拷貝給用戶(hù)xu,為了讓用戶(hù)xu能夠存取這個(gè)文件,root用戶(hù)應(yīng)該把這個(gè)文件的屬主設(shè)為xu,否則,用戶(hù)xu無(wú)法存取這個(gè)文件。
語(yǔ)法:chown [選項(xiàng)] 用戶(hù)或組 文件
說(shuō)明:chown將指定文件的擁有者改為指定的用戶(hù)或組。用戶(hù)可以是用戶(hù)名或用戶(hù)ID。組可以是組名或組ID。文件是以空格分開(kāi)的要改變權(quán)限的文件列表,支持通配符。
該命令的各選項(xiàng)含義如下:
-R 遞歸式地改變指定目錄及其下的所有子目錄和文件的擁有者
-v 顯示chown命令所做的工作
passwd命令
出于系統(tǒng)安全考慮,Linux系統(tǒng)中的每一個(gè)用戶(hù)除了有其用戶(hù)名外,還有其對(duì)應(yīng)的用戶(hù)口令。因此使用useradd命令增加時(shí),還需使用passwd命令為每一位新增加的用戶(hù)設(shè)置口令;用戶(hù)以后還可以隨時(shí)用passwd命令改變自己的口令
該命令的一般格式為: passwd [用戶(hù)名] 其中用戶(hù)名為需要修改口令的用戶(hù)名。只有超級(jí)用戶(hù)可以使用“passwd 用戶(hù)名”修改其他用戶(hù)的口令,普通用戶(hù)只能用不帶參數(shù)的passwd命令修改自己的口令
該命令的使用方法如下:
輸入passwd Enter;
在new password:提示下輸入新的口令(在屏幕上看不到這個(gè)口令):
系統(tǒng)提示再次輸入這個(gè)新口令
su命令
它可以讓一個(gè)普通用戶(hù)擁有超級(jí)用戶(hù)或其他用戶(hù)的權(quán)限,也可以讓超級(jí)用戶(hù)以普通用戶(hù)的身份做一些事情。普通用戶(hù)使用這個(gè)命令時(shí)必須有超級(jí)用戶(hù)或其他用戶(hù)的口令。如要離開(kāi)當(dāng)前用戶(hù)的身份,可以打exit
該命令的一般形式為: su [選項(xiàng)] [使用者帳號(hào)]
說(shuō)明:若沒(méi)有指定使用者帳號(hào),則系統(tǒng)預(yù)設(shè)值為超級(jí)用戶(hù)root。 該命令中各選項(xiàng)的含義分別為:
-c 執(zhí)行一個(gè)命令后就結(jié)束
- 加了這個(gè)減號(hào)的目的是使環(huán)境變量和欲轉(zhuǎn)換的用戶(hù)相同
-m 保留環(huán)境變量不變
shutdown命令
shutdown 命令可以安全地關(guān)閉或重啟Linux系統(tǒng),它在系統(tǒng)關(guān)閉之前給系統(tǒng)上的所有登錄用戶(hù)提示一條警告信息。該命令還允許用戶(hù)指定一個(gè)時(shí)間參數(shù),可以是一個(gè)精確的時(shí)間,也可以是從現(xiàn)在開(kāi)始的一個(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ā)出警告信息給所有用戶(hù)。
-r 關(guān)機(jī)后立即重新啟動(dòng)。
-h 關(guān)機(jī)后不重新啟動(dòng)。
-f 快速關(guān)機(jī),重啟動(dòng)時(shí)跳過(guò)fsck。
-n 快速關(guān)機(jī),不經(jīng)過(guò)init程序。
-c 取消一個(gè)已經(jīng)運(yùn)行的shutdown
需要特別說(shuō)明的是,該命令只能由超級(jí)用戶(hù)使用
free命令
free命令的功能是查看當(dāng)前系統(tǒng)內(nèi)存的使用情況,它顯示系統(tǒng)中剩余及已用的物理內(nèi)存和交換內(nèi)存,以及共享內(nèi)存和被核心使用的緩沖區(qū)。
該命令的一般格式為: free [-b | -k | -m] 命令中各選項(xiàng)的含義如下:
-b 以字節(jié)為單位顯示。
-k 以K字節(jié)為單位顯示。
-m 以兆字節(jié)為單位顯示
df命令
功能:檢查文件系統(tǒng)的磁盤(pán)空間占用情況??梢岳迷撁顏?lái)獲取硬盤(pán)被占用了多少空間,目前還剩下多少空間等信息
語(yǔ)法:df [選項(xiàng)]
說(shuō)明:df命令可顯示所有文件系統(tǒng)對(duì)i節(jié)點(diǎn)和磁盤(pán)塊的使用情況。
該命令各個(gè)選項(xiàng)的含義如下:
-a 顯示所有文件系統(tǒng)的磁盤(pán)使用情況,包括0塊(block)的文件系統(tǒng),如/proc文件系統(tǒng)。
-k 以k字節(jié)為單位顯示。
-i 顯示i節(jié)點(diǎn)信息,而不是磁盤(pán)塊。
-t 顯示各指定類(lèi)型的文件系統(tǒng)的磁盤(pán)空間使用情況。
du命令
du的英文原義為“disk usage”,含義為顯示磁盤(pán)空間的使用情況。
功能:統(tǒng)計(jì)目錄(或文件)所占磁盤(pán)空間的大小。
語(yǔ)法:du [選項(xiàng)] [Names…]
說(shuō)明:該命令逐級(jí)進(jìn)入指定目錄的每一個(gè)子目錄并顯示該目錄占用文件系統(tǒng)數(shù)據(jù)塊(1024字節(jié))的情況。若沒(méi)有給出Names,則對(duì)當(dāng)前目錄進(jìn)行統(tǒng)計(jì)。
該命令的各個(gè)選項(xiàng)含義如下:
-s 對(duì)每個(gè)Names參數(shù)只給出占用的數(shù)據(jù)塊總數(shù)。
date命令
date命令的功能是顯示和設(shè)置系統(tǒng)日期和時(shí)間。
該命令的一般格式為: date [選項(xiàng)] 顯示時(shí)間格式(以+開(kāi)頭,后面接格式)
date 設(shè)置時(shí)間格式
命令中各選項(xiàng)的含義分別為:
-s datestr, –set datestr 設(shè)置datestr 描述的日期
注意:只有超級(jí)用戶(hù)才有權(quán)限使用date命令設(shè)置時(shí)間,一般用戶(hù)只能使用date命令顯示時(shí)間。
ifconfig
作用
ifconfig用于查看和更改網(wǎng)絡(luò)接口的地址和參數(shù),包括IP地址、網(wǎng)絡(luò)掩碼、廣播地址,使用權(quán)限是超級(jí)用戶(hù)
格式
ifconfig -interface [options] address
主要參數(shù)
-interface:指定的網(wǎng)絡(luò)接口名,如eth0和eth1
up:激活指定的網(wǎng)絡(luò)接口卡
down:關(guān)閉指定的網(wǎng)絡(luò)接口
address:設(shè)置指定接口設(shè)備的IP地址
netmask address:設(shè)置接口的子網(wǎng)掩碼
應(yīng)用說(shuō)明
ifconfig是用來(lái)設(shè)置和配置網(wǎng)卡的命令行工具。為了手工配置網(wǎng)絡(luò),這是一個(gè)必須掌握的命令。使用該命令的好處是無(wú)須重新啟動(dòng)機(jī)器。
要賦給eth0接口IP地址207.164.186.2,并且馬上激活它,使用下面命令:
#fconfig eth0 210.34.6.89 netmask 255.255.255.128
該命令的作用是設(shè)置網(wǎng)卡eth0的IP地址、網(wǎng)絡(luò)掩碼和網(wǎng)絡(luò)的本地廣播地址。若運(yùn)行不帶任何參數(shù)的ifconfig命令,這個(gè)命令將顯示機(jī)器所有激活接口的信息。帶有“-a”參數(shù)的命令則顯示所有接口的信息,包括沒(méi)有激活的接口。注意,用ifconfig命令配置的網(wǎng)絡(luò)設(shè)備參數(shù),機(jī)器重新啟動(dòng)以后將會(huì)丟失
如果要暫停某個(gè)網(wǎng)絡(luò)接口的工作,可以使用down參數(shù):
#ifconfig eth0 down
netstat
作用
檢查整個(gè)Linux網(wǎng)絡(luò)狀態(tài)
格式
netstat [-acCeFghilMnNoprstuvVwx][-A][–ip]
主要參數(shù)
-a–all:顯示所有連線(xiàn)中的Socket
-l–listening:顯示監(jiān)控中的服務(wù)器的Socket
-n–numeric:直接使用IP地址,而不通過(guò)域名服務(wù)器
-p–programs:顯示正在使用Socket的程序識(shí)別碼和程序名稱(chēng)
-t–tcp:顯示TCP傳輸協(xié)議的連線(xiàn)狀況
-u–udp:顯示UDP傳輸協(xié)議的連線(xiàn)狀況
-apn 查看開(kāi)啟的端口
應(yīng)用實(shí)例
netstat主要用于Linux察看自身的網(wǎng)絡(luò)狀況,如開(kāi)啟的端口、在為哪些用戶(hù)服務(wù),以及服務(wù)的狀態(tài)等。此外,它還顯示系統(tǒng)路由表、網(wǎng)絡(luò)接口狀態(tài)等??梢哉f(shuō),它是一個(gè)綜合性的網(wǎng)絡(luò)狀態(tài)的察看工具。在默認(rèn)情況下,netstat只顯示已建立連接的端口。如果要顯示處于監(jiān)聽(tīng)狀態(tài)的所有端口,使用-a參數(shù)即可:
#netstat -a
lsof
作用
顯示系統(tǒng)打開(kāi)的文件
格式
lsof 〔options〕 filename
主要參數(shù)
lsof -a: 表示兩個(gè)參數(shù)都必須滿(mǎn)足時(shí)才顯示結(jié)果
lsof -c string: 顯示COMMAND列中包含指定字符的進(jìn)程所有打開(kāi)的文件
lsof -u username: 顯示所屬u(mài)ser進(jìn)程打開(kāi)的文件
lsof -g gid: 顯示歸屬gid的進(jìn)程情況
lsof +d /DIR/: 顯示目錄下被進(jìn)程打開(kāi)的文件
lsof +D /DIR/: 同上,但是會(huì)搜索目錄下的所有目錄,時(shí)間相對(duì)較長(zhǎng)
lsof -d FD: 顯示指定文件描述符的進(jìn)程
lsof -n: 不將IP轉(zhuǎn)換為hostname,缺省是不加上-n參數(shù)
lsof -i: 用以顯示符合條件的進(jìn)程情況
lsof -i:port: 查看端口運(yùn)行的程序。
例如:查看22端口所運(yùn)行的程序 #lsof -i:22
telnet
作用
telnet表示開(kāi)啟終端機(jī)階段作業(yè),并登入遠(yuǎn)端主機(jī)。telnet是一個(gè)Linux命令,同時(shí)也是一個(gè)協(xié)議(遠(yuǎn)程登陸協(xié)議)
格式
telnet [-8acdEfFKLrx][-b][-e][-k][-l][-n][-S][-X][主機(jī)名稱(chēng)IP地址通信端口]
ftp
作用
ftp命令進(jìn)行遠(yuǎn)程文件傳輸。FTP是ARPANet的標(biāo)準(zhǔn)文件傳輸協(xié)議,該網(wǎng)絡(luò)就是現(xiàn)今Internet的前身,所以ftp既是協(xié)議又是一個(gè)命令。
格式
ftp [-dignv][主機(jī)名稱(chēng)IP地址]
應(yīng)用說(shuō)明
ftp命令是標(biāo)準(zhǔn)的文件傳輸協(xié)議的用戶(hù)接口,是在TCP/IP網(wǎng)絡(luò)計(jì)算機(jī)之間傳輸文件簡(jiǎn)單有效的方法,它允許用戶(hù)傳輸ASCⅡ文件和二進(jìn)制文件。為了使用ftp 來(lái)傳輸文件,用戶(hù)必須知道遠(yuǎn)程計(jì)算機(jī)上的合法用戶(hù)名和口令。這個(gè)用戶(hù)名/口令的組合用來(lái)確認(rèn)ftp會(huì)話(huà),并用來(lái)確定用戶(hù)對(duì)要傳輸?shù)奈募M(jìn)行什么樣的訪問(wèn)。另外,用戶(hù)需要知道對(duì)其進(jìn)行ftp會(huì)話(huà)的計(jì)算機(jī)名字的IP地址
用戶(hù)可以通過(guò)使用ftp客戶(hù)程序,連接到另一臺(tái)計(jì)算機(jī)上;可以在目錄中上下移動(dòng)、列出目錄內(nèi)容;可以把文件從遠(yuǎn)程計(jì)算機(jī)機(jī)拷貝到本地機(jī)上;還可以把文件從本地機(jī)傳輸?shù)竭h(yuǎn)程系統(tǒng)中。ftp內(nèi)部命令有72個(gè),下面列出主要幾個(gè)內(nèi)部命令:
ls:列出遠(yuǎn)程機(jī)的當(dāng)前目錄
cd:在遠(yuǎn)程機(jī)上改變工作目錄
lcd:在本地機(jī)上改變工作目錄
close:終止當(dāng)前的ftp會(huì)話(huà)
get(mget):從遠(yuǎn)程機(jī)傳送指定文件到本地機(jī)
put(mput):從本地機(jī)傳送指定文件到遠(yuǎn)程機(jī)
quit:斷開(kāi)與遠(yuǎn)程機(jī)的連接,并退出ftp
route
作用
route表示手工產(chǎn)生、修改和查看路由表
格式
#route [-add][-net|-host] targetaddress [-netmask Nm][dev]If]
#route [-delete][-net|-host] targetaddress [gw Gw] [-netmask Nm] [dev]If]
主要參數(shù)
-add:增加路由
-delete:刪除路由
-net:路由到達(dá)的是一個(gè)網(wǎng)絡(luò),而不是一臺(tái)主機(jī)
-host:路由到達(dá)的是一臺(tái)主機(jī)
-netmask Nm:指定路由的子網(wǎng)掩碼
gw:指定路由的網(wǎng)關(guān)
[dev]If:強(qiáng)迫路由鏈指定接口。
應(yīng)用實(shí)例
route命令是用來(lái)查看和設(shè)置Linux系統(tǒng)的路由信息,以實(shí)現(xiàn)與其它網(wǎng)絡(luò)的通信。要實(shí)現(xiàn)兩個(gè)不同的子網(wǎng)之間的通信,需要一臺(tái)連接兩個(gè)網(wǎng)絡(luò)的路由器,或者同時(shí)位于兩個(gè)網(wǎng)絡(luò)的網(wǎng)關(guān)來(lái)實(shí)現(xiàn)
在Linux系統(tǒng)中,設(shè)置路由通常是為了解決以下問(wèn)題:該Linux系統(tǒng)在一個(gè)局域網(wǎng)中,局域網(wǎng)中有一個(gè)網(wǎng)關(guān),能夠讓機(jī)器訪問(wèn)Internet,那么就需要將這臺(tái)機(jī)器的IP地址設(shè)置為L(zhǎng)inux機(jī)器的默認(rèn)路由。使用下面命令可以增加一個(gè)默認(rèn)路由:
route add 0.0.0.0 192.168.1.1
top
作用
top命令用來(lái)顯示執(zhí)行中的程序進(jìn)程,使用權(quán)限是所有用戶(hù)。
格式
top [-] [d delay] [q] [c] [S] [s] [i] [n]
主要參數(shù)
d:指定更新的間隔,以秒計(jì)算
q:沒(méi)有任何延遲的更新。如果使用者有超級(jí)用戶(hù),則top命令將會(huì)以最高的優(yōu)先序執(zhí)行
c:顯示進(jìn)程完整的路徑與名稱(chēng)
i:不顯示任何閑置(Idle)或無(wú)用(Zombie)的行程
n:顯示更新的次數(shù),完成后將會(huì)退出top。
說(shuō)明
top命令是Linux系統(tǒng)管理的一個(gè)主要命令,通過(guò)它可以獲得許多信息。這里我們結(jié)合圖1來(lái)說(shuō)明它給出的信息
下面列出了詳細(xì)解釋
PID(Process ID):進(jìn)程標(biāo)示號(hào)
USER:進(jìn)程所有者的用戶(hù)名
PR:進(jìn)程的優(yōu)先級(jí)別
NI:進(jìn)程的優(yōu)先級(jí)別數(shù)值
VIRT:進(jìn)程占用的虛擬內(nèi)存值
RES:進(jìn)程占用的物理內(nèi)存值
SHR:進(jìn)程使用的共享內(nèi)存值
S:進(jìn)程的狀態(tài),其中S表示休眠,R表示正在運(yùn)行,Z表示僵死狀態(tài),N表示該進(jìn)程優(yōu)先值是負(fù)數(shù)
%CPU:該進(jìn)程占用的CPU使用率
%MEM:該進(jìn)程占用的物理內(nèi)存和總內(nèi)存的百分比
TIME+:該進(jìn)程啟動(dòng)后占用的總的CPU時(shí)間
Command:進(jìn)程啟動(dòng)的啟動(dòng)命令名稱(chēng),如果這一行顯示不下,進(jìn)程會(huì)有一個(gè)完整的命令行。
網(wǎng)頁(yè)名稱(chēng):linux調(diào)用內(nèi)核命令,linux配置內(nèi)核命令
路徑分享:http://chinadenli.net/article24/phggje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、網(wǎng)站收錄、外貿(mào)網(wǎng)站建設(shè)、定制開(kāi)發(fā)、Google、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)