1. 程式人生 > 實用技巧 >常用linux命令集合

常用linux命令集合

系統資訊

arch#顯示機器的處理器架構(1)
uname-m#顯示機器的處理器架構(2)
uname-r#顯示正在使用的核心版本
dmidecode-q #顯示硬體系統部件-(SMBIOS/DMI)
hdparm-i/dev/hda #羅列一個磁碟的架構特性
hdparm-tT/dev/sda #在磁碟上執行測試性讀取操作
cat/proc/cpuinfo #顯示CPUinfo的資訊
cat/proc/interrupts #顯示中斷
cat/proc/meminfo #校驗記憶體使用
cat/proc/swaps #顯示哪些swap被使用
cat/proc/version #顯示核心的版本
cat/proc/net/dev #顯示網路介面卡及統計
cat/proc/mounts #顯示已載入的檔案系統
lspci-tv#羅列PCI裝置
lsusb-tv#顯示USB裝置

date 顯示系統日期

cal2007 #顯示2007年的日曆表
date041217002007.00 #設定日期和時間-月日時分年.秒
clock-w #將時間修改儲存到BIOS

關機 (系統的關機、重啟以及登出 )

shutdown-hnow #關閉系統(1)
init0 #關閉系統(2)
telinit0 #關閉系統(3)
shutdown-hhours:minutes& #按預定時間關閉系統
shutdown-c #取消按預定時間關閉系統
shutdown-rnow #重啟(1)
reboot#重啟(2)
logout#登出

檔案和目錄

cd/home#進入'/home'目錄'
cd..#返回上一級目錄
cd../..#返回上兩級目錄
cd#進入個人的主目錄
cd~user1#進入個人的主目錄
cd- #返回上次所在的目錄
pwd #顯示工作路徑

ls #檢視目錄中的檔案
ls-F #檢視目錄中的檔案
ls-l #顯示檔案和目錄的詳細資料
ls-a #顯示隱藏檔案
ls*[0-9]* #顯示包含數字的檔名和目錄名
tree #顯示檔案和目錄由根目錄開始的樹形結構(1)
lstree #顯示檔案和目錄由根目錄開始的樹形結構(2)

mkdirdir1 #建立一個叫做'dir1'的目錄'
mkdirdir1dir2 #同時建立兩個目錄
mkdir-p/tmp/dir1/dir2#建立一個目錄樹
rm-ffile1 #刪除一個叫做'file1'的檔案'
rmdirdir1 #刪除一個叫做'dir1'的目錄'
rm-rfdir1 #刪除一個叫做'dir1'的目錄並同時刪除其內容
rm-rfdir1dir2 #同時刪除兩個目錄及它們的內容
mvdir1new_dir #重新命名/移動一個目錄

cpfile1file2 #複製一個檔案
cpdir/*. #複製一個目錄下的所有檔案到當前工作目錄
cp-a/tmp/dir1. #複製一個目錄到當前工作目錄
cp-adir1dir2 #複製一個目錄

ln-sfile1lnk1#建立一個指向檔案或目錄的軟連結
lnfile1lnk1#建立一個指向檔案或目錄的物理連結

touch-t0712250000file1#修改一個檔案或目錄的時間戳-(YYMMDDhhmm)
filefile1outputsthemimetypeofthefileastext
iconv-l#列出已知的編碼

iconv-ffromEncoding-ttoEncodinginputFile>outputFilecreatesanewfromthegiveninputfilebyassumingitisencodedinfromEncodingandconvertingittotoEncoding.

find.-maxdepth1-name*.jpg-print-execconvert"{}"-resize80x60"thumbs/{}"\;batchresizefilesinthecurrentdirectoryandsendthemtoathumbnailsdirectory(requiresconvertfromImagemagick)

檔案搜尋

find/-namefile1   #從'/'開始進入根檔案系統搜尋檔案和目錄
find/-useruser1 #搜尋屬於使用者'user1'的檔案和目錄
find/home/user1-name\*.bin #在目錄'/home/user1'中搜索帶有'.bin'結尾的檔案
find/usr/bin-typef-atime+100 #搜尋在過去100天內未被使用過的執行檔案
find/usr/bin-typef-mtime-10 #搜尋在10天內被建立或者修改過的檔案
find/-name\*.rpm-execchmod755'{}'\; #搜尋以'.rpm'結尾的檔案並定義其許可權
find/-xdev-name\*.rpm #搜尋以'.rpm'結尾的檔案,忽略光碟機、捷盤等可移動裝置
locate\*.ps #尋找以'.ps'結尾的檔案-先執行'updatedb'命令
whereishalt #顯示一個二進位制檔案、原始碼或man的位置
whichhalt #顯示一個二進位制檔案或可執行檔案的完整路徑

掛載一個檔案系統

mount/dev/hda2/mnt/hda2   #掛載一個叫做hda2的盤-確定目錄'/mnt/hda2'已經存在
umount/dev/hda2 #解除安裝一個叫做hda2的盤-先從掛載點'/mnt/hda2'退出
fuser-km/mnt/hda2 #當裝置繁忙時強制解除安裝
umount-n/mnt/hda2 #執行解除安裝操作而不寫入/etc/mtab檔案-當檔案為只讀或當磁碟寫滿時非常有用
mount/dev/fd0/mnt/floppy #掛載一個軟盤
mount/dev/cdrom/mnt/cdrom #掛載一個cdrom或dvdrom
mount/dev/hdc/mnt/cdrecorder #掛載一個cdrw或dvdrom
mount/dev/hdb/mnt/cdrecorder #掛載一個cdrw或dvdrom
mount-oloopfile.iso/mnt/cdrom #掛載一個檔案或ISO映象檔案
mount-tvfat/dev/hda5/mnt/hda5 #掛載一個WindowsFAT32檔案系統
mount/dev/sda1/mnt/usbdisk #掛載一個usb捷盤或快閃記憶體裝置
mount-tsmbfs-ousername=user,password=pass//WinClient/share/mnt/share#掛載一個windows網路共享

磁碟空間

df-h#顯示已經掛載的分割槽列表
ls-lSr|more #以尺寸大小排列檔案和目錄
du-shdir1 #估算目錄'dir1'已經使用的磁碟空間'
du-sk*|sort-rn#以容量大小為依據依次顯示檔案和目錄的大小
rpm-q-a--qf'%10{SIZE}t%{NAME}n'|sort-k1,1n
#以大小為依據依次顯示已安裝的rpm包所使用的空間(fedora,redhat類系統)
dpkg-query-W-f='${Installed-Size;10}t${Package}n'|sort-k1,1n
#以大小為依據顯示已安裝的deb包所使用的空間(ubuntu,debian類系統)

使用者和群組

groupaddgroup_name#建立一個新使用者組
groupdelgroup_name#刪除一個使用者組
groupmod-nnew_group_nameold_group_name#重新命名一個使用者組
useradd-c"NameSurname"-gadmin-d/home/user1-s/bin/bashuser1#建立一個屬於"admin"使用者組的使用者
useradduser1#建立一個新使用者
userdel-ruser1#刪除一個使用者('-r'排除主目錄)
usermod-c"UserFTP"-gsystem-d/ftp/user1-s/bin/nologinuser1#修改使用者屬性

passwd#修改口令
passwduser1#修改一個使用者的口令(只允許root執行)
chage-E2005-12-31user1#設定使用者口令的失效期限
pwck#檢查'/etc/passwd'的檔案格式和語法修正以及存在的使用者
grpck#檢查'/etc/passwd'的檔案格式和語法修正以及存在的群組
newgrpgroup_name#登陸進一個新的群組以改變新建立檔案的預設群組

檔案的許可權

使用"+"設定許可權,使用"-"用於取消

ls-lh#顯示許可權
ls/tmp|pr-T5-W$COLUMNS#將終端劃分成5欄顯示
chmodugo+rwxdirectory1#設定目錄的所有人(u)、群組(g)以及其他人(o)以讀(r)、寫(w)和執行(x)的許可權
chmodgo-rwxdirectory1#刪除群組(g)與其他人(o)對目錄的讀寫執行許可權
chownuser1file1#改變一個檔案的所有人屬性
chown-Ruser1directory1#改變一個目錄的所有人屬性並同時改變改目錄下所有檔案的屬性
chgrpgroup1file1#改變檔案的群組
chownuser1:group1file1#改變一個檔案的所有人和群組屬性
find/-perm-u+s#羅列一個系統中所有使用了SUID控制的檔案
chmodu+s/bin/file1#設定一個二進位制檔案的SUID位-執行該檔案的使用者也被賦予和所有者同樣的許可權
chmodu-s/bin/file1#禁用一個二進位制檔案的SUID位
chmodg+s/home/public#設定一個目錄的SGID位-類似SUID,不過這是針對目錄的
chmodg-s/home/public#禁用一個目錄的SGID位
chmodo+t/home/public#設定一個檔案的STIKY位-只允許合法所有人刪除檔案
chmodo-t/home/public#禁用一個目錄的STIKY位

檔案的特殊屬性

-使用"+"設定許可權,使用"-"用於取消

chattr+afile1#只允許以追加方式讀寫檔案
chattr+cfile1#允許這個檔案能被核心自動壓縮/解壓
chattr+dfile1#在進行檔案系統備份時,dump程式將忽略這個檔案
chattr+ifile1#設定成不可變的檔案,不能被刪除、修改、重新命名或者連結
chattr+sfile1#允許一個檔案被安全地刪除
chattr+Sfile1#一旦應用程式對這個檔案執行了寫操作,使系統立刻把修改的結果寫到磁碟
chattr+ufile1#若檔案被刪除,系統會允許你在以後恢復這個被刪除的檔案
lsattr#顯示特殊的屬性

打包和壓縮檔案

bunzip2file1.bz2#解壓一個叫做'file1.bz2'的檔案
bzip2file1#壓縮一個叫做'file1'的檔案
gunzipfile1.gz#解壓一個叫做'file1.gz'的檔案
gzipfile1#壓縮一個叫做'file1'的檔案
gzip-9file1#最大程度壓縮

rarafile1.rartest_file#建立一個叫做'file1.rar'的包
rarafile1.rarfile1file2dir1#同時壓縮'file1','file2'以及目錄'dir1'
rarxfile1.rar#解壓rar包
unrarxfile1.rar#解壓rar包

tar-cvfarchive.tarfile1#建立一個非壓縮的tarball
tar-cvfarchive.tarfile1file2dir1#建立一個包含了'file1','file2'以及'dir1'的檔案檔案
tar-tfarchive.tar#顯示一個包中的內容
tar-xvfarchive.tar#釋放一個包
tar-xvfarchive.tar-C/tmp#將壓縮包釋放到/tmp目錄下
tar-cvfjarchive.tar.bz2dir1#建立一個bzip2格式的壓縮包
tar-jxvfarchive.tar.bz2#解壓一個bzip2格式的壓縮包
tar-cvfzarchive.tar.gzdir1#建立一個gzip格式的壓縮包
tar-zxvfarchive.tar.gz#解壓一個gzip格式的壓縮包

zipfile1.zipfile1#建立一個zip格式的壓縮包
zip-rfile1.zipfile1file2dir1#將幾個檔案和目錄同時壓縮成一個zip格式的壓縮包
unzipfile1.zip#解壓一個zip格式壓縮包

RPM 包 - (Fedora, Redhat及類似系統)

rpm-ivhpackage.rpm#安裝一個rpm包
rpm-ivh--nodeepspackage.rpm#安裝一個rpm包而忽略依賴關係警告
rpm-Upackage.rpm#更新一個rpm包但不改變其配置檔案
rpm-Fpackage.rpm#更新一個確定已經安裝的rpm包
rpm-epackage_name.rpm#刪除一個rpm包
rpm-qa#顯示系統中所有已經安裝的rpm包
rpm-qa|grephttpd#顯示所有名稱中包含"httpd"字樣的rpm包
rpm-qipackage_name#獲取一個已安裝包的特殊資訊
rpm-qg"SystemEnvironment/Daemons"#顯示一個元件的rpm包
rpm-qlpackage_name#顯示一個已經安裝的rpm包提供的檔案列表
rpm-qcpackage_name#顯示一個已經安裝的rpm包提供的配置檔案列表
rpm-qpackage_name--whatrequires#顯示與一個rpm包存在依賴關係的列表
rpm-qpackage_name--whatprovides#顯示一個rpm包所佔的體積
rpm-qpackage_name--scripts#顯示在安裝/刪除期間所執行的指令碼l
rpm-qpackage_name--changelog#顯示一個rpm包的修改歷史
rpm-qf/etc/httpd/conf/httpd.conf#確認所給的檔案由哪個rpm包所提供
rpm-qppackage.rpm-l#顯示由一個尚未安裝的rpm包提供的檔案列表
rpm--import/media/cdrom/RPM-GPG-KEY#匯入公鑰數字證書
rpm--checksigpackage.rpm#確認一個rpm包的完整性
rpm-qagpg-pubkey#確認已安裝的所有rpm包的完整性
rpm-Vpackage_name#檢查檔案尺寸、許可、型別、所有者、群組、MD5檢查以及最後修改時間
rpm-Va#檢查系統中所有已安裝的rpm包-小心使用
rpm-Vppackage.rpm#確認一個rpm包還未安裝
rpm2cpiopackage.rpm|cpio--extract--make-directories*bin*#從一個rpm包執行可執行檔案
rpm-ivh/usr/src/redhat/RPMS/`arch`/package.rpm#從一個rpm原始碼安裝一個構建好的包
rpmbuild--rebuildpackage_name.src.rpm#從一個rpm原始碼構建一個rpm包

YUM 軟體包升級器 - (Fedora, RedHat及類似系統)

yuminstallpackage_name#下載並安裝一個rpm包
yumlocalinstallpackage_name.rpm#將安裝一個rpm包,使用你自己的軟體倉庫為你解決所有依賴關係
yumupdatepackage_name.rpm#更新當前系統中所有安裝的rpm包
yumupdatepackage_name#更新一個rpm包
yumremovepackage_name#刪除一個rpm包
yumlist#列出當前系統中安裝的所有包
yumsearchpackage_name#在rpm倉庫中搜尋軟體包
yumcleanpackages#清理rpm快取刪除下載的包
yumcleanheaders#刪除所有標頭檔案
yumcleanall#刪除所有快取的包和標頭檔案

DEB 包 (Debian, Ubuntu 以及類似系統)

dpkg-ipackage.deb#安裝/更新一個deb包
dpkg-rpackage_name#從系統刪除一個deb包
dpkg-l#顯示系統中所有已經安裝的deb包
dpkg-l|grephttpd#顯示所有名稱中包含"httpd"字樣的deb包
dpkg-spackage_name#獲得已經安裝在系統中一個特殊包的資訊
dpkg-Lpackage_name#顯示系統中已經安裝的一個deb包所提供的檔案列表
dpkg--contentspackage.deb#顯示尚未安裝的一個包所提供的檔案列表
dpkg-S/bin/ping#確認所給的檔案由哪個deb包提供

APT 軟體工具 (Debian, Ubuntu 以及類似系統)

apt-getinstallpackage_name#安裝/更新一個deb包
apt-cdrominstallpackage_name#從光碟安裝/更新一個deb包
apt-getupdate#升級列表中的軟體包
apt-getupgrade#升級所有已安裝的軟體
apt-getremovepackage_name#從系統刪除一個deb包
apt-getcheck#確認依賴的軟體倉庫正確
apt-getclean#從下載的軟體包中清理快取
apt-cachesearchsearched-package#返回包含所要搜尋字串的軟體包名稱

檢視檔案內容

catfile1#從第一個位元組開始正向檢視檔案的內容
tacfile1#從最後一行開始反向檢視一個檔案的內容
morefile1#檢視一個長檔案的內容
lessfile1#類似於'more'命令,但是它允許在檔案中和正向操作一樣的反向操作
head-2file1#檢視一個檔案的前兩行
tail-2file1#檢視一個檔案的最後兩行
tail-f/var/log/messages#實時檢視被新增到一個檔案中的內容

文字處理

catfile1file2...|command<>file1_in.txt_or_file1_out.txtgeneralsyntaxfortextmanipulationusingPIPE,STDINandSTDOUT

catfile1|command(sed,grep,awk,grep,etc...)>result.txt
#合併一個檔案的詳細說明文字,並將簡介寫入一個新檔案中
catfile1|command(sed,grep,awk,grep,etc...)>>result.txt
#合併一個檔案的詳細說明文字,並將簡介寫入一個已有的檔案中

grepAug/var/log/messages#在檔案'/var/log/messages'中查詢關鍵詞"Aug"
grep^Aug/var/log/messages#在檔案'/var/log/messages'中查詢以"Aug"開始的詞彙
grep[0-9]/var/log/messages#選擇'/var/log/messages'檔案中所有包含數字的行
grepAug-R/var/log/*#在目錄'/var/log'及隨後的目錄中搜索字串"Aug"

sed's/stringa1/stringa2/g'example.txt
#將example.txt檔案中的"string1"替換成"string2"
sed'/^$/d'example.txt#從example.txt檔案中刪除所有空白行
sed'/*#/d;/^$/d'example.txt#從example.txt檔案中刪除所有註釋和空白行
echo'esempio'|tr'[:lower:]''[:upper:]'#合併上下單元格內容
sed-e'1d'result.txt#從檔案example.txt中排除第一行
sed-n'/stringa1/p'#檢視只包含詞彙"string1"的行
sed-e's/*$//'example.txt#刪除每一行最後的空白字元
sed-e's/stringa1//g'example.txt
#從文件中只刪除詞彙"string1"並保留剩餘全部
sed-n'1,5p;5q'example.txt#檢視從第一行到第5行內容
sed-n'5p;5q'example.txt#檢視第5行
sed-e's/00*/0/g'example.txt#用單個零替換多個零

cat-nfile1#標示檔案的行數
catexample.txt|awk'NR%2==1'#刪除example.txt檔案中的所有偶數行
echoabc|awk'{print$1}'#檢視一行第一欄
echoabc|awk'{print$1,$3}'#檢視一行的第一和第三欄
pastefile1file2#合併兩個檔案或兩欄的內容
paste-d'+'file1file2#合併兩個檔案或兩欄的內容,中間用"+"區分

sortfile1file2#排序兩個檔案的內容
sortfile1file2|uniq#取出兩個檔案的並集(重複的行只保留一份)
sortfile1file2|uniq-u#刪除交集,留下其他的行
sortfile1file2|uniq-d#取出兩個檔案的交集(只留下同時存在於兩個檔案中的檔案)

comm-1file1file2#比較兩個檔案的內容只刪除'file1'所包含的內容
comm-2file1file2#比較兩個檔案的內容只刪除'file2'所包含的內容
comm-3file1file2#比較兩個檔案的內容只刪除兩個檔案共有的部分

字元設定和檔案格式轉換

dos2unixfiledos.txtfileunix.txt#將一個文字檔案的格式從MSDOS轉換成UNIX
unix2dosfileunix.txtfiledos.txt#將一個文字檔案的格式從UNIX轉換成MSDOS
recode..HTML<page.txt>page.html#將一個文字檔案轉換成html
recode-l|more#顯示所有允許的轉換格式

檔案系統分析

badblocks-v/dev/hda1#檢查磁碟hda1上的壞磁塊
fsck/dev/hda1#修復/檢查hda1磁碟上linux檔案系統的完整性
fsck.ext2/dev/hda1#修復/檢查hda1磁碟上ext2檔案系統的完整性
e2fsck/dev/hda1#修復/檢查hda1磁碟上ext2檔案系統的完整性
e2fsck-j/dev/hda1#修復/檢查hda1磁碟上ext3檔案系統的完整性
fsck.ext3/dev/hda1#修復/檢查hda1磁碟上ext3檔案系統的完整性
fsck.vfat/dev/hda1#修復/檢查hda1磁碟上fat檔案系統的完整性
fsck.msdos/dev/hda1#修復/檢查hda1磁碟上dos檔案系統的完整性
dosfsck/dev/hda1#修復/檢查hda1磁碟上dos檔案系統的完整性

初始化一個檔案系統

mkfs/dev/hda1#在hda1分割槽建立一個檔案系統
mke2fs/dev/hda1#在hda1分割槽建立一個linuxext2的檔案系統
mke2fs-j/dev/hda1#在hda1分割槽建立一個linuxext3(日誌型)的檔案系統
mkfs-tvfat32-F/dev/hda1#建立一個FAT32檔案系統
fdformat-n/dev/fd0#格式化一個軟盤
mkswap/dev/hda3#建立一個swap檔案系統

SWAP檔案系統

mkswap/dev/hda3#建立一個swap檔案系統
swapon/dev/hda3#啟用一個新的swap檔案系統
swapon/dev/hda2/dev/hdb3#啟用兩個swap分割槽

備份

dump-0aj-f/tmp/home0.bak/home#製作一個'/home'目錄的完整備份
dump-1aj-f/tmp/home0.bak/home#製作一個'/home'目錄的互動式備份
restore-if/tmp/home0.bak#還原一個互動式備份

rsync-rogpav--delete/home/tmp#同步兩邊的目錄
rsync-rogpav-essh--delete/homeip_address:/tmp#通過SSH通道rsync
rsync-az-essh--deleteip_addr:/home/public/home/local#通過ssh和壓縮將一個遠端目錄同步到本地目錄
rsync-az-essh--delete/home/localip_addr:/home/public#通過ssh和壓縮將本地目錄同步到遠端目錄

ddbs=1Mif=/dev/hda|gzip|sshuser@ip_addr'ddof=hda.gz'
#通過ssh在遠端主機上執行一次備份本地磁碟的操作
ddif=/dev/sdaof=/tmp/file1
#備份磁碟內容到一個檔案
tar-Pufbackup.tar/home/user執行一次對'/home/user'
#目錄的互動式備份操作
(cd/tmp/local/&&tarc.)|ssh-Cuser@ip_addr'cd/home/share/&&tarx-p'
#通過ssh在遠端目錄中複製一個目錄內容
(tarc/home)|ssh-Cuser@ip_addr'cd/home/backup-home&&tarx-p'
#通過ssh在遠端目錄中複製一個本地目錄
tarcf-.|(cd/tmp/backup;tarxf-)
#本地將一個目錄複製到另一個地方,保留原有許可權及連結

find/home/user1-name'*.txt'|xargscp-av--target-directory=/home/backup/--parents
#從一個目錄查詢並複製所有以'.txt'結尾的檔案到另一個目錄
find/var/log-name'*.log'|tarcv--files-from=-|bzip2>log.tar.bz2
#查詢所有以'.log'結尾的檔案並做成一個bzip包

ddif=/dev/hdaof=/dev/fd0bs=512count=1
#做一個將MBR(MasterBootRecord)內容複製到軟盤的動作
ddif=/dev/fd0of=/dev/hdabs=512count=1
#從已經儲存到軟盤的備份中恢復MBR內容

光碟

cdrecord-vgracetime=2dev=/dev/cdrom-ejectblank=fast-force
#清空一個可複寫的光碟內容

mkisofs/dev/cdrom>cd.iso#在磁碟上建立一個光碟的iso映象檔案
mkisofs/dev/cdrom|gzip>cd_iso.gz#在磁碟上建立一個壓縮了的光碟iso映象檔案
mkisofs-J-allow-leading-dots-R-V"LabelCD"-iso-level4-o./cd.isodata_cd
#建立一個目錄的iso映象檔案
cdrecord-vdev=/dev/cdromcd.iso#燒錄一個ISO映象檔案
gzip-dccd_iso.gz|cdrecorddev=/dev/cdrom-#燒錄一個壓縮了的ISO映象檔案
mount-oloopcd.iso/mnt/iso#掛載一個ISO映象檔案

cd-paranoia-B#從一個CD光碟轉錄音軌到wav檔案中
cd-paranoia--"-3"#從一個CD光碟轉錄音軌到wav檔案中(引數-3)
cdrecord--scanbus#掃描匯流排以識別scsi通道
ddif=/dev/hdc|md5sum#校驗一個裝置的md5sum編碼,例如一張CD

網路 - (乙太網和WIFI無線)

ifconfigeth0#顯示一個乙太網卡的配置
ifupeth0#啟用一個'eth0'網路裝置
ifdowneth0#禁用一個'eth0'網路裝置
ifconfigeth0192.168.1.1netmask255.255.255.0#控制IP地址
ifconfigeth0promisc#設定'eth0'成混雜模式以嗅探資料包(sniffing)
dhclienteth0#以dhcp模式啟用'eth0'

route-n#檢視路由表
routeadd-net0/0gwIP_Gateway#配置預設閘道器
routeadd-net192.168.0.0netmask255.255.0.0gw192.168.1.1
#配置靜態路由到達網路'192.168.0.0/16'
routedel0/0gwIP_gateway#刪除靜態路由

hostname#檢視機器名
hostwww.example.com#把一個主機名解析到一個網際地址或把一個網際地址解析到一個主機名。
nslookupwww.example.com#用於查詢DNS的記錄,檢視域名解析是否正常,在網路故障的時候用來診斷網路問題。
iplinkshow#檢視網絡卡資訊
mii-tool#用於檢視、管理介質的網路介面的狀態
ethtool#用於查詢和設定網絡卡配置
netstat-tupl#用於顯示TCP/UDP的狀態資訊
tcpdumptcpport80#顯示所有http協議的流量

JPS工具

jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一個顯示當前所有java程序pid的命令,簡單實用,非常適合在linux/unix平臺上簡單察看當前java程序的一些簡單情況。

我想很多人都是用過unix系統裡的ps命令,這個命令主要是用來顯示當前系統的程序情況,有哪些程序,及其 id。jps 也是一樣,它的作用是顯示當前系統的java程序情況,及其id號。我們可以通過它來檢視我們到底啟動了幾個java程序(因為每一個java程式都會獨佔一個java虛擬機器例項),和他們的程序號(為下面幾個程式做準備),並可通過opt來檢視這些程序的詳細啟動引數。

使用方法:在當前命令列下打 jps(需要JAVA_HOME,沒有的話,到改程式的目錄下打) 。

jps存放在JAVA_HOME/bin/jps,使用時為了方便請將JAVA_HOME/bin/加入到Path.
$>jps
23991Jps
23789BossMain
23651Resin

比較常用的引數:

#-q只顯示pid,不顯示class名稱,jar檔名和傳遞給main方法的引數
$>jps-q
28680
23789
23651

#-m輸出傳遞給main方法的引數,在嵌入式jvm上可能是null
$>jps-m
28715Jps-m
23789BossMain
23651Resin-socketwait32768-stdout/data/aoxj/resin/log/stdout.log-stderr/data/aoxj/resin/log/stderr.log

#-l輸出應用程式mainclass的完整package名或者應用程式的jar檔案完整路徑名
$>jps-l
28729sun.tools.jps.Jps
23789com.asiainfo.aimc.bossbi.BossMain
23651com.caucho.server.resin.Resin

#-v輸出傳遞給JVM的引數
$>jps-v

23789BossMain

28802Jps-Denv.class.path=/data/aoxj/bossbi/twsecurity/java/trustwork140.jar:/data/aoxj/bossbi/twsecurity/java/:/data/aoxj/bossbi/twsecurity/java/twcmcc.jar:/data/aoxj/jdk15/lib/rt.jar:/data/aoxj/jd

k15/lib/tools.jar-Dapplication.home=/data/aoxj/jdk15-Xms8m

23651Resin-Xss1m-Dresin.home=/data/aoxj/resin-Dserver.root=/data/aoxj/resin-Djava.util.logging.manager=com.caucho.log.LogManagerImpl-

Djavax.management.builder.initial=com.caucho.jmx.MBeanServerBuilderImpl


jps192.168.0.77
#列出遠端伺服器192.168.0.77機器所有的jvm例項,採用rmi協議,預設連線埠為1099(前提是遠端伺服器提供jstatd服務)

#注:jps命令有個地方很不好,似乎只能顯示當前使用者的java程序,要顯示其他使用者的還是隻能用unix/linux的ps命令。