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ść.
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 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
Domyślnie htop wygląda tak:
W przeciwieństwie do góry:
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ść
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
5. fd vs znajdź
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
Źródło: www.habr.com