當前位置:學問君>學習教育>畢業論文>

UNIX常用的管理命令的使用論文

學問君 人氣:1.36W

 一.引言

UNIX常用的管理命令的使用論文

UNIX系統作爲一種強大的多用戶分時操作系統,在越來越多的場合受到了應用,同時,對UNIX的系統管理的要求也隨之越來越多,但目前的書籍對UNIX系統管理命令介紹的並不是很多。本文主要是針對UNIX系統管理員,以SUNSOLARIS2.6系統例,列舉了一些UNIX常用的管理命令的使用及其使用中遇到的問題和解決方法,供大家參考。

 二.常用系統管理命令介紹

e和mount命令

這是系統管理員常用的兩個命令,share命令用於把本機的目錄共享出來,以便其它UNIX系統可以使用;mount命令則用於把其它UNIX系統共享出來的目錄掛接到本機的掛接點上,從而可以使用其它UNIX系統的資源。例如:

在機器A上輸入machineA#share-Fnfs-orw/share-dir

在機器B上輸入machineB#mount-FnfsmachineA:/share-dir/mount-point

第一條命令把機器A的share-dir目錄共享出來,並且共享的權限是可讀寫;

第二條命令把機器A的共享目錄掛接到機器B的mount-point目錄上。

完成這兩個命令後,用戶在機器B上透過對mount-point的訪問就可以操作機器A上的share-dir目錄了。

但是有時我們操作時,在機器B上執行了mount命令後,會返回"RPC:Programnotregistered"這樣的錯誤,這是因爲在機器A上缺少mountd和nfsd這兩個守護進程(daemon)。UNIX系統啓動時,系統會自動檢查/etc/dfs/dfstab檔案,如果檔案中有要共享的資源,則啓動這兩個守護進程,反之,則不啓動。所以如果我們在/etc/dfs/dfstab中沒有內容,則系統不能啓動mountd和nfsd這兩個守護進程,用share命令共享的目錄也不能真正被別的系統共享。

解決這個問題的方法很簡單,我們可以把要共享的目錄放入/etc/dfs/dfstab中,則下一次系統啓動時會自動共享這個目錄;另外,我們也可以手動啓動這兩個守護進程,方法是首先用超級用戶(root)登陸,在命令行輸入如下命令:

machine_A#/etc/rc3.d/erstart

或輸入:

machine_A#/usr/lib/nfs/mountd

machine_A#/usr/lib/nfs/nfsd-a16

就可以啓動這兩個守護進程了。

守護進程啓動後,共享目錄才真正被共享出去,這時再在機器B上用mount命令就可以把機器A的目錄掛接到機器B上了。

a系列命令

UNIX作爲一種多用戶系統,它允許多個用戶共同使用系統的資源,包括系統的內存,CPU和硬盤。在默認情況下,系統並不會限制每個用戶可以使用硬盤空間的大小,所以如果用戶惡意使用硬盤,或用戶由於疏忽,將硬盤空間全部佔用,將導致其他用戶無法使用硬盤,從而使系統性能下降,甚至有崩潰的危險。

其實,UNIX提供的quota系列命令可以幫助我們解決這個問題,這些命令包括:

quota:顯示用戶的硬盤限額和使用情況。

edquota:爲每個用戶設定硬盤限額。

quotaon:啓動檔案系統硬盤限額服務

quotaoff:關閉檔案系統硬盤限額服務

repquota:顯示當前硬盤限額狀態

配置這項服務的方法很簡單。但在使用硬盤限額服務之前,我們要明白硬限制和軟限制這兩個概念。所謂硬限制是指對資源節點和數據塊的絕對限制,在任何情況下都不允許用戶超過這個限制;而軟限制是指用戶可以在一定時間範圍內(默認時爲一週,在/usr/include/sys/fs/ufs_quota.h檔案中設定)超過軟限制的額度,在硬限制的範圍內繼續申請資源,同時系統會在用戶登入時給出警告資訊和仍可繼續申請資源剩餘時間。如果達到時間期限,用戶的硬盤使用仍超過軟限制的額度,則系統將不允許用戶再申請硬盤資源。

明白了這兩個概念,我們就可以配置硬盤限額服務了,首先我們必須在要限制的檔案系統的根目錄下建立一名字爲quotas的檔案,該檔案的所有者應是root,且其它用戶不可以對它進行寫操作。方法是:

#cd/home(進入檔案系統根目錄,注意並不是系統根目錄,本例爲/home目錄)

#touchquotas(創建一名字爲quotas的空檔案)

#chmod644quotas(更改檔案屬性,使只有root可以對它進行寫操作)然後,我們編輯/etc/vfstab檔案,找到要進行硬盤限額服務的檔案系統,並將mountoption字段的值設爲rq,然後並存盤退出。完成這兩步後,我們使用edquota命令爲每個用戶設定硬盤限額,在root權限下輸入以下命令:

#edquotausername這時系統會自動生成一個臨時檔案,並且有如下內容:

fs/usersblocks(soft=0,hard=0)inodes(soft=0,hard=0)

其中fs字段表明使用硬盤限額的檔案系統,本例爲/users,block和inodes表明用戶可以使用的硬盤千字節數和I節點數,即用戶可使用的硬盤空間和可建立的檔案數,soft和hard分別對於前面提及的軟限制和硬限制。

編輯這個檔案,把軟,硬限制設定到合適的數值,然後存盤退出。這時我們可以看到quotas檔案的大小已經被改變,說明用戶的限額已經儲存。重複這條命令,給每一個用戶都配置硬盤限額。另外,如果我們分配給用戶的硬盤限額都相同,我們可以使用"-p"參數而不用爲每個用戶都編輯一個檔案,它的使用方法是:

#edquota-preference-usernameusername

編輯完檔案後,我們就可以用quotaon來啓動服務了,在root權限下輸入#quotaon/users

就可以啓動限額服務。如果我們要檢視各個用戶的當前使用情況,可以使用

repquota命令,在root權限下輸入:

#repquota/users

系統會顯示:從中我們可以很容易看到用戶的硬盤和檔案的使用情況以及超過軟限制後仍可申請資源的時間等等。

當然我們可以用quotaoff取消硬盤限額服務。另外,系統還提供quotacheck命令對限額的一致性進行檢查。

nfig命令

ifconfig命令用於檢視和更改網絡接口的地址和參數,如果要顯示某臺UNIX主機的IP位址,我們可以在命令行下輸入:

$ifconfig-a系統會顯示網絡接口的名稱,接口的狀態(upordown),接口的IP位址和掩碼等資訊。

如果我們要更改網絡接口的IP位址,可以在root權限下輸入:

#ifconfighme0down

#up

首先,使用down命令參數把網絡接口hme0的服務暫時停止,然後再用ifconfig命令給接口分配新的IP位址和掩碼,並啓動網絡接口服務。本例中把hme0接口的IP位址設爲,掩碼爲。

我們也可以透過改變檔案/etc/hosts中的IP位址的值並重新啓動系統來更改機器的IP位址。

在系統啓動時,網絡接口服務時自動被啓動的,我們不需要手動地創建網口服務,但有時我們更改了網卡或增加了網卡後,系統不能自動啓動該接口服務,這時我們需要手動創建網口服務,在root權限下輸入:

#ifconfighme0plumb

即可以爲接口le0創建網口服務。

相應地,用ifconfig帶unplumb參數可以停止服務並關閉網絡接口,這時我們再用ifconfig-a命令將看不到該網絡接口。

at命令

format也是一個重要的系統管理命令,但由於它的破壞性極大,使用時一定要小心。format命令主要有兩個用途,即格式化硬盤和重新對硬盤分區,下面分別加以說明:

1)格式化硬盤和DOS一樣,UNIX的硬盤在使用之前也需要格式化,在對它格式化之前,我們要用單用戶形式重啓動系統

#reboot-s

啓動後用root用戶登入,然後在命令行下輸入:

#format系統會顯示所有的硬盤並讓我們選擇要格式化的硬盤:

本例中系統有兩個SUN2.1G的硬盤,我們選擇1並回車,系統會顯示如下選單:

在提示符下輸入type來選擇硬盤類型,系統會列出它支援的硬盤類型,選擇合適的硬盤類型並輸入相應的代碼(也可以輸入0讓系統自動檢測)。選擇完硬盤類型後,就可以配置硬盤分區,有關分區的具體操作請參見"2)重新分區"一節。

配置結束後,輸入format命令進行格式化,這將花費一定的時間,具體時間的長短受機器型號和硬盤大小的影響。格式化完成後,就可以輸入quit命令退出了。

硬盤格式化後,並不能立即被使用,我們還需要在上面創建檔案系統,使用命令newfs來爲每一個分區創建檔案系統:

#newfs/dev/rdsk/c0t1d0s0

#newfs/dev/rdsk/c0t1d0s1參數的具體數值根據分區的情況來設定。另外,如果該硬盤包含啓動分區(根分區),我們需要手動安裝啓動模組,安裝之前首先要有UNIX系統安裝光盤,我們透過光盤啓動後,將系統根分區掛接上,並從光盤安裝啓動模組,具體方法如下:

#rebootcdrom-s(從光盤啓動,並進入單用戶模式)

#mount/dev/dsk/c0t1d0s0/mnt(將系統根分區掛接到mnt目錄下)

#cp/ufsboot/mnt

#installboot/lib/fs/ufs/bootblk/dev/rdsk/c0t1d0s0(安裝啓動模組)

#umount/mnt(卸下掛接)

#reboot(重啓動)

至此,硬盤的格式化操作已經完成,我們可以使用該硬盤了。

2)重新分區

format命令也可以對硬盤進行重新分區。重新分區後,受影響分區上的所有檔案將被清除,所以在進行這個操作前,我們應注意要先對檔案系統進行備份。重新分區的具體方法如下:

首先我們要進入單用戶形式,並用root用戶登入,然後在命令行下輸入:

#format

系統會顯示所有的硬盤並讓我們選擇硬盤:我們選擇0並回車,系統會顯示如下選單:

輸入partition,再輸入modify,回車,系統提示用戶選擇分區基礎(partitioningbase),選擇1,回車,系統會顯示:

我們把分區6作爲自由分區,這意味如果其它分區大小變化,自由分區6用來作爲硬盤空間的積累或減少。然後按系統要求輸入期望的分區值,format會自動調整分區柱面邊界,使各個分區之間沒有空隙。回車確認該分區表,並給該分區表命名,確認後退出format命令。

分區結束後,我們要用newfs命令爲改變的分區創建檔案系統

#newfs/dev/rdsk/c0t0d0s6

然後將備份的檔案拷回,完成硬盤分區的更改工作。

這裏要再一次提到的是,format命令具有極大的破壞性,很容易導致數據丟失,甚至系統崩潰,所以在使用它的時候一定要小心。

命令

fsck命令也是一個經常使用的命令,它用於對檔案系統進行檢查,並對損害的檔案系統進行修復。

fsck的語法如下:

fsck(-Ffstype)(-v)(-m)(-special…)

fsck(-Ffstype)(-v)(-y|Y|n|N)(-ofstypeoptions)(special…)

其中:

-Ffstype:說明被檢查的.檔案系統的類型

-v:返回完成的命令行,但不執行

-y|Y:對所有問題均回答Yes

-n|N:對所有問題均回答No

-m:對檔案系統進行檢查,不修復檔案系統,如果檔案系統經檢查後是可安裝

的,則顯示ufsfsck:sanitycheck:/dev/rdsk/c0t0d0s0okay.

-o:檔案系統類型選項,選項由逗號分隔,最常用的選項有兩個:

P:整理(preen)模式

F:強制檢查模式,此選項忽略檔案系統狀態標誌。

執行fsck後,該命令會分6個階段對檔案系統進行檢查,這六個階段分別是:

階段1:檢查塊和塊的大小

階段2:檢查路徑名

階段3:檢查連接性

階段4:檢查參考記數

階段5:檢查自由塊列表

階段6:補救自由塊列表

fsck在對每個階段進行檢查時,如果發現錯誤,會提示用戶進行修改,常見的一些錯誤有:

1)移去一個沒有相關檔案的目錄入口

這時用戶可以回答Yes或Y來刪除該目錄入口。

2)重連接一個已分配但不能訪問的檔案:

fsck找到了一個已分配的I節點,但卻不可訪問(該節點沒與任何目錄連接),這時一般對fsck的"RECONNECT?"回答Yes,即把該I節點連接到lost+found目錄下,檔案名即是I節點號,之後管理員應檢查該檔案類型,判明該檔案用途,再將該檔案拷貝到相應目錄下。

3)連接數調整

在交互方式下,fsck若發現連接數不一致,將詢問用戶採取何種行動,本例發現一目錄的I節點連接數與該目錄的真實連接數不一致。

這時用戶應該回答Yes或Y來改正連接數。

4)自由塊表不一致

fsck查出未分配塊數與超級塊中所給出的自由塊表不一致。

這時用戶應該回答Yes或Y來修正超級塊。

從上面的出錯資訊和處理方法可以發現,對於fsck詢問的問題大多數情況下都可以用Yes來回答,所以在實際應用時,可以用"-y"選項來執行該命令對硬盤進行檢

查和修復。

e命令

route命令主要用於手動配置靜態路由表。例如我們要增加一條透過網關到達令一子網的路由,命令如下:

#routeaddnetremote_net_ipgateway_ip1

其中add代表要增加路由,net表示路由到達的是一個網絡而不是一臺主機,1代表遠端網絡需透過網關才能到達,而不是直接與它相連(直接透過網絡接口相連時,該參數用0)。

在Solaris2.6中,也可以使用如下命令:

#routeadd-netremote_net_ipgateway_ip-netmasknetmask

#routeadd-hosthost_iplocal_interface_ip-interface

其中第一條命令與上面介紹的命令完成相同的任務,而第二條命令則代表要建立一條透過網絡接口到達另一臺主機的路由。

當然,我們使用"","change"命令參數可以對路由表中的路由資訊進行刪除和修改。

執行完route命令後,我們可以?quot;netstat-rn"命令檢視當前的路由資訊:

從路由表中可以知道當前共有5條路由,其中到達和的路由分別是廣播路由和本地路由,是由系統默認設定的。到達主機的路由是透過本機網絡接口連接的,到達網絡的路由則是透過網關連接的。

透過route配置路由表後,該路由資訊會一直儲存到下次系統重啓。系統重啓後,則要重新配置路由表。透過修改檔案/etc/defaultrouter可以設定一些默認路由,這些路由在系統每次啓動時都會被加到路由表中,而不必每次啓動都用route命令來配置路由表。/etc/defaultrouter檔案的格式如下:

$cat/etc/defaultrouter

該檔案中現在只有一條默認路由,IP位址是,這代表系統將把所有不屬於本地的數據包都透過網關發送出去。

有時UNIX系統安裝完成後,/etc目錄下並不存在defaultrouter檔案,這時我們可以手工創建該檔案,並編輯好默認路由,然後重啓。系統啓動後,就會自動使用配置好的默認路由資訊了。

三系統管理常見問題及解決方法

1.忘記root密碼

root用戶又被稱爲超級用戶,它是權限最高的用戶,一旦它的密碼被忘記,將給系統的維護和管理帶來很多困難,下面是忘記root密碼時的處理方法:

首先,我們需要從CD-ROM啓動系統,命令是:

#bootcdrom-s

系統啓動後,我們要把硬盤根分區掛接到光盤檔案系統的/mnt目錄上,執行:

#mount/dev/dsk/c0t0d0s0/mnt

(該例假設根檔案系統是/c0t0d0s0)

編輯硬盤根分區的shadow檔案,將root的密碼項位置設爲空。

#cd/mnt/etc

#vishadow

注意,有的系統要編輯/etc/passwd檔案而不是/etc/shadow檔案。

改完檔案後,將掛接的根檔案系統卸下。

#umount/mnt

重新啓動系統,並設定新的root密碼。

2.系統無法啓動

系統無法啓動的原因大致如下:

1)錯誤的引導設備

假如因爲指定了錯誤的引導設備使系統不能引導,我們可以在PROM監控等級下利用"probe-scsi","probe-scsi-all"和"probe-ipi"命令來檢視有什麼設備被連

到系統上,並得到啓動設備的devalias名。進入PROM的方法是當系統啓動時,同時按下"STOP"鍵和"a"鍵,這時系統出現提示符ok>,即表明系統當前處於PROM

監控等級。

用printenv顯示當前配置情況,如果發現引導設備不正確,可用setenv來重新設定:

ok>setenvboot-devicedevalias

用reset命令重新啓動系統,或set-defaults恢復缺省值。

2)缺少重要的系統檔案,或檔案無效

這時可以用"-a"選項來引導系統,系統將提供交互式的引導過程,如果有找不

到檔案時,系統會提示用戶給出適當的檔案名。

3)缺少關鍵的系統檔案,或檔案無效

例如缺少/etc/passwd檔案,這時系統可能會引導,但是沒有任何用戶可以註冊。修復方法是用光盤啓動,掛接根檔案系統並編輯/etc/passwd檔案。

4)無法掛接遠程檔案系統

系統啓動時,會自動執行/etc/vfstab檔案,如果在檔案中有無法掛接的遠程檔案系統,則系統會一直處於等待和重試狀態,無法進入登入介面。解決辦法是用單用戶啓動,編輯/etc/vfstab檔案,刪除錯誤的掛接內容。

3.鍵盤失效

如果出現鍵盤失效的情況,即用戶在鍵盤上輸入資訊而屏幕上沒有響應,首先要檢查硬件的連接,即檢視鍵盤與主機的連接是否完好,連接導線是否有折斷或損害情況。

如果硬件連接沒有問題,則檢視是否不小心使用了鎖屏命令。方法是,按下"Ctrl+q"鍵,如果系統有響應,則說明是因爲用戶按下了"ctrl+s"鍵將屏幕暫時鎖住的原因。鎖住後的屏幕將不顯示用戶從鍵盤輸入的資訊,但輸入的資訊依然能夠執行。

如果系統仍沒有響應,我們則要重新啓動系統,進入PROM狀態,輸入printenv命令,並檢視inputdevice項的值,如果它的值不是keyboard,用

ok>setenvinputdevicekeyboard

來使鍵盤成爲輸入設備,然後再次重啓系統,這時系統將會響應用戶的輸入了。

或at命令不能執行

UNIX系統並不允許任何用戶都可使用cron進行作業調度,對用戶的限制有兩個檔案,它們是/etc/cron.d/w和/etc/cron.d/。

如果用戶名被添加到/etc/cron.d/w檔案中,則該用戶被允許使用cron,而不在該檔案中的用戶則不允許使用,如果用戶被添加到/etc/cron.d/中,則該用戶不能使用cron,其它用戶則可以使用cron。通常我們根據需要配置其中一個檔案就可以了。

如果用戶被允許使用cron,則可以用命令

$crontabmyCronFile

在系統的/var/spool/cron/crontabs目錄中安裝自己的作業調度控制檔案。

at和cron相似,要使用at,需要配置/etc/cron.d/w或/etc/cron.d/檔案。

5.在Telnet時不能用root登入

在默認情況下,出於安全性考慮,UNIX系統不允許在系統操作檯(console)以外的終端用root登入,所以有時我們透過Telnet用root登入時,會返回

"notonsystemconsole"

這樣的錯誤,這時,我們可以透過修改/etc/default/login檔案來允許root透過Telnet登入。具體方法是,編輯login檔案,找到下面的一行:

CONSOLE=/dev/console

將這一行註釋掉,即在行首加上"#"符,存盤退出,再次使用Telnet時,root就可以登入了。

6.關於目錄的訪問權限

我們都知道UNIX系統中的每一個檔案都有相應的訪問權限,系統根據該權限來控制用戶對檔案的訪問,UNIX系統中的目錄也有相應的訪問權限,但它的定義與檔案有些不同。

讀權限:

對目錄的讀權限表示用戶可以檢視該目錄的內容,即可以對該目錄使用象"ls"這樣的命令。

寫權限:

對目錄的寫權限表示用戶可以在該目錄下建立新檔案或將其中的檔案刪除,不論此時用戶對該檔案是否有寫權限。

執行權限:

執行權限指用戶可以在該目錄下搜尋檔案,也即可以使用該目錄下具有相應訪問權限的檔案。

四.總結

以上介紹的管理維護命令只是UNIX系統維護管理命令的極少的一部分,UNIX還提供了其它很多有用的命令,這需要我們在工作中不斷的學習和研究。