Τερματικά, κονσόλες, κελύφη (shells) κι άλλα ακαταλαβίστικα



Το κέλυφος (shell) του linux, αλλά και του Unix γενικότερα είναι ένα είδος λογισμικού το οποίο μεταφράζει εντολές που δίνονται από το χρήστη. Το περιβάλλον του έχει γίνει συνώνυμο με τις έννοιες "τερματικό" ή "κονσόλα" και είναι αρκετά άχαρο για κάποιον που έχει συνηθίσει να δουλεύει με παράθυρα, εικονίδια, ποντίκι, εντυπωσιακά backgrounds ακόμα και τρισδιάστατα εφέ. Κρύβει όμως μέσα του μεγάλη δύναμη και μπορεί πολλές φορές να μας κάνει τη ζωή πολύ πιο εύκολη. Ο "γνωστός κόσμος" του Matrix έχει τις ομορφιές του, αλλά και τα προβλήματα του. Πόσο εύκολα όμως μπορεί κάποιος ν'αλλάξει κάτι εκεί και πόσο εύκολα πατώντας μερικές εντολές στον υπολογιστή με την μαύρη οθόνη και την πράσινη ακολουθία χαρακτήρων να τρέχει ακατάπαυστα ;

Είδη Shell
Όπως οι άνθρωποι της γης γνωρίζουν διαφορετικές γλώσσες, έτσι και ένα σύστημα Linux προσφέρει πολλά διαφορετικά είδη shells:

  • sh ή Bourne Shell. Το πρωτότυπο shell που χρησιμοποιείται ακόμα σε συστήματα Unix. Είναι το βασικό shell, ένα μικρό πρόγραμμα με λίγες δυνατότητες. Είναι διαθέσιμο σε κάθε σύστημα Linux για συμβατότητα με προγράμματα Unix.

  • bash ή Bourne Again Shell. Το καθιερωμένο shell του GNU (Linux). Αυτό συστήνεται για τον αρχάριο χρήστη αλλά αποτελεί και πανίσχυρο εργαλείο γι' αυτούς που παίζουν τα συστήματα στα δάκτυλα. Στο Linux το bash είναι το προεπιλεγμένο κέλυφος για τους ποιο πολλούς χρήστες. Είναι ένα υπερσύνολο του "sh". Αυτό σημαίνει ότι το Bourne Again Shell είναι συμβατό με το Bourne. Εντολές του sh τρέχουν στο bash. Το αντίθετο δεν ισχύει.

  • csh ή C Shell. Η σύνταξη αυτού του shell είναι παρόμοια με τη γλώσσα προγραμματισμού C.

  • tcsh ή Turbo C Shell. Είναι ένα υπερσύνολο του κοινού C Shell με περισσότερη φιλικότητα προς το χρήστη και ταχύτητα.

  • ksh ή Korn Shell. Αυτό βρίσκει πολλές φορές απήχηση σε χρήστες του Unix. Είναι υπερσύνολο του Bourne Shell και εφιάλτης για τους αρχάριους χρήστες.

Εμείς θ' ασχοληθούμε μόνο με το bash που είναι και το προεπιλεγμένο σ' ένα σύστημα linux.
Ας δούμε όμως πληροφοριακά τί άλλα κελύφη έχουμε διαθέσιμα. Αυτή η πληροφορία βρίσκεται στο αρχείο /etc/shells. Οπότε δίνοντας την κατωτέρω εντολή σε μια κονσόλα:

$ cat /etc/shells

θα πάρουμε μια απάντηση σαν αυτή:


/etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/usr/bin/screen
/bin/bash
/bin/rbash

Το προεπιλεγμένο shell για κάθε χρήστη βρίσκεται στο αρχείο /etc/passwd. Οπότε μπορούμε να το δούμε δίνοντας την εντολή:


$ cat /etc/passwd


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

luckyb:x:1000:1000:luckyb,,,:/home/luckyb:/bin/bash

Εδώ επιβεβαιώνουμε ότι το προεπιλεγμένο κέλυφος του linux για τον χρήστη luckyb είναι το bash.

Αυτά τα ολίγα ως εισαγωγικά. Ελπίζω να μη σας κούρασα.
Θα επανέλθω με ποιο πρακτικά κι ενδιαφέροντα θέματα

Το κείμενο είναι εμπνευσμένο από εδώ


Πίνακας περιεχομένων
Επόμενο (Το πρώτο μου scriptάκι)