Ίσως έχετε ακούσει για το Bash—το προεπιλεγμένο κέλυφος στις περισσότερες διανομές Linux. Υπάρχει ένα άλλο κέλυφος που είναι προεγκατεστημένο στο Linux: το κέλυφος Bourne.
Το κέλυφος Bourne είναι ένα από τα παλαιότερα κελύφη που χρησιμοποιείται ακόμα σε σύγχρονα συστήματα Linux, παρόλο που δεν χρησιμοποιείται τόσο ευρέως όσο το Bash. Εδώ είναι τι πρέπει να γνωρίζετε για το κέλυφος Bourne στο Linux.
Τι είναι το Bourne Shell;
Το κέλυφος Bourne, που συχνά συντομεύεται σε "sh", πήρε το όνομά του από τον Βρετανό επιστήμονα υπολογιστών Stephen R. Bourne, ο οποίος το ανέπτυξε ενώ εργαζόταν στα Bell Labs το 1978. Το κέλυφος αντικατέστησε το προηγούμενο Thompson Shell, γραμμένο από έναν από τους αρχικούς δημιουργούς του Unix, τον Ken Thompson.
Το κέλυφος Bourne έκανε το ντεμπούτο του με την έκδοση 7 Unix το 1979. Είχε χαρακτηριστικά όπως έλεγχος ροής, μεταβλητές και βελτιωμένο χειρισμό συμβολοσειρών. Αυτά τα χαρακτηριστικά διευκόλυναν τη χρήση του κελύφους ως γλώσσα προγραμματισμού και όχι απλώς ως τρόπο κλήσης άλλων προγραμμάτων.
Ενώ το κέλυφος Bourne παρέμεινε δημοφιλές για τη σύνταξη φορητών σεναρίων σε συστήματα Unix, ήταν αντικαταστάθηκε για διαδραστική χρήση από το κέλυφος C, KornShell, Bourne Again, επίσης γνωστό ως Bash και Z κέλυφος. Αυτά τα κοχύλια πρόσφεραν χαρακτηριστικά όπως ιστορικό εντολών και επεξεργασία γραμμής εντολών που έκανε τη ζωή πιο εύκολη για τους χρήστες και τους διαχειριστές.
Το φλοιό KornShell, Bash και Z (που καλύπτεται αργότερα) έχουν συντακτικές επιρροές από το κέλυφος Bourne.
Πιο ισχυρές γλώσσες δέσμης ενεργειών πολλαπλών πλατφορμών με ακόμη πιο προηγμένες δυνατότητες όπως η Perl και η Python αντικατέστησαν επίσης σε μεγάλο βαθμό τη δέσμη ενεργειών φλοιού.
Ωστόσο, το κέλυφος Bourne είναι ευρέως κατανοητό και πολλά σενάρια που παρέχονται με προγράμματα Linux χρησιμοποιούν τη σύνταξή του για διάφορες εργασίες.
Η συμπεριφορά του κελύφους Bourne κωδικοποιήθηκε σε το πρότυπο POSIX, τόσα πολλά σύγχρονα συστήματα τύπου Unix το εφαρμόζουν με κάποιο τρόπο χρησιμοποιώντας ένα συμβατό κέλυφος.
Σύγχρονες εναλλακτικές λύσεις Bourne Shell
Υπάρχουν πολλές σύγχρονες εναλλακτικές λύσεις ανοιχτού κώδικα στο αρχικό κέλυφος Bourne σε συστήματα Linux. Εδώ είναι μερικά από τα πιο γνωστά:
1. Bourne Again Shell (Bash)
Το όνομα Κοχύλι Bourne Again (Bash) είναι ένα παιχνίδι στο κέλυφος του Bourne. Αυτό το κέλυφος αναπτύχθηκε αρχικά ως στοιχείο του συστήματος GNU, πριν από το Linux για αρκετά χρόνια.
Είναι σε μεγάλο βαθμό συμβατό με σενάρια που γράφτηκαν αρχικά για το κέλυφος Bourne. Επίσης, ενσωμάτωσε χαρακτηριστικά όπως η επεξεργασία γραμμής εντολών που πρωτοστάτησε η KornShell.
Το Bash είναι το προεπιλεγμένο κέλυφος σε πολλές διανομές Linux και ως εκ τούτου έχει γίνει ένα de facto πρότυπο από μόνο του.
2. KornShell
KornShell, γνωστό και ως ksh, αναπτύχθηκε αρχικά από τον David Korn, επίσης στα Bell Labs, τη δεκαετία του 1980. Χτισμένο πάνω στο κέλυφος Bourne, το KornShell εισήγαγε ορισμένες πρόσθετες δυνατότητες, όπως έλεγχο εργασιών, πίνακες και επεξεργασία γραμμής εντολών. Το τελευταίο ήταν ένα επαναστατικό χαρακτηριστικό όταν πρωτοεμφανίστηκε γιατί ήταν πολύ πιο εύκολο από τη χρήση του μηχανισμού ιστορίας του κελύφους C.
Εάν χρειαζόταν να επεξεργαστείτε ξανά μια εντολή που είχε εκδοθεί στο παρελθόν, θα μπορούσατε να χρησιμοποιήσετε εντολές παρόμοιες με το Vi ή το Emacs για να το κάνετε.
Το KornShell ήταν προεπιλογή σε ορισμένα εμπορικά συστήματα Linux όπως το Oracle Solaris. Καθώς το αρχικό KornShell κυκλοφόρησε αρχικά από την AT&T με αποκλειστική άδεια, κυκλοφόρησε τελικά μια έκδοση ανοιχτού κώδικα με το όνομα pdksh.
3. Almquist/Debian Almquist Shell
Το κέλυφος Almquist γράφτηκε αρχικά από τον Kenneth Almquist και προοριζόταν ως ελαφρύ αντικατάσταση του κελύφους Bourne. Πολλά συστήματα BSD το περιλαμβάνουν ως την υλοποίηση του sh.
Μια έκδοση μεταφέρθηκε στο Debian τη δεκαετία του 1990 και είναι γνωστή ως κέλυφος Debian Almquist. Όπως υποδηλώνει το όνομα, είναι η υλοποίηση του sh σε συστήματα Debian και Ubuntu.
4. Z Shell
Ζ κέλυφος, ή zsh, είναι ένα από τα νεότερα κελύφη, που αναπτύχθηκε αρχικά το 1990 από τον Paul Falsted. Το Z shell έχει γίνει πολύ γνωστό για τα προηγμένα χαρακτηριστικά του. Ένα καλό παράδειγμα είναι η αναδρομική σφαιροποίηση ή η δυνατότητα αντιστοίχισης χαρακτήρων μπαλαντέρ σε υποκαταλόγους.
Το Z shell είναι το προεπιλεγμένο κέλυφος σύνδεσης για macOS και Kali Linux.
Συμβατότητα Bourne Shell
Ενώ αυτά τα κελύφη είναι σε μεγάλο βαθμό συμβατά με σενάρια που γράφτηκαν αρχικά για το κέλυφος Bourne, υπάρχουν τρόποι να αλλάξετε τη συμπεριφορά τους ώστε να μοιάζει περισσότερο με το αρχικό κέλυφος.
Ο κύριος τρόπος για να γίνει αυτό είναι μέσω ένας συμβολικός σύνδεσμος. Τα περισσότερα συστήματα θα συμπλέκονται /bin/sh είτε στο Bash είτε σε άλλο κέλυφος. Όταν καλείται με αυτόν τον τρόπο, το κέλυφος θα εισέλθει σε λειτουργία συμβατότητας με το κέλυφος Bourne.
Μπορείτε να δείτε ποιο κέλυφος /bin/sh συνδέεται με με την εντολή ls:
ls -l /bin/sh
Τώρα ξέρετε για το κέλυφος Bourne
Το κέλυφος Bourne είναι ένα από τα παλαιότερα πρότυπα για τη δημιουργία σεναρίων σε συστήματα που μοιάζουν με Unix. Ακόμα κι αν έχει αντικατασταθεί από άλλα κελύφη, εξακολουθεί να είναι ζωτικής σημασίας για την εκτέλεση σεναρίων γραμμένων από άλλους.
Το Bash είναι ένα από τα καλύτερα παράγωγα Bourne για κωδικοποίηση, ιδιαίτερα για την προσέγγισή του στις μεταβλητές. Έχει μερικές μοναδικές μεταβλητές που μπορεί να σας κάνουν να θέλετε να το εξετάσετε για το επόμενο έργο σας.