Oh-My-Zsh! A Work of CLI Magic – Tutorial pentru Ubuntu

Michiel Mulders
Michiel Mulders

Follow

Aug 29, 2017 – 6 min read

Oh-My-Zsh Agnoster Theme

Sunt un mare fan al interfeței de linie de comandă… Urăsc să folosesc mouse-ul calculatorului meu! Acest lucru m-a motivat să caut instrumente grozave pentru a-mi îmbunătăți experiența de utilizator pe CLI. Am dat peste Oh-My-Zsh în timpul stagiului meu de practică. Câțiva prieteni m-au convins să folosesc acest shell datorită simplității și adaptabilității sale. Ca un bonus, CLI-ul este extensibil cu multe plugin-uri.

Aceasta este o listă a capabilităților sale:

  • Validare comenzi
  • Corectare ortografică
  • Părtășirea istoricului comenzilor între toate shell-urile care rulează
  • Primiteri tematice (Agnoster, RobbyRussell, …)
  • Historia directoarelor
  • Scripturi de pornire/oprire prin zshenv, zprofile, zshrc, zlogin și zlogout
  • Capacități puternice de autocompletare. Puteți folosi tasta TAB pentru a naviga printre diferitele opțiuni și puteți folosi tasta enter pentru a selecta folderul potrivit. Bash, de exemplu, ar imprima toate opțiunile. Acest lucru este destul de spammy și vă poluează scrollback-ul.

  • Adaugați plugin-uri: de exemplu, plugin-ul Git cu o listă uriașă de alias-uri Git utile.
    Acest plugin arată ramura activă și oferă feedback vizual despre starea Git:
    – Verde: ramură dacă nu au avut loc modificări
    – Galben cu o pictogramă în formă de cerc: fișiere netracked
    – Galben cu o pictogramă plus: fișiere pregătite pentru a fi comise

Realizez acest ghid de instalare pe mașina mea virtuală Ubuntu 16.04. Pentru a vă arăta puterea de bază a Oh-My-Zsh, voi instala plugin-ul Git (Git-core). Acest plugin oferă un feedback vizual despre starea Git a unui proiect.

  1. Instalează pachetele necesare
    $ sudo apt install git-core zsh
  2. Instalează Oh-My-Zsh din depozitul lui Robby Russell
    $ sh -c “$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)”
  3. Instalează fontul Powerline pentru a vă condimenta CLI-ul cu pictograme
    $ sudo apt install fonts-powerline
  4. Schimbă tema de la “robbyrussell” la “agnoster” pentru legendara temă Oh-My-Zsh
    $ nano ~/.zshrc
  5. Căutați variabila ZSH_THEME și modificați-o:ZSH_THEME="agnoster"
  6. Nu-mi place că tema arată numele meu de utilizator și gazda. Pentru a scăpa de acest lucru, schimbăm directorul în
    $ cd ~/.oh-my-zsh/themes
  7. În continuare, deschidem fișierul de temă pentru ‘agnoster’ în editor
    $ nano agnoster.zsh-theme
  8. Acum putem schimba ‘Main prompt’. Nu avem nevoie de prompt_context în funcția build_prompt(). Pur și simplu comentați această linie sau eliminați-o. În cele din urmă, schimbați variabila PROMPT în $(build_prompt).

Configurarea temei de tip Agnoster

Pentru a vedea efectiv tema, trebuie să vă originați fișierul .zshrc astfel: source ~/.zshrc. Dacă totul a funcționat bine, ar trebui să vedeți ceva de genul imaginii de copertă!

Extra: Setați zsh ca fiind shell-ul nostru implicit. Executați acest lucru în shell-ul vostru implicit, în majoritatea cazurilor acesta va fi bash. Dacă executați această comandă în zsh, nu va schimba nimic:
$ chsh -s $(care zsh)

Nota: Dacă folosiți sudo se va schimba shell-ul pentru root, dar nu și pentru utilizatorul de lucru. În afară de asta, asigurați-vă că vă deconectați și vă autentificați din nou pentru a vedea modificările.

Instalați plugin-urile

Toate plugin-urile listate pe pagina Github plugins sunt preinstalate cu Oh-My-Zsh la ~/.oh-my-zsh/plugins. Plugin-urile personalizate pot fi instalate la ~/.oh-my-zsh/custom/plugins. Pentru a utiliza un plugin, îl puteți adăuga pur și simplu la lista de pluginuri din fișierul ~/.zshrc. Adăugați cu înțelepciune, deoarece prea multe plugin-uri încetinesc pornirea shell-ului. Lăsați un spațiu gol între fiecare plugin.

Pagini colorate-man-pages

În acest exemplu, am instalat un plugin util pentru a da evidențiere colorată paginilor voastre man pages . Pentru a putea utiliza pluginul, luați ca sursă fișierul .zshrc:
$ source ~/.zshrc

Pagina Man colorată a comenzii ls

Zsh-syntax-highlighting

Un alt plugin grozav este evidențierea sintaxei pentru shell-ul dumneavoastră. Pe lângă asta, acest plugin are capacitatea de a verifica corectitudinea comenzii dumneavoastră.

Acest plugin nu este instalat cu Oh-My-Zsh. Navigați în ~/.oh-my-zsh/custom/plugins și clonați codul de pe Github în acest folder:
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting

Vă veți vedea un folder numit zsh-syntax-highlighting. Acesta este numele care trebuie adăugat la lista de plugin-uri.

Zsh-autosuggestions

De asemenea, puteți folosi zsh-autosuggestions pentru completarea comenzilor. Acesta sugerează comenzi pe baza istoricului de comenzi. Foarte util! Pentru a selecta comanda propusă, apăsați tasta săgeată dreapta.

Instalarea este aceeași ca și cu zsh-syntax-highlighting :
$ git clone https://github.com/zsh-users/zsh-autosuggestions
Și adăugați zsh-autosuggestions la lista de pluginuri.

Se ocupă de pasionații de alifii

Oh-My-Zsh își amintește automat ultimele 20 de directoare pe care le-ați vizitat. Puteți lista istoricul în ordine cronologică cu dirs -v sau doar d.

Normal, puteți folosi cd +1 pentru a merge la directorul anterior și așa mai departe. Oh-My-Zsh a făcut acest lucru și mai simplu, acum puteți folosi doar numărul intrării din istoricul directoarelor pe care doriți să o vizitați… 1.

Alte pseudonime interesante

  • alias : Listează toate pseudonimele. Puteți redirecționa ieșirea către grep pentru a căuta un anumit alias.
  • / : cd /
  • ~ : cd ~
  • ... : cd ../..
  • .... : cd ../../..
  • ..... : cd ../../../.. Cred că v-ați prins, nu?
  • take test_folder : Creează un folder numit test_folder și face modificări în el
  • x : Extrage arhiva de tipuri tar, bz2, rar, gz, tbz2, tgz, zip, Z, 7z
  • upgrade_oh_my_zsh : Comandă ușoară pentru actualizarea instalației

Probleme bine cunoscute & Soluții

Se poate întâmpla ca fișierul istoric să fie corupt. Nu-mi cereți detalii specifice. De fiecare dată când lansați un nou terminal, primiți acest mesaj:

zsh: corrupt history file /home/myusername/.zsh_history

Să-l rezolvăm cu următoarele comenzi. Asigurați-vă că vă aflați în rădăcina homefolder-ului. Comanda fc listează, editează sau reexecută comenzile introduse anterior într-un shell. Comanda history vă permite să folosiți cuvinte din liniile de comandă anterioare în linia de comandă pe care o tastați.

mv .zsh_history .zsh_history_bad
strings .zsh_history_bad > .zsh_history
fc -R .zsh_history

Concluzie

Oh-My-Zsh este pur și simplu minunat!

Legături și surse utile

Acest articol a fost realizat cu ajutorul TheLedger.

  • Oh-My-Zsh: http://ohmyz.sh/
  • Plugins: 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 despre Zsh: https://wiki.archlinux.org/index.php/zsh#Autostart_X_at_login
  • Zsh syntax highlighting plugin: https://github.com/zsh-users/zsh-syntax-highlighting
  • Zsh autosugestii plugin: https://github.com/zsh-users/zsh-autosuggestions
  • RobbyRussell Wiki despre personalizarea lui Zsh: https://github.com/robbyrussell/oh-my-zsh/wiki/Customization

Lasă un răspuns

Adresa ta de email nu va fi publicată.