Πώς να αλλάξετε το προεπιλεγμένο κέλυφος στο Linux με το chsh

Το Bash δεν είναι το μόνο κέλυφος Linux. Είναι εύκολο να δοκιμάσετε άλλα κελύφη, όπως το Zsh, το οποίο είναι πολύ δημοφιλές. Όταν βρείτε ένα που σας αρέσει, χρησιμοποιήστε την εντολή chsh για να το ορίσετε ως προεπιλεγμένο κέλυφος. Θα σας δείξουμε πώς.

Γιατί είναι σημαντικό ένα κέλυφος

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

Υπάρχουν πολλά διαφορετικά κελύφη διαθέσιμα στο Linux. Όλα σας επιτρέπουν να εκτελείτε τις ίδιες βασικές εργασίες: εξερευνήστε το σύστημα αρχείων, εργαστείτε με αρχεία, εκκινήστε προγράμματα και εκτελέστε σενάρια. Ωστόσο, ο καθένας εκτελεί αυτές τις εργασίες με τον δικό του τρόπο και έχει τα δικά του ιδιαίτερα χαρακτηριστικά και ιδιοσυγκρασίες.

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

Στις περισσότερες διανομές Linux, συμπεριλαμβανομένου του Ubuntu, το προεπιλεγμένο κέλυφος είναι bash. Κάνει εξαιρετική δουλειά και είναι πολύ ικανό. Ωστόσο, ένα άλλο κέλυφος μπορεί να προσφέρει μια διαφορά εξοικονόμησης χρόνου που θα είχε μεγάλο αντίκτυπο στη ροή εργασίας σας. Ποτέ δεν θα μάθετε αν δεν κοιτάξετε!

Ένας κουβάς με κοχύλια

Έχουμε καλύψει τα διάφορα κελύφη Linux στο παρελθόν, αλλά εδώ είναι μια γρήγορη εισαγωγή στα πιο κοινά:

bash: Το Οριο πάλι κέλυφος είναι η προεπιλεγμένη σε πολλές διανομές.
rbash: Αυτό Περιορισμένος Το bash shell παρέχει ελάχιστη λειτουργικότητα στο άτομο ή το σενάριο που εκτελείται σε αυτό.
τέφρα: Η Κοχύλι Almquist είναι μια πιο ελαφριά εκδοχή του bash.
παύλα: Το Debian Alquist Shell είναι το προεπιλεγμένο σενάριο φλοιού στο Ubuntu. Ενώ το bash είναι το προεπιλεγμένο στοιχείο σύνδεσης και το διαδραστικό κέλυφος, το dash χρησιμοποιείται για την εκτέλεση διεργασιών του συστήματος επειδή είναι πολύ πιο ελαφρύ από το bash.
zsh: Το κέλυφος Z είναι μια σύγχρονη εκδοχή της οικογένειας των κοχυλιών bash. Προσφέρει καθαρές βελτιώσεις, όπως ορθογραφικούς ελέγχους εντολών και προτεινόμενες διορθώσεις.
ψάρι: Αυτό φιλικό διαδραστικό κέλυφος γράφτηκε από την αρχή και δεν προέρχεται από καμία από τις άλλες οικογένειες κελύφους. Προορίζεται να είναι φιλικό προς τον χρήστη. Μεταξύ των πολλών άλλων προνομίων του, το fish προσφέρει προτάσεις για εντολές με βάση το ιστορικό σας και τα περιεχόμενα του τρέχοντος φακέλου, παρόμοια με προγνωστικό κείμενο.
ksh: Το KornShell παρέχει μια ιδιαίτερα ισχυρή γλώσσα σεναρίου.

  Πώς να εγκαταστήσετε τα πιο πρόσφατα προγράμματα οδήγησης AMDGPU-PRO σε Linux

Καταχωρίστε τα εγκατεστημένα κελύφη

Για να δείτε ποια κελύφη είναι εγκατεστημένα στον υπολογιστή σας, χρησιμοποιήστε αυτήν την εντολή. Απλώς παραθέτει τα περιεχόμενα του αρχείου /etc/shells:

cat /etc/shells

Αναφέραμε το bash, το dash και το rbash, αλλά τι είναι το sh;

sh είναι το Τόμσον κέλυφος, γραμμένο πολύ πίσω το 1971 από Κεν Τόμσον του Bell Labs φήμη. Δεν συντηρείται πλέον και έχει αντικατασταθεί εδώ και πολύ καιρό από τα σύγχρονα κοχύλια. Περιλαμβάνεται καθαρά για τη διατήρηση της συμβατότητας με παλαιότερα σενάρια που εξακολουθούν να έχουν ως πρώτη γραμμή τα εξής:

#!/bin/sh

Αυτό δίνει εντολή στο σύστημα να χρησιμοποιήσει το κέλυφος sh για να εκτελέσει το σενάριο. Έχετε πραγματικά αυτό το αρχαίο κέλυφος στον υπολογιστή σας και χρησιμοποιείται για την εκτέλεση των σεναρίων σας; Η εντολή ποια θα μας πει ποιο πρόγραμμα εκτελείται πραγματικά όταν πληκτρολογείτε μια εντολή.

Ας δούμε τι εκτελείται όταν πληκτρολογείτε sh:

which sh

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

ls -l /bin/sh

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

  Πώς να χρησιμοποιήσετε το Virt-Manager σε Linux

Εγκατάσταση άλλου κελύφους

Ας εγκαταστήσουμε το κέλυφος ψαριού και ας το ορίσουμε ως προεπιλογή για το dave. Στο Ubuntu, πληκτρολογούμε την ακόλουθη εντολή:

sudo apt-get install fish

Στο Manjaro, χρησιμοποιήστε το pacman:

sudo pacman -Sy fish

Στο Fedora, πληκτρολογήστε τα εξής:

sudo dnf install fish

Όταν ολοκληρωθεί η εγκατάσταση, μπορείτε να ελέγξετε ξανά τα εγκατεστημένα κελύφη:

cat /etc/shells

Το νέο μας κέλυφος εμφανίζεται ως /usr/bin/fish. Λάβετε υπόψη αυτό το μονοπάτι – θα το χρειαστείτε σύντομα.

Η μεταβλητή περιβάλλοντος $SHELL

Η μεταβλητή περιβάλλοντος $SHELL περιέχει το όνομα του τρέχοντος κελύφους σας. Μπορούμε να ελέγξουμε σε ποια έχει ρυθμιστεί με ηχώ:

echo $SHELL

Ας ξεκινήσουμε το κέλυφος ψαριού:

fish

Τώρα, ας ελέγξουμε ξανά τι λέει η μεταβλητή περιβάλλοντος $SHELL:

echo $SHELL

Την πρώτη φορά που χρησιμοποιούμε το echo $SHELL, είμαστε στο bash shell. Η μεταβλητή περιβάλλοντος κρατά τη διαδρομή προς το εκτελέσιμο bash, /bin/bash.

Όταν εκκινούμε το κέλυφος ψαριού, λαμβάνουμε ένα φιλικό μήνυμα καλωσορίσματος και η γραμμή εντολών αλλάζει. Αυτό που μπορεί να προκαλεί έκπληξη είναι ότι το περιβάλλον $SHELL εξακολουθεί να διατηρεί τη διαδρομή προς το εκτελέσιμο bash, /bin/bash. Δεν πειράζει – αυτό είναι φυσιολογικό.

Όταν εκκινείτε ένα νέο κέλυφος (ή οποιοδήποτε άλλο πρόγραμμα), αυτό κληρονομεί το περιβάλλον του γονικού κελύφους. Έτσι, το κέλυφος ψαριού κληρονομεί τις παγκόσμιες και εξαγόμενες μεταβλητές περιβάλλοντος από το κέλυφος bash. Επειδή η τιμή στη μεταβλητή περιβάλλοντος $SHELL δεν έχει αλλάξει, έχει την ίδια τιμή στο κέλυφος ψαριού που είχε στο κέλυφος bash.

Τρέχουμε ψάρια όπως κάθε άλλο πρόγραμμα. Μπορούμε επίσης να χρησιμοποιήσουμε την έξοδο για έξοδο από το κέλυφος του ψαριού. Κλείνει όπως κάθε άλλο πρόγραμμα και επιστρέφουμε στο bash shell.

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

  Πώς να ακούσετε το Spotify χωρίς τον επίσημο πελάτη στο Linux

Εάν αποφασίσετε να κάνετε το ψάρι —ή οποιοδήποτε άλλο κέλυφος— ως προεπιλογή σας, θα χρειαστεί να χρησιμοποιήσετε την εντολή chsh.

Η εντολή chsh

Η εντολή chsh σάς επιτρέπει να αλλάξετε το προεπιλεγμένο κέλυφος. Το κόλπο είναι να γνωρίζετε ότι σας επιτρέπει να αλλάξετε τόσο τα προεπιλεγμένα στοιχεία σύνδεσης όσο και τα προεπιλεγμένα διαδραστικά κελύφη. Μπορεί να θέλετε να αλλάξετε το ένα ή το άλλο, ή και τα δύο.

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

Για να ορίσετε το κέλυφος σύνδεσής σας, χρησιμοποιήστε το chsh χωρίς παραμέτρους:

chsh

Σας ζητείται ο κωδικός πρόσβασής σας. Στη συνέχεια, πρέπει να πληκτρολογήσετε τη διαδρομή προς το νέο κέλυφος και να πατήσετε Enter.

Εάν κάνουμε μια απομακρυσμένη σύνδεση με αυτόν τον δοκιμαστικό υπολογιστή από άλλον, θα βρεθούμε στο κέλυφος του ψαριού μόλις συνδεθούμε.

Για να αλλάξετε το διαδραστικό σας κέλυφος χρησιμοποιήστε το chsh με την επιλογή -s (shell). Περάστε τη διαδρομή προς το νέο κέλυφος στη γραμμή εντολών:

chsh -s /usr/bin/fish

Σας ζητείται ο κωδικός πρόσβασής σας και επιστρέφετε στη γραμμή εντολών του τρέχοντος κελύφους σας. Πρέπει να αποσυνδεθείτε και να συνδεθείτε ξανά για να τεθεί σε ισχύ η αλλαγή. Όταν το κάνετε, θα δείτε τον χαιρετισμό και τη γραμμή εντολών του κελύφους ψαριού.

Η μεταβλητή περιβάλλοντος $SHELL κρατά τώρα τη διαδρομή προς το νέο προεπιλεγμένο κέλυφος:

echo $SHELL

Αλλαγή του κελύφους ενός άλλου λογαριασμού χρήστη

Εάν έχετε δικαιώματα root και μπορείτε να χρησιμοποιήσετε το sudo, μπορείτε να αλλάξετε τα κελύφη άλλων λογαριασμών χρηστών. Η εντολή είναι ίδια με πριν, με την προσθήκη του ονόματος χρήστη αυτού του ατόμου στη γραμμή εντολών:

sudo chsh -s /usr/bin/fish mary

Όταν η Mary συνδεθεί, θα δει το νέο κέλυφος όταν ανοίξει ένα παράθυρο τερματικού.

Κάθε