Pimp my shell : αντικαταστήστε το bash με το zsh και αναβαθμίστε την εμφάνιση του

Αντικαταστήστε το 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 που χρησιμοποιείτε !

Advertisement

13 σκέψεις σχετικά με το “Pimp my shell : αντικαταστήστε το bash με το zsh και αναβαθμίστε την εμφάνιση του

Add yours

  1. Άκυρο : Το ωραίο gifάκι με screenShot συνεχόμενα το έκανες, που έπειτα τα ένωσες;

    1. Αν πρόσεξες, η διαδικασία είναι πάνω κάτω η ίδια (εγκατάσταση zsh, αλλαγή σε zsh, εγκατάσταση oh-my-zsh, εγκατάσταση poweline fonts) με τη μόνη διαφορά ότι δεν αναφέρθηκα στα powerline colors μιας και στο ubuntu (δεν το γνωρίζω αν είναι στο xubuntu) είναι προεγκατεστημένα.

    2. Γενικά το default terminal του xfce δεν έχει και πολλές δυνατότητες.
      Με το terminator τα κατάφερα και δείχνει ΤΈΛΕΙΟ !

    3. Μπράβο!!! Όπως θα διαπιστώσεις και στη συνέχεια το zshell απλοποιεί κατά πολύ κάποιες καθημερινές εργασίες στο τερματικό (όπως ανέφερα και στο άρθρο) πέρα από την αισθητική αναβάθμιση (τουμπάνιασμα :)).

  2. Φαίνεται κάτι πραγματικά αξιόλογο με πολλά ( αν όχι όλα ) από τα παραπάνω να υπάρχουν και στα επίσημα αποθετήρια των διανομών :

    zgen – Lightweight plugin manager for ZSH inspired by Antigen
    zplug – next-generation plugin manager for zsh
    zsh – shell with lots of features
    zsh-common – architecture independent files for Zsh
    zsh-dev – shell with lots of features (development files)
    zsh-doc – zsh documentation – info/HTML format
    zsh-static – shell with lots of features (static link)
    zsh-antigen – manage your zsh plugins
    zsh-syntax-highlighting – Fish shell like syntax highlighting for zsh

    Υπάρχουν και άλλα θέματα πέρα αυτών που αναφέρεις ;
    Πέρα από το zsh, υπάρχουν και άλλα shells ή θέματα που μπορούν να κάνουν εύχρηστο και όμορφο το τερματικό ;

    Ευχαριστούμε! :)

  3. Πόσα διαφορετικά GNU/Linux or Unix shells υπάρχουν ;
    Ένας ακόμη παράγοντας όχι μονάχα οπτικής αλλά και καλύτερης/πιο ευέλικτης λειτουργίας, είναι να αλλάξεις και τελείως το terminal με κάποιο άλλο π.χ. με το Terminator ;

    Πέρα από άλλο shell, μπορείς να αλλάξεις και μονάχα το “theme” του τερματικού σου ώστε να φαίνεται “ομορφότερο” ;

    Ευχαριστούμε για τον ενδιαφέρον άρθρο.

Σου άρεσε το άρθρο; Πες την άποψή σου... έστω και Ανώνυμα:

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση /  Αλλαγή )

Σύνδεση με %s

Ο ιστότοπος χρησιμοποιεί το Akismet για την εξάλειψη των ανεπιθύμητων σχολίων. Μάθετε πως επεξεργάζονται τα δεδομένα των σχολίων σας.

Create a website or blog at WordPress.com

ΠΑΝΩ ↑

Αρέσει σε %d bloggers: