Αντικαταστήστε το Bash με το Zsh και βελτιώστε την εμπειρία χρήσης του τερματικού, την εμφάνιση αλλά και τις λειτουργίες που παρέχει με πάνω από 200 plugins και 140 themes διαθέσιμα για δοκιμές.

Για να είμαι ειλικρινής το άρθρο αυτό το κάνω ύστερα από παραινέσεις φίλων/χρηστών και αναγνωστών του cerebrux που αρέσκονται στο eye candy και ειδικότερα στην εικόνα και το θέμα της γραμμής εντολών. Πως το έκανες, τι είναι αυτό, μπορώ να το κάνω και εγώ μερικές από τις αντιδράσεις. Η απάντηση είναι ναι μπορείτε να το κάνετε με τη βοήθεια του σημερινού οδηγού και να είστε σίγουροι ότι θα είναι αρκετά μουράτο ώστε οι desktop screenshots σας να παράγουν ανάλογες αντιδράσεις με τις δικές σας. Όμως μετά την πρώτη εικόνα που ομολογουμένως είναι κατά πολύ ανώτερη, θα διαπιστώσετε ότι το zshell αποτελεί έναν από τους πλέον αναντικατάστατους φίλους σας στη χρήση του command line .

Τι είναι το zsh (zshell)

H wikipedia προσδιορίζει το Κέλυφος Z (Z shell, zsh) ως ένα κέλυφος του Unix που μπορεί να χρησιμοποιηθεί σαν ένα αλληλεπιδραστικό κέλυφος χρήστη καθώς και σαν ένας ισχυρός διερμηνέας γραμμής εντολών για προγραμματισμό σεναρίων. Το Zsh μπορεί να θεωρηθεί ένα επεκτεταμένο κέλυφος Bourne με αρκετές βελτιώσεις, περιλαμβάνοντας μεταξύ άλλων χαρακτηριστικά του bash, του ksh, και του tcsh.

Εμείς πολύ απλούστερα θα πούμε ότι το zshell είναι ένα κέλυφος που θα κάνει την καθημερινότητα σας απλούστερη ενώ ταυτόχρονα εμπλουτίζεται η αποδοτικότητα σας με την προσθήκη plugins για το github (θα γνωρίζετε πότε άλλαξε κάτι στο φάκελο του αποθετηρίου ή υπολείπονται ενέργειες πριν το push ή το commit) μέχρι και το syntax highlighting (ποτέ δεν θα ξαναγράψετε λάθος εντολή).

Advertisements

Αντικατάσταση του bash με το zshell

Εγκατάσταση του zshell

Σε πρώτη φάση πρέπει να εγκαταστήσουμε το zshell κάτι που είναι πανεύκολο με τη χρήση του τερματικού σας ή μέσω του κέντρου λογισμικού της διανομή σας όποια και αν είναι αυτή. Εμείς θα χρησιμοποιήσουμε το τερματικό του Ubuntu / Debian δίνοντας :

sudo apt install zsh

αντίστοιχα εσείς μπορείτε να χρησιμοποιήσετε το yum σε περίπτωση που έχετε RPM διανομή. Εν συνεχεία θα πρέπει να αλλάξουμε το shell μας από το bash σε zsh. Αυτό θα το πετύχουμε με την εντολή:

chsh -s /bin/zsh

Κάνουμε logout από το λογαριασμό μας και ξανά login και πλέον είμαστε στο νέο μας shell

Τουμπάνιασμα … εμ … αισθητική αναβάθμιση του zshell

Για την αισθητική αναβάθμιση του zshell μας θα χρησιμοποιήσουμε τα script oh-my-zsh το οποίο όμως ρητά αναφέρει κάποια προαπαιτούμενα.

  • Unix based λειτουργικό σύστημα (os X ή Linux)
  • Έκδοση zsh 4.3.9 και άνω (την έκδοση τη βλέπετε δίνοντας zsh –version)
  • curl ή wget
  • Εγκατεστημένο το git

Προτού συνεχίσουμε δίνουμε στο τερματικό μας :

sudo apt install -y wget curl git

και εν συνεχεία είμαστε έτοιμοι να εγκαταστήσουμε το oh-my-zsh. Στο github τους αναφέρονται δύο τρόποι εγκατάστασης (επιλέγετε έναν από τους δύο) :

μέσω curl:

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

μέσω wget:

sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

και μόλις τελειώσει η διαδικασία είμαστε έτοιμοι να περάσουμε στην παραμετροποίηση του.

Παραμετροποίηση του oh-my-zsh

Όπως το bash έχει το .bashrc με τις ρυθμίσεις του τερματικού μας, το zshell έχει το .zshrc που κάνει ακριβώς την ίδια δουλειά. Επομένως οι αλλαγές μας θα γίνουν σε αυτό αρχείο δίνοντας στο τερματικό

nano ~/.zshrc

και για να ξεκινήσει το τερματικό με τις αλλαγές δίνουμε

source ~/.zshrc

Στο .zshrc έχει ανάλογες ρυθμίσεις με αυτές του .bashrc και για αυτό αν έχετε κάνει τροποποιήσεις στο .bashrc σας (aliases συντομεύσεις κτλ) μπορείτε με ένα απλό copy paste να τα μεταφέρετε στο .zshrc ούτως ώστε να ισχύουν και εκεί.

Αν ρίξουμε μια γρήγορη ματιά θα διαπιστώσουμε ότι το oh-my-zsh μας δίνει να επιλέξουμε μέσα από μια πληθώρα προεγκατεστημένων θεμάτων και ενεργοποιούνται στο .zshrc σας με την επιλογή

ZSH_THEME="agnoster"

όπου agnoster το όνομα του theme που θέλετε (τα θέματα αποθηκεύονται στον φάκελο .oh-my-zsh). Περισσότερα themes, πως φαίνονται αλλά και τις αντίστοιχες ονομασίες τους  θα βρείτε εδώ. Αν πάλι δεν μπορείτε να αποφασίσετε πιο σας αρέσει περισσότερο, πολύ απλά ορίστε το όνομα του θέματος σε random και σε κάθε φορά που θα τρέχετε το zsh θα έχετε ένα νέο θέμα στο τερματικό σας.

Αφαίρεση του χρήστη στο prompt του zsh

Στο theme agnoster και σε κάποια άλλα θέματα εμφανίζεται στο prompt το όνομα του χρήστη και το hostname αλλά χωρίς τον όμορφο χρωματισμό. Αν θέλετε να το ξεφορτωθείτε, απλά προσθέτετε στην τελευταία γραμμή του .zshrc:

DEFAULT_USER=ονομαχρηστη

Syntax highlighting ή πολύ απλά να βλέπετε τι γράφετε

Ξέθαψα από το ελληνικό forum του linuxmint μια πολύ ενδιαφέρουσα προσθήκη στο zsh που έχει να κάνει με το syntax highlighting που χρωματίζει ανάλογα τον κώδικα μας αναλόγως αν αυτό που γράφουμε είναι σωστό ή όχι.

Εγκαθιστούμε το syntax highlighting δίνοντας στο τερματικό:

cd ~/.oh-my-zsh && git clone git://github.com/zsh-users/zsh-syntax-highlighting.git

και το ενεργοποιούμε

echo "source ~/.oh-my-zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> $HOME/.zshrc

και φυσικά στο τέλος τρέχουμε source .zshrc για ενεργοποίηση.

Ρε τι ακαταλαβίστικα είναι αυτά;;;

Υπάρχει μια περίπτωση σε όσους χρησιμοποιούν τροποποιημένο τερματικό, ύστερα από την εγκατάσταση των παραπάνω να έρθουν αντιμέτωποι με την παρακάτω εικόνα.

Σε τροποποιημένο τερματικό ενδέχεται να παρουσιαστεί μια τέτοια εικόνα.
Σε τροποποιημένο τερματικό ενδέχεται να παρουσιαστεί μια τέτοια εικόνα.

Μη φοβάστε! Αρκετές από αυτές τις τροποποιήσεις που περιέχονται στο oh-my-zsh απαιτούν κάποια συγκεκριμένα fonts προκειμένου να αποδοθούν σωστά. Αυτά τα fonts ονομάζονται powerline fonts και τα γνωστότερα υπάρχουν στο κέντρο λογισμικού της διανομής σας.

Στην περίπτωση μας δίνουμε:

sudo apt install -y fonts-powerline

και λογικά το πρόβλημα θα διορθωθεί. Αν πάλι δε διορθωθεί τότε αλλάξτε το font του τερματικού σας μέσα από τις επιλογές του και επιλέξτε κάποιο από τα powerline fonts.

Οι πιο τολμηροί αν δεν ικανοποιήθηκαν από τα διαθέσιμα fonts μπορούν να εγκαταστήσουν από github των poweline fonts όλα τα υποστηριζόμενα fonts για περισσότερη ποικιλία.

Άστο δεν είναι για μένα αυτό…

…και θέλω να το απεγκαταστήσω. Στην (σπάνια) περίπτωση που δεν μείναμε ευχαριστημένοι με την καινούρια εικόνα του τερματικού μας, μπορούμε ανά πάσα στιγμή να επιστρέψουμε στην αρχική κατάσταση. Δίνουμε στο τερματικό:

Επαναφέρουμε πρώτα το παλιό μας shell

chsh -s '/bin/bash'

και στη συνέχεια

sudo apt remove zsh && rm -rf ~/.oh-my-zsh

Αν χρησιμοποιήσατε την περίπτωση που αναφέρθηκε στην εικόνα παραπάνω, τότε απλώς απενεργοποιήστε την επιλογή Run a custom command instead of my shell .

Advertisements

Shell redefined

antikatastasi-bash-zsh-xrisi-themes-plugins

Ομολογώ ότι και εγώ δε γνώριζα για το zshell μέχρι που ασχολήθηκα με το git ( το βλέπετε στην παρακάτω εικόνα) και εκτίμησα τις δυνατότητες του στο tab completion,στην παρακολούθηση σε πραγματικό χρόνο αν άλλαξε κάτι στο φάκελο του αποθετηρίου git ενώ στα δυνατά του σημεία εκτίμησα ότι δε μασάει μια από case sensitive φακέλους.

Με λίγα λόγια έκανε την εμπειρία χρήσης του τερματικού πέρα από ουσιώδη, ευχάριστη. Δοκιμάστε το, πιστεύω αξίζει την προσοχή σας. Θα ήθελα να ακούσω , τέλος την δική σας εμπειρία στην χρήση του zsh και γιατί όχι να μου πείτε τα theme και τα plugin που χρησιμοποιείτε !