Unix / Linux - Окружающая среда

В этой главе мы подробно обсудим среду Unix. Важной концепцией Unix являетсяenvironment, который определяется переменными среды. Некоторые устанавливаются системой, другие - вами, третьи - оболочкой или любой программой, загружающей другую программу.

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

Например, сначала мы устанавливаем переменную TEST, а затем получаем доступ к ее значению с помощью echo команда -

$TEST="Unix Programming"
$echo $TEST

Это дает следующий результат.

Unix Programming

Обратите внимание, что переменные среды устанавливаются без использования $знак, но при доступе к ним мы используем знак $ в качестве префикса. Эти переменные сохраняют свои значения, пока мы не выйдем из оболочки.

Когда вы входите в систему, оболочка проходит этап, называемый initializationнастроить среду. Обычно это двухэтапный процесс, в ходе которого оболочка читает следующие файлы:

  • /etc/profile
  • profile

Процесс выглядит следующим образом -

  • Оболочка проверяет, не /etc/profile существует.

  • Если он существует, оболочка его читает. В противном случае этот файл пропускается. Сообщение об ошибке не отображается.

  • Оболочка проверяет, не .profileсуществует в вашем домашнем каталоге. Ваш домашний каталог - это каталог, в котором вы начинаете работу после входа в систему.

  • Если он существует, оболочка его читает; в противном случае оболочка его пропускает. Сообщение об ошибке не отображается.

Как только оба этих файла будут прочитаны, оболочка отобразит приглашение -

$

Это приглашение, в котором вы можете вводить команды для их выполнения.

Note - Процесс инициализации оболочки, подробно описанный здесь, применим ко всем Bourne типа оболочки, но некоторые дополнительные файлы используются bash и ksh.

Файл .profile

Файл /etc/profile поддерживается системным администратором вашего Unix-компьютера и содержит информацию об инициализации оболочки, необходимую всем пользователям системы.

Файл .profileнаходится под вашим контролем. Вы можете добавить в этот файл столько информации о настройке оболочки, сколько захотите. Минимальный набор информации, который вам необходимо настроить, включает:

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

Вы можете проверить свой .profileдоступны в вашем домашнем каталоге. Откройте его с помощью редактора vi и проверьте все переменные, установленные для вашей среды.

Установка типа терминала

Обычно тип используемого вами терминала автоматически настраивается либо login или же gettyпрограммы. Иногда процесс автоматической настройки неправильно определяет ваш терминал.

Если ваш терминал настроен неправильно, вывод команд может выглядеть странно, или вы не сможете правильно взаимодействовать с оболочкой.

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

$TERM=vt100
$

Установка ПУТЬ

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

Переменная PATH указывает места, в которых оболочка должна искать команды. Обычно переменная Path устанавливается следующим образом -

$PATH=/bin:/usr/bin
$

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

$hello
hello: not found
$

Существуют такие переменные, как PS1 и PS2, которые обсуждаются в следующем разделе.

Переменные PS1 и PS2

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

Например, если вы дали команду -

$PS1='=>'
=>
=>
=>

Ваше приглашение станет =>. Чтобы установить значениеPS1 чтобы он показал рабочий каталог, выполните команду -

=>PS1="[\u@\h \w]\$"
[root@ip-72-167-112-17 /var/www/tutorialspoint/unix]$
[root@ip-72-167-112-17 /var/www/tutorialspoint/unix]$

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

Есть довольно много escape sequencesкоторые можно использовать в качестве аргументов значения для PS1; постарайтесь ограничиться самым важным, чтобы подсказка не завалила вас информацией.

Sr. No. Последовательность и описание побега
1

\t

Текущее время в формате ЧЧ: ММ: СС

2

\d

Текущая дата, выраженная как день недели, месяц, дата

3

\n

Новая линия

4

\s

Текущая среда оболочки

5

\W

Рабочий каталог

6

\w

Полный путь к рабочему каталогу

7

\u

Имя пользователя текущего пользователя

8

\h

Имя хоста текущей машины

9

\#

Номер команды текущей команды. Увеличивается при вводе новой команды

10

\$

Если эффективный UID равен 0 (то есть, если вы вошли в систему как root), завершите запрос символом #; в противном случае используйте знак $

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

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

Вторичная подсказка по умолчанию: > (знак больше), но его можно изменить, переопределив PS2 переменная оболочки -

Ниже приведен пример, в котором используется вторичная подсказка по умолчанию:

$ echo "this is a
> test"
this is a
test
$

В приведенном ниже примере переопределяется PS2 с настраиваемой подсказкой -

$ PS2="secondary prompt->"
$ echo "this is a
secondary prompt->test"
this is a
test
$

Переменные среды

Ниже приведен неполный список важных переменных среды. Эти переменные устанавливаются и доступны, как указано ниже -

Sr. No. Переменная и описание
1

DISPLAY

Содержит идентификатор дисплея, который X11 программы должны использовать по умолчанию.

2

HOME

Указывает домашний каталог текущего пользователя: аргумент по умолчанию для компакт-диска built-in команда.

3

IFS

Указывает на Internal Field Separator который используется парсером для разделения слов после раскрытия.

4

LANG

LANG расширяется до языкового стандарта системы по умолчанию; LC_ALL можно использовать для отмены этого. Например, если его значениеpt_BR, то будет выбран португальский (Бразильский) язык, а в качестве языкового стандарта - Бразилия.

5

LD_LIBRARY_PATH

Система Unix с динамическим компоновщиком содержит список каталогов, разделенных двоеточиями, в которых динамический компоновщик должен искать общие объекты при построении образа процесса после выполнения, перед поиском в любых других каталогах.

6

PATH

Указывает путь поиска команд. Это список каталогов, разделенных двоеточиями, в которых оболочка ищет команды.

7

PWD

Указывает текущий рабочий каталог, установленный командой cd.

8

RANDOM

Генерирует случайное целое число от 0 до 32 767 при каждой ссылке.

9

SHLVL

Увеличивается на единицу при каждом запуске экземпляра bash. Эта переменная полезна для определения того, завершает ли встроенная команда выхода текущий сеанс.

10

TERM

Относится к типу отображения.

11

TZ

Относится к часовому поясу. Может принимать такие значения, как GMT, AST и т. Д.

12

UID

Заменяется на числовой идентификатор текущего пользователя, инициализированный при запуске оболочки.

Ниже приведен пример примера, показывающего несколько переменных среды.

$ echo $HOME
/root
]$ echo $DISPLAY

$ echo $TERM
xterm
$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/home/amrood/bin:/usr/local/bin
$