Переменные окружения env в Linux
Введение | |
env: список всех переменных окружения | |
Создать свою переменную | |
Видимость переменной | |
export |
Введение
Пример - путь до текущей директории.
Получить его можно командой pwd (present word directory)
pwd
Что равносильно
echo $PWD
/home/andrei
Все переменные окружения
Список переменых окружения можно получить командой env
env
LC_PAPER=en_US.UTF-8 LC_ADDRESS=en_US.UTF-8 XDG_SESSION_ID=5422 HOSTNAME=demoad.demo.andrei.com LC_MONETARY=en_US.UTF-8 TERM=xterm-256color SHELL=/bin/bash HISTSIZE=1000 LC_NUMERIC=en_US.UTF-8 QTDIR=/usr/lib64/qt-3.3 QT_GRAPHICSSYSTEM_CHECKED=1 USER=andrei LS_COLORS=rs=0:di=38;5;27:ln=38;5;51:mh=44;38;5;15:pi=40;38;5;11:so=38;5;13:do=38;5;5:bd=48;5;232;38;5;11:cd=48;5;232;38;5;3:or=48;5;232;38;5;9:mi=05;48;5;232;38;5;15:su=48;5;196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;10;38;5;21:st=48;5;21;38;5;15:ex=38;5;34:*.tar=38;5;9:*.tgz=38;5;9:*.arc=38;5;9:*.arj=38;5;9:*.taz=38;5;9:*.lha=38;5;9:*.lz4=38;5;9:*.lzh=38;5;9:*.lzma=38;5;9:*.tlz=38;5;9:*.txz=38;5;9:*.tzo=38;5;9:*.t7z=38;5;9:*.zip=38;5;9:*.z=38;5;9:*.Z=38;5;9:*.dz=38;5;9:*.gz=38;5;9:*.lrz=38;5;9:*.lz=38;5;9:*.lzo=38;5;9:*.xz=38;5;9:*.bz2=38;5;9:*.bz=38;5;9:*.tbz=38;5;9:*.tbz2=38;5;9:*.tz=38;5;9:*.deb=38;5;9:*.rpm=38;5;9:*.jar=38;5;9:*.war=38;5;9:*.ear=38;5;9:*.sar=38;5;9:*.rar=38;5;9:*.alz=38;5;9:*.ace=38;5;9:*.zoo=38;5;9:*.cpio=38;5;9:*.7z=38;5;9:*.rz=38;5;9:*.cab=38;5;9:*.jpg=38;5;13:*.jpeg=38;5;13:*.gif=38;5;13:*.bmp=38;5;13:*.pbm=38;5;13:*.pgm=38;5;13:*.ppm=38;5;13:*.tga=38;5;13:*.xbm=38;5;13:*.xpm=38;5;13:*.tif=38;5;13:*.tiff=38;5;13:*.png=38;5;13:*.svg=38;5;13:*.svgz=38;5;13:*.mng=38;5;13:*.pcx=38;5;13:*.mov=38;5;13:*.mpg=38;5;13:*.mpeg=38;5;13:*.m2v=38;5;13:*.mkv=38;5;13:*.webm=38;5;13:*.ogm=38;5;13:*.mp4=38;5;13:*.m4v=38;5;13:*.mp4v=38;5;13:*.vob=38;5;13:*.qt=38;5;13:*.nuv=38;5;13:*.wmv=38;5;13:*.asf=38;5;13:*.rm=38;5;13:*.rmvb=38;5;13:*.flc=38;5;13:*.avi=38;5;13:*.fli=38;5;13:*.flv=38;5;13:*.gl=38;5;13:*.dl=38;5;13:*.xcf=38;5;13:*.xwd=38;5;13:*.yuv=38;5;13:*.cgm=38;5;13:*.emf=38;5;13:*.axv=38;5;13:*.anx=38;5;13:*.ogv=38;5;13:*.ogx=38;5;13:*.aac=38;5;45:*.au=38;5;45:*.flac=38;5;45:*.mid=38;5;45:*.midi=38;5;45:*.mka=38;5;45:*.mp3=38;5;45:*.mpc=38;5;45:*.ogg=38;5;45:*.ra=38;5;45:*.wav=38;5;45:*.axa=38;5;45:*.oga=38;5;45:*.spx=38;5;45:*.xspf=38;5;45: LC_TELEPHONE=en_US.UTF-8 SUDO_USER=andrei SUDO_UID=1000 USERNAME=root MAIL=/var/spool/mail/andrei PATH=/sbin:/bin:/usr/sbin:/usr/bin LC_IDENTIFICATION=en_US.UTF-8 PWD=/usr/share/i18n/locales LANG=en_US.UTF-8 LC_MEASUREMENT=en_US.UTF-8 HOME=/home/andrei SUDO_COMMAND=/bin/su SHLVL=2 LOGNAME=andrei LC_CTYPE=en_US.iso88591 LESSOPEN=||/usr/bin/lesspipe.sh %s XDG_RUNTIME_DIR=/run/user/1000 SUDO_GID=1000 LC_TIME=en_US.UTF-8 LC_NAME=en_US.UTF-8 _=/bin/env OLDPWD=/home/andrei
Про переменные, которые начинаются на LC - читайте статью
locale
Про переменную PATH читайте статью
PATH в Linux
Если ваш список слишком длинный - перенаправьте вывод в less
env | less
Создать свою переменную
Довольно просто. Главное - не ставьте пробелы
newvar=9
echo $newvar
9
Обратите внимание, что и при использовании sudo значение можно получить
sudo echo $newvar
9
Видимость переменной
В предыдущей главе мы смогли увидеть значение переменной сделав sudo
Но будет ли видна эта переменная из другого терминала.
Запустим новый терминал командой bash (можно просто открыть новое окно)
bash
echo $newvar
Переменная не видна.
Вернитесь в старый терминал выполнив exit
exit
echo $newvar
9
Здесь по-прежнему можно увидеть значение
export
Чтобы перменную было видно во всех дочерних терминалах применяется команда export
export newvar
bash
echo $newvar
9
Теперь переменная видна и в дочернем терминале