Android

Πώς να ορίσετε και να ορίσετε μεταβλητές περιβάλλοντος στο linux

How to Setup Multinode Hadoop 2 on CentOS/RHEL Using VirtualBox

How to Setup Multinode Hadoop 2 on CentOS/RHEL Using VirtualBox

Πίνακας περιεχομένων:

Anonim

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

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

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

Μεταβλητές περιβάλλοντος και μεταβλητές κελύφους

Οι μεταβλητές έχουν την ακόλουθη μορφή:

KEY=value KEY="Some other value" KEY=value1:value2

  • Τα ονόματα των μεταβλητών είναι διακριτικά πεζών-κεφαλαίων. Κατά σύμβαση, οι μεταβλητές περιβάλλοντος πρέπει να έχουν ονόματα UPPER CASE. Κατά την εκχώρηση πολλαπλών τιμών στη μεταβλητή, πρέπει να διαχωρίζονται από τον χαρακτήρα colon : character.There δεν υπάρχει χώρος γύρω από το σύμβολο equals = .

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

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

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

Υπάρχουν πολλές διαθέσιμες εντολές που σας επιτρέπουν να καταγράφετε και να ορίζετε μεταβλητές περιβάλλοντος στο Linux:

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

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

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

Για παράδειγμα, για να εμφανίσετε την τιμή της μεταβλητής περιβάλλοντος HOME που θα εκτελέσετε:

printenv HOME

Η έξοδος θα εκτυπώσει τη διαδρομή του χρήστη που είναι συνδεδεμένος αυτήν τη στιγμή:

/home/linuxize

Μπορείτε επίσης να περάσετε περισσότερα από ένα επιχειρήματα στην εντολή printenv :

printenv LANG PWD

en_US /home/linuxize

printenv

Η έξοδος θα φαίνεται κάπως έτσι:

LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35;… LESSCLOSE=/usr/bin/lesspipe %s %s LANG=en_US S_COLORS=auto XDG_SESSION_ID=5 USER=linuxize PWD=/home/linuxize HOME=/home/linuxize SSH_CLIENT=192.168.121.1 34422 22 XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop SSH_TTY=/dev/pts/0 MAIL=/var/mail/linuxize TERM=xterm-256color SHELL=/bin/bash SHLVL=1 LANGUAGE=en_US: LOGNAME=linuxize XDG_RUNTIME_DIR=/run/user/1000 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin LESSOPEN=| /usr/bin/lesspipe %s _=/usr/bin/printenv

Παρακάτω παρατίθενται ορισμένες από τις πιο κοινές μεταβλητές περιβάλλοντος:

  • USER - Ο τρέχων χρήστης που έχει συνδεθεί. HOME - Ο αρχικός κατάλογος του τρέχοντος χρήστη. EDITOR - Ο προεπιλεγμένος επεξεργαστής αρχείων που θα χρησιμοποιηθεί. Αυτός είναι ο επεξεργαστής που θα χρησιμοποιηθεί όταν πληκτρολογείτε την edit στο τερματικό σας. SHELL - Η διαδρομή του κελύφους του τρέχοντος χρήστη, όπως bash ή zsh. LOGNAME - Το όνομα του τρέχοντος χρήστη. PATH - Μια λίστα με τους καταλόγους που πρέπει να αναζητηθούν κατά την εκτέλεση εντολών. Όταν εκτελείτε μια εντολή, το σύστημα θα αναζητήσει τους καταλόγους με αυτή τη σειρά και θα χρησιμοποιήσει το πρώτο εκτελέσιμο αρχείο. LANG - Οι τρέχουσες ρυθμίσεις τοπικών ρυθμίσεων. TERM - Η τρέχουσα εξομοίωση τερματικού. MAIL - Τοποθεσία του αποθηκευμένου ταχυδρομείου του τρέχοντος χρήστη.

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

set

BASH=/bin/bash BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=() BASH_ARGV=()

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

set | less

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

echo $BASH_VERSION

4.4.19(1)-release

Ορισμός μεταβλητών περιβάλλοντος

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

Για να δημιουργήσετε μια νέα μεταβλητή κελύφους με το όνομα MY_VAR και την τιμή Linuxize απλά πληκτρολογήστε:

MY_VAR='Linuxize'

Μπορείτε να επαληθεύσετε ότι η μεταβλητή έχει οριστεί χρησιμοποιώντας είτε echo $MY_VAR για το φιλτράρισμα της εξόδου της εντολής set με grep set | grep MY_VAR set | grep MY_VAR :

echo $MY_VAR

Linuxize

Χρησιμοποιήστε την εντολή printenv για να ελέγξετε αν αυτή η μεταβλητή είναι μια μεταβλητή περιβάλλοντος ή όχι:

printenv MY_VAR

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

Μπορείτε επίσης να προσπαθήσετε να εκτυπώσετε τη μεταβλητή σε ένα δευτερεύον κέλυφος και θα έχετε μια κενή έξοδο.

bash -c 'echo $MY_VAR'

Η εντολή export χρησιμοποιείται για τον ορισμό μεταβλητών περιβάλλοντος.

Για να δημιουργήσετε μια μεταβλητή περιβάλλοντος, απλώς εξαγάγετε τη μεταβλητή κελύφους ως μεταβλητή περιβάλλοντος:

export MY_VAR

Μπορείτε να το ελέγξετε εκτελώντας:

printenv MY_VAR

Linuxize

bash -c 'echo $MY_VAR'

Linuxize

Μπορείτε επίσης να ορίσετε μεταβλητές περιβάλλοντος σε μία γραμμή:

export MY_NEW_VAR="My New Var"

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

Μεταβλητές μεταβλητού περιβάλλοντος

Για να κάνετε τις μεταβλητές περιβάλλοντος επίμονες, πρέπει να ορίσετε αυτές τις μεταβλητές στα αρχεία ρυθμίσεων bash. Στις περισσότερες διανομές Linux, όταν ξεκινάτε μια νέα συνεδρία, οι μεταβλητές περιβάλλοντος διαβάζονται από τα ακόλουθα αρχεία:

  • /etc/environment - Χρησιμοποιήστε αυτό το αρχείο για να ρυθμίσετε μεταβλητές περιβάλλοντος ολόκληρου του συστήματος. Οι μεταβλητές σε αυτό το αρχείο έχουν οριστεί με την ακόλουθη μορφή:

    FOO=bar VAR_TEST="Test Var"

    /etc/profile - Οι μεταβλητές που έχουν οριστεί σε αυτό το αρχείο φορτώνονται κάθε φορά που εισάγεται ένα κέλυφος σύνδεσης bash. Όταν δηλώνετε μεταβλητές περιβάλλοντος σε αυτό το αρχείο, πρέπει να χρησιμοποιήσετε την εντολή export :

    export JAVA_HOME="/path/to/java/home" export PATH=$PATH:$JAVA_HOME/bin

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

    export PATH="$HOME/bin:$PATH"

Για να φορτώσετε τις νέες μεταβλητές περιβάλλοντος στην τρέχουσα περίοδο λειτουργίας shell, χρησιμοποιήστε την εντολή source :

source ~/.bashrc

συμπέρασμα

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

Μη διστάσετε να αφήσετε ένα σχόλιο εάν έχετε οποιεσδήποτε ερωτήσεις.

τερματικό