Переменные окружения 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

Теперь переменная видна и в дочернем терминале

Чтобы сохранить переменные окружения после перезагрузки или перелогина пользователя можно записать из в .bashrc

vi ~/.bashrc

# Пробелы вокруг = не ставить DOMAIN=heihei.ru # & нужно экранировать а = можно оставить как есть S=https://${DOMAIN}/?par=a\&dt=d

environment

cat /etc/environment

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"

.pam_environment

cat ~/.pam_environment

LC_NUMERIC DEFAULT=en_US.UTF-8 LC_TIME DEFAULT=en_US.UTF-8 LC_MONETARY DEFAULT=en_US.UTF-8 LC_PAPER DEFAULT=en_US.UTF-8 LC_NAME DEFAULT=en_US.UTF-8 LC_ADDRESS DEFAULT=en_US.UTF-8 LC_TELEPHONE DEFAULT=en_US.UTF-8 LC_MEASUREMENT DEFAULT=en_US.UTF-8 LC_IDENTIFICATION DEFAULT=en_US.UTF-8 PAPERSIZE DEFAULT=letter

Похожие статьи
Linux
FAQ
Debian
Ubuntu
CentOS
Rocky
Bash
Настройка сети
Файлы, директории, ссылки…
Изучить свободное место на диске
Объединить .pdf файлы
diff: сравнение файлов
find: поиск файлов
wget: скачивание файлов
kill: завершить процесс
curl
make
signal: системные сигналы
env: переменные окружения
localectl: язык
systemctl: Список активных сервисов
Firewall
SCP: обмен файлами;
SSH: удалённый доступ
cron: задания по расписанию
sudo
Мониторинг ресурсов

РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе

Конец рекламы. Если там пусто считайте это рекламой моей телеги

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: