Как установить и посмотреть переменные окружения Linux

Командная оболочка Линукс — это командный интерпретатор, который выдает пользователю интерактивное приглашение к вводу команд (командную строку) и предлагает массу разнообразных возможностей:

Первая строка в любой программе BASH

Второе, что нужно сразу запомнить, это то, что первая строка в любой программе, написанной на BASH должна указывать на интерпретатор этого языка. И выглядит это обычно так:

#!/bin/bash

Первый символ #, второй символ — !. Сразу за ними (без каких-либо пробелов) путь до интерпретатора: /bin/bash. И сразу после него перенос строки. Снова никаких пробелов.

Это всё важно. Иначе могут возникать ошибки, которые при первом взгляде не выявить: пробельные символы не видны, а кто может догадаться о том, что кто-то по доброте душевной решил не экономить и наставить лишних символов там, где не надо? 😉

Сочетание #! называется Shebang. В Линукс, если файл начинается с этих символов, это даёт команду операционной системе проследовать по идущему за ним пути по которому должна находиться программа или интерпретатор для запуска сценария, следующего за этой строкой.

Настройка среды окружения

Когда пользователь регистрируется и входит в систему, в оперативную память загружаются ряд переменных и им присваиваются значения. Эти переменные называются «переменными окружения» командного интерпретатора; они могут использоваться различными командами для получения информации о программной среде (например, о типе операционной системы, о домашнем каталоге пользователя и о его командной оболочке).

В Red Hat Linux переменные окружения помогают настроить вычислительную среду операционной системы и включают полезные спецификации и настройки; если вы начнете писать сценарии оболочки, то в них, скорее всего, вы захотите применять эти многочисленные переменные. Следующий список содержит ряд переменных окружения вместе с их описанием:

PWD — имя актуального рабочего каталога, используемого командой pwd, например, /home/winky/foo; USER — имя пользователя, например winky; LANG — язык, используемый по умолчанию, например English; SHELL — название и местоположение актуальной командной оболочки, используемого в данный момент; PATH — используемое по умолчанию местоположение исполняемых файлов, например, /bin, /usr/bin и т.д.; LD_LIBRARY_PATH — местоположение важных программных библиотек; TERM — переменная указывает какой терминал используется, например, vt100, это необходимо для экранных программ, например, для текстовых редакторов; MACHINE — тип системы, архитектура системы и так далее.

Читайте также:  Linux командная строка — что это такое, как вызвать

У каждой оболочки может быть свой собственный набор функциональных возможностей и синтаксис языка, а также особый набор переменных окружения, используемых по умолчанию. Чтобы отобразить на экране эти среды, введем на терминале env или printenv. Например:

$env PWD=/home/bball HOSTNAME= USER=bball MACHTYPE=i386-redhat-linux-gnu MAIL=/var/spool/mail/bball BASH_ENV=/nome/bball/.bashrc LANG=en_US DISPLAY=titanium:0 LOGNAME=bball SHLVL=1 PATH=/usr/bin: \ SHELL=/bin/bash HOSTTYPE=i586 HOME=/home/bball

В этом сокращенном списке показаны несколько распространенных переменных. Установка их производится при помощи файлов конфигурации, находящихся в каталогах /etc, /etc/skel или в домашнем каталоге пользователей /home. Так, используемые по умолчанию параметры оболочки bash можно найти в файлах /etc/profile и /etc/bashrc, а также в .bashrc или .bash_profile, хранящихся в домашнем каталоге.

Одной из наиболее важных переменных является «SPATH», которая определяет местоположение исполняемых файлов. Например, если вы, будучи обычным пользователем, попытаетесь выполнить команду, которая не содержится в вашей переменной $РАТН, например, команду ifconfig, то увидите что-то вроде следующего:

$ ifconfig $**sh: ifconfig: no such command

Однако, если вам наверняка известно, что ifconfig точно есть в вашей системе, то это легко проверить с помощью whereis:

$ whereis ifconfig

В этом примере видим, что ifconfig действительно установлен. Дело в том, что для операционной системы Red Hat Linux каталог /sbin по умолчанию не включен в $РАТН.

Одна из причин этого заключается в том, команды из каталога /sbin обычно предназначены только для пользователя root. Редактируя файл .bash_profile в своем домашнем каталоге, можно добавить каталог /sbin в свою переменную $РАТН.

Найдите в этом файле такую строку:

PATH=$PATH:$HOME/bin

Можно следующим образом отредактировать этот документ (например, с помощью редактора vi) и добавить каталог s/bin: PATH=$PATH:/sbin:$HOME/bin Сохраните этот файл. Когда в следующий раз вы зарегистрируетесь и войдете в систему, каталог /sbin будет включен в переменную $РАТН. Чтобы пользоваться этим изменением сразу же, можно считать новые параметры из файла .bash_profile с помощью source: $ souce .bash_profile

Читайте также:  Удаляем Linux Mint

Теперь введем «ifconfig», не задавая полное имя пути. Некоторые команды Linux используют другие переменные среды, например, для получения информации о конфигурации системы. В частности программам связи требуется такая переменная, как BAUD_RATE, которая указывает скорость передачи данных модемом.

В качестве эксперимента с переменными среды можно модифицировать «PS1» и изменить вид приглашения. Если вы работаете с bash, то для изменения приглашения можно воспользоваться встроенной командой export.

Допустим, что используемое по умолчанию параметры ввода оболочки выглядят так: [[email protected] ~]$ Изменим ее вид с помощью PS1 следующим образом:

$ PS1=’SOSTYPE r00lz ->’

Нажимаем на клавишу Enter, скорее всего, видим:

linux-gnu r00lz ->

Постоянные переменные среды

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

  • /etc/environment — Используйте этот файл для настройки общих системных переменных. Переменные в этом файле устанавливаются в следующем формате

    FOO=barVAR_TEST=»Test Var»

  • /etc/profile — Переменные, заданные в этом файле, загружаются при каждом входе в оболочку bash. Чтобы объявить переменные окружения в этом файле вам нужно использовать команду экспорта:

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

  • Конфигурационные файлы для отдельных пользовательских оболочек. Например, если вы используете Bash, вы можете объявить переменные в ~ / .bashrc:

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

Чтобы загрузить новые переменные среды в текущий сеанс оболочки, используйте команду source:

source ~/.bashrc

В этом руководстве мы показали, как устанавливать и перечислять переменные окружения и оболочки.

Оператор OR (||)

Оператор OR (||) очень похож на оператор «else» в программировании. Вышеуказанный оператор позволяет вам выполнять вторую команду только в случае сбоя при выполнении первой команды, то есть состояние выхода первой команды равно «1» — программа выполнена НЕ успешно».

Например, я хочу выполнить «apt-get update» из учетной записи без полномочий root, и если первая команда не будет выполнена, тогда будет выполнена вторая команда «links ».

sudo apt update || links

В приведенной выше команде, поскольку пользователю не было разрешено обновить систему, это означает, что состояние выхода первой команды равно «1» и, следовательно, выполняется последняя команда «links ».

Что, если первая команда выполнена успешно, со статусом выхода ««? Очевидно! Вторая команда не будет выполнена.

mkdir test || links

Здесь пользователь создает папку «test» в своем домашнем каталоге, где ему это разрешено. Команда выполнена успешно, что дает статус выхода ««, и, следовательно, последняя часть команды не выполняется.

Ярлыки, Shorcut Linux

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

Когда вы вводите команды, они фактически сохраняются в истории. Вы можете просмотреть эту историю, используя стрелки вверх и вниз. Так что не беспокойтесь о повторном вводе команд, которые вы ранее ввели, можно просто нажать стрелку вверх несколько раз.

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