Jestem wielkim fanem interfejsu wiersza poleceń…. Nienawidzę używać mojej myszki komputerowej! To zmotywowało mnie do szukania świetnych narzędzi, które poprawią moje doświadczenie użytkownika w CLI. Natknąłem się na Oh-My-Zsh podczas mojego stażu. Kilku przyjaciół przekonało mnie do używania tej powłoki z powodu jej prostoty i możliwości dostosowania. Jako bonus, CLI jest rozszerzalny o wiele wtyczek.
To jest lista jej możliwości:
- Weryfikacja poprawności poleceń
- Korekta pisowni
- Współdzielenie historii poleceń pomiędzy wszystkie uruchomione powłoki
- Możliwe podpowiedzi (Agnoster, RobbyRussell, ….)
- Historia katalogów
- Skrypty uruchamiania/zamykania przez
zshenv
,zprofile
,zshrc
,zlogin
, izlogout
- Silne możliwości autouzupełniania. Możesz użyć klawisza TAB, aby poruszać się po różnych opcjach i użyć Enter, aby wybrać właściwy folder. Bash na przykład wydrukowałby wszystkie opcje. To jest dość spamerskie i zanieczyszcza twój scrollback.
- Dodaj wtyczki: np. wtyczka Git z ogromną listą przydatnych aliasów Git.
Ta wtyczka pokazuje aktywną gałąź i daje wizualną informację zwrotną o twoim statusie Git:
– Zielony: gałąź, jeśli nie wystąpiły żadne zmiany
– Żółty z ikoną koła: pliki nieśledzone
– Żółty z ikoną plusa: pliki gotowe do popełnienia
Wykonuję ten przewodnik instalacji na mojej maszynie wirtualnej Ubuntu 16.04. Aby pokazać Ci podstawową moc Oh-My-Zsh, zainstaluję wtyczkę Git (Git-core). Wtyczka ta daje wizualną informację zwrotną o statusie Git projektu.
- Instalacja pakietów wstępnych
$ sudo apt install git-core zsh - Instalacja Oh-My-Zsh z repozytorium Robby’ego Russella
$ sh -c “$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)” - Zainstaluj czcionkę Powerline, aby urozmaicić CLI ikonami
$ sudo apt install fonts-powerline - Zmień motyw z ‘robbyrussell’ na ‘agnoster’ dla legendarnego motywu Oh-My-Zsh
$ nano ~/.zshrc - Znajdź zmienną
ZSH_THEME
i zmień ją:ZSH_THEME="agnoster"
- Nie podoba mi się to, że motyw pokazuje moją nazwę użytkownika i hosta. Aby się tego pozbyć, zmieniamy katalog na
$ cd ~/.oh-my-zsh/themes - Następnie otwieramy plik motywu dla ‘agnoster’ w edytorze
$ nano agnoster.zsh-theme - Teraz możemy zmienić ‘Main prompt’. Nie potrzebujemy prompt_context w funkcji
build_prompt()
. Po prostu wykomentuj tę linię lub usuń ją. Na koniec zmień zmiennąPROMPT
na$(build_prompt)
.
Aby faktycznie zobaczyć motyw, musisz zmienić źródło swojego pliku .zshrc
w ten sposób: source ~/.zshrc
. Jeśli wszystko poszło dobrze, powinieneś zobaczyć coś takiego jak obrazek na okładce!
Extra: Ustaw zsh jako naszą domyślną powłokę. Wykonaj to w swojej domyślnej powłoce, w większości przypadków będzie to bash. Jeśli wykonasz to polecenie w zsh, nie zmieni ono niczego:
$ chsh -s $(which zsh)
Uwaga: Jeśli użyjesz sudo
, zmieni to powłokę dla roota, ale nie dla użytkownika roboczego. Poza tym, upewnij się, że wylogujesz się i zalogujesz ponownie, aby zobaczyć zmiany.
Instalacja wtyczek
Wszystkie wtyczki wymienione na stronie Github z wtyczkami są preinstalowane z Oh-My-Zsh na ~/.oh-my-zsh/plugins
. Niestandardowe wtyczki mogą być zainstalowane pod adresem ~/.oh-my-zsh/custom/plugins
. Aby użyć wtyczki, możesz po prostu dodać ją do listy wtyczek w swoim pliku ~/.zshrc
. Dodawaj je rozsądnie, ponieważ zbyt wiele wtyczek spowalnia uruchamianie powłoki. Pozostaw puste miejsce między każdą wtyczką.
Colored-man-pages
W tym przykładzie zainstalowałem użyteczną wtyczkę do kolorowego podświetlania twoich man pages
. Aby móc użyć wtyczki, podaj źródło swojego .zshrc
pliku:
$ source ~/.zshrc
Instalacja jest taka sama jak w przypadku zsh-syntax-highlighting
:
$ git clone https://github.com/zsh-users/zsh-autosuggestions
I dodaj zsh-autosuggestions
do listy wtyczek.
Takes Care of Alias Enthusiast
Oh-My-Zsh automatycznie zapamiętuje 20 ostatnich odwiedzonych katalogów. Możesz wyświetlić historię chronologicznie za pomocą dirs -v
lub po prostu d
.
Normalnie, możesz użyć cd +1
, aby przejść do poprzedniego katalogu i tak dalej. Oh-My-Zsh uczynił to jeszcze prostszym, teraz możesz użyć tylko numeru wpisu w historii katalogu, który chcesz odwiedzić… 1
.
Inne ciekawe aliasy
-
alias
: Lista wszystkich aliasów. Możesz przekierować wyjście dogrep
, aby wyszukać konkretny alias. -
/
:cd /
-
~
:cd ~
-
...
:cd ../..
-
....
:cd ../../..
-
.....
:cd ../../../..
Myślę, że to rozumiesz, prawda? -
take test_folder
: Tworzy folder o nazwietest_folder
i wprowadza w nim zmiany -
x
: Wyodrębnia archiwum typówtar, bz2, rar, gz, tbz2, tgz, zip, Z, 7z
-
upgrade_oh_my_zsh
: Łatwe polecenie aktualizacji instalacji
Znane problemy & Rozwiązania
Może się zdarzyć, że plik historii zostanie uszkodzony. Nie pytaj mnie o szczegóły. Za każdym razem, gdy uruchamiasz nowy terminal, dostajesz tę wiadomość:
zsh: corrupt history file /home/myusername/.zsh_history
Naprawmy to za pomocą następujących poleceń. Upewnij się, że jesteś w katalogu głównym homefolder. Polecenie fc listuje, edytuje lub ponownie wykonuje polecenia wcześniej wprowadzone do powłoki. Polecenie history pozwala na użycie słów z poprzednich wierszy poleceń w wpisywanym wierszu poleceń.
mv .zsh_history .zsh_history_bad
strings .zsh_history_bad > .zsh_history
fc -R .zsh_history
Zakończenie
Oh-My-Zsh jest po prostu niesamowity!
Użyteczne linki i źródła
Ten artykuł powstał z pomocą TheLedger.
- Oh-My-Zsh: http://ohmyz.sh/
- Wtyczki: https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins
- Themes: https://github.com/robbyrussell/oh-my-zsh/tree/master/themes/
- Git plugin with all aliases: https://github.com/robbyrussell/oh-my-zsh/wiki/Plugin:git
- Customizing your shell prompt: http://www.nparikh.org/unix/prompt.php#zsh
- ArchWiki o Zsh: https://wiki.archlinux.org/index.php/zsh#Autostart_X_at_login
- Wtyczka do kolorowania składni Zsh: https://github.com/zsh-users/zsh-syntax-highlighting
- Wtyczka autosugestii Zsh: https://github.com/zsh-users/zsh-autosuggestions
- RobbyRussell Wiki o dostosowywaniu Zsh do własnych potrzeb: https://github.com/robbyrussell/oh-my-zsh/wiki/Customization