52

Я использую команду ip link в Linux. Теперь я хочу это на Mac OS X, но у терминала Mac OS X нет ip . Что я должен использовать вместо этого?

4 ответа4

65

Вы можете использовать brew для установки iproute2mac . На самом деле это оболочка Python, которая предоставляет очень похожий API, который вы, вероятно, найдете очень знакомым для инструмента ip , включенного в iproute2 в Linux.

Монтаж

$ brew install iproute2mac
==> Installing iproute2mac from brona/homebrew-iproute2mac
==> Downloading https://github.com/brona/iproute2mac/archive/v1.0.3.zip
######################################################################## 100.0%
  /usr/local/Cellar/iproute2mac/1.0.3: 4 files,  24K, built in 2 seconds

использование

После установки вам будет предоставлен инструмент командной строки, который для любых целей имитирует команду ip в Linux.

$ ip
Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
       ip -V
where  OBJECT := { link | addr | route | neigh }
       OPTIONS := { -4 | -6 }

iproute2mac
Homepage: https://github.com/brona/iproute2mac
This is CLI wrapper for basic network utilities on Mac OS X inspired with iproute2 on Linux systems.
Provided functionality is limited and command output is not fully compatible with iproute2.
For advanced usage use netstat, ifconfig, ndp, arp, route and networksetup directly.

Примеры

Показать IP-адреса на интерфейсе en0.

$ ip addr show en0
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether 54:46:12:fc:45:12
    inet6 fe80::3636:3bff:fecf:1294/64 scopeid 0x4
    inet 192.168.1.5/24 brd 192.168.1.255 en0

Показать подробности о ссылке en1.

$ ip link show en1
en1: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
    options=60<TSO4,TSO6>
    ether 72:00:08:81:d2:10
    media: autoselect <full-duplex>
    status: inactive

Рекомендации

5

Используйте обычную команду для Unix-подобных систем: ifconfig .

(Linux также использует ifconfig, но некоторые из инструментов имеют более новые версии. ip - одна из них, которая однажды заменит старый ifconfig.)

3

Существует более простой способ без установки каких-либо инструментов:

$ which ifconfig
/sbin/ifconfig

$ ifconfig en0 | grep inet | grep -v inet6 | cut -d ' ' -f2
10.16.45.123
0

В Mac нет команды ip. Получить его из варева или использовать:

ifconfig en0| grep "inet[ ]" | awk '{print $2}'

Вы можете создать псевдоним в ~/.bash_profile следующим образом:

alias ip-addr="ifconfig en0| grep \"inet[ ]\" | awk '{print \$2}'"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .