В Linux есть множество утилит командной строки, которые администраторы изучали много лет назад, но сейчас многие из них устарели. Они всё ещё работают, man-страницы никуда не делись, и никто не запрещает их использовать, однако большинство таких инструментов больше не развивается активно.
Современные альтернативы справляются с теми же задачами эффективнее и доступны по умолчанию в большинстве дистрибутивов Linux.
Многие из устаревших команд относятся к сетевым утилитам из пакета net-tools, который уже много лет не развивается активно. Некоторые дистрибутивы Linux по умолчанию его даже не устанавливают.
Ниже перечислены 9 устаревших команд Linux, причины их замены и современные аналоги.
1. Команда ifconfig
Команда Linux ifconfig традиционно применялась для просмотра и настройки сетевых интерфейсов. С её помощью можно проверять IP-адреса, включать и отключать интерфейсы, менять MTU, смотреть MAC-адреса и выполнять другие базовые сетевые задачи.
Много лет это была одна из первых команд, которые администраторы Linux запускали после входа на сервер. Сейчас ifconfig заменила команда ip из пакета iproute2.
ip address
ip addr
ip a
ip link
Все эти команды показывают информацию о сетевых интерфейсах. Отличие только в записи: ip addr и ip a это короткие формы ip address, причём ip a пользователи Linux набирают чаще всего.
Команда ip мощнее, продолжает активно развиваться и даёт единый интерфейс для управления сетью.
Именно поэтому многие современные дистрибутивы Linux, включая минимальные установки Debian, Ubuntu, Fedora и RHEL, по умолчанию уже не содержат пакет net-tools. В итоге команда ifconfig может быть недоступна, если не установить её отдельно.
2. Команда netstat
Команда netstat показывает активные сетевые соединения, слушающие порты, таблицы маршрутизации и статистику сетевых интерфейсов. Долгое время это был основной инструмент для диагностики сетевых проблем и проверки того, какие службы слушают те или иные порты.
Сейчас её заменила команда ss. Она получает информацию о сокетах прямо из ядра, поэтому работает заметно быстрее и эффективнее, особенно на системах с большим числом активных соединений.
ss -t
ss -l
ss -tulpn
Эти команды показывают TCP-соединения, слушающие сокеты, а также все слушающие порты TCP и UDP вместе с процессами, которые используют эти порты.
Команда ss быстрее, потому что обращается напрямую к ядру Linux, а не читает данные из /proc. Она активно поддерживается и значительно эффективнее работает на системах с большим количеством сетевых соединений.
В итоге именно ss рекомендуется использовать для проверки сетевых соединений и открытых портов в современных системах Linux.
3. Команда scp
Команду scp десятилетиями используют для безопасного копирования файлов между системами Linux по SSH. Она простая, привычная и по-прежнему широко доступна. Однако у исходного протокола SCP есть несколько архитектурных ограничений и проблем с безопасностью.
В RHEL 9 поддержку устаревшего протокола SCP перевели в разряд устаревших, а современные версии OpenSSH по умолчанию используют протокол SFTP. Для многих сценариев передачи файлов лучше подходят rsync или sftp:
rsync -zvh backup.tar.bz2 /tmp/backups/
sftp [[email protected]](/cdn-cgi/l/email-protection)
rsync хорошо подходит для резервного копирования и повторной передачи файлов, потому что копирует только изменённые части файла. В свою очередь, sftp открывает интерактивную сессию передачи файлов с возможностями навигации по каталогам, поэтому это хорошая альтернатива для тех, кто раньше полагался на scp.
4. Команда route
Команда route показывает и изменяет таблицу IP-маршрутизации ядра. Сейчас её заменила ip route, входящая в набор команд ip, который используется для управления интерфейсами, адресами, маршрутами и соседними хостами.
ip route
ip route show
Эта команда выводит таблицу маршрутизации системы. Кроме просмотра маршрутов, ip route умеет добавлять, удалять и изменять их, используя тот же единый синтаксис, что и остальные сетевые команды из набора ip.
5. Команды egrep и fgrep
Команды egrep и fgrep относятся к семейству grep:
-
egrepищет по расширенным регулярным выражениям. -
fgrepищет фиксированные текстовые строки вместо регулярных выражений.
Хотя обе команды всё ещё работают на многих системах, в GNU grep они признаны устаревшими. Вместо них стоит использовать эквивалентные опции grep:
grep -E # replaces egrep
grep -F # replaces fgrep
Эти опции дают те же возможности и не требуют выхода за пределы одной команды grep. Использование grep -E и grep -F сейчас рекомендуется как более переносимый подход во всех современных дистрибутивах Linux.
6. Команды arp, iptunnel и nameif
Несколько других команд из старого пакета net-tools тоже заменены командой ip из набора iproute2. Вместо отдельных утилит современные системы Linux решают эти сетевые задачи с помощью одной универсальной команды.
Современные аналоги выглядят так:
ip neighbor # replaces arp
ip n # short form of ip neighbor
ip tunnel # replaces iptunnel
ip link # replaces nameif
Команда ip объединяет эти сетевые задачи в одном инструменте, который активно развивается и доступен в современных дистрибутивах Linux.
7. Команда iptables
Команда iptables была стандартным инструментом межсетевого экрана Linux более двадцати лет. Однако сейчас большинство дистрибутивов Linux перешли на nftables как на предпочтительный фреймворк фильтрации пакетов.
RHEL, Rocky Linux и Fedora по умолчанию работают с nftables, а Debian и Ubuntu используют iptables через слой совместимости с nftables, а не через старую реализацию.
nft list ruleset
nft add rule inet filter input tcp dport 22 accept
Первая команда показывает текущие правила межсетевого экрана, вторая добавляет правило, разрешающее входящие SSH-подключения на порт 22.
Если у вас уже есть правила iptables, переписывать всё вручную не нужно. Утилита iptables-translate умеет преобразовывать отдельные правила iptables в их аналоги nftables, что заметно упрощает миграцию.
8. Команда traceroute
Команда traceroute строит карту сетевого пути от вашей системы до цели, отправляя зонды с постепенно увеличивающимся значением TTL (Time To Live). Она показывает состояние маршрута только в конкретный момент времени.
Для непрерывной сетевой диагностики обычно лучше подходит mtr (My Traceroute). Он объединяет возможности traceroute и ping в режиме реального времени, что помогает быстрее находить потери пакетов, задержки и нестабильные сетевые узлы.
mtr tecmint.com
mtr -r -c 10 tecmint.com
Первая команда запускает интерактивный просмотр сетевого пути в реальном времени. Опция -r вместо интерактивного интерфейса формирует отчёт, а -c задаёт, сколько циклов зондирования выполнить перед выводом отчёта.
Такой формат особенно удобен, когда нужно собрать диагностические данные для заявки в поддержку или отчёта о сбое.
9. Команды ifup и ifdown
Команды ifup и ifdown традиционно использовались в системах на базе Debian для включения и отключения сетевых интерфейсов на основе конфигурации из /etc/network/interfaces.
В большинстве современных дистрибутивов Linux сетью управляет сетевая служба, а не старые скрипты ifupdown.
Если в системе используется NetworkManager, применяйте:
nmcli device connect eth0
nmcli device disconnect eth0
Если используется systemd-networkd, подойдут команды:
networkctl up eth0
networkctl down eth0
Ubuntu Desktop и большинство дистрибутивов на базе RHEL по умолчанию используют NetworkManager, а на некоторых серверах применяется systemd-networkd. Минимальные серверные установки Debian или Ubuntu по-прежнему могут полагаться на старые скрипты ifupdown.
Если вы не уверены, какая сетевая служба используется в системе, сначала проверьте:
systemctl status NetworkManager
systemctl status systemd-networkd
Это поможет выбрать правильные команды для управления сетевыми интерфейсами в вашей системе.
Заключение
Большинство перечисленных команд всё ещё работают, если установлены в системе, поэтому срочно отказываться от них не нужно. Но это уже не те инструменты, которые разработчики Linux активно улучшают и рекомендуют для повседневного администрирования.
Современные аналоги, такие как ip, ss, nft, rsync и mtr, активно поддерживаются, предлагают больше возможностей и входят в стандартный набор инструментов современных дистрибутивов Linux.
Если освоить их сейчас, можно выработать привычки, которые будут работать и в текущих, и в будущих системах Linux. Не придётся переучиваться, когда старые пакеты вроде net-tools перестанут устанавливаться по умолчанию.
Какие из этих команд вы уже заменили, а какие ещё продолжаете использовать? Поделитесь в комментариях.






Пока нет комментариев. Будьте первым!