1. 程式人生 > >Linux命令--系統管理與設定

Linux命令--系統管理與設定

3.1常用的資訊顯示命令

arch:顯示主機的體系結構,等同於uname -m,可輸出i386、i486、arm等。

cal:顯示日曆。

cat /proc/meminfo:檢視記憶體使用情況。/proc目錄下的檔案通常用來幫助檢視核心執行資訊,系統關閉後,該目錄的檔案不再存在。

cat /proc/modules:檢視當前系統模組。

cat /proc/version:檢視當前系統版本。

cat /proc/partitions:檢視當前系統分割槽。

cat /etc/issue:顯示當前系統的發行版本。

cat /proc/cpuinfo:顯示CPU資訊。

cat /proc/interrupts:顯示中斷資訊。

cat /proc/filesystems:顯示檔案系統資訊。

date:顯示或設定系統時間。

dmesg:顯示啟動資訊。檢測和控制核心的快取,通常用來顯示輸出系統最後一次啟動時的核心內部快取資訊。

echo:顯示文字行。(echo -e支援轉義字元)

free:顯示記憶體資訊。(free -s 2 -c 3表示每隔2s重新整理一次記憶體,共重新整理3次)

fgconsole:顯示活動的虛擬終端數目。

fuser:用檔案或套介面識別程序。(fuser -l顯示訊號,fuser -a /root顯示與/root目錄相關的程序,fuser -k /root殺死所有與/root目錄相關的程序)

gdialog

:從Shell建立對話方塊。(例:gdialog --title "hello" --yesno "this is content")

history:顯示歷史指令。(保留最近執行的命令記錄,預設可以保留500個。history 5表示顯示最近執行的5個命令。history -c清空歷史記錄。重新執行已執行的命令可以使用“!<命令事件號>”)

hostname:顯示或設定當前系統的主機名。(-s顯示短主機名;-a顯示主機別名;-i顯示主機IP;-d顯示主機域名;--yp顯示NIS/YP域名;hostname somename設定主機名)

hash:顯示、新增或清除雜湊表。(-l顯示雜湊表;-r清除表;-p<path><name>增加內容;-t<command>顯示指定命令的完整路徑)

hwclock:顯示和設定硬體時鐘。(hwclock -utc顯示utc時間)

ipcs:顯示IPC裝置資訊。(對程序通訊進行描述。-p顯示PID資訊;-t時間資訊;-m共享記憶體資訊;-c建立者資訊)

isosize:顯示輸出iso9660檔案系統的大小。(光碟機裝置屬於iso9660檔案系統,isosize /dev/cdrom顯示檔案大小。isosize -d 1024 /dev/cdrom以大小為1024的塊來顯示光碟機裝置的大小。-x以易讀方式顯示大小。)

jobs:顯示後臺執行的作業。(命令後接&會以後臺方式執行該命令。-l列出作業的詳細資訊;-p列出作業ID,-s列出停止執行的作業。)

lsmod:顯示所有已載入的模組。

locale:顯示當前系統的語言設定。(-a輸出所有可用的語言名稱;-m輸出所有可用的字符集)

mesg:顯示資訊。(y允許使用者通過write命令傳送資訊到當前終端;n禁止傳送)

minfo:顯示ms-dos檔案系統的各項引數。(包括扇區數、磁頭數、柱面數等。minfo -v C: 除顯示檔案系統的各項引數外,以十六進位制顯示C盤扇區內容。)

modinfo:顯示核心模組資訊。(modinfo modname)

mev:監視滑鼠情況。

pstree:以樹狀圖顯示程式。(預設以init程序為根。pid可指定某一程序為根;-p可顯示程序及程序號;-h高亮當前正在執行的程序。)

pwd:顯示當前目錄。

proc檔案系統:檢視系統核心資訊。(proc不是真實的檔案系統,不佔用外存,只是以檔案的方式為訪問Linux核心資料提供介面。ls /proc可檢視)

ps:報告程式狀況。(-e檢視當前所有程序;-u root檢視以root身份執行的程序;-u root N檢視非root身份執行的程序;-o pid,tt,user,fname,f,tmout,wchan以指定的排序方式顯示;a顯示所有程序,包括其他使用者的程序;x顯示沒有控制終端的所有程序;-C command顯示與command程序相關的程序號,程序及其子程序)

pmap:顯示程式的記憶體資訊。(pmap pid)

procinfo:顯示系統狀態資訊。

runlevel:顯示系統執行級別。(輸出前一個和當前的執行級別。如果沒有記錄上次系統的執行等級,則用N表示。執行級別說明:0-關閉系統;1-單使用者模式;2-多使用者模式,但不支援NFS;3-完全的多使用者模式;4-保留;5-圖形使用者模式;6-重新啟動。)

sysctl:設定系統核心引數。(-a顯示當前所有的設定;-w<varible=key>設定引數。)

stat:顯示檔案/檔案系統的詳細資訊。(例:stat /dev/sda)

top:顯示程序資訊。(q鍵退出)

time:執行命令並顯示該程序執行的時間。(例time ls)

tload:顯示系統負載。

uptime:顯示系統的執行資訊。(18:28:00 up 1 day,  6:58,  7 users,  load average: 0.07, 0.07, 0.12表示當前時間為18:28,系統執行1天6小時58分,有7個使用者登陸系統,過去一分鐘內的平均負載為0.07,過支5分鐘內的平均負載為 0.07,過去15分鐘內的平均負載為0.12。)

uname:顯示作業系統資訊。(-a顯示當前主機所有軟硬體資訊)

vmstat:顯示虛擬記憶體的統計資訊。

yes:連續輸出給定的字串。(yes | rm -i *命令可以自動回答rm命令提出的問題)

3.2 常用的系統管理命令

apm:高階電源管理。(ubuntu顯示No APM support in kernel)

apmd:高階電源管理守護程序。

apmsleep:設定掛起、待機及喚醒。(apmsleep -s +1:50掛機1小時50分鐘後被喚醒。apmsleep -s 8:00掛機直到早上8點被喚醒)

bg:將程式放在後臺執行。(例:sudo find / -name *.txt,之後用ctrl+z中止,顯示"[2]+  已停止 sudo find / -name *.txt",再執行bg 2可把這個程式放在後臺執行。)

chsh:改變登入系統時的Shell。(預設為/bin/bash。)

clear:清除終端螢幕。

depmod:檢查模組依賴關係。(--show顯示輸出模組之間的依賴關係。)

exec:執行完命令後,交出控制權。(虛擬終端上執行該exec會在執行完命令後退出終端。)

fc:修改並執行命令。(-l類似於history。fc 2 4:把命令號為2、3、4的命令在vi中編輯,編輯完成後執行這些命令。)

fg:把後臺任務放到前臺。(vi &,再通過jobs可以檢視後臺任務,顯示“[1]+  已停止 vi”。執行fg 1可以把vi放到前臺執行。)

gcov:coverage測試工具。(gcc sorcefile.c -o executable -ftest-coverage -fprofile-arcs可以生成一個.gcno檔案,再執行executalbe,之後便可以用gcov命令檢視執行情況。-b檢視程式的分支情況,-f檢視函式的使用情況。)

init:所有程序的父程序。(init 數字可以切換執行等級。比如init 0為關機;init 6是重啟。init有一個連結命令telinit。)

ipcrm:刪除訊息佇列、訊號量或共享記憶體的ID。(ipcs顯示IPC相關資訊,ipcrm -m 32768刪除程序32768的共享記憶體;-q刪除訊息佇列;-s刪除訊號量。不帶引數刪除所有。)

kill:殺死程序。(-l引數顯示所有可以使用的訊號。kill -s 訊號 程序號:向程序傳送指定訊號,不指定時的預設訊號為SIGHUP。-s SIGKILL強制殺死程序,可能導致某些資源沒有正確釋放。訊號可以直接作為引數,如kill -KILL或kill -9。)

killall:殺死同名的所有程序。(-l顯示所有可用的訊號。killall -s signal 程序名:向所有同名程序傳送訊號。預設訊號為SIGTERM。訊號也可以直接作為引數。)

logrotate:處理log檔案。(替換、壓縮、刪除或通過郵件傳送系統日誌。logrotate /etc/logrotate.conf指定配置檔案。)

mtools:軟盤操作命令集。(mtools顯示所有支援的軟盤命令,為相應的MS-DOS命令前加“m”,如"mdir a:"。)

nice:設定程序優先順序。(nice -N 命令。如nice -15 vim。N取值範圍為-20~19。-20是最高等級,19是最低等級。超過19的值被視為19;小於-20的值被視為-20。系統預設等級為0。未指定優先順序的nice命令預設等級為10。)

nohup:退出系統繼續執行命令。(虛擬終端執行nohup command &會執行命令,並顯示nohup: 忽略輸入並把輸出追加到"nohup.out"。)

ntsysv:設定系統的各種服務。(顯示圖形介面。ubuntu上找不到該命令。)

open:開啟虛擬終端。(open -s -c 6 -- ls -al在虛擬終端6執行ls -al命令,同時切換到虛擬終端6。-s執行命令時,切換到新的虛擬終端。-w等待命令結束。如果-w與-s合用,在命令結束後切換加原來的終端。)

pgrep:查詢符合條件的程序。(-u root查詢由root使用者建立的程序,-l同時列出程序名稱和ID。-v搜尋不符合條件的程序。-P pid列出父程序為指定程序的所有程序。)

pidof:顯示當前正在執行程式的程序ID。(例pidof vi。-o omitpid忽略程序號為omitpid的程序。-s返回首次匹配。)

pkill:殺死程序。(ps和kill的結合,在當前所有程序中查詢符合條件的程序,然後傳送相應訊號。pkill -t tty8殺死終端8的所有程序。-u root殺死root的程序。pkill -9 vim殺死vim。)

pwck:檢查密碼檔案。(例:pwck /etc/passwd;pwck /etc/shadow。-r只讀模式。)

rlogin:遠端登入。(先在遠端主機上執行chkconfig rlogin on開啟rlogin服務,ubuntu上找不到該服務。之後使用rlogin 192.168.20.122 -l username來登入該遠端主機。)

renice:對程序優先順序程序調整。(renice N 程序號,或-u 使用者名稱,或-g 使用者組。與nice不同,N前不需要“-”。)

rmmod:刪除模組。(lsmod顯示系統已安裝的模組。-a刪除所有沒有使用的模組。-v顯示執行時的詳細資訊。)

rsh:遠端登入的Shell。(遠端主機chkconfig rsh on。例:rsh -l yang 192.168.20.122 /bin/ls。ubuntu上rsh為unknown service。)

screen:多重視窗管理程式。(在一個終端上模擬多個終端。 screen或ctrl+a+c建立一個新的screen。ctrl+a進行screen的切換。screen -ls顯示所有screen列表。-d讓指定的screen離線。-r恢復指定的作業。unbuntu的虛擬終端好像只能建立一個screen。)

sleep:休眠。(s秒,m分,h小時,d天。虛擬終端上表示為其自身暫停。)

sudo:以其他身份來執行命令。(-L列出可以使用的引數。-u username使用指定身份執行命令。)

suspend:暫停執行Shell。(直到收到SIGCONT訊號為止。-f表示強制暫停。)

symlinks:管理和維護符號連結。(symlinks -v /:列出根目錄下所有的符號連結。-c將絕對路徑的連結轉化為相對路徑;-d刪除失效的連結(dangling);-r遞迴檢查子目錄;-t與-c合用時,對換進行檢測,但不進行實際的轉換。)

vlock:鎖定終端。

wait:等待程式返回狀態。(例:wait pid。)

watch:重複執行命令並將結果輸出。(watch -n 10 ls每隔10秒執行一次ls命令。)

&:將任務放到後臺執行。(例:vi &。)

3.3 常用的系統維護命令

alias:設定命令的別名。(alias列出已有的別名。-p以“name=value”的形式列出別名。alias name=value設定別名。)

aumix:設定音效裝置。(圖形介面。ubuntu上執行:aumix:開啟混音器時發生錯誤: 沒有那個檔案或目錄。)

authconfig:配置系統的認證資源。(圖形介面。對NIS、/etc/passwd、/etc/shadow、LDAP、Kerberos5以及SMB等資源認證進行配置。-back將“取消”按鈕更改為“返回”按鈕。ubuntu:authconfig:找不到命令)

bind:顯示或設定按鍵組合。(-l列出所有功能函式的名稱。-p列出所有功能函式及其繫結。-q function查詢指定功能的按鍵或按鍵組合。)

chkconfig:設定和檢查系統的服務設定。(--list列出所有服務設定狀態。chkconfig telnet on開啟telnet服務。chkconfig telnet off關閉telnet服務。)

declare:顯示或設定Shell變數。(-p顯示每一變數的名稱和屬性值。-x顯示環境變數;-f顯示函式名稱;-r只讀模式。)

dircolors:設定ls命令顯示的顏色。(-p顯示預設值。-b顯示Bourne Shell顏色程式碼設定;-c顯示C Shell顏色程式碼設定。)

enable:開動或關閉Shell內建命令。(-a顯示所有內建命令;-p顯示已載入的命令列表;enable name指定載入的命令。enable -n name關閉指定的命令。)

eval:連續執行多個命令。(例:eval ls; free; ps)

export:設定或顯示環境變數。(-p顯示所有環境變數。export name=value設定;-n刪除。)

false:返回值為失敗。(例:ls後,echo $?顯示0,表示無錯誤。false後,echo $?顯示1,表示失敗。)

fbset:顯示或設定幀快取。(fbset -g 800 600 1024 768設定畫面解析度800x600、桌面解析度1024x768。-accel true啟動硬體加速。-bcast true啟動廣播功能。-test測試。)

hostid:顯示出當前主機的數字標識。

insmod:載入模組。

ldcondifg:配置動態連結繫結。(-v建立共享庫的正確連結,更新緩衝區,並顯示相關資訊。-n dir只對特定目錄更新。)

ldd:顯示共享庫檔案的相互信賴關係。(顯示指定的程式或庫檔案所使用的共享庫。-v顯示所有資訊。)

lilo:安裝啟動裝載程式。

losetup:設定和控制迴圈裝置。(例:losetup /dev/loop0。)

mkraid:初始化或升級raid。(將一組塊裝置設定為一個raid裝置陣列。適合所有raid型別,包括RAID1、RAID4、RAID5、線性和RAID0。例:mkraid -f /dev/sda1+/dev/fd0。)

modprobe:自動處理可載入模組。(根據模組內的依賴關係自動安裝所有依賴的模組。-c顯示當前預設設定。例:modprobe -v 8139too安裝網絡卡8139too。)

mouseconfig:設定滑鼠相關引數。(redhat linux下的滑鼠配置工具,ubuntu不支援。--text圖形介面方式;--noui genericusb以命令形式指定滑鼠型別為genericusb。--device psaux指定滑鼠所在的埠為PS/2。)

resize:設定終端視窗的大小。(resize檢視視窗大小。-s 30 100設定大小為30行,每行100字元。-c採用C shell命令;-u採用Bourne Shell命令。)

rmp:管理rpm包。(-i安裝;-q查詢;-e解除安裝。)

setserial:設定或顯示串列埠的資訊。(例:setserial -v /dev/ttyS1顯示串列埠/dev/ttyS1的資訊。-a顯示詳細配置資訊。)

setup:設定公用程式。(設定認證、防火牆、滑鼠、網路配置、印表機配置、系統服務、時區配置等公用程式。ubuntu不支援。)

swapoff:解除安裝交換區(swap area)。(fdisk -l顯示系統分割槽資訊,/dev/sda3可能是一個交換分割槽。swapoff /dev/sda3解除安裝該交換分割槽。)

swapon:載入交換區。(swapon /dev/sda3載入交換分割槽。swapon -s /dev/sda3顯示交換分割槽資訊。)

set:設定Shell執行方式。(-f禁止使用萬用字元。+f新增萬用字元設定。例:set SHELL "/bin/sh"。)

telinit:設定系統執行等級。(/sbin/init的連結。)

true:返回值為成功。(與false相反。)

ulimit:控制Shell及程序的資源。(-a顯示資源配置。-u 500設定單使用者建立程序上限為500;-n 1000同一時間允許開啟的檔案數目最多為1000;-v 1024最大虛擬記憶體為1M。)

unalias:取消指定的別名。

unset:刪除變數或函式。

up2date:升級red hat linux系統。(ubuntu不支援。)

3.4 自動作業處理

crontab:設定定時執行。(首先確保有crond守護程序執行,用service crond start或service crond stop來開啟或關閉crond程序。ubuntu上是cron。該程序執行後,可以編輯/etc/crontab檔案來設定自動作業。可以看到檔案組織格式為“m h dom mon dow user  command”,分別表示“分、小時、日期、月、星期、使用者、命令”。例:17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly表示每小時的第17分鐘以root身份執行cd / && ... hourly的命令。另*/1 *   * * *   root    echo tommy crontab~~表示每隔1分鐘以root身份執行echo,預設情況會以郵件的方式發給root,通過cat /etc/mail/root可以檢視。可以使用重定向“echo tommy crontab~~ >> /home/tommy/tmp/record”把輸出轉到一個檔案中。)

anacron:任務高度守護程序。(與cron類似,區別在於 cron任務如果在指定時間沒能完成,則排程工作就會失敗,而anacron沒能成功執行後會間隔一段時間後再次執行該任務。需要通過service anacron start啟動守護程序。編輯/etc/anacrontab命令可以設定排程任務。檔案格式為:時間間隔、等待時間、任務標識、命令。例:1 65 cron.daily run-parts /etc/cron.daily。)

at:系統將執行的任務排隊。(把任務放到佇列中,按時執行,與 crond的區別是它只執行一次。例:at 21:55<回車> ls -al / /myshare/at_test<回車> <Ctrl+d>在21:55時執行。at now +5 min在5分鐘後執行。at 3pm tomorrow在明天下午3點執行。at 8am+3days在三天後早上8點執行。at -l查詢已經設定的任務。at -c 6顯示已經設定的任務6的內容。所有的任務都儲存在/var/spool/at目錄中。)

atd:執行已經排隊的任務。(at的任務要執行的話,必須要有一個atd的守護程序執行。-d輸出除錯資訊。-s只執行已排隊的任務一次。)

atq:檢查排隊的任務。

atrm:刪除已經排隊的任務。

atrun:執行已排隊的任務。(本質為一個Shell指令碼,等價於atd -s。)

batch:批處理。(與at一樣,batch也使用atd守護程序執行,命令格式也相同。不同在於batch在系統平均負載低於一個特定值時才會執行,預設為0.8。例:batch<回車> ls <回車> echo "hello" <回車> <Ctrl+d>。)

3.5 系統日誌

syslogd:啟動syslog日誌程序。(-r招收來自網路的syslog資訊。修改配置檔案後,用killall -HUP syslogd來重啟syslog程序。)

syslog.conf:系統日誌配置檔案。(/etc /syslog.conf,格式為[訊息來源.訊息級別] <Tab> [動作]。例:mail.*  /var/log/maillog將所有與電子郵件相關的資訊儲存到mailog檔案中。kern.emerg  *把核心恐慌訊息傳送給所有登入的使用者。)

logger:測試syslog.conf。(logger -p [訊息] [訊息內容]。例:logger -p kern.emerg "Just test"。)

echo > 日誌檔案:清空日誌。(如果建立日誌檔案的服務正在執行,必須停止服務,才能刪除日誌。利用echo命令,不必停止日誌服務。例:echo > /usr/local/apache/logs/error_log。)