Command-Line
如何使用 ifconfig 僅顯示活動界面
預設情況下
ifconfig
會顯示所有可用的介面,但如果我只想顯示active
那些呢?像,en0
只在下面。en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 14:10:9f:e0:eb:c9 inet6 fe80::1610:9fff:fee0:ebc9%en0 prefixlen 64 scopeid 0x4 inet X.X.X.X netmask 0xffffff00 broadcast 101.6.69.255 nd6 options=1<PERFORMNUD> media: autoselect **status: active** en3: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 options=60<TSO4,TSO6> ether 32:00:14:e7:4f:80 media: autoselect <full-duplex> **status: inactive**
通知
ifconfig en0
不會滿足,en0
並不總是主動的;)我正在執行 Mac OS X。
要獲得所有活動服務的完整描述,請嘗試:
ifconfig | pcregrep -M -o '^[^\t:]+:([^\n]|\n\t)*status: active'
這個簡單的正則表達式應該只過濾掉活動介面及其所有資訊。我建議您在 ~/.profile 或 ~/.bash_profile 文件中為此設置一個別名(也許是 ifactive?)
要獲取介面名稱(對腳本有用),請使用:
ifconfig | pcregrep -M -o '^[^\t:]+:([^\n]|\n\t)*status: active' | egrep -o -m 1 '^[^\t:]+'
您必須安裝pcregrep才能正常工作。它在 pcre 包中的macports上。或者,這應該與 GNU grep 一起使用
grep -Pzo
,而不是使用,pcregrep -M -o
但其餘部分相同,但我尚未對此進行測試。