NETSTAT в настоящее время считается устаревшим, а другие программы, включенные в net-tools, такие как arp, ifconfig, iptunnel, nameif, netstat
и route.
Функциональные возможности, предоставляемые некоторыми из этих утилит, были воспроизведены и улучшены в новом пакете iproute2 , в основном за счет использования его новой команды ip
.
Примеры устаревших команд и их замен:
arp => ip n (ip neighbour)
ifconfig => ip a (ip addr), ip link, ip -s (ip -stats)
iptunnel => IP-туннель
iwconfig => iw
nameif => IP-ссылка, ifrename
netstat => ss, IP-маршрут (для netstat-r), ip -s link (для netstat - i), ip maddr (для netstat-g)
Команда netstat
читает различные файлы / proc для сбора информации. Однако этот подход неэффективен, когда нужно отобразить много подключений. Это замедляет работу.
Команда ss
получает информацию непосредственно из пространства ядра. Параметры, используемые с командами ss
, очень похожи на netstat, поэтому их можно легко заменить.
Статистика, предоставленная ss
, является поверхностной , но считается лучшей альтернативой netstat
Примеры:
получить все соединения : ss | less
ss -t
получить соединения TCP не в режиме прослушивания (серверные программы)
ss -u
получить соединения UDP не в режиме прослушивания
ss -x
получить канал сокета unix соединения
ss -ta
получить все соединения TCP
ss -au
получить все соединения udp
ss -nt
все TCP без имени хоста
ss -ltn
прослушивание tcp без разрешения хоста
ss -ltp
прослушивание tcp с PID и именем
ss -s
выводит статистику
ss -tn -o
TCP-соединение с хостом домена и показывает keepalive таймер
ss -tl4
ip4 соединения
если вы ищете с помощью grep
, вы можете сделать это:
grep -A 5 "string used to search" <path-to-file(s)>
покажет 5 строк после совпадающей строки grep -B 5 "string used to search" <path-to-file(s)>
покажет 5 строк перед совпавшей строкой grep -C 5 "string used to search" <path-to-file(s)>
покажет 5 строк после и до совпадающей строки (C означает контекст)для вашего примера это будет :grep -A 2 -B 1 "rdb" <path-to-file(s)>
Попробуйте это,
awk '/^Linux$/{flag=1;next}/^Unix$/{flag=0}flag' file | tail -n +7
Или безtail
:
awk '/^Linux$/{flag=1;n=NR;next}/^Unix$/{flag=0};flag&&NR>(n+6);' file
Пояснение:
^Linux$
и, если он найден, установите для flag
значение 1 (true )и перейдите непосредственно к строке next
. ^Unix$
не будет найден, и установите flag
на 0 (false)flag
в конце — это обозначение, специфичное для awk. Если flag
верно, выведите строку, иначе ничего не делайте. flag
— это просто имя переменной и может быть любым, например. f
или printthisline
. Использование Gnused
:
sed '/^Linux$/,/^Unix$/{//!b};d' file | tail -n +7
Я бы написал один из
sed -n '/Linux/,/Unix/p' file | sed '1,7d;$d'
# or
awk '/Linux/ {nr = NR} /Unix/ {exit} nr && NR > nr+6' file
Всякий раз, когда вы видите относительную адресацию, вы должны использовать ed
.
echo '/Linux/+7,/Unix/-1p' | ed -s input_file.txt -
Или, как здесьдок:
ed -s input_file.txt - <<\EOF
/Linux/+7,/Unix/-1p
EOF