Οι περισσότεροι χρήστες Linux συχνά αγνοούν την εσωτερική λειτουργία του λειτουργικού συστήματος. Μπορεί να εκτελείτε εντολές Linux στο κέλυφος για μεγάλο χρονικό διάστημα, αλλά έχετε αναρωτηθεί ποτέ τι συμβαίνει στα παρασκήνια όταν χτυπάτε Εισαγω?
Στο τέλος, θα έχετε μια σύντομη κατανόηση του τρόπου με τον οποίο το κέλυφος επεξεργάζεται την πληκτρολογημένη εντολή στο Linux.
Επεξεργασία της εντολής
Όταν εισάγετε μια εντολή, το πρώτο πράγμα που κάνει το κέλυφος είναι να σπάσει ολόκληρη την εντολή σε "μάρκες". Το κέλυφος θα αναζητήσει στη συνέχεια ένα όνομα προγράμματος που ανήκει στο πρώτο διακριτικό στη γραμμή εντολών.
Εάν δεν το βρείτε σε κανέναν από τους καταλόγους στη διαδρομή αναζήτησης που ορίζεται στο η μεταβλητή περιβάλλοντος $ PATH ή στον τοπικό κατάλογο με το .\ χειριστή, ή δεν είναι ένα ψευδώνυμο κελύφους ή κέλυφος, το κέλυφος θα δώσει ένα σφάλμα. Εάν βρει μια έγκυρη εντολή, το κέλυφος θα περάσει από κάθε ένα από τα άλλα διακριτικά και θα αποφασίσει εάν πρόκειται για μεταβλητή, παράμετρο κελύφους ή όρισμα στην εντολή.
Εάν το κέλυφος καθορίσει ότι είναι μια μεταβλητή ή μια παράμετρος όπως το ~ τελεστή για τον αρχικό κατάλογο, το κέλυφος θα τα επεκτείνει ή θα τα αντικαταστήσει με τις αρχικές τους τιμές στην εντολή.
Όταν το κέλυφος έχει επεκτείνει τυχόν παραμέτρους ή μεταβλητές, θα περάσει κατά μήκος της συμβολοσειράς εντολών στην εντολή, εκτελώντας το πρόγραμμα με τα ορίσματά του. Το κέλυφος δεν καθορίζει εάν κάποια ορίσματα είναι έγκυρα. Αυτή είναι η δουλειά της εντολής.
Εκτέλεση της εντολής
Όταν το κέλυφος εκκινεί μια άλλη εντολή, πώς επιστρέφει στην ίδια προτροπή που χρησιμοποιούσατε πριν; Το κέλυφος δημιουργεί ένα αντίγραφο του εαυτού του, μια διαδικασία που ονομάζεται διχάλα. Αυτό το αντίγραφο του κελύφους αντικαθίσταται με την εντολή, με όλα τα ορίσματα που επεξεργάστηκαν νωρίτερα. Αυτό είναι γνωστό ως "exec" και η συνδυασμένη διαδικασία είναι γνωστή ως "fork-and-exec".
Για παράδειγμα, όταν τρέχετε η εντολή ls, η διαδικασία του κελύφους θα διχαλωθεί μόνη της χρησιμοποιώντας το πιρούνι() μέθοδο και δημιουργήστε ένα άλλο παράδειγμα κελύφους. Από τις δύο διαδικασίες κελύφους που εκτελούνται στο σύστημα, το επιπλέον κέλυφος θα εκτελέσει ls χρησιμοποιώντας το exec () συνάρτηση, μετατρέποντας τον εαυτό του σε ένα παράδειγμα της εντολής ls.
Εν τω μεταξύ, το αρχικό κέλυφος περιμένει να ολοκληρωθεί η εντολή. Αυτός είναι ο λόγος για τον οποίο μπορείτε να χρησιμοποιήσετε τον έλεγχο εργασιών για να αναστείλετε εργασίες και να εκτελέσετε εργασίες στο παρασκήνιο στο κέλυφος.
Σχετίζεται με: Τι είναι μια διαδικασία στο Linux;
Αναφορά κατάστασης εξόδου
Οι εντολές Linux αναφέρουν εάν εκτελέστηκαν με επιτυχία ή όχι μέσω της κατάστασης εξόδου τους. Όπως υποδηλώνει το όνομα, τα προγράμματα αναφέρουν την κατάσταση εξόδου τους όταν τελειώσουν με την εκτέλεση. Το κάνουν αυτό μέσω του $? μεταβλητή περιβάλλοντος, η οποία περιέχει την κατάσταση εξόδου της τελευταίας εντολής εκτέλεσης.
Σύμφωνα με τη σύμβαση, μια κατάσταση εξόδου 0 δείχνει μια επιτυχημένη εκτέλεση, ενώ οτιδήποτε άλλο εκτός από το 0 συνήθως σημαίνει σφάλμα. Το κέλυφός σας μπορεί επίσης να υποδεικνύει μια κατάσταση μηδενικής εξόδου στη γραμμή εντολών, ανάλογα με τον τρόπο διαμόρφωσης της προτροπής σας.
Το παραπάνω στιγμιότυπο οθόνης είναι ένα παράδειγμα που δείχνει μια προσαρμοσμένη προτροπή Zsh που εμφανίζει μια κατάσταση εξόδου σφάλματος 127 λόγω μιας εντολής που δεν υπάρχει.
Τώρα ξέρετε πώς λειτουργούν οι εντολές Linux
Τώρα που γνωρίζετε πώς το κέλυφος Linux επεξεργάζεται μια εντολή, διενεργείται και εκτελείται, και πώς τα προγράμματα αναφέρουν την κατάσταση εξόδου τους, μπορείτε να χρησιμοποιήσετε τη γραμμή εντολών πιο αποτελεσματικά.
Διάφορα κελύφη Linux είναι διαθέσιμα στους χρήστες δωρεάν. Ενώ καθένα από αυτά εκτελεί πάνω κάτω την ίδια δουλειά, είναι διαφορετικά σε πολλές πτυχές. Μπορείτε να δοκιμάσετε να εγκαταστήσετε μερικά από τα κελύφη στο σύστημά σας και να αποφασίσετε μόνοι σας ποια σας ταιριάζει καλύτερα.
Αναζητάτε μια εναλλακτική λύση Linux bash shell; Ακολουθεί μια περιγραφή του ποιου κελύφους Linux είναι καλύτερο: tsch, fish, KornShell και Z Shell.
Διαβάστε Επόμενο
- Linux
- Εντολές Linux
- Linux Bash Shell

Ο Ντέιβιντ είναι ανεξάρτητος συγγραφέας με έδρα το Βορειοδυτικό Ειρηνικό, αλλά αρχικά κατάγεται από την περιοχή του Κόλπου. Beenταν λάτρης της τεχνολογίας από την παιδική του ηλικία. Τα ενδιαφέροντα του Ντέιβιντ περιλαμβάνουν ανάγνωση, παρακολούθηση ποιοτικών τηλεοπτικών εκπομπών και ταινιών, ρετρό παιχνίδια και συλλογή δίσκων.
Εγγραφείτε στο newsletter μας
Εγγραφείτε στο ενημερωτικό μας δελτίο για τεχνικές συμβουλές, κριτικές, δωρεάν ebooks και αποκλειστικές προσφορές!
Κάντε κλικ εδώ για εγγραφή