Android

Bagaimana untuk menetapkan dan menyenaraikan pembolehubah persekitaran di linux

Как настроить сервер терминалов для удаленных рабочих столов (RDP) под Linux

Как настроить сервер терминалов для удаленных рабочих столов (RDP) под Linux

Isi kandungan:

Anonim

Dalam Linux dan Unix yang berasaskan sistem pembolehubah persekitaran adalah satu set nilai dinamik yang dinamik, disimpan dalam sistem yang digunakan oleh aplikasi yang dilancarkan di shell atau subshells. Secara ringkas, pembolehubah persekitaran adalah pemboleh ubah dengan nama dan nilai yang berkaitan.

Pembolehubah persekitaran membolehkan anda menyesuaikan bagaimana sistem berfungsi dan tingkah laku aplikasi pada sistem. Sebagai contoh, pembolehubah persekitaran boleh menyimpan maklumat tentang editor teks atau penyemak imbas lalai, laluan kepada fail boleh laku, atau tetapan susunatur setempat dan susun atur sistem.

Dalam panduan ini, kami akan menerangkan untuk membaca dan menetapkan pembolehubah persekitaran dan shell.

Pembolehubah Alam Sekitar dan Pembolehubah Shell

Pembolehubah mempunyai format berikut:

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

  • Nama-nama pembolehubah adalah sensitif huruf. Oleh konvensyen, pembolehubah persekitaran harus mempunyai nama-nama UPPER CASE. Apabila menyerahkan pelbagai nilai kepada pembolehubah, mereka mesti dipisahkan oleh usus besar : watak. Tidak ada ruang di sekitar sama = simbol.

Pembolehubah boleh diklasifikasikan kepada dua kategori utama, pembolehubah persekitaran, dan pembolehubah shell.

Pembolehubah persekitaran adalah pembolehubah yang terdapat di seluruh sistem dan diwarisi oleh semua proses anak-anak dan cangkang.

Pemboleh ubah Shell adalah pembolehubah yang hanya digunakan untuk contoh shell semasa. Setiap shell seperti zsh dan bash , mempunyai set sendiri pembolehubah shell dalaman.

Terdapat beberapa arahan yang ada yang membolehkan anda menyenaraikan dan menetapkan pembolehubah persekitaran di Linux:

  • env - Perintah ini membolehkan anda menjalankan program lain dalam persekitaran tersuai tanpa mengubah suai semasa. Apabila digunakan tanpa hujah ia akan mencetak senarai pembolehubah persekitaran semasa. printenv - Perintah mencetak semua atau pembolehubah persekitaran yang ditentukan. set - Set perintah atau pembolehubah shell unsets. Apabila digunakan tanpa hujah ia akan mencetak senarai semua pembolehubah termasuk pembolehubah persekitaran dan shell, dan fungsi shell. unset - Perintah menghapuskan pembolehubah shell dan persekitaran. export - Perintah menetapkan pembolehubah persekitaran.

Senarai Pembolehubah Persekitaran

Perintah yang paling digunakan untuk memaparkan pembolehubah persekitaran ialah printenv . Jika nama pembolehubah diluluskan sebagai hujah kepada arahan, hanya nilai pemboleh ubah tersebut dipaparkan. Sekiranya tiada hujah dinyatakan, printenv mencetak senarai semua pembolehubah persekitaran, satu pemboleh ubah per baris.

Sebagai contoh, untuk memaparkan nilai pembolehubah persekitaran HOME anda jalankan:

printenv HOME

Output akan mencetak laluan pengguna yang sedang log masuk:

/home/linuxize

Anda juga boleh lulus lebih daripada satu hujah kepada perintah printenv :

printenv LANG PWD

en_US /home/linuxize

printenv

Output akan kelihatan seperti ini:

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

Berikut adalah beberapa pembolehubah persekitaran yang paling biasa:

  • USER - Pengguna log masuk semasa. HOME - Direktori rumah pengguna semasa. EDITOR - Editor fail lalai yang akan digunakan. Ini adalah editor yang akan digunakan apabila anda menaip edit di terminal anda. SHELL - Laluan shell pengguna semasa, seperti bash atau zsh. LOGNAME - Nama pengguna semasa. PATH - Senarai direktori yang akan dicari semasa melaksanakan perintah. Apabila anda menjalankan arahan, sistem akan mencari direktori tersebut dalam perintah ini dan menggunakan yang boleh dijumpai yang pertama dapat dilaksanakan. LANG - Tetapan tempatan semasa. TERM - Emulasi terminal semasa. MAIL - Lokasi di mana mel pengguna semasa disimpan.

Perintah printenv dan env mencetak hanya pembolehubah persekitaran. Sekiranya anda ingin mendapatkan senarai semua pembolehubah, termasuk persekitaran, shell dan pembolehubah, dan fungsi shell anda boleh menggunakan perintah 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=()

Perintah ini akan memaparkan senarai besar semua pemboleh ubah supaya anda mungkin mahu mengalirkan output kepada perintah yang less .

set | less

Anda juga boleh menggunakan arahan echo untuk mencetak pembolehubah shell. Sebagai contoh, untuk mencetak nilai pembolehubah BASH_VERSION akan anda jalankan:

echo $BASH_VERSION

4.4.19(1)-release

Menetapkan Pembolehubah Alam Sekitar

Untuk lebih menggambarkan perbezaan antara pembolehubah Shell dan Alam Sekitar yang akan kami mulakan dengan menetapkan Pembolehubah Shell dan kemudian beralih kepada Pembolehubah persekitaran.

Untuk membuat pembolehubah shell baru dengan nama MY_VAR dan nilai Linuxize cukup ketik:

MY_VAR='Linuxize'

Anda boleh mengesahkan bahawa pemboleh ubah ditetapkan dengan menggunakan sama ada echo $MY_VAR menyaring output perintah set dengan set | grep MY_VAR grep set | grep MY_VAR set | grep MY_VAR :

echo $MY_VAR

Linuxize

Gunakan perintah printenv untuk memeriksa sama ada pembolehubah ini adalah pembolehubah persekitaran atau tidak:

printenv MY_VAR

Output akan kosong yang memberitahu kita bahawa pembolehubah bukan pembolehubah persekitaran.

Anda juga boleh cuba mencetak pembolehubah dalam sub-shell dan anda akan mendapat output kosong.

bash -c 'echo $MY_VAR'

Perintah export digunakan untuk menetapkan pembolehubah Alam Sekitar.

Untuk mewujudkan pembolehubah persekitaran hanya mengeksport pembolehubah shell sebagai pembolehubah persekitaran:

export MY_VAR

Anda boleh menyemak ini dengan berjalan:

printenv MY_VAR

Linuxize

bash -c 'echo $MY_VAR'

Linuxize

Anda juga boleh menetapkan pembolehubah persekitaran dalam satu baris:

export MY_NEW_VAR="My New Var"

Pembolehubah Alam Sekitar yang dicipta dengan cara ini hanya tersedia dalam sesi semasa. Jika anda membuka shell baharu atau jika anda log keluar semua pembolehubah akan hilang.

Pembolehubah Persekitaran Persisten

Untuk membuat pembolehubah Alam Sekitar berterusan, anda perlu menentukan pemboleh ubah tersebut dalam fail konfigurasi bash. Dalam kebanyakan pengedaran Linux apabila anda memulakan sesi baru, pembolehubah persekitaran dibaca dari fail berikut:

  • /etc/environment - Gunakan fail ini untuk menyediakan pembolehubah persekitaran seluruh sistem. Pembolehubah dalam fail ini ditetapkan dalam format berikut:

    FOO=bar VAR_TEST="Test Var"

    /etc/profile - Pembolehubah yang ditetapkan dalam fail ini dimuatkan setiap kali shell login bash dimasukkan. Apabila mengisytiharkan pembolehubah persekitaran dalam fail ini, anda perlu menggunakan arahan export :

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

    Per-pengguna shell fail konfigurasi tertentu. Sebagai contoh, jika anda menggunakan Bash, anda boleh mengisytiharkan pembolehubah dalam ~/.bashrc :

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

Untuk memuatkan pembolehubah persekitaran baru ke dalam sesi shell semasa menggunakan arahan source :

source ~/.bashrc

Kesimpulannya

Dalam panduan ini, kami telah menunjukkan kepada anda bagaimana untuk menetapkan dan menyenaraikan persekitaran dan pembolehubah shell.

Jangan ragu untuk meninggalkan komen jika anda mempunyai sebarang pertanyaan.

terminal