Λίστα μεταβλητών περιβάλλοντος σε Linux/Unix

⚡ Έξυπνη Σύνοψη

Οι μεταβλητές περιβάλλοντος στο Linux και το Unix είναι δυναμικές ονομαστικές τιμές που διαμορφώνουν τον τρόπο με τον οποίο συμπεριφέρονται τα προγράμματα και το κέλυφος, αποθηκεύοντας ρυθμίσεις όπως η ΔΙΑΔΡΟΜΗ, ο αρχικός κατάλογος, ο προεπιλεγμένος επεξεργαστής, η γλώσσα και το κέλυφος που χρησιμοποιείται αυτήν τη στιγμή.

  • 🌱 Τί είναι: Οι μεταβλητές περιβάλλοντος περιέχουν δυναμικές τιμές που επηρεάζουν τις διεργασίες και μπορούν να δημιουργηθούν, να επεξεργαστούν και να διαγραφούν.
  • 🧭 ΜΟΝΟΠΑΤΙ: Η μεταβλητή PATH παραθέτει τους καταλόγους στους οποίους αναζητά το κέλυφος για να βρει και να εκτελέσει εκτελέσιμες εντολές.
  • 🔎 Τιμές ανάγνωσης: Η εντολή echo εμφανίζει μία μεταβλητή, ενώ οι εντολές env και printenv εμφανίζουν όλες τις μεταβλητές περιβάλλοντος.
  • 🆕 Δημιουργία: Αντιστοιχίστε μια τιμή με NAME=value και, στη συνέχεια, χρησιμοποιήστε την εξαγωγή για να την κάνετε διαθέσιμη σε θυγατρικές διεργασίες.
  • 🗑️ Διαγραφή: Η εντολή unset αφαιρεί μια μεταβλητή και την τιμή της από την τρέχουσα συνεδρία κελύφους.
  • 💾 Επιμονή: Προσθέστε γραμμές εξαγωγής στο ~/.bashrc ή στο /etc/environment για να διατηρήσετε μεταβλητές σε όλες τις συνεδρίες.
  • 🤖 Βοήθεια με την Τεχνητή Νοημοσύνη: Οι βοηθοί τεχνητής νοημοσύνης και ο GitHub Copilot μπορούν να ελέγχουν μεταβλητές και να δημιουργούν σενάρια κελύφους που τις χρησιμοποιούν.

Λίστα κοινών μεταβλητών περιβάλλοντος σε Linux και Unix

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

Τι είναι το Υπολογιστικό Περιβάλλον;

Το υπολογιστικό περιβάλλον είναι η πλατφόρμα (platform = το λειτουργικό σύστημα + επεξεργαστής) όπου ένας χρήστης μπορεί να εκτελεί προγράμματα.

Τι είναι μια Μεταβλητή;

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

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

Τι είναι οι μεταβλητές περιβάλλοντος;

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

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

Ας μελετήσουμε μερικές κοινές μεταβλητές περιβάλλοντος:

Μεταβλητός Περιγραφή
PATH Αυτή η μεταβλητή περιέχει μια λίστα καταλόγων, διαχωρισμένων με άνω και κάτω τελεία (:), στους οποίους το σύστημά σας αναζητά εκτελέσιμα αρχεία. Όταν εισάγετε μια εντολή στο τερματικό, το κέλυφος αναζητά την εντολή στους καταλόγους που αναφέρονται στη μεταβλητή $PATH. Εάν βρεθεί η εντολή, εκτελείται. Διαφορετικά, επιστρέφει το σφάλμα 'command not found'.
ΜΕΤΑΧΕΙΡΙΖΌΜΕΝΟΣ Το όνομα χρήστη
ΑΡΧΙΚΗ Προεπιλεγμένη διαδρομή προς τον αρχικό κατάλογο του χρήστη
EDITOR Διαδρομή προς το πρόγραμμα που επεξεργάζεται το περιεχόμενο των αρχείων
UID Μοναδικό αναγνωριστικό χρήστη
TERM Προεπιλεγμένος εξομοιωτής τερματικού
SHELL Το κέλυφος χρησιμοποιείται από τον χρήστη

Πρόσβαση σε τιμές μεταβλητών

Για να προσδιορίσετε την τιμή μιας μεταβλητής, χρησιμοποιήστε την εντολή echo:

echo $VARIABLE

Για παράδειγμα, το παρακάτω στιγμιότυπο οθόνης δείχνει την τιμή της μεταβλητής PATH που εμφανίζεται με την εντολή echo.

Εμφάνιση της τιμής της μεταβλητής PATH με την εντολή echo

Οποιαδήποτε μεταβλητή περιβάλλοντος μπορεί να διαβαστεί με τον ίδιο τρόπο. Η παρακάτω έξοδος δείχνει την echo να επιστρέφει την τιμή μιας μεταβλητής.

Έξοδος της εντολής echo που εμφανίζει μια τιμή μεταβλητής περιβάλλοντος

Οι μεταβλητές κάνουν διάκριση πεζών-κεφαλαίων, επομένως βεβαιωθείτε ότι πληκτρολογείτε το όνομα της μεταβλητής με τη σωστή γραφή, διαφορετικά ενδέχεται να μην λάβετε το επιθυμητό αποτέλεσμα. Για να εμφανίσετε όλες τις μεταβλητές περιβάλλοντος ταυτόχρονα, χρησιμοποιήστε την εντολή env, όπως φαίνεται παρακάτω.

Η εντολή env που παραθέτει όλες τις μεταβλητές περιβάλλοντος στο τερματικό

Ορίστε μεταβλητές νέου περιβάλλοντος

Μπορείτε να δημιουργήσετε τη δική σας μεταβλητή που ορίζεται από τον χρήστη με αυτήν τη σύνταξη:

VARIABLE_NAME=variable_value

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

export VARIABLE_NAME=value

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

Δημιουργία και εμφάνιση μιας νέας μεταβλητής περιβάλλοντος που ορίζεται από τον χρήστη

Διαγραφή μεταβλητών

Η ακόλουθη σύνταξη αφαιρεί μια μεταβλητή από το σύστημα:

unset variablename

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

Αφαίρεση μιας μεταβλητής περιβάλλοντος με την εντολή unset

Συχνές Ερωτήσεις

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

Οι μεταβλητές που έχουν οριστεί στο τερματικό εξαφανίζονται όταν κλείνετε την περίοδο λειτουργίας. Για να τις διατηρήσετε, προσθέστε τη γραμμή εξαγωγής σε ένα αρχείο εκκίνησης: ~/.bashrc ή ~/.profile για έναν μόνο χρήστη ή /etc/environment για κάθε χρήστη στο σύστημα. Επαναφορτώστε το αρχείο ή ανοίξτε ξανά το τερματικό για να το εφαρμόσετε.

Προσθέστε τον νέο κατάλογο στην υπάρχουσα PATH, ώστε να μην την αντικαταστήσετε: export PATH=$PATH:/your/new/directory. Αυτό προσθέτει τον φάκελό σας στη λίστα που αναζητά το κέλυφος για εντολές. Τοποθετήστε την ίδια γραμμή στο ~/.bashrc για να επιβιώσει η αλλαγή σε νέες συνεδρίες.

Η εντολή printenv παραθέτει μόνο μεταβλητές περιβάλλοντος και μπορεί να εμφανίσει μία μόνο, όπως την printenv HOME. Η εντολή env παραθέτει επίσης μεταβλητές περιβάλλοντος και μπορεί να εκτελέσει ένα πρόγραμμα με τροποποιημένο περιβάλλον. Η εντολή set εμφανίζει τα πάντα, συμπεριλαμβανομένων των μεταβλητών και των συναρτήσεων κελύφους, όχι μόνο των εξαγόμενων.

Αυτό συνήθως σημαίνει ότι αντικαταστήσατε την PATH αντί να προσθέσετε σε αυτήν, επομένως το κέλυφος δεν μπορεί πλέον να βρει τυπικές εντολές. Να συμπεριλαμβάνετε πάντα την $PATH κατά τον ορισμό της. Για να ανακτήσετε την εντολή στην τρέχουσα συνεδρία, εκτελέστε την εντολή export PATH=/usr/local/bin:/usr/bin:/bin και, στη συνέχεια, διορθώστε το αρχείο εκκίνησης.

Είναι βολικό αλλά και επικίνδυνο. Οι μεταβλητές περιβάλλοντος μπορούν να διαβαστούν από το /proc, κληρονομούνται από θυγατρικές διεργασίες και συχνά διαρρέουν σε αρχεία καταγραφής ή αναφορές σφαλμάτων. Για ευαίσθητα μυστικά, προτιμήστε έναν αποκλειστικό διαχειριστή μυστικών ή ένα κρυπτογραφημένο αρχείο με περιορισμένα δικαιώματα αντί για μια απλή μεταβλητή.

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

Ναί. GitHub Copilot μπορεί να δημιουργήσει εντολές εξαγωγής, επεξεργασίες ~/.bashrc και σενάρια κελύφους που διαβάζουν μεταβλητές όπως $HOME ή $PATH. Προτείνει τη σύνταξη καθώς πληκτρολογείτε, αν και θα πρέπει να ελέγξετε οποιονδήποτε κώδικα χειρίζεται διαπιστευτήρια πριν το εκτελέσετε.

Συνοψίστε αυτήν την ανάρτηση με: