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

Учебник по команде Linux printenv для начинающих (с примерами)


На этой странице

  1. Команда printenv Linux
  2. Q1. Как использовать printenv?
  3. Вопрос 2. Как заставить printenv отображать только выбранную информацию?
  4. Вопрос 3. Как заставить printenv использовать NUL вместо новой строки?
  5. Заключение

Переменные среды играют важную роль в Linux. Большинство программ, основанных на командной строке или графическом интерфейсе, так или иначе работают с переменными среды. Поэтому, естественно, существуют инструменты, которые позволяют вам получать доступ к переменным среды из командной строки.

Одним из таких инструментов является printenv. В этом уроке мы обсудим команду printenv на нескольких простых для понимания примерах. Но прежде чем мы это сделаем, стоит упомянуть, что все приведенные здесь примеры были протестированы на компьютере с Ubuntu 20.04 LTS.

Linux-команда printenv

Команда printenv в Linux предоставляет вам возможность просматривать всю среду или ее часть. Ниже приведен его синтаксис:

printenv [OPTION]... [VARIABLE]...

А вот как это определяет справочная страница инструментов:

Print the values of the specified environment VARIABLE(s). If no VARIABLE is specified, print 
name and value pairs for them all.

Ниже приведены несколько примеров в стиле вопросов и ответов, которые должны дать вам лучшее представление о том, как работает команда printenv.

Q1. Как использовать printenv?

Основное использование довольно просто. Все, что вам нужно сделать, это запустить printenv без каких-либо аргументов.

printenv

Ниже приведен вывод, полученный в моей системе:

CLUTTER_IM_MODULE=xim
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
LESSCLOSE=/usr/bin/lesspipe %s %s
XDG_MENU_PREFIX=gnome-
LANG=en_IN
DISPLAY=:0
GNOME_SHELL_SESSION_MODE=ubuntu
COLORTERM=truecolor
USERNAME=himanshu
XDG_VTNR=2
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
MANDATORY_PATH=/usr/share/gconf/ubuntu.mandatory.path
XDG_SESSION_ID=2
USER=himanshu
DESKTOP_SESSION=ubuntu
QT4_IM_MODULE=xim
TEXTDOMAINDIR=/usr/share/locale/
GNOME_TERMINAL_SCREEN=/org/gnome/Terminal/screen/44c42800_9a68_408d_8539_7a0e414b7986
DEFAULTS_PATH=/usr/share/gconf/ubuntu.default.path
PWD=/home/himanshu
HOME=/home/himanshu
TEXTDOMAIN=im-config
SSH_AGENT_PID=1918
QT_ACCESSIBILITY=1
XDG_SESSION_TYPE=x11
XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktop
XDG_SESSION_DESKTOP=ubuntu
GJS_DEBUG_OUTPUT=stderr
GTK_MODULES=gail:atk-bridge
WINDOWPATH=2
TERM=xterm-256color
SHELL=/bin/bash
VTE_VERSION=5201
QT_IM_MODULE=xim
=ibus
IM_CONFIG_PHASE=2
XDG_CURRENT_DESKTOP=ubuntu:GNOME
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
GNOME_TERMINAL_SERVICE=:1.61
XDG_SEAT=seat0
SHLVL=1
GDMSESSION=ubuntu
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
LOGNAME=himanshu
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
XDG_RUNTIME_DIR=/run/user/1000
XAUTHORITY=/run/user/1000/gdm/Xauthority
XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
GJS_DEBUG_TOPICS=JS ERROR;JS LOG
SESSION_MANAGER=local/himanshu:@/tmp/.ICE-unix/1823,unix/himanshu:/tmp/.ICE-unix/1823
LESSOPEN=| /usr/bin/lesspipe %s
GTK_IM_MODULE=ibus
_=/usr/bin/printenv

Итак, вы можете видеть, что почти все переменные среды, установленные в моей системе, были созданы на выходе.

Q2. Как заставить printenv отображать только выбранную информацию?

Предположим, вы хотите, чтобы printenv отображал в выводе сведения, относящиеся только к определенной переменной среды, тогда все, что вам нужно сделать, — это передать имя этой переменной в качестве входных данных для команды.

Вот пример:

printenv SHELL

И вот вывод, полученный этой командой:

/bin/bash

Конечно, вы можете добавить больше переменных в список ввода. Например, следующая команда:

printenv SHELL HOME

произвел вывод, показанный ниже:

/bin/bash
/home/himanshu

Q3. Как заставить printenv использовать NUL вместо новой строки?

По умолчанию команда printenv использует новую строку в качестве завершающего символа между выходными записями. Однако, если вы хотите, вы можете вместо этого использовать NUL в качестве терминатора.

Для этого вам нужно использовать параметр командной строки --null. Ниже приведен пример:

printenv --null SHELL HOME

А вот скриншот полученного вывода по сравнению с использованием printenv без опции --null:

Заключение

Если ваша работа с командной строкой Linux связана с переменными окружения, вам следует запомнить команду printenv. Здесь, в этом уроке, мы обсудили большинство опций, предлагаемых этим инструментом. После того, как вы закончите практиковать их (кривая обучения не крутая, поэтому это не займет много времени), вы можете перейти на справочную страницу printenv, чтобы узнать больше об этой утилите командной строки.