Wierzcie lub nie, ale być może używacie przestarzałej komendy Linuksa… a przynajmniej próbujecie jej używać.
Spokojnie, to nie Twoja wina. Stare nawyki ciężko zmienić, a internet pełen jest tutoriali, które nie zawsze nadążają za zmianami.

Jest to szczególnie prawdziwe w przypadku poleceń sieciowych, ponieważ kilka z nich zostało zastąpionych lub zostanie zastąpionych nowszymi poleceniami. Pozwólcie, że wymienię kilka takich poleceń Linuksa. Być może nadal znajdziecie kilka z nich w swojej dystrybucji. Możliwe, że wasza dystrybucja nadal je udostępnia w celu zapewnienia kompatybilności wstecznej, stworzyła nową implementację pod spodem lub planuje je usunąć w nowszych wersjach.
Ale dobrze je znać jako świadomy użytkownik Linuksa. Tutaj znajdziecie listę takich poleceń:

scp

Polecenie scp, skrót od secure copy, używa protokołu SSH do kopiowania plików między dwiema maszynami z Linuksem. Jego największą zaletą jest to, że ściśle naśladuje składnię normalnego polecenia cp.
Dlatego scp jest niezwykle popularne wśród użytkowników Linuksa. Znacie polecenie cp do kopiowania plików z jednej lokalizacji do drugiej na maszynie lokalnej. Używacie podobnej składni do kopiowania plików między maszynami.
Jednak polecenie scp wydaje się być problematyczne. Protokół SCP ma dziesiątki lat, nie był aktualizowany i ma wiele luk w zabezpieczeniach, jak skarżyło się OpenSSH. Dlatego dystrybucje opowiadają się za jego wycofaniem na rzecz innego polecenia, takiego jak rsync, lub stworzeniem nowej wersji scp, która używa pod spodem protokołu sftp.
Red Hat i Fedora już stworzyły nową implementację scp. W przypadku innych dystrybucji użycie scp pozostaje dyskusyjne. Biorąc pod uwagę zbliżającą się niepewność, mądrze będzie zacząć przechodzić na rsync.

Przykład użycia

Stare polecenie (scp):

scp plik.txt uzytkownik@serwer:/sciezka/docelowa

Nowe polecenie (rsync):

rsync -avz plik.txt uzytkownik@serwer:/sciezka/docelowa
  • Sugerowana alternatywa: polecenia rsync i sftp.

egrep i fgrep

grep, egrep i fgrep. Brzmią podobnie, prawda? Ponieważ są do siebie podobne.
Grep jest pierwszym i najstarszym z nich i został stworzony dziesiątki lat temu.
Polecenia egrep i fgrep zostały stworzone nieco później, aby rozszerzyć funkcjonalność polecenia grep.

  • Polecenie egrep pozwala na użycie rozszerzonych wyrażeń regularnych.
  • Polecenie fgrep działa na stałych ciągach znaków zamiast na wyrażeniach regularnych (domyślne zachowanie grep).

Ale po co mieć oddzielne polecenia, skoro mogą być opcjami w ramach oryginalnych poleceń…
I dokładnie tak się stało. Polecenie grep zostało zmodyfikowane w celu dodania nowych opcji, które zapewniały te same funkcje co egrep (z grep -E) i fgrep (z grep -F).
Ale dziedzictwo egrep i fgrep trwa niestety do dziś. Wiele samouczków, stron internetowych i książek wciąż o nich wspomina. Dystrybucje wciąż zawierają te polecenia.

Przykład użycia

Stare polecenia (egrep, fgrep):

# Wyszukiwanie z użyciem rozszerzonych wyrażeń regularnych
egrep 'wzorzec1|wzorzec2' plik.txt

# Wyszukiwanie stałego ciągu znaków
fgrep 'dokładny ciąg' plik.txt

Nowe polecenia (grep** z flagami):**

# Odpowiednik egrep
grep -E 'wzorzec1|wzorzec2' plik.txt

# Odpowiednik fgrep
grep -F 'dokładny ciąg' plik.txt
  • Sugerowana alternatywa: grep -E dla egrep i grep -F dla fgrep.

netstat

Polecenie netstat było doskonałym narzędziem do analizy sieci, zarówno na wysokim, jak i niskim poziomie.
Można go było używać do monitorowania pakietów TCP/UDP, gniazd, przeglądania interfejsów sieciowych i nie tylko.
Było częścią pakietu net-tools. Ponieważ pakiet net-tools został wycofany około 2010 roku, dystrybucje przestały dodawać polecenie netstat.
( I tak… zdaję sobie sprawę z tego, że pisałem ostatnio o netstat )

Przykład użycia

Stare polecenie (netstat):

# Wyświetlanie nasłuchujących portów TCP i UDP
netstat -tuln

Nowe polecenie (ss):

# Wyświetlanie nasłuchujących portów TCP i UDP
ss -tuln
  • Sugerowana alternatywa: Użyj polecenia ss.

ifconfig

Naprawdę. Było to podstawowe polecenie do sprawdzania adresu IP w systemach Linux i innych informacji o interfejsach sieciowych.
Nadal zobaczysz je wspomniane na starych forach i w samouczkach. Polecenie zostało wycofane wraz z poleceniem net-tools.
Jego funkcje można teraz znaleźć w poleceniu ip. W rzeczywistości wiele popularnych poleceń sieciowych Linuksa, które były częścią pakietu net-tools, zostało wycofanych.

Przykład użycia

Stare polecenie (ifconfig):

# Wyświetlanie informacji o interfejsie eth0
ifconfig eth0

Nowe polecenie (ip):

# Wyświetlanie informacji o interfejsie eth0
ip addr show eth0

arp, route, iptunnel, nameif

Wszystkie zniknęły wraz z net-tools
Jeśli przeczytasz starą książkę o Linuksie sprzed 2010 roku, znajdziesz polecenia arp, route i inne tego typu polecenia sieciowe, które już nie istnieją w twoim systemie Linux. Nie można ich nawet zainstalować. Większość z nich jest teraz zastąpiona różnymi opcjami polecenia ip:

Przykłady użycia

Stare polecenia:

# Wyświetlanie tablicy ARP
arp -a

# Wyświetlanie tablicy routingu
route -n

Nowe polecenia (ip):

# Odpowiednik arp -a
ip n

# Odpowiednik route -n
ip r
  • arp – zastąpione przez ip n
  • iptunnel – zastąpione przez ip tunnel
  • nameif – zastąpione przez ip link
  • route – zastąpione przez ip route

iwconfig – Czy to jeszcze istnieje?

Obraz Chociaż nie jest częścią pakietu net-tools, iwconfig było podobne do polecenia ifconfig, ale tylko dla interfejsu bezprzewodowego. Nadal widzę je w Ubuntu 22.04, ale od jakiegoś czasu czytam o jego wycofaniu. Zostało usunięte z Red Hata i wielu innych dystrybucji.

Przykład użycia

Stare polecenie (iwconfig):

# Wyświetlanie informacji o interfejsie bezprzewodowym wlan0
iwconfig wlan0

Nowe polecenie (iw):

# Wyświetlanie informacji o interfejsie bezprzewodowym wlan0
iw dev wlan0 link
  • Sugerowana alternatywa: Użyj polecenia iw.

iptables

Polecenie iptables jest podstawowym poleceniem podczas konfigurowania tras dla NAT i filtrowania pakietów dla zapór sieciowych.
Nadal jest używane przez wielu użytkowników Linuksa. Jednak jego projekt macierzysty, netfilter, stworzył polecenie zastępcze o nazwie nftables.
Dlaczego? ponieważ „framework iptables stał się nieco zawiły z iptables, ip6tables, arptables i ebtables, z których wszystkie zapewniają różne, ale podobne funkcje”.
I w ten sposób powstało nowe narzędzie do połączenia ich wszystkich w ramach nftables. Możesz przeczytać to porównanie poleceń iptables i nftables.
Nadal znajdziesz iptables w prawie wszystkich dystrybucjach Linuksa. Ale biorąc pod uwagę, że jego właśni programiści stworzyli jego zamiennik, mądrze byłoby zacząć przechodzić na nowe narzędzie.

Przykład użycia

Stare polecenie (iptables):

# Wyświetlanie wszystkich reguł filtrowania
iptables -L

Nowe polecenie (nft):

# Wyświetlanie całego zestawu reguł
nft list ruleset
  • Sugerowana alternatywa: Użyj polecenia nftables.

Wniosek

Nie mówię, żeby od razu porzucić wciąż dostępne, ale wkrótce przestarzałe polecenia Linuksa. Nauczyłeś się ich z wysiłkiem i są teraz częścią twojej pamięci mięśniowej.
Ale ponieważ mogą wkrótce zniknąć (lub już zniknęły), lepiej zabezpieczyć się na przyszłość i przejrzeć swoje niestandardowe skrypty i notatki i zaktualizować je, gdy będziesz miał wystarczająco dużo wolnego czasu.
Teraz twoja kolej. Powiedz mi, których z wyżej wymienionych starych poleceń Linuksa wciąż używasz? A może których już się pozbyłeś i przeszedłeś na ich zamienniki?