Αρχική σελίδα » πως να » Ποια είναι η διαφορά μεταξύ Bash, Zsh και άλλων Linux Shells;

    Ποια είναι η διαφορά μεταξύ Bash, Zsh και άλλων Linux Shells;

    Οι περισσότερες διανομές Linux περιλαμβάνουν το κέλυφος bash από προεπιλογή, αλλά μπορείτε επίσης να μεταβείτε σε άλλο περιβάλλον κελύφους. Το Zsh είναι μια ιδιαίτερα δημοφιλής εναλλακτική λύση, και υπάρχουν και άλλα κοχύλια, όπως τέφρα, παύλα, ψάρια και tcsh. Αλλά ποια είναι η διαφορά και γιατί υπάρχουν τόσα πολλά?

    Τι κάνουν οι Shells?

    Όταν συνδεθείτε στη γραμμή εντολών ή εκκινήσετε ένα παράθυρο τερματικού στο Linux, το σύστημα εκκινεί το πρόγραμμα κελύφους. Οι Shells προσφέρουν έναν τυπικό τρόπο επέκτασης του περιβάλλοντος της γραμμής εντολών. Μπορείτε να ανταλλάξετε το προεπιλεγμένο κέλυφος με ένα άλλο, αν θέλετε.

    Το πρώτο περιβάλλον του κελύφους ήταν το Thompson Shell, το οποίο αναπτύχθηκε από την Bell Labs και κυκλοφόρησε το 1971. Τα περιβάλλοντα Shell βασίζονται στην ιδέα από τότε, προσθέτοντας μια ποικιλία από νέα χαρακτηριστικά, λειτουργικότητα και βελτιώσεις ταχύτητας.

    Για παράδειγμα, το Bash προσφέρει την ολοκλήρωση των εντολών και των αρχείων, τις προηγμένες λειτουργίες δέσμης ενεργειών, το ιστορικό εντολών, τα διαμορφώσιμα χρώματα, τα ψευδώνυμα εντολών και διάφορες άλλες λειτουργίες που δεν ήταν διαθέσιμες το 1971 όταν κυκλοφόρησε το πρώτο κέλυφος.

    Το κέλυφος χρησιμοποιείται επίσης στο παρασκήνιο από διάφορες υπηρεσίες συστήματος. Οι κατανομές Linux περιλαμβάνουν πολλές λειτουργίες γραμμένες ως σενάρια κελυφών. Αυτά τα σενάρια είναι εντολές και άλλες προηγμένες λειτουργίες δέσμης ενεργειών κελύφους που διατρέχουν το περιβάλλον του κελύφους.

    Shells Leading Up to Bash: sh, csh, tsh και ksh

    Ο πιο σημαντικός πρόγονος των σύγχρονων κοχυλιών είναι το κέλυφος Bourne - επίσης γνωστό ως "sh" - το οποίο πήρε το όνομά του από τον δημιουργό του Stephen Bourne ο οποίος εργάστηκε στα εργαστήρια Bell της AT & T. Κυκλοφόρησε το 1979, έγινε ο προεπιλεγμένος εντολοδόχος-διερμηνέας στο Unix λόγω της υποστήριξής του στην αντικατάσταση των εντολών, τις σωληνώσεις, τις μεταβλητές, τις δοκιμές κατάστασης και το βρόχο, μαζί με άλλα χαρακτηριστικά. Δεν προσφέρει μεγάλη προσαρμογή για τους χρήστες και δεν υποστήριζε τέτοιες σύγχρονες λεπτομέρειες όπως ψευδώνυμα, ολοκλήρωση εντολών και λειτουργίες του κελύφους (αν και αυτό το τελευταίο προστέθηκε τελικά).

    Το κέλυφος C, ή "csh", αναπτύχθηκε στα τέλη της δεκαετίας του 1970 από τον Bill Joy στο Πανεπιστήμιο της Καλιφόρνιας, Berkley. Προσθέτει πολλά διαδραστικά στοιχεία με τα οποία οι χρήστες θα μπορούσαν να ελέγχουν τα συστήματά τους, όπως ψευδώνυμα (συντομεύσεις για μεγάλες εντολές), ικανότητες διαχείρισης θέσεων εργασίας, ιστορικό εντολών και πολλά άλλα. Έγινε μοντελοποίηση από τη γλώσσα προγραμματισμού C, στην οποία γράφτηκε το ίδιο το λειτουργικό σύστημα Unix. Αυτό σήμαινε επίσης ότι οι χρήστες του κελύφους Bourne έπρεπε να μάθουν το C, ώστε να μπορούν να εισάγουν εντολές σε αυτό. Επιπλέον, το csh είχε αρκετά σφάλματα που έπρεπε να σφυρηλατηθούν από τους χρήστες και τους δημιουργούς για μεγάλο χρονικό διάστημα. Οι άνθρωποι κατέληξαν να χρησιμοποιούν το κέλυφος Bourne για δέσμες ενεργειών επειδή χειρίστηκαν καλύτερα τις μη διαδραστικές εντολές, αλλά κολλήθηκαν με το κέλυφος C για κανονική χρήση.

    Με την πάροδο του χρόνου, πολλοί άνθρωποι ρύθμισαν σφάλματα και πρόσθεσαν χαρακτηριστικά στο κέλυφος C, με αποκορύφωμα μια βελτιωμένη έκδοση του csh γνωστού ως "tcsh". Ωστόσο, το csh εξακολουθούσε να είναι η προεπιλογή σε υπολογιστές που βασίζονται σε Unix και είχε προσθέσει ορισμένα μη τυπικά χαρακτηριστικά. Ο David Korn από τους Bell Labs εργάστηκε στο KornShell ή το ksh που προσπάθησε να βελτιώσει την κατάσταση με το να είναι συμβατό με τη γλώσσα του κελύφους του Bourne, αλλά να προσθέτει πολλά χαρακτηριστικά από το κέλυφος csh. Απελευθερώθηκε το 1983, αλλά με άδεια ιδιοκτησίας. Δεν ήταν ελεύθερο λογισμικό μέχρι τη δεκαετία του 2000, όταν κυκλοφόρησε υπό διάφορες άδειες ανοιχτού κώδικα.

    Η γέννηση του μπάχ

    Η διασύνδεση φορητού λειτουργικού συστήματος για Unix ή POSIX ήταν μια άλλη απάντηση στις ταραχώδεις ιδιόκτητες εφαρμογές csh. Δημιούργησε με επιτυχία ένα πρότυπο για την ερμηνεία των εντολών (μεταξύ άλλων) και τελικά αντικατοπτρίζει πολλά από τα χαρακτηριστικά του KornShell. Ταυτόχρονα, το Έργο GNU προσπαθούσε να δημιουργήσει ένα ελεύθερο, συμβατό με Unix λειτουργικό σύστημα. Το GNU Project ανέπτυξε ένα ελεύθερο κέλυφος λογισμικού για να αποτελέσει μέρος του ελεύθερου λειτουργικού του συστήματος και το ονόμασε το "Bourne Again Shell" ή "bash".

    Το Bash έχει βελτιωθεί στις δεκαετίες από την πρώτη του κυκλοφορία το 1989, αλλά εξακολουθεί να είναι το προεπιλεγμένο κέλυφος στις περισσότερες διανομές του Linux σήμερα. Είναι επίσης το προεπιλεγμένο κέλυφος στο macOS της Apple και είναι διαθέσιμο για εγκατάσταση στα Windows 10 της Microsoft.

    Νεότερα κοχύλια: τέφρα, παύλα, zsh και ψάρια

    Ενώ η κοινότητα του Linux έχει εγκατασταθεί στο Bash τα επόμενα χρόνια, οι προγραμματιστές δεν σταμάτησαν να δημιουργούν νέα κοχύλια όταν κυκλοφόρησε για πρώτη φορά ο Bash πριν από 28 χρόνια.

    Ο Kenneth Almquist δημιούργησε έναν κλώνο κελύφους Bourne γνωστό ως κέλυφος Almquish, A Shell, "τέφρα", ή μερικές φορές μόνο "sh". ήταν επίσης POSIX συμβατό και έγινε το προεπιλεγμένο κέλυφος σε BSD, ένα διαφορετικό κλάδο του Unix. Το κέλυφος τέφρας είναι πιο ελαφρύ από το bash, γεγονός που το καθιστά δημοφιλές στα ενσωματωμένα συστήματα Linux. Εάν έχετε ένα ριζωμένο τηλέφωνο Android με BusyBox εγκατεστημένο -ή οποιαδήποτε άλλη συσκευή με τη σουίτα BusyBox λογισμικού-χρησιμοποιεί κωδικό από την τέφρα.

    Το Debian ανέπτυξε ένα περιβάλλον κελύφους που βασίζεται στην τέφρα και το ονόμασε "παύλα". Είναι σχεδιασμένο να είναι συμβατό με POSIX και ελαφρύ, έτσι είναι ταχύτερο από το Bash, αλλά δεν θα έχει όλες τις δυνατότητές του. Το Ubuntu χρησιμοποιεί το κέλυφος παύλας ως προεπιλεγμένο κέλυφος για μη διαδραστικές εργασίες, επιταχύνοντας τις δέσμες ενεργειών κελύφους και άλλες εργασίες που εκτελούνται στο παρασκήνιο. Το Ubuntu εξακολουθεί να χρησιμοποιεί bash για διαδραστικά κελύφη, ωστόσο, έτσι ώστε οι χρήστες να έχουν ακόμα το πλήρως λειτουργικό διαδραστικό περιβάλλον.

    Ένα από τα πιο δημοφιλή νεότερα κελύφη είναι το Z shell, ή το "zsh". Δημιουργήθηκε από τον Paul Falstad το 1990, το zsh είναι ένα κέλυφος τύπου Bourne που περιέχει τα χαρακτηριστικά που θα βρείτε στο bash, συν ακόμα περισσότερα. Για παράδειγμα, το zsh έχει ορθογραφικό έλεγχο, δυνατότητα παρακολούθησης για logins / logouts, μερικές ενσωματωμένες δυνατότητες προγραμματισμού όπως bytecode, υποστήριξη για επιστημονική καταγραφή σε σύνταξη, επιτρέπει αριθμητική επίπλευσης και άλλα χαρακτηριστικά.

    Ένα άλλο νεότερο κέλυφος είναι το Friendly Interactive Shell, ή το "fish" που κυκλοφόρησε το 2005. Έχει μια μοναδική σύνταξη γραμμής εντολών που έχει σχεδιαστεί για να είναι κάπως πιο εύκολη στην εκμάθηση, αλλά δεν προέρχεται από το κέλυφος Bourne ή το κέλυφος C. Είναι μια ενδιαφέρουσα ιδέα, αλλά αυτό που μαθαίνετε μέσω της χρήσης ψαριού δεν θα σας βοηθήσει απαραίτητα να χρησιμοποιήσετε το bash και άλλα προερχόμενα από το Bourne κοχύλια.

    Ποια πρέπει να επιλέξετε; (και γιατί το Zsh είναι δημοφιλές)

    Δεν χρειάζεται να επιλέξετε ένα κέλυφος. Το λειτουργικό σας σύστημα επιλέγει το προεπιλεγμένο κέλυφος για εσάς και αυτή η επιλογή είναι σχεδόν πάντα bash. Καθίστε μπροστά σε μια διανομή Linux ή ακόμα και σε Mac και σχεδόν πάντα θα έχετε ένα περιβάλλον shell bash. Το Bash έχει αρκετά προηγμένα χαρακτηριστικά, αλλά μάλλον δεν θα τα χρησιμοποιήσετε αν δεν προγραμματίσετε κελύφη κελύφους.

    Σε ενσωματωμένα συστήματα Linux ή συστήματα BSD, θα καταλήξετε στο κέλυφος τέφρας. Αλλά η τέφρα είναι ένα κέλυφος με βάση το Bourne και είναι σε μεγάλο βαθμό συμβατό με το bash. Οποιαδήποτε γνώση έχετε από τη χρήση bash θα μεταφερθεί στη χρήση ενός κελύφους τέφρας ή παύλα, αν και ορισμένα προηγμένα χαρακτηριστικά δέσμης ενεργειών δεν είναι διαθέσιμα σε αυτό το ελαφρύ κέλυφος.

    Σχεδόν κάθε κέλυφος που θα συναντήσετε είναι βασισμένο στο Bourne και λειτουργεί ομοίως -συμπεριλαμβανομένου του zsh.

    Γι 'αυτό το zsh είναι δημοφιλές. Αυτό το νεότερο κέλυφος είναι συμβατό με bash, αλλά περιλαμβάνει περισσότερα χαρακτηριστικά. Το κέλυφος zsh προσφέρει ενσωματωμένη διόρθωση ορθογραφίας, βελτιωμένη ολοκλήρωση γραμμής εντολών, φορτιστές που λειτουργούν ως plug-in για το κέλυφος σας, παγκόσμια ψευδώνυμα που σας επιτρέπουν να κάνετε ονόματα αρχείων ψευδώνυμων ή οτιδήποτε άλλο στη γραμμή εντολών αντί για εντολές και περισσότερη υποστήριξη. Είναι σαν bash, αλλά με πολλά πρόσθετα χαρακτηριστικά, πρόσθετα χαρακτηριστικά και ρυθμιζόμενες επιλογές που μπορεί να εκτιμήσετε αν περνάτε πολύ χρόνο στη γραμμή εντολών.

    Αν είστε εξοικειωμένοι με το bash, μπορείτε να μεταβείτε στο zsh χωρίς να μάθετε διαφορετική σύνταξη - θα αποκτήσετε μόνο πρόσθετα χαρακτηριστικά. αν είστε εξοικειωμένοι με το zsh, μπορείτε να μεταβείτε σε bash χωρίς να μάθετε μια διαφορετική σύνταξη - απλά δεν θα έχετε πρόσβαση σε αυτά τα χαρακτηριστικά.

    Το "Oh My ZSH" είναι ένα εργαλείο που σας βοηθά να ενεργοποιήσετε ευκολότερα τις προσθήκες zsh και να εναλλάσσετε μεταξύ των θεμάτων premade, προσαρμόζοντας γρήγορα το κέλυφος zsh χωρίς να ξοδέψετε ώρες.

    Υπάρχουν και άλλα κοχύλια. Για παράδειγμα, το κέλυφος tcsh είναι ακόμα γύρω και εξακολουθεί να είναι μια επιλογή. Το FreeBSD χρησιμοποιεί το tsch ως το βασικό κέλυφος ρίζας και την τέφρα ως το προεπιλεγμένο διαδραστικό κέλυφος. Εάν χρησιμοποιείτε τον προγραμματισμό C τακτικά, το tsch μπορεί να είναι καλύτερο για εσάς. Ωστόσο, δεν είναι πουθενά όπως χρησιμοποιείται συνήθως ως bash ή zsh.

    Πώς να κάνετε εναλλαγή μεταξύ των κελυφών

    Είναι εύκολο να μεταβείτε σε ένα νέο κέλυφος για να το δοκιμάσετε. Απλά εγκαταστήστε το κέλυφος από τον διαχειριστή πακέτων της διανομής Linux και πληκτρολογήστε την εντολή για να ξεκινήσει το κέλυφος.

    Για παράδειγμα, ας πούμε ότι θέλετε να δοκιμάσετε το zsh στο Ubuntu. Θα πρέπει να εκτελέσετε τις παρακάτω εντολές για εγκατάσταση και στη συνέχεια να την εκκινήσετε:

    sudo apt εγκαταστήσετε zsh zsh

    Θα κάνατε τότε να κάθεστε σε ένα κέλυφος zsh. Πληκτρολογήστε " έξοδος "Στο κέλυφος για να το αφήσετε και να επιστρέψετε στο τρέχον κέλυφος σας.

    Αυτό είναι μόνο προσωρινό. Κάθε φορά που ανοίγετε ένα νέο παράθυρο τερματικού ή συνδέεστε στο σύστημά σας στη γραμμή εντολών, θα δείτε το προεπιλεγμένο κέλυφος. Για να αλλάξετε το κέλυφος που βλέπετε όταν συνδέεστε με το κέλυφος σύνδεσης, μπορείτε γενικά να χρησιμοποιήσετε το κέλυφος chsh , ή "Change Shell", εντολή.

    Για να χρησιμοποιήσετε αυτήν την εντολή, θα πρέπει πρώτα να βρείτε την πλήρη διαδρομή στο κέλυφος σας με την οποία εντολή. Για παράδειγμα, ας υποθέσουμε ότι θέλαμε να αλλάξουμε στο κέλυφος zsh. Θα εκτελέσαμε την ακόλουθη εντολή:

    που zsh

    Στο Ubuntu, αυτό μας λέει ότι το δυαδικό zsh αποθηκεύεται στο / usr / bin / zsh.

    Εκτελέστε την ακόλουθη εντολή, πληκτρολογήστε τον κωδικό πρόσβασής σας και θα σας ζητηθεί να επιλέξετε ένα νέο κέλυφος σύνδεσης:

    chsh

    Σύμφωνα με την παραπάνω εντολή, θα μπήκαμε / usr / bin / zsh . Το κέλυφος zsh θα είναι στη συνέχεια το προεπιλεγμένο μέχρι να τρέξουμε το chsh εντολή και να την αλλάξει.