Το source είναι μια εύχρηστη ενσωματωμένη εντολή φλοιού που δέχεται ορίσματα, αναλύει εντολές σε ένα σενάριο και τις εκτελεί στο περιβάλλον του φλοιού. Το περιεχόμενο του αρχείου διαβάζεται από την πηγή και στη συνέχεια μεταβιβάζεται στον διερμηνέα Tool Command Language (TCL), ο οποίος εκτελεί τις εντολές.

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

Χρησιμοποιήστε την πηγή για την εκτέλεση εντολών σε ένα αρχείο

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

αφήδοκιμή.κείμενο
viδοκιμή.κείμενο

# Γράψτε τις εντολές στο αρχείο κειμένου:
ηχώ "Γειά σου!"
pwd
ls

# Προέλευση του αρχείου είτε με πηγή είτε με τη σύνταξη κουκκίδων
. δοκιμή.κείμενο
πηγήκείμενο.κείμενο

Γράψτε το αρχείο κειμένου και προχωρήστε στη μεταβίβασή του ως όρισμα στην εντολή προέλευσης. Το σύστημα θα εκτελέσει τις εντολές στο αρχείο και θα επιστρέψει μια έξοδο.

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

Χρησιμοποιήστε την εντολή πηγής για να ενημερώσετε το περιβάλλον του κελύφους Bash

Στο Linux, οι μεταβλητές περιβάλλοντος κληρονομούνται αλλά είναι αμετάβλητες. Εάν εκτελέσετε ένα σενάριο κελύφους Bash που τροποποιεί μια μεταβλητή περιβάλλοντος $TEST, το σενάριο θα δημιουργήσει ένα νέο, διχαλωτή διαδικασία κελύφους και η τροποποίηση του $TEST θα πραγματοποιηθεί εντός αυτού αντί του αρχικού Bash περιβάλλον.

Η θυγατρική διαδικασία δεν θα μπορεί να τροποποιήσει το περιβάλλον της γονικής διαδικασίας. Μπορεί να τροποποιήσει μόνο το δικό του περιβάλλον. Ας το καταλάβουμε αυτό με ένα πρακτικό παράδειγμα:

εξαγωγή TEST="deb"
vi παράδειγμα

# Πληκτρολογήστε αυτές τις εντολές στο αρχείο
εξαγωγή TEST="κρεβάτι"
ηχώ $TEST

# Καταγράψτε το αρχείο, κάντε το εκτελέσιμο και, στη συνέχεια, εκτελέστε το
chmod +x παράδειγμα
./παράδειγμα # αυτό θα επιστρέψει "κρεβάτι"
ηχώ $TEST # αυτό θα επιστρέψει "deb"

Εδώ μπαίνει στο παιχνίδι η εντολή source. Με την εντολή source, μπορείτε να εκτελέσετε ένα σενάριο στο ίδιο περιβάλλον φλοιού, το οποίο διαφορετικά θα είχε διακλαδωθεί. Έτσι, εάν δημιουργήσετε ένα σενάριο που τροποποιεί τις μεταβλητές περιβάλλοντος, θα κάνει τις αλλαγές για το περιβάλλον του κελύφους Bash.

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

# Δημιουργήστε ένα νέο αρχείο και επεξεργαστείτε το
vi δοκιμή αρχείο
. test_file
ηχώ $TEST # Αυτό θα επιστρέψει "κρεβάτι"

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

Αυτά είναι όλα τα βήματα που χρειάζεστε για να ενημερώσετε το περιβάλλον του κελύφους Bash με την εντολή πηγής.

Διαφορά μεταξύ των εντολών του Linux bash και του source

Η διαφορά μεταξύ του Linux bash και των εντολών πηγής είναι ότι όταν εκτελείτε ένα σενάριο με την εντολή bash, αυτό λέει στο Linux πυρήνα για να δημιουργήσετε μια νέα διεργασία Bash για να διαβάσετε και να εκτελέσετε το σενάριο, να αντιγράψετε την έξοδο στην αρχική διεργασία φλοιού και να την εμφανίσετε.

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

Αντιμετώπιση προβλημάτων προέλευσης Σφάλματα εντολών

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

1. Αλλάξτε το κέλυφος

Ορισμένα κελύφη δεν υποστηρίζουν την εντολή πηγής. Σε αυτήν την περίπτωση, θα χρειαστεί να αλλάξετε το περιβάλλον του κελύφους σας με το chsh -s ($which shell_name) εντολή.

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

2. Χρησιμοποιήστε τη Σύνταξη Τελειών/Περιόδου

Ορισμένα περιβάλλοντα κελύφους δεν υποστηρίζουν "πηγή"σύνταξη αλλά η εναλλακτική"."σύνταξη. Η σύνταξη "πηγή" είναι συνώνυμο της τελείας στο Bash. Αλλά αυτό δεν λειτουργεί στο κέλυφος POSIX, επομένως για μέγιστη συμβατότητα, χρησιμοποιήστε τη σύνταξη περιόδου.

Βασικές εντολές Linux που πρέπει να γνωρίζετε

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

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