Paweł "Otlet" Otlewski

Poprawienie codziennej pracy z CLI

Administracja systemami Linux Blog Poradniki 324
htop vs top

Pracując codziennie na konsoli/CLI, warto sobie tą pracę usprawnić. Efekty mogą być niezauważalne na pierwszy rzut oka, ale potem wracając do standardowego basha, dopiero widzimy jak te zmiany nam usprawniają pracę z CLI.

cli zsh

ZSH – CLI w wersji PRO.

Każdy terminal powinien być wygodny w użytkowaniu, pozwolić na szybkie uzyskanie odpowiednich informacji, być wygodne i przyspieszać nasze poruszanie się po systemie.

Jednakże zacznijmy od początku. Ja nie wyobrażam sobie pracy bez skorzystania z ZSH (alternatywa dla bash’a) oraz z framework’a oh-my-zsh. ZSH łatwo zainstalować, bo jest praktycznie w każdym standardowym repozytorium, więc instalacja jest całkiem standardowa. Na początek instalujemy powłokę z repozytorium. Zależnie od systemu:

yum install zsh # CentOS/RHEL
apt install zsh # Debian/Ubuntu
dnf install zsh # Fedora
pacman -S zsh # Arch/Manjaro

Instalacja jest bardzo prosta, więc nie ma sensu się rozpisywać. Kolejnym etapem jest zainstalowanie Oh-My-ZSH. Dla mnie jest to framework, który zmienił moje postrzeganie konsoli ze smutnego klepania komend, do praktycznej pracy.

Instalacja tym razem jest podobnie utrudniona – aż jedna linijka kodu:

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Pluginy do ZSH

ZSH wraz z Oh-My-ZSH jest podstawą, a jak wiadomo – podstawowe rozwiązania nie są idealne, jednak społeczność się nie poddała i przygotowała fenomenalną ilość pluginów! Do instalacji pluginów zalecam skorzystać z antigen, który to jest menadżerem pluginów do ZSH. Dzięki niemu łatwo zainstalujemy i zaktualizujemy wszelkie pluginy i themes.

Działa jak na powyższym nagraniu.

Osobiście uruchamiam pluginy, dodając je w pliku:

.zshrc

Moja lista pluginów, które korzystam:

source ~/.local/antigen.zsh
antigen use oh-my-zsh
antigen bundle pip
antigen bundle git
antigen bundle pipenv
antigen bundle pyenv
antigen theme https://github.com/caiogondim/bullet-train-oh-my-zsh-theme bullet-train
antigen bundle go
antigen bundle auto-color-ls
antigen bundle mafredri/zsh-async
antigen bundle desyncr/auto-ls
antigen bundle Tarrasch/zsh-autoenv
antigen bundle unixorn/autoupdate-antigen.zshplugin
#antigen bundle rummik/zsh-ing
antigen bundle joepvd/grep2awk
antigen bundle sroze/docker-compose-zsh-plugin
antigen bundle webyneter/docker-aliases.git
antigen bundle rutchkiwi/copyzshell
antigen apply

Zaś pozostałe pluginy i możliwości ZSH oraz Oh-my-zsh znajdziecie na stronie Awesome ZSH.

Alternatywne aplikacje w CLI

Każdy z nas zna aplikacje, będące podstawą CLI, czyli takie jak grep, cat, czy awk. Użytkowanie ich jest formą must-have w obsłudze systemów operacyjnych na poziomie profesjonalnym poprzez konsolę, tak samo jak wiele innych narzędzi. Jednak czasem ich użytkowanie można ułatwić.

bat > cat

Na początek może użytkowanie cat’a. Aplikacja wyświetla zawartość pliku, jednak brakuje tam wielu funkcjonalności.

bat vs cat

Jak widać na obu obrazkach, bat jest nieco ładniejszy i wygodniejszy. Instrukcja instalacji jest na stronie repozytorium: https://github.com/sharkdp/bat

htop > top

Jak sprawdzić wygodnie listę procesów i zajęte zasoby? top’em! Wpisujemy top i jest ładna lista procesów. Jednak można to usprawnić i wykorzystać htop!

htop vs top

htop już jest łatwiejszy do zainstalowania niż bat, gdyż praktycznie każde std::repo posiada htop w swoich zasobach 🙂

yum install htop # CentOS/RHEL
apt install htop # Debian/Ubuntu
brew install htop # macOS Homebrew
pacman -S htop

ncdu > du

Nienawidzę liczenia zajętości katalogów. Jest to nudne, smutne i niestety czasem trzeba. Jednak łatwiejsza i wygodniejsza, a nawet szybsza forma liczenia zajętości katalogów to aplikacja ncdu.

Instalacja ponownie z repozytorium, więc nie będę już podawać linijek CLI 🙂

cht.sh > man

Dokumentacja komend jest przydatna, tak samo jako flaga –help w komendach przez CLI. Jednak man się długo czyta, a –help jest zwykle zbyt ubogi. Więc przychodzi na pomoc cht.sh! Ten projekt ułatwia nam przypomnienie sobie komend, przykładowo:

cht.sh man

Warto sobie utworzyć skrypt ~/bin/cht i tam dodać następującą linijkę:

#!/bin/bash
curl cht.sh/$1

I wtedy wystarczy wpisać “cht curl” i dostaniemy informację, taka jak na obrazku powyżej.

Podsumowanie

Jest jeszcze wiele innych narzędzi i z czasem tą listę rozbuduję, o ile oczywiście będzie pozytywny odzew 🙂 Sama lista jest stosunkowo krótka, jednakże celowo ominąłem kilka narzędzi, typu fd, diff-so-fancy, czy fzf. FD pominąłem dlatego, że nie widzę sensu z tego korzystać często, więc warto poznać find. diff-so-fancy jest dobre do pracy z git’em, jednak ja z tego nigdy nie korzystałem jakoś specjalnie, pozostałem przy standardowym diff. Tak samo fzf wymaga dużo konfiguracji, a jednak większość komend i tak pamiętam lub grepuję .zsh_history 🙂

Jeśli macie jakieś swoje typy, dajcie znać w komentarzu.

Paweł Otlewski

Programista, Webmaster, DevOps, Administrator - różnie się mnie nazywa. Ja po prostu jestem pasjonatem informatyki, uwielbiam gry komputerowe oraz tematykę bezpieczeństwa IT.

Wszelkie prawa zastrzeżone | Paweł Otlewski
%d bloggers like this: