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

Używając nowocześniejszych alternatyw wraz ze starszymi narzędziami wiersza poleceń, możesz mieć więcej zabawy, a nawet zwiększyć swoją produktywność.

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

W naszej codziennej pracy na Linuksie/Unixie korzystamy z wielu narzędzi wiersza poleceń - na przykład do monitorowania wykorzystania dysku i zasobów systemowych. Niektóre z tych narzędzi istnieją już od dawna. Przykładowo top pojawił się w 1984 roku, a pierwsze wydanie du datuje się na rok 1971.

Na przestrzeni lat narzędzia te były unowocześniane i przenoszone na różne systemy, ale generalnie nie odbiegły daleko od swoich pierwszych wersji, ich wygląd i użyteczność również nie uległy większym zmianom.

Są to świetne narzędzia, których potrzebuje wielu administratorów systemów. Społeczność opracowała jednak alternatywne narzędzia, które oferują dodatkowe korzyści. Niektóre z nich mają po prostu nowoczesny, piękny interfejs, inne znacznie poprawiają użyteczność. W tym tłumaczeniu omówimy pięć alternatyw dla standardowych narzędzi wiersza poleceń systemu Linux.

1. ncdu kontra du

Użycie dysku NCurses (ncdu) jest podobny do du, ale z interaktywnym interfejsem opartym na bibliotece curves. ncdu wyświetla strukturę katalogów, która zajmuje większość miejsca na dysku.

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 ~ Use the arrow keys to navigate, press ? for help
--- /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
 Total disk usage: 159.4 GiB  Apparent size: 280.8 GiB  Items: 561540

Po wpisach można poruszać się za pomocą klawiszy strzałek. Jeśli naciśniesz 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. Do poprzedniego katalogu można przejść naciskając lewą strzałkę. Dzięki ncdu możesz usuwać pliki, naciskając klawisz d. Przed usunięciem 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 dostępu tylko do odczytu: ncdu -r.

ncdu jest dostępne dla wielu platform i dystrybucji Linuksa. Na przykład możesz użyć dnf, aby zainstalować go na Fedorze bezpośrednio z oficjalnych repozytoriów:

$ sudo dnf install ncdu

2. htop kontra góra

htop to interaktywna przeglądarka procesów podobna do tej z góry, ale od razu zapewnia przyjemną obsługę. Domyślnie htop wyświetla te same informacje co top, ale w bardziej wizualny i kolorowy sposób.

Domyślnie htop wygląda tak:

5 nowoczesnych alternatyw dla starych narzędzi wiersza poleceń systemu Linux
W przeciwieństwie do góry:

5 nowoczesnych alternatyw dla starych narzędzi wiersza poleceń systemu Linux
Ponadto htop wyświetla na górze informacje ogólne o systemie, a na dole panel do uruchamiania poleceń za pomocą klawiszy funkcyjnych. Możesz go skonfigurować, naciskając klawisz F2, aby otworzyć ekran konfiguracji. W Ustawieniach możesz zmieniać kolory, dodawać lub usuwać metryki lub zmieniać opcje wyświetlania panelu przeglądu.

Chociaż podobną użyteczność można osiągnąć, dostosowując ustawienia najnowszych wersji top, htop zapewnia wygodne konfiguracje domyślne, co czyni go bardziej praktycznym i łatwiejszym w użyciu.

3. tldr kontra człowiek

Narzędzie wiersza poleceń tldr wyświetla uproszczoną pomoc dotyczącą poleceń, głównie przykłady. Został opracowany przez społeczność projekt stron tldr.

Warto zauważyć, że tldr nie zastępuje man. Jest to nadal kanoniczne i najbardziej wszechstronne narzędzie do tworzenia stron podręcznika. Jednak w niektórych przypadkach człowiek jest zbędny. Jeśli nie potrzebujesz wyczerpujących informacji o poleceniu, po prostu próbujesz zapamiętać jego podstawowe zastosowania. Na przykład strona podręcznika polecenia curl zawiera prawie 3000 wierszy. Strona tldr dla curl ma długość 40 linii. Jego fragment wygląda tak:


$ tldr curl

# curl
  Transfers data from or to a server.
  Supports most protocols, including HTTP, FTP, and POP3.
  More information: <https://curl.haxx.se>.

- Download the contents of an URL to a file:

  curl http://example.com -o filename

- Download a file, saving the output under the filename indicated by the URL:

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

- Download a file, following [L]ocation redirects, and automatically [C]ontinuing (resuming) a previous file transfer:

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

- Send form-encoded data (POST request of type `application/x-www-form-urlencoded`):

  curl -d 'name=bob' http://example.com/form                                                                                            
- Send a request with an extra header, using a custom HTTP method:

  curl -H 'X-My-Header: 123' -X PUT http://example.com                                                                                  
- Send data in JSON format, specifying the appropriate content-type header:

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

... TRUNCATED OUTPUT

TLDR oznacza „za długi; nie przeczytałem”: to znaczy, że jakiś tekst został zignorowany ze względu na jego nadmierną gadatliwość. Nazwa jest odpowiednia dla tego narzędzia, ponieważ strony podręcznika, choć przydatne, mogą czasami być zbyt długie.

Dla Fedory tldr został napisany w Pythonie. Możesz go zainstalować za pomocą menedżera dnf. Zazwyczaj narzędzie do działania wymaga dostępu do Internetu. Jednak klient Pythona Fedory umożliwia pobieranie tych stron i buforowanie w celu uzyskania dostępu w trybie offline.

4.jq kontra sed/grep

jq to procesor JSON dla wiersza poleceń. Jest podobny do sed lub grep, ale został specjalnie zaprojektowany do pracy z danymi JSON. Jeśli jesteś programistą lub administratorem systemu, który w codziennych zadaniach wykorzystuje JSON, jest to narzędzie dla Ciebie.

Główną przewagą jq nad standardowymi narzędziami do przetwarzania tekstu, takimi jak grep i sed, jest to, że rozumie strukturę danych JSON, co pozwala na 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źć nazwę ciągu:

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

grep zwrócił wszystkie linie zawierające słowo nazwa. Możesz dodać kilka dodatkowych opcji do grep, aby je ograniczyć, i użyć manipulacji wyrażeniami regularnymi, aby znaleźć nazwy kontenerów.

Aby uzyskać ten sam wynik za pomocą jq, po prostu napisz:

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

To polecenie wyświetli nazwy obu kontenerów. Jeśli szukasz tylko nazwy drugiego kontenera, dodaj do wyrażenia indeks elementu tablicy:

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

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

jq ma wiele funkcji, ale do ich opisania potrzebny jest inny artykuł. Aby uzyskać więcej informacji prosimy o kontakt strona projektu jq lub do tldr.

5. fd vs znajdź

fd jest uproszczoną alternatywą dla narzędzia find. Fd nie ma na celu jego całkowitego zastąpienia: domyślnie ma zainstalowane najpopularniejsze ustawienia, określają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, a także ignoruje symbole wieloznaczne w pliku .gitignore. Ogólnie rzecz biorąc, przyspiesza wyszukiwanie, wyświetlając bardziej trafne wyniki za pierwszym razem.

Domyślnie fd przeszukuje bieżący katalog bez uwzględniania wielkości liter i wyświetla kolor. To samo wyszukiwanie za pomocą polecenia find wymaga wprowadzenia dodatkowych parametrów w wierszu poleceń. Na przykład, aby znaleźć wszystkie pliki .md (lub .MD) w bieżącym katalogu, napisz polecenie find w następujący sposób:

$ find . -iname "*.md"

Dla fd wygląda to tak:

$ fd .md

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

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

$ sudo dnf install fd-find

Nie musisz z niczego rezygnować

Czy używasz nowych narzędzi wiersza poleceń systemu Linux? A może siedzisz wyłącznie na starych? Ale najprawdopodobniej masz kombinację, prawda? Podzielcie się proszę swoimi doświadczeniami w komentarzach.

O prawach reklamy

Wielu naszych klientów doceniło już korzyści epickie serwery!
To serwery wirtualne z procesorami AMD EPYC, Częstotliwość rdzenia procesora do 3.4 GHz. Maksymalna konfiguracja pozwoli Ci się świetnie bawić - 128 rdzeni procesora, 512 GB RAM, 4000 GB NVMe. Pośpiesz się z zamówieniem!

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

Źródło: www.habr.com

Dodaj komentarz