5 nowoczesnych alternatyw dla starych narzędzi wiersza poleceń Linux

Używając nowocześniejszych alternatyw obok starych narzędzi wiersza poleceń, można czerpać większą przyjemność i nawet zwiększać produktywność pracy.

5 nowoczesnych alternatyw dla starych narzędzi wiersza poleceń Linux

W codziennej pracy na Linuxie/Unixie korzystamy z wielu narzędzi wiersza poleceń — na przykład du do monitorowania użycia dysku i zasobów systemowych. Niektóre z tych narzędzi istnieją od dawna. Na przykład, top pojawił się w 1984 roku, a pierwsza wersja du datuje się na 1971 rok.

Na przestrzeni lat te narzędzia zostały zmodernizowane i przeniesione na różne systemy, ale generalnie znacznie nie odbiegły od swoich pierwszych wersji, ich wygląd i użyteczność także się niewiele zmieniły.

To doskonałe narzędzia, które są niezbędne wielu administratorom systemów. Jednak społeczność opracowała alternatywne narzędzia, które oferują dodatkowe korzyści. Niektóre z nich mają po prostu nowoczesny, atrakcyjny interfejs, a inne znacznie poprawiają ergonomię. W tej wersji opowiemy o pięciu alternatywach dla standardowych narzędzi wiersza poleceń Linux.

1. ncdu vs du

NCurses Disk Usage (ncdu) przypomina du, ale ma interaktywny interfejs oparty na bibliotece curses. ncdu wyświetla strukturę katalogów, które zajmują największą część przestrzeni dyskowej.

ncdu analizuje dysk, a następnie wyświetla wyniki posortowane według najczęściej używanych katalogów lub plików, na przykład:

ncdu 1.14.2 ~ Użyj klawiszy strzałek do poruszania się, naciśnij ? po pomoc
--- /home/rgerardi ------------------------------------------------------------
   96.7 GiB [##########] /libvirt
   33.9 GiB [###       ] /.crc
    7.0 GiB [          ] /Projects
.   4.7 GiB [          ] /Downloads
.   3.9 GiB [          ] /.local
    2.5 GiB [          ] /.minishift
    2.4 GiB [          ] /.vagrant.d
.   1.9 GiB [          ] /.config
.   1.8 GiB [          ] /.cache
    1.7 GiB [          ] /Videos
    1.1 GiB [          ] /go
  692.6 MiB [          ] /Documents
. 591.5 MiB [          ] /tmp
  139.2 MiB [          ] /.var
  104.4 MiB [          ] /.oh-my-zsh
   82.0 MiB [          ] /scripts
   55.8 MiB [          ] /.mozilla
   54.6 MiB [          ] /.kube
   41.8 MiB [          ] /.vim
   31.5 MiB [          ] /.ansible
   31.3 MiB [          ] /.gem
   26.5 MiB [          ] /.VIM_UNDO_FILES
   15.3 MiB [          ] /Personal
    2.6 MiB [          ]  .ansible_module_generated
    1.4 MiB [          ] /backgrounds
  944.0 KiB [          ] /Pictures
  644.0 KiB [          ]  .zsh_history
  536.0 KiB [          ] /.ansible_async
 Całkowite użycie dysku: 159.4 GiB  Widoczny rozmiar: 280.8 GiB  Elementy: 561540

Można poruszać się po rekordach za pomocą klawiszy strzałek. Naciskając Enter, ncdu wyświetli zawartość wybranego katalogu:

--- /home/rgerardi/libvirt ----------------------------------------------------
                         /..
   91.3 GiB [##########] /images
    5.3 GiB [          ] /media

Możesz użyć tego narzędzia, aby na przykład określić, które pliki zajmują najwięcej miejsca na dysku. Aby przejść do poprzedniego katalogu, naciśnij klawisz ze strzałką w lewo. Za pomocą ncdu możesz usunąć pliki, naciskając klawisz d. Przed usunięciem program prosi o potwierdzenie. Jeśli chcesz wyłączyć funkcję usuwania, aby zapobiec przypadkowej utracie cennych plików, użyj opcji -r, aby włączyć tryb tylko do odczytu: ncdu -r.

Ncdu jest dostępny na wielu platformach i dystrybucjach Linuksa. Na przykład możesz użyć dnf do jego zainstalowania na Fedory bezpośrednio z oficjalnych repozytoriów:

$ sudo dnf install ncdu

2. htop vs top

Htop to interaktywne narzędzie do przeglądania procesów, podobne do top, ale oferujące od razu przyjemniejsze doświadczenie użytkownika. Domyślnie htop wyświetla te same informacje, co top, ale w bardziej przejrzystej i kolorowej formie.

Domyślnie htop wygląda tak:

5 nowoczesnych alternatyw dla starych narzędzi wiersza poleceń Linux
W przeciwieństwie do top:

5 nowoczesnych alternatyw dla starych narzędzi wiersza poleceń Linux
Dodatkowo, w górnej części htop wyświetlana jest ogólna informacja o systemie, a w dolnej — panel do uruchamiania poleceń za pomocą klawiszy funkcyjnych. Możesz go dostosować, naciskając F2, aby otworzyć ekran konfiguracji. W ustawieniach można zmienić kolory, dodać lub usunąć wskaźniki lub zmienić parametry wyświetlania panelu przeglądu.

Chociaż po przestawieniu ustawień w ostatnich wersjach top można także osiągnąć podobną użyteczność, htop zapewnia wygodne domyślne konfiguracje, co czyni go bardziej praktycznym i łatwiejszym w użyciu.

3. tldr vs man

Narzędzie wiersza poleceń tldr wyświetla uproszczone informacje pomocnicze o poleceniach, głównie przykłady. Zostało opracowane przez społeczność projektu tldr pages.

Należy zauważyć, że tldr nie jest zamiennikiem man. Wciąż jest on kanonicznym i najbardziej kompletnym narzędziem do wyświetlania stron pomocy. Jednak w niektórych przypadkach man jest zbyt obszerny. Gdy nie potrzebujesz wyczerpujących informacji o jakimkolwiek poleceniu, po prostu próbujesz zapamiętać podstawowe opcje jego użycia. Na przykład strona man dla polecenia curl zawiera prawie 3000 wierszy. Strona tldr dla curl ma długość 40 wierszy. Jej fragment wygląda tak:


$ tldr curl

# curl
  Przesyła dane z lub do serwera.
  Obsługuje większość protokołów, w tym HTTP, FTP i POP3.
  Więcej informacji: .

- Pobierz zawartość URL do pliku:

  curl http://example.com -o filename

- Pobierz plik, zapisując dane pod nazwą wskazaną przez URL:

  curl -O http://example.com/filename

- Pobierz plik, śledząc [L]okalizacje przekierowań i automatycznie [C]ontynuując (wznawiając) poprzedni transfer pliku:

  curl -O -L -C - http://example.com/filename

- Wyślij dane zakodowane w formularzu (żądanie POST typu `application/x-www-form-urlencoded`):

  curl -d 'name=bob' http://example.com/form
- Wyślij żądanie z dodatkowym nagłówkiem, używając niestandardowej metody HTTP:

  curl -H 'X-My-Header: 123' -X PUT http://example.com
- Wyślij dane w formacie JSON, określając odpowiedni nagłówek content-type:

  curl -d '{"name":"bob"}' -H 'Content-Type: application/json' http://example.com/users/1234

... TRUNCATED OUTPUT

TLDR oznacza „za długo; nie czytałem”: oznacza to, że tekst został zignorowany z powodu swojej nadmiernej rozwlekłości. Nazwa ta pasuje do tego narzędzia, ponieważ strony man, chociaż użyteczne, czasami bywają zbyt długie.

Dla Fedory tldr został napisany w Pythonie. Możesz go zainstalować za pomocą menedżera dnf. Zazwyczaj do działania narzędzia wymagana jest dostęp do internetu. Jednak klient Pythona w Fedorze pozwala na pobieranie i buforowanie tych stron w trybie offline.

4. jq vs sed/grep

jq to procesor JSON w wierszu poleceń. Podobny jest do sed lub grep, ale zaprojektowany specjalnie do pracy z danymi w formacie JSON. Jeśli jesteś programistą lub administratorem systemu, który codziennie korzysta z JSON, to narzędzie jest dla Ciebie.

Główną zaletą jq w porównaniu do standardowych narzędzi przetwarzania tekstu, takich jak grep i sed, jest to, że rozumie strukturę danych JSON, co umożliwia tworzenie złożonych zapytań w jednym wyrażeniu.

Na przykład, próbujesz znaleźć nazwy kontenerów w tym pliku JSON:

{
  "apiVersion": "v1",
  "kind": "Pod",
  "metadata": {
    "labels": {
      "app": "myapp"
    },
    "name": "myapp",
    "namespace": "project1"
  },
  "spec": {
    "containers": [
      {
        "command": [
          "sleep",
          "3000"
        ],
        "image": "busybox",
        "imagePullPolicy": "IfNotPresent",
        "name": "busybox"
      },
      {
        "name": "nginx",
        "image": "nginx",
        "resources": {},
        "imagePullPolicy": "IfNotPresent"
      }
    ],
    "restartPolicy": "Never"
  }
}

Uruchom grep, aby znaleźć linię name:

$ grep name k8s-pod.json
        "name": "myapp",
        "namespace": "project1"
                "name": "busybox"
                "name": "nginx",

grep zwraca wszystkie wiersze zawierające słowo name. Możesz dodać kilka dodatkowych parametrów do grep, aby go ograniczyć, a także za pomocą manipulacji wyrażeniami regularnymi znaleźć nazwy kontenerów.

Aby uzyskać ten sam wynik za pomocą jq, wystarczy wpisać:

$ jq '.spec.containers[].name' k8s-pod.json
"busybox"
"nginx"

Ta komenda zwróci ci nazwy obu kontenerów. Jeśli szukasz tylko nazwy drugiego kontenera, dodaj indeks elementu tablicy do wyrażenia:

$ jq '.spec.containers[1].name' k8s-pod.json
"nginx"

Ponieważ jq zna strukturę danych, zwraca te same wyniki, nawet jeśli format pliku nieznacznie się zmieni. grep i sed w tym przypadku mogą działać niepoprawnie.

jq ma wiele funkcji, ale opisanie ich wymagałoby kolejnego artykułu. Aby uzyskać więcej informacji, skonsultuj się z Część 2: laboratoria jq lub z tldr.

5. fd vs find

fd to uproszczona alternatywa dla narzędzia find. Fd nie ma na celu całkowitego zastąpienia go: domyślnie zawiera najczęściej stosowane ustawienia, definiujące ogólne podejście do pracy z plikami.

Na przykład, podczas wyszukiwania plików w katalogu repozytorium Git, fd automatycznie wyklucza ukryte pliki i podkatalogi, w tym katalog .git oraz ignoruje wzorce z pliku .gitignore. Ogólnie przyspiesza wyszukiwanie, zwracając bardziej trafne wyniki za pierwszym razem.

Domyślnie fd wykonuje wyszukiwanie bez uwzględniania wielkości liter w bieżącym katalogu z kolorowym wyjściem. To samo wyszukiwanie za pomocą komendy find wymaga wprowadzenia dodatkowych parametrów w wierszu poleceń. Na przykład, aby znaleźć wszystkie pliki .md (lub .MD) w bieżącym katalogu, musisz wpisać taką komendę find:

$ find . -iname "*.md"

Dla fd wygląda to tak:

$ fd .md

Jednak w niektórych przypadkach fd również wymaga dodatkowych parametrów: na przykład, jeśli chcesz uwzględnić ukryte pliki i katalogi, musisz użyć opcji -H, chociaż zazwyczaj przy wyszukiwaniu nie jest to wymagane.

fd jest dostępny dla wielu dystrybucji Linuxa. W Fedory można go zainstalować w ten sposób:

$ sudo dnf install fd-find

Nie trzeba rezygnować z niczego

Czy używasz nowych narzędzi linii poleceń Linux? A może trzymasz się wyłącznie starych? Ale prawdopodobnie masz combo, prawda? Proszę, podziel się swoim doświadczeniem w komentarzach.

Reklama

Wielu naszych klientów już doceniło zalety epickich serwerów!
To serwery wirtualne z procesorami AMD EPYC, częstotliwość rdzenia CPU do 3,4 GHz. Maksymalna konfiguracja pozwoli na pełną moc — 128 rdzeni CPU, 512 GB RAM, 4000 GB NVMe. Nie czekaj, zamów już teraz!

5 nowoczesnych alternatyw dla starych narzędzi wiersza poleceń Linux

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster