ifconfig против ip

Некоторое время назад появилась команда /bin/ip. Но народ привык пользоваться более старой командой /sbin/ifconfig. Ну и типа дело идёт к тому, что скоро надо будет перейти с  ifconfig на ip, вроде как потому что ip более мощная и делает то же самое.

Показать устройства и их конфигурацию:

ifconfig
ip addr show
ip link show

Включить сетевое устройство:

ifconfig eth0 up
ip link set eth0 up

Отключаются устройства похожим образом:

ifconfig eth0 down
ip link set eth0 down

Присвоить IP-адрес:

ifconfig eth0 192.168.0.77
ip address add 192.168.0.77 dev eth0

Это была простая версия команды. Часто надо ещё указывать сетевую маску или broadcast-адрес. В следующих примерах показаны варианты для ifconfig и ip.

Нет необходимости говорить, что сетевая маска может быть указана в CIDR-нотации, вроде 192.168.0.77/24.

ifconfig eth0 192.168.0.77 netmask 255.255.255.0 broadcast 192.168.0.255
ip addr add 192.168.0.77/24 broadcast 192.168.0.255 dev eth0

Удаление IP-адреса:

ip addr del 192.168.0.77/24 dev eth0

Добавление алиаса:

ifconfig eth0:1 10.0.0.1/8
ip addr add 10.0.0.1/8 dev eth0 label eth0:1

ARP протокол

Add an entry in your ARP table.

arp -i eth0 -s 192.168.0.1 00:11:22:33:44:55
ip neigh add 192.168.0.1 lladdr 00:11:22:33:44:55 nud permanent dev eth0

Switch ARP resolution off on one device

ifconfig -arp eth0
ip link set dev eth0 arp off

Показать routing table

route
ip route show

Положительная особенность ip route в том, что можно запросить, через какой интерфейс пойдут пакеты к интересующему IP-адресу:

ip route get 192.168.88.77

Внесение изменений в routing table

Команды для добавления маршрута на интерфейс:

route add -net 192.168.3.0/24 dev eth3
ip route add 192.168.3.0/24 dev eth3

То же для удаления маршрута:

route del -net 192.168.3.0/24 dev eth3
ip route del 192.168.3.0/24 dev eth3

Команда для добавления шлюза:

route add -net 192.168.4.0/24 gw 192.168.4.1
ip route add 192.168.4.0/24 via 192.168.4.1

Можно добавить имя интерфейса, например eth3.

фотография с веб-камеры через ffmpeg

ffmpeg -t 1 -f video4linux2 -s 640x480 -r 1 -i /dev/video0 foto.jpeg

если снимки будут тёмные, то –r 20

-r[:stream_specifier] fps (input/output,per-stream)

Set frame rate (Hz value, fraction or abbreviation).

-t duration (input/output)

When used as an input option (before -i), limit the duration of data read from the input file.