① linux 查看使用了多少SOCKET
Linux系統中,ss命令可用於查看系統的socket的狀態。
1、命令格式:
ss [參數]
ss [參數] [過濾]
2、命令功能:
ss(Socket Statistics的縮寫)命令可以用來獲取 socket統計信息,此命令輸出的結果類似於
netstat輸出的內容,但它能顯示更多更詳細的 TCP連接狀態的信息,且比 netstat 更快速高效。它使用了 TCP協議棧中
tcp_diag(是一個用於分析統計的模塊),能直接從獲得第一手內核信息,這就使得 ss命令快捷高效。在沒有
tcp_diag,ss也可以正常運行。
3、命令參數:
-h, --help 幫助信息
-V, --version 程序版本信息
-n, --numeric 不解析服務名稱
-r, --resolve 解析主機名
-a, --all 顯示所有套接字(sockets)
-l, --listening 顯示監聽狀態的套接字(sockets)
-o, --options 顯示計時器信息
-e, --extended 顯示詳細的套接字(sockets)信息
-m, --memory 顯示套接字(socket)的內存使用情況
-p, --processes 顯示使用套接字(socket)的進程
-i, --info 顯示 TCP內部信息
-s, --summary 顯示套接字(socket)使用概況
-4, --ipv4 僅顯示IPv4的套接字(sockets)
-6, --ipv6 僅顯示IPv6的套接字(sockets)
-0, --packet 顯示 PACKET 套接字(socket)
-t, --tcp 僅顯示 TCP套接字(sockets)
-u, --udp 僅顯示 UCP套接字(sockets)
-d, --dccp 僅顯示 DCCP套接字(sockets)
-w, --raw 僅顯示 RAW套接字(sockets)
-x, --unix 僅顯示 Unix套接字(sockets)
-f, --family=FAMILY 顯示 FAMILY類型的套接字(sockets),FAMILY可選,支持 unix, inet, inet6, link, netlink
-A, --query=QUERY, --socket=QUERY
QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
-D, --diag=FILE 將原始TCP套接字(sockets)信息轉儲到文件
-F, --filter=FILE 從文件中都去過濾器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
4、使用實例:
顯示TCP連接
命令:ss -t -a
輸出:
代碼如下:
[root@localhost ~]# ss -t -a
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 0 127.0.0.1:smux *:*
LISTEN 0 0 *:3690 *:*
LISTEN 0 0 *:ssh *:*
ESTAB 0 0 192.168.120.204:ssh 10.2.0.68:49368
[root@localhost ~]#
② linux編譯安裝命令
Linux編譯安裝相關命令,下面以Linux安裝MySQL工具為例進行說明,代碼如下:
1、測試環境在Linux MySQL下進行,版本系統為CentOS5,以下為相關軟體:
mysql-5.1.30
memcached-1.2.6
libevent-1.4.7-stable
memcached_functions_mysql-0.8
libmemcached-0.26
2、編譯安裝Linux MySQL
[root@localhost~]#tarxzfmysql-5.1.30.tar_001.gz
[root@localhost~]#cdmysql-5.1.30
[root@localhost~]#./configure--prefix=/usr/local/mysql51
[root@localhost~]#make
[root@localhost~]#makeinstall
[root@localhost~]#./scripts/mysql_install_db--user=mysql--skip-name-resolve
[root@localhost~]#/usr/local/mysql51/bin/mysqld_safe
#連接符&這是放入後台,&&是前一個正確執行,才會執行後一個
#Linux編譯安裝流程./configure&&make&&makeinstall(默認目錄安裝)
#./configure--prefix=/usr/local/pcre&&make&&makeinstall(指定安裝目錄)
③ 怎樣快速啟動Linux系統
Linux需要重新啟動是少有的。可是一旦需要,Linux啟動常常是緩慢的。幸好有一些加速的辦法。其中一些方法不太難。咱們瞧一瞧吧。
#1: 撤消多餘的服務
根據機器的用途,很多服務是不需要的。要是Linux只用作桌面,就不需要sendmail、httpd和另外許多服務。如果你的伺服器只是Web伺服器,也可以關掉許多服務。為此,可轉到管理菜單,檢查服務項目。只需撤消所有不想啟動的服務選項。
#2: 撤消多餘的內核模塊
假如你的桌面連接到乙太網,就不需要裝載無線內核模塊。這是較為困難的任務,可能需要重新編譯內核,而編譯內核不是可以輕松擔當的工作。為此,你大概需要內核源代碼。接著,按照編譯內核的標准步驟進行。不同在於你要搜查系統,撤除所有不需要的模塊。
查明系統中當前安裝和運行的內核模塊的最好方法是安裝Bootchart。它不僅會給你一個適宜的模塊清單,而且還會說明系統啟動過程中發生的事情。還可以發出命令:chkconfig –list | grep 3:on,弄清楚正在運行什麼服務。一旦知道裝載了什麼不需要的模塊,就可以在內核重新編譯期間將其移除。只要這樣處理,編譯的內核就完全適合你的體系結構。
#3: 使用輕型窗口管理器代替GNOME或KDE
我插入小腳印窗口管理器的原因是——它們大幅度減少圖形(界面)啟動時間。代替不得不額外等待啟動GNOME或KDE的30到60秒,為什麼不等待用於啟動Enlightenment或者XFCE的2到10秒呢?它們不僅節省啟動時間,還會節省內存並解救處理臃腫軟體(bloatware)這種令人頭痛的事。
#4: 使用基於文本的登錄而不是圖形登錄
我的大多數Linux機器啟動run level 3而非run level 5。這個運行級別將停在文本登錄模式,我就在這個地方登錄並發出startx命令,開始選擇桌面。圖形登錄模式做兩件事:增加裝入時間並引起頭痛的問題即試圖從拙劣的X windows掙脫出來。
#5: 使用輕型發行版
不要裝載重型的Fedora,為什麼不試一下Gentoo、Arch或Puppy Linux呢?這些較小的發行版的啟動時間比更加臃腫的Fedora(甚至Ubuntu)要快很多。在較大的發行版中,OpenSuSE聲稱啟動最快,但我還沒有親自試驗。在最新的Fedora和Ubuntu之間,Ubuntu擊敗Fedora的啟動時間(而且是即開即用)。
#6: 使用Open BIOS
要是你相當聰明能幹,准備升級PC固件,可以考慮遷移到開源BIOS。一個附加說明,使用開放固件允許Linux啟動時真正初始化硬體(而不依賴BIOS)。最重要的是,許多開放BIOS可以設置滿足機器的特殊需要。如果不走開放BIOS之路,至少也可以設置BIOS不尋找不存在的軟盤驅動器,即直接啟動第一個硬碟驅動器(首先不是CD驅動器)。
#7: 迴避DHCP
如果你工作在地址租約不是問題的家庭網路(或者小型企業網路)上,那麼,機器就用靜態IP地址。這將使機器不必出外訪問DHCP伺服器來獲得IP地址。如果採取這種途徑,就要確保配置文件/etc/resolve.conf也表達你的DNS伺服器地址。
#8: 熱插拔可免就免
熱插拔是指允許把新設備插上電源並立即使用的系統。如果你知道你的伺服器不需要這種系統,就刪除它。這將減少啟動時間。在許多系統上,熱插拔消耗大量啟動時間。排除熱插拔將發生的變化取決於你所用的發行版。注意:就絕大部分而言,udev已經取代熱插拔。但如果你還在運行老一點的發行版,這樣做還是適合的。
#9: 要是真的大膽無畏,可嘗試一下initng
initng系統充當sysvinit系統的替換物,並承諾徹底減少類UNIX操作系統的啟動時間。如果你願意了解運行中的initng系統,可以試一試Pingwinek LiveCD。
#10: 利用Debian具有的代碼
要是正在使用Debian,就有一行可用來將你的啟動腳本轉換成並行運行的簡單代碼。如果檢查一下/etc/init.d/rc腳本,就會看到:大約在24行有CONCURRENCY=none。把這一行改為CONCURRENCY=shell,你有可能目睹啟動時間的減少。
④ Linux中的常用網路配置命令都有哪些,它們分別的作用什麼
網路配置一般包括 網卡ip dns 路由 dhcp 網卡綁定 網卡子ip 還有什麼我想不起來了
一般都是通過修改配置文件,命令修改完了無法保存,重啟後配置消失
IP - ifconfig 或修改 /etc/sysconfig/network-scripts/ifcfg-ethX
網卡沒有激活的,ifconfig看不到的,你可以用lspci -vv 來看有多少塊網卡,或直接進入剛剛的那個目錄查看有幾個ifcfg-eth的文件,配置文件與網卡對應的
DNS - 修改/etc/resolve.conf
網卡綁定 - 可以載入bond驅動,把bond0作為主網卡,被綁定網卡為slave的
建議你把問題細節化,Linux並非所有的命令都可以實現你的目的。
⑤ linux的resolve配置
首先進入超級用戶,然後輸入全屏幕編輯命令 vi,即:#vi /etc/resolv.conf
編輯逆向域名解析文件即可。
⑥ 請教LINUX中 resolv.conf
DNS客戶機配置文件,用於設置DNS伺服器的IP地址及DNS域名,還包含了主機的域名搜索順序。該文件是由域名解析器(resolver,一個根據主機名解析IP地址的庫)使用的配置文件。
⑦ Linux-linux 下用route命令怎麼設置網關
設置網關命令如下所示:
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 #增加一條到達244.0.0.0的路由。
route命令屬於網路配置命令,以下為詳細說明:
route命令用來顯示並設置Linux內核中的網路路由表,route命令設置的路由主要是靜態路由。要實現兩個不同的子網之間的通信,需要一台連接兩個網路的路由器,或者同時位於兩個網路的網關來實現。 在Linux系統中設置路由通常是為了解決以下問題:該Linux系統在一個區域網中,區域網中有一個網關,能夠讓機器訪問Internet,那麼就需要將這台機器的ip地址設置為Linux機器的默認路由。要注意的是,直接在命令行下執行route命令來添加路由,不會永久保存,當網卡重啟或者機器重啟之後,該路由就失效了;可以在/etc/rc.local中添加route命令來保證該路由設置永久有效。
語法
route(選項)(參數)
選項
-A:設置地址類型;
-C:列印將Linux核心的路由緩存;
-v:詳細信息模式;
-n:不執行DNS反向查找,直接顯示數字形式的IP地址;
-e:netstat格式顯示路由表;
-net:到一個網路的路由表;
-host:到一個主機的路由表。
參數
Add:增加指定的路由記錄;
Del:刪除指定的路由記錄;
Target:目的網路或目的主機;
gw:設置默認網關;
mss:設置TCP的最大區塊長度(MSS),單位MB;
window:指定通過路由表的TCP連接的TCP窗口大小;
dev:路由記錄所表示的網路介面。
⑧ linux基礎命令
Linux常用命令大全
系統信息
arch 顯示機器的處理器架構(1)
uname -m 顯示機器的處理器架構(2)
uname -r 顯示正在使用的內核版本
dmidecode -q 顯示硬體系統部件 - (SMBIOS / DMI)
hdparm -i /dev/hda 羅列一個磁碟的架構特性
hdparm -tT /dev/sda 在磁碟上執行測試性讀取操作
cat /proc/cpuinfo 顯示CPU info的信息
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 顯示系統日期
cal 2007 顯示2007年的日歷表
date 041217002007.00 設置日期和時間 - 月日時分年.秒
clock -w 將時間修改保存到 BIOS
關機 (系統的關機、重啟以及登出 )
shutdown -h now 關閉系統(1)
init 0 關閉系統(2)
telinit 0 關閉系統(3)
shutdown -h hours:minutes & 按預定時間關閉系統
shutdown -c 取消按預定時間關閉系統
shutdown -r now 重啟(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)
mkdir dir1 創建一個叫做 'dir1' 的目錄'
mkdir dir1 dir2 同時創建兩個目錄
mkdir -p /tmp/dir1/dir2 創建一個目錄樹
rm -f file1 刪除一個叫做 'file1' 的文件'
rmdir dir1 刪除一個叫做 'dir1' 的目錄'
rm -rf dir1 刪除一個叫做 'dir1' 的目錄並同時刪除其內容
rm -rf dir1 dir2 同時刪除兩個目錄及它們的內容
mv dir1 new_dir 重命名/移動 一個目錄
cp file1 file2 復制一個文件
cp dir/* . 復制一個目錄下的所有文件到當前工作目錄
cp -a /tmp/dir1 . 復制一個目錄到當前工作目錄
cp -a dir1 dir2 復制一個目錄
ln -s file1 lnk1 創建一個指向文件或目錄的軟鏈接
ln file1 lnk1 創建一個指向文件或目錄的物理鏈接
touch -t 0712250000 file1 修改一個文件或目錄的時間戳 - (YYMMDDhhmm)
file file1 outputs the mime type of the file as text
iconv -l 列出已知的編碼
iconv -f fromEncoding -t toEncoding inputFile > outputFile creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding.
find . -maxdepth 1 -name *.jpg -print -exec convert "{}" -resize 80x60 "thumbs/{}" \; batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick)
文件搜索
find / -name file1 從 '/' 開始進入根文件系統搜索文件和目錄
find / -user user1 搜索屬於用戶 'user1' 的文件和目錄
find /home/user1 -name \*.bin 在目錄 '/ home/user1' 中搜索帶有'.bin' 結尾的文件
find /usr/bin -type f -atime +100 搜索在過去100天內未被使用過的執行文件
find /usr/bin -type f -mtime -10 搜索在10天內被創建或者修改過的文件
find / -name \*.rpm -exec chmod 755 '{}' \; 搜索以 '.rpm' 結尾的文件並定義其許可權
find / -xdev -name \*.rpm 搜索以 '.rpm' 結尾的文件,忽略光碟機、捷盤等可移動設備
locate \*.ps 尋找以 '.ps' 結尾的文件 - 先運行 'updatedb' 命令
whereis halt 顯示一個二進制文件、源碼或man的位置
which halt 顯示一個二進制文件或可執行文件的完整路徑
掛載一個文件系統
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 -o loop file.iso /mnt/cdrom 掛載一個文件或ISO鏡像文件
mount -t vfat /dev/hda5 /mnt/hda5 掛載一個Windows FAT32文件系統
mount /dev/sda1 /mnt/usbdisk 掛載一個usb 捷盤或快閃記憶體設備
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 掛載一個windows網路共享
磁碟空間
df -h 顯示已經掛載的分區列表
ls -lSr |more 以尺寸大小排列文件和目錄
-sh dir1 估算目錄 'dir1' 已經使用的磁碟空間'
-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類系統)
返回頂部索引 ^
用戶和群組
groupadd group_name 創建一個新用戶組
groupdel group_name 刪除一個用戶組
groupmod -n new_group_name old_group_name 重命名一個用戶組
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 創建一個屬於 "admin" 用戶組的用戶
useradd user1 創建一個新用戶
userdel -r user1 刪除一個用戶 ( '-r' 排除主目錄)
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用戶屬性
passwd 修改口令
passwd user1 修改一個用戶的口令 (只允許root執行)
chage -E 2005-12-31 user1 設置用戶口令的失效期限
pwck 檢查 '/etc/passwd' 的文件格式和語法修正以及存在的用戶
grpck 檢查 '/etc/passwd' 的文件格式和語法修正以及存在的群組
newgrp group_name 登陸進一個新的群組以改變新創建文件的預設群組
返回頂部索引 ^
文件的許可權 - 使用 "+" 設置許可權,使用 "-" 用於取消
ls -lh 顯示許可權
ls /tmp | pr -T5 -W$COLUMNS 將終端劃分成5欄顯示
chmod ugo+rwx directory1 設置目錄的所有人(u)、群組(g)以及其他人(o)以讀(r )、寫(w)和執行(x)的許可權
chmod go-rwx directory1 刪除群組(g)與其他人(o)對目錄的讀寫執行許可權
chown user1 file1 改變一個文件的所有人屬性
chown -R user1 directory1 改變一個目錄的所有人屬性並同時改變改目錄下所有文件的屬性
chgrp group1 file1 改變文件的群組
chown user1:group1 file1 改變一個文件的所有人和群組屬性
find / -perm -u+s 羅列一個系統中所有使用了SUID控制的文件
chmod u+s /bin/file1 設置一個二進制文件的 SUID 位 - 運行該文件的用戶也被賦予和所有者同樣的許可權
chmod u-s /bin/file1 禁用一個二進制文件的 SUID位
chmod g+s /home/public 設置一個目錄的SGID 位 - 類似SUID ,不過這是針對目錄的
chmod g-s /home/public 禁用一個目錄的 SGID 位
chmod o+t /home/public 設置一個文件的 STIKY 位 - 只允許合法所有人刪除文件
chmod o-t /home/public 禁用一個目錄的 STIKY 位
返回頂部索引 ^
文件的特殊屬性 - 使用 "+" 設置許可權,使用 "-" 用於取消
chattr +a file1 只允許以追加方式讀寫文件
chattr +c file1 允許這個文件能被內核自動壓縮/解壓
chattr +d file1 在進行文件系統備份時,mp程序將忽略這個文件
chattr +i file1 設置成不可變的文件,不能被刪除、修改、重命名或者鏈接
chattr +s file1 允許一個文件被安全地刪除
chattr +S file1 一旦應用程序對這個文件執行了寫操作,使系統立刻把修改的結果寫到磁碟
chattr +u file1 若文件被刪除,系統會允許你在以後恢復這個被刪除的文件
lsattr 顯示特殊的屬性
返回頂部索引 ^
打包和壓縮文件
bunzip2 file1.bz2 解壓一個叫做 'file1.bz2'的文件
bzip2 file1 壓縮一個叫做 'file1' 的文件
gunzip file1.gz 解壓一個叫做 'file1.gz'的文件
gzip file1 壓縮一個叫做 'file1'的文件
gzip -9 file1 最大程度壓縮
rar a file1.rar test_file 創建一個叫做 'file1.rar' 的包
rar a file1.rar file1 file2 dir1 同時壓縮 'file1', 'file2' 以及目錄 'dir1'
rar x file1.rar 解壓rar包
unrar x file1.rar 解壓rar包
tar -cvf archive.tar file1 創建一個非壓縮的 tarball
tar -cvf archive.tar file1 file2 dir1 創建一個包含了 'file1', 'file2' 以及 'dir1'的檔案文件
tar -tf archive.tar 顯示一個包中的內容
tar -xvf archive.tar 釋放一個包
tar -xvf archive.tar -C /tmp 將壓縮包釋放到 /tmp目錄下
tar -cvfj archive.tar.bz2 dir1 創建一個bzip2格式的壓縮包
tar -xvfj archive.tar.bz2 解壓一個bzip2格式的壓縮包
tar -cvfz archive.tar.gz dir1 創建一個gzip格式的壓縮包
tar -xvfz archive.tar.gz 解壓一個gzip格式的壓縮包
zip file1.zip file1 創建一個zip格式的壓縮包
zip -r file1.zip file1 file2 dir1 將幾個文件和目錄同時壓縮成一個zip格式的壓縮包
unzip file1.zip 解壓一個zip格式壓縮包
返回頂部索引 ^
RPM 包 - (Fedora, Redhat及類似系統)
rpm -ivh package.rpm 安裝一個rpm包
rpm -ivh --nodeeps package.rpm 安裝一個rpm包而忽略依賴關系警告
rpm -U package.rpm 更新一個rpm包但不改變其配置文件
rpm -F package.rpm 更新一個確定已經安裝的rpm包
rpm -e package_name.rpm 刪除一個rpm包
rpm -qa 顯示系統中所有已經安裝的rpm包
rpm -qa | grep httpd 顯示所有名稱中包含 "httpd" 字樣的rpm包
rpm -qi package_name 獲取一個已安裝包的特殊信息
rpm -qg "System Environment/Daemons" 顯示一個組件的rpm包
rpm -ql package_name 顯示一個已經安裝的rpm包提供的文件列表
rpm -qc package_name 顯示一個已經安裝的rpm包提供的配置文件列表
rpm -q package_name --whatrequires 顯示與一個rpm包存在依賴關系的列表
rpm -q package_name --whatprovides 顯示一個rpm包所佔的體積
rpm -q package_name --scripts 顯示在安裝/刪除期間所執行的腳本l
rpm -q package_name --changelog 顯示一個rpm包的修改歷史
rpm -qf /etc/httpd/conf/httpd.conf 確認所給的文件由哪個rpm包所提供
rpm -qp package.rpm -l 顯示由一個尚未安裝的rpm包提供的文件列表
rpm --import /media/cdrom/RPM-GPG-KEY 導入公鑰數字證書
rpm --checksig package.rpm 確認一個rpm包的完整性
rpm -qa gpg-pubkey 確認已安裝的所有rpm包的完整性
rpm -V package_name 檢查文件尺寸、 許可、類型、所有者、群組、MD5檢查以及最後修改時間
rpm -Va 檢查系統中所有已安裝的rpm包- 小心使用
rpm -Vp package.rpm 確認一個rpm包還未安裝
rpm2cpio package.rpm | cpio --extract --make-directories *bin* 從一個rpm包運行可執行文件
rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm 從一個rpm源碼安裝一個構建好的包
rpmbuild --rebuild package_name.src.rpm 從一個rpm源碼構建一個 rpm 包
返回頂部索引 ^
YUM 軟體包升級器 - (Fedora, RedHat及類似系統)
yum install package_name 下載並安裝一個rpm包
yum localinstall package_name.rpm 將安裝一個rpm包,使用你自己的軟體倉庫為你解決所有依賴關系
yum update package_name.rpm 更新當前系統中所有安裝的rpm包
yum update package_name 更新一個rpm包
yum remove package_name 刪除一個rpm包
yum list 列出當前系統中安裝的所有包
yum search package_name 在rpm倉庫中搜尋軟體包
yum clean packages 清理rpm緩存刪除下載的包
yum clean headers 刪除所有頭文件
yum clean all 刪除所有緩存的包和頭文件
返回頂部索引 ^
DEB 包 (Debian, Ubuntu 以及類似系統)
dpkg -i package.deb 安裝/更新一個 deb 包
dpkg -r package_name 從系統刪除一個 deb 包
dpkg -l 顯示系統中所有已經安裝的 deb 包
dpkg -l | grep httpd 顯示所有名稱中包含 "httpd" 字樣的deb包
dpkg -s package_name 獲得已經安裝在系統中一個特殊包的信息
dpkg -L package_name 顯示系統中已經安裝的一個deb包所提供的文件列表
dpkg --contents package.deb 顯示尚未安裝的一個包所提供的文件列表
dpkg -S /bin/ping 確認所給的文件由哪個deb包提供
返回頂部索引 ^
APT 軟體工具 (Debian, Ubuntu 以及類似系統)
apt-get install package_name 安裝/更新一個 deb 包
apt-cdrom install package_name 從光碟安裝/更新一個 deb 包
apt-get update 升級列表中的軟體包
apt-get upgrade 升級所有已安裝的軟體
apt-get remove package_name 從系統刪除一個deb包
apt-get check 確認依賴的軟體倉庫正確
apt-get clean 從下載的軟體包中清理緩存
apt-cache search searched-package 返回包含所要搜索字元串的軟體包名稱
返回頂部索引 ^
查看文件內容
cat file1 從第一個位元組開始正向查看文件的內容
tac file1 從最後一行開始反向查看一個文件的內容
more file1 查看一個長文件的內容
less file1 類似於 'more' 命令,但是它允許在文件中和正向操作一樣的反向操作
head -2 file1 查看一個文件的前兩行
tail -2 file1 查看一個文件的最後兩行
tail -f /var/log/messages 實時查看被添加到一個文件中的內容
返回頂部索引 ^
文本處理
cat file1 file2 ... | command <> file1_in.txt_or_file1_out.txt general syntax for text manipulation using PIPE, STDIN and STDOUT
cat file1 | command( sed, grep, awk, grep, etc...) > result.txt 合並一個文件的詳細說明文本,並將簡介寫入一個新文件中
cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt 合並一個文件的詳細說明文本,並將簡介寫入一個已有的文件中
grep Aug /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' 文件中所有包含數字的行
grep Aug -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 -n file1 標示文件的行數
cat example.txt | awk 'NR%2==1' 刪除example.txt文件中的所有偶數行
echo a b c | awk '{print $1}' 查看一行第一欄
echo a b c | awk '{print $1,$3}' 查看一行的第一和第三欄
paste file1 file2 合並兩個文件或兩欄的內容
paste -d '+' file1 file2 合並兩個文件或兩欄的內容,中間用"+"區分
sort file1 file2 排序兩個文件的內容
sort file1 file2 | uniq 取出兩個文件的並集(重復的行只保留一份)
sort file1 file2 | uniq -u 刪除交集,留下其他的行
sort file1 file2 | uniq -d 取出兩個文件的交集(只留下同時存在於兩個文件中的文件)
comm -1 file1 file2 比較兩個文件的內容只刪除 'file1' 所包含的內容
comm -2 file1 file2 比較兩個文件的內容只刪除 'file2' 所包含的內容
comm -3 file1 file2 比較兩個文件的內容只刪除兩個文件共有的部分
返回頂部索引 ^
字元設置和文件格式轉換
dos2unix filedos.txt fileunix.txt 將一個文本文件的格式從MSDOS轉換成UNIX
unix2dos fileunix.txt filedos.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分區創建一個linux ext2的文件系統
mke2fs -j /dev/hda1 在hda1分區創建一個linux ext3(日誌型)的文件系統
mkfs -t vfat 32 -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分區
返回頂部索引 ^
備份
mp -0aj -f /tmp/home0.bak /home 製作一個 '/home' 目錄的完整備份
mp -1aj -f /tmp/home0.bak /home 製作一個 '/home' 目錄的互動式備份
restore -if /tmp/home0.bak 還原一個互動式備份
rsync -rogpav --delete /home /tmp 同步兩邊的目錄
rsync -rogpav -e ssh --delete /home ip_address:/tmp 通過SSH通道rsync
rsync -az -e ssh --delete ip_addr:/home/public /home/local 通過ssh和壓縮將一個遠程目錄同步到本地目錄
rsync -az -e ssh --delete /home/local ip_addr:/home/public 通過ssh和壓縮將本地目錄同步到遠程目錄
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' 通過ssh在遠程主機上執行一次備份本地磁碟的操作
dd if=/dev/sda of=/tmp/file1 備份磁碟內容到一個文件
tar -Puf backup.tar /home/user 執行一次對 '/home/user' 目錄的互動式備份操作
( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' 通過ssh在遠程目錄中復制一個目錄內容
( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' 通過ssh在遠程目錄中復制一個本地目錄
tar cf - . | (cd /tmp/backup ; tar xf - ) 本地將一個目錄復制到另一個地方,保留原有許可權及鏈接
find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents 從一個目錄查找並復制所有以 '.txt' 結尾的文件到另一個目錄
find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 查找所有以 '.log' 結尾的文件並做成一個bzip包
dd if=/dev/hda of=/dev/fd0 bs=512 count=1 做一個將 MBR (Master Boot Record)內容復制到軟盤的動作
dd if=/dev/fd0 of=/dev/hda bs=512 count=1 從已經保存到軟盤的備份中恢復MBR內容
返回頂部索引 ^
光碟
cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force 清空一個可復寫的光碟內容
mkisofs /dev/cdrom > cd.iso 在磁碟上創建一個光碟的iso鏡像文件
mkisofs /dev/cdrom | gzip > cd_iso.gz 在磁碟上創建一個壓縮了的光碟iso鏡像文件
mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd 創建一個目錄的iso鏡像文件
cdrecord -v dev=/dev/cdrom cd.iso 刻錄一個ISO鏡像文件
gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - 刻錄一個壓縮了的ISO鏡像文件
mount -o loop cd.iso /mnt/iso 掛載一個ISO鏡像文件
cd-paranoia -B 從一個CD光碟轉錄音軌到 wav 文件中
cd-paranoia -- "-3" 從一個CD光碟轉錄音軌到 wav 文件中(參數-3)
cdrecord --scanbus 掃描匯流排以識別scsi通道
dd if=/dev/hdc | md5sum 校驗一個設備的md5sum編碼,例如一張 CD
返回頂部索引 ^
網路 - (乙太網和WIFI無線)
ifconfig eth0 顯示一個乙太網卡的配置
ifup eth0 啟用一個 'eth0' 網路設備
ifdown eth0 禁用一個 'eth0' 網路設備
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 控制IP地址
ifconfig eth0 promisc 設置 'eth0' 成混雜模式以嗅探數據包 (sniffing)
dhclient eth0 以dhcp模式啟用 'eth0'
route -n show routing table
route add -net 0/0 gw IP_Gateway configura default gateway
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 configure static route to reach network '192.168.0.0/16'
route del 0/0 gw IP_gateway remove static route
echo "1" > /proc/sys/net/ipv4/ip_forward activate ip routing
hostname show hostname of system
host www.example.com lookup hostname to resolve name to ip address and viceversa(1)
nslookup www.example.com lookup hostname to resolve name to ip address and viceversa(2)
ip link show show link status of all interfaces
mii-tool eth0 show link status of 'eth0'
ethtool eth0 show statistics of network card 'eth0'
netstat -tup show all active network connections and their PID
netstat -tupl show all network services listening on the system and their PID
tcpmp tcp port 80 show all HTTP traffic
iwlist scan show wireless networks
iwconfig eth1 show configuration of a wireless network card
hostname show hostname
host www.example.com lookup hostname to resolve name to ip address and viceversa
nslookup www.example.com lookup hostname to resolve name to ip address and viceversa
whois www.example.com lookup on Whois database
GO TOP INDEX ^
Microsoft Windows networks (SAMBA)
nbtscan ip_addr netbios name resolution
nmblookup -A ip_addr netbios name resolution
smbclient -L ip_addr/hostname show remote shares of a windows host
smbget -Rr smb://ip_addr/share like wget can download files from a host windows via smb
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share mount a windows network share
⑨ 求解析一個Linux停止命令,代碼如下:(本人就一菜,壓根沒搞過的,求詳細解釋)
# resolve links - $0 may be a softlink
PRG="$0" <--- 執行程序名
# 以下循環判斷可執行文件是否是一個符號連接(symbolic link,也叫軟連接),如果是符號連接,找到實際指向的文件位置
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`/"$link"
fi
done
# 此時,$PRG 指向實際的文件
PRGDIR=`dirname "$PRG"`
EXECUTABLE=catalina.sh
# Check that target executable exists
# 判斷這個實際的目標文件是否存在且是可執行文件
if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then
echo "Cannot find $PRGDIR/$EXECUTABLE"
echo "This file is needed to run this program"
exit 1
fi
# 執行目標文件
exec "$PRGDIR"/"$EXECUTABLE" stop "$@"
這個腳本的目的是解決通過符號連接去執行一個程序的問題。如果是符號連接,需要找到實際指向的目標文件,然後再執行它的 stop 命令。
⑩ Linux怎麼使用ss命令查看系統的socket狀態
ss是Socket Statistics的縮寫。顧名思義,ss命令可以用來獲取socket統計信息,它可以顯示和netstat類似的內容。但ss的優勢在於它能夠顯示更多更詳細的有關TCP和連接狀態的信息,而且比netstat更快速更高效。當伺服器的socket連接數量變得非常大時,無論是使用netstat命令還是直接cat /proc/net/tcp,執行速度都會很慢。可能你不會有切身的感受,但請相信我,當伺服器維持的連接達到上萬個的時候,使用netstat等於浪費 生命,而用ss才是節省時間。天下武功唯快不破。ss快的秘訣在於,它利用到了TCP協議棧中tcp_diag。tcp_diag是一個用於分析統計的模塊,可以獲得Linux 內核中第一手的信息,這就確保了ss的快捷高效。當然,如果你的系統中沒有tcp_diag,ss也可以正常運行,只是效率會變得稍慢。(但仍然比 netstat要快。)
命令格式:
ss [參數]
ss [參數] [過濾]
2.命令功能:
ss(Socket Statistics的縮寫)命令可以用來獲取 socket統計信息,此命令輸出的結果類似於 netstat輸出的內容,但它能顯示更多更詳細的 TCP連接狀態的信息,且比 netstat 更快速高效。它使用了 TCP協議棧中 tcp_diag(是一個用於分析統計的模塊),能直接從獲得第一手內核信息,這就使得 ss命令快捷高效。在沒有 tcp_diag,ss也可以正常運行。
3.命令參數:
-h, --help 幫助信息
-V, --version 程序版本信息
-n, --numeric 不解析服務名稱
-r, --resolve 解析主機名
-a, --all 顯示所有套接字(sockets)
-l, --listening 顯示監聽狀態的套接字(sockets)
-o, --options 顯示計時器信息
-e, --extended 顯示詳細的套接字(sockets)信息
-m, --memory 顯示套接字(socket)的內存使用情況
-p, --processes 顯示使用套接字(socket)的進程
-i, --info 顯示 TCP內部信息
-s, --summary 顯示套接字(socket)使用概況
-4, --ipv4 僅顯示IPv4的套接字(sockets)
-6, --ipv6 僅顯示IPv6的套接字(sockets)
-0, --packet 顯示 PACKET 套接字(socket)
-t, --tcp 僅顯示 TCP套接字(sockets)
-u, --udp 僅顯示 UCP套接字(sockets)
-d, --dccp 僅顯示 DCCP套接字(sockets)
-w, --raw 僅顯示 RAW套接字(sockets)
-x, --unix 僅顯示 Unix套接字(sockets)
-f, --family=FAMILY 顯示 FAMILY類型的套接字(sockets),FAMILY可選,支持 unix, inet, inet6, link, netlink
-A, --query=QUERY, --socket=QUERY
QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
-D, --diag=FILE 將原始TCP套接字(sockets)信息轉儲到文件
-F, --filter=FILE 從文件中都去過濾器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
4.使用實例:
實例1:顯示TCP連接
命令:ss -t -a
輸出:
代碼如下:
[root@localhost ~]# ss -t -a
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 0 127.0.0.1:smux *:*
LISTEN 0 0 *:3690 *:*
LISTEN 0 0 *:ssh *:*
ESTAB 0 0 192.168.120.204:ssh 10.2.0.68:49368
[root@localhost ~]#
實例2:顯示 Sockets 摘要
命令:ss -s
輸出:
代碼如下:
[root@localhost ~]# ss -s
Total: 34 (kernel 48)
TCP: 4 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 3《/p》 《p》Transport Total IP IPv6
* 48 - -
RAW 0 0 0
UDP 5 5 0
TCP 4 4 0
INET 9 9 0
FRAG 0 0 0
[root@localhost ~]#
說明:列出當前的established, closed, orphaned and waiting TCP sockets
實例3:列出所有打開的網路連接埠
命令:ss -l
輸出:
代碼如下:
[root@localhost ~]# ss -l
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 0 127.0.0.1:smux *:*
0 0 *:3690 *:*
0 0 *:ssh *:*
[root@localhost ~]#
實例4:查看進程使用的socket
命令:ss -pl
輸出:
代碼如下:
[root@localhost ~]# ss -pl
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 0 127.0.0.1:smux *:* users:((「snmpd」,2716,8))
0 0 *:3690 *:* users:((「svnserve」,3590,3))
0 0 *:ssh *:* users:((「sshd」,2735,3))
[root@localhost ~]#
實例5:找出打開套接字/埠應用程序
命令:ss -lp | grep 3306
輸出:
代碼如下:
[root@localhost ~]# ss -lp|grep 1935
0 0 *:1935 *:* users:((「fmsedge」,2913,18))
0 0 127.0.0.1:19350 *:* users:((「fmsedge」,2913,17))
[root@localhost ~]# ss -lp|grep 3306
0 0 *:3306 *:* users:((「mysqld」,2871,10))
[root@localhost ~]#
實例6:顯示所有UDP Sockets
命令:ss -u -a
輸出:
代碼如下:
[root@localhost ~]# ss -u -a
State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 127.0.0.1:syslog *:*
UNCONN 0 0 *:snmp *:*
ESTAB 0 0 192.168.120.203:39641 10.58.119.119:domain
[root@localhost ~]#
實例7:顯示所有狀態為established的SMTP連接
命令:ss -o state established 『( dport = :smtp or sport = :smtp )』
輸出:
代碼如下:
[root@localhost ~]# ss -o state established 『( dport = :smtp or sport = :smtp )』
Recv-Q Send-Q Local Address:Port Peer Address:Port
[root@localhost ~]#
實例8:顯示所有狀態為Established的HTTP連接
命令:ss -o state established 『( dport = :http or sport = :http )』
輸出:
代碼如下:
[root@localhost ~]# ss -o state established 『( dport = :http or sport = :http )』
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 0 75.126.153.214:2164 192.168.10.42:http
[root@localhost ~]#
實例9:列舉出處於 FIN-WAIT-1狀態的源埠為 80或者 443,目標網路為 193.233.7/24所有 tcp套接字
命令:ss -o state fin-wait-1 『( sport = :http or sport = :https )』 dst 193.233.7/24
實例10:用TCP 狀態過濾Sockets:
命令:
代碼如下:
ss -4 state FILTER-NAME-HERE
ss -6 state FILTER-NAME-HERE
輸出:
代碼如下:
[root@localhost ~]#ss -4 state closing
Recv-Q Send-Q Local Address:Port Peer Address:Port
1 11094 75.126.153.214:http 192.168.10.42:4669
說明:
FILTER-NAME-HERE 可以代表以下任何一個:
代碼如下:
established
syn-sent
syn-recv
fin-wait-1
fin-wait-2
time-wait
closed
close-wait
last-ack
listen
closing
all : 所有以上狀態
connected : 除了listen and closed的所有狀態
synchronized :所有已連接的狀態除了syn-sent
bucket : 顯示狀態為maintained as minisockets,如:time-wait和syn-recv.
big : 和bucket相反。
實例11:匹配遠程地址和埠號
命令:
代碼如下:
ss dst ADDRESS_PATTERN
ss dst 192.168.1.5
ss dst 192.168.119.113:http
ss dst 192.168.119.113:smtp
ss dst 192.168.119.113:443
輸出:
代碼如下:
[root@localhost ~]# ss dst 192.168.119.113
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 192.168.119.103:16014 192.168.119.113:20229
ESTAB 0 0 192.168.119.103:16014 192.168.119.113:61056
ESTAB 0 0 192.168.119.103:16014 192.168.119.113:61623
ESTAB 0 0 192.168.119.103:16014 192.168.119.113:60924
ESTAB 0 0 192.168.119.103:16050 192.168.119.113:43701
ESTAB 0 0 192.168.119.103:16073 192.168.119.113:32930
ESTAB 0 0 192.168.119.103:16073 192.168.119.113:49318
ESTAB 0 0 192.168.119.103:16014 192.168.119.113:3844
[root@localhost ~]# ss dst 192.168.119.113:http
State Recv-Q Send-Q Local Address:Port Peer Address:Port
[root@localhost ~]# ss dst 192.168.119.113:3844
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 192.168.119.103:16014 192.168.119.113:3844
[root@localhost ~]#
實例12:匹配本地地址和埠號
命令:
代碼如下:
ss src ADDRESS_PATTERN
ss src 192.168.119.103
ss src 192.168.119.103:http
ss src 192.168.119.103:80
ss src 192.168.119.103:smtp
ss src 192.168.119.103:25
輸出:
代碼如下:
[root@localhost ~]# ss src 192.168.119.103:16021
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 192.168.119.103:16021 192.168.119.201:63054
ESTAB 0 0 192.168.119.103:16021 192.168.119.201:62894
ESTAB 0 0 192.168.119.103:16021 192.168.119.201:63055
ESTAB 0 0 192.168.119.103:16021 192.168.119.201:2274
ESTAB 0 0 192.168.119.103:16021 192.168.119.201:44784
ESTAB 0 0 192.168.119.103:16021 192.168.119.201:7233
ESTAB 0 0 192.168.119.103:16021 192.168.119.103:58660
ESTAB 0 0 192.168.119.103:16021 192.168.119.201:44822
ESTAB 0 0 192.168.119.103:16021 10.2.1.206:56737
ESTAB 0 0 192.168.119.103:16021 10.2.1.206:57487
ESTAB 0 0 192.168.119.103:16021 10.2.1.206:56736
ESTAB 0 0 192.168.119.103:16021 10.2.1.206:64652
ESTAB 0 0 192.168.119.103:16021 10.2.1.206:56586
ESTAB 0 0 192.168.119.103:16021 10.2.1.206:64653
ESTAB 0 0 192.168.119.103:16021 10.2.1.206:56587
[root@localhost ~]#
實例13:將本地或者遠程埠和一個數比較
命令:
代碼如下:
ss dport OP PORT
ss sport OP PORT
輸出:
代碼如下:
[root@localhost ~]# ss sport = :http
[root@localhost ~]# ss dport = :http
[root@localhost ~]# ss dport \》 :1024
[root@localhost ~]# ss sport \》 :1024
[root@localhost ~]# ss sport \《 :32000
[root@localhost ~]# ss sport eq :22
[root@localhost ~]# ss dport != :22
[root@localhost ~]# ss state connected sport = :http
[root@localhost ~]# ss \( sport = :http or sport = :https \)
[root@localhost ~]# ss -o state fin-wait-1 \( sport = :http or sport = :https \) dst 192.168.1/24
說明:
ss dport OP PORT 遠程埠和一個數比較;ss sport OP PORT 本地埠和一個數比較。
OP 可以代表以下任意一個:
《= or le : 小於或等於埠號
》= or ge : 大於或等於埠號
== or eq : 等於埠號
!= or ne : 不等於埠號
《 or gt : 小於埠號
》 or lt : 大於埠號
實例14:ss 和 netstat 效率對比
命令:
代碼如下:
time netstat -at
time ss
輸出:
代碼如下:
[root@localhost ~]# time ss
real 0m0.739s
user 0m0.019s
sys 0m0.013s
[root@localhost ~]#
[root@localhost ~]# time netstat -at
real 2m45.907s
user 0m0.063s
sys 0m0.067s
[root@localhost ~]#
說明:
用time 命令分別獲取通過netstat和ss命令獲取程序和概要佔用資源所使用的時間。在伺服器連接數比較多的時候,netstat的效率完全沒法和ss比。