Как посмотреть переменные окружения в linux
Перейти к содержимому

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

  • автор:

Environment variables (Русский)

Переменная окружения — именованный объект, содержащий текстовую информацию, которую могут использовать запускаемые программы. Проще говоря, это переменная с именем и значением. Значением такой переменной может быть, например, место размещения исполняемых файлов в системе, имя предпочитаемого текстового редактора или настройки системной локали. Новые в Linux пользователи часто находят такой способ хранения настроек неудобным. Однако переменные окружения позволяют простым и надёжным способом передавать настройки сразу для множества приложений.

Утилиты

Пакет coreutils содержит программы printenv и env. Программа printenv позволяет отобразить список текущих переменных окружения:

Программа env может быть использована для запуска команд с указанием нового значения переменной окружения. В следующем примере будет запущен xterm, для которого переменная окружения EDITOR имеет значение vim . Такой вызов не затронет переменную окружения EDITOR в текущем сеансе терминала.

Встроенная в командную оболочку команда set(1p) позволяет вам устанавливать значения переменных окружения в текущем сеансе терминала, а также отображать имена и значения переменных окружения текущего сеанса.

Чтобы увидеть переменные окружения конкретных процессов, откройте файл /proc/pid/environ , где pid — числовой идентификатор интересующего процесса. Записи в этом файле отделены друг от друга нулевым байтом ( \x0 ), который обычно не виден в терминале. Вы можете использовать, например, sed для отображения переменных окружения процесса в более читабельном формате, заменив нулевые байты на переносы строки: sed ‘s:\x0:\n:g’ /proc/$PID/environ

Установка переменных

На системном уровне

Большинство дистрибутивов Linux советуют изменять или добавлять переменные окружения в /etc/profile или других местах. Имейте в виду, что сразу множество файлов могут содержать переменные окружения и переопределять их, вроде /etc/locale.conf . По сути, любой скрипт может быть использован для этого, однако по принятым в UNIX соглашениям следует использовать для этого только определённые файлы.

Для установки переменных окружения на уровне всей системы можно использовать следующие файлы (каждый со своими ограничениями):

  • /etc/environment используется модулем pam_env. Он не привязан к командным оболочкам, поэтому скрипты или glob-выражения использовать здесь нельзя. Здесь можно указывать только пары имя=значение .
  • /etc/profile устанавливает переменные только в оболочках входа (когда пользователь выполняет вход в систему). В нём можно запускать скрипты и он может использоваться в оболочках, совместимых с Bourne shell.
  • Файлы настроек, специфичные для конкретных командных оболочек — глобальные файлы для вашей командной оболочки, инициализирует переменные и запускает скрипты. Например, Bash (Русский)#Файлы настроек или Zsh (Русский)#Файлы Запуска/Завершения.

Ниже приведён пример скрипта, который создаёт функцию для добавления нескольких каталогов (например,

/scripts ) в PATH . Чтобы это сделать, просто поместите код в один из системных файлов инициализации окружения ( /etc/profile или /etc/bash.bashrc ):

На уровне пользователя

Не всегда требуется устанавливать переменные окружения на уровне системы. Например, вы можете добавить ваш каталог /home/пользователь/bin в PATH , однако не хотите, чтобы это затрагивало других пользователей системы. Переменные окружения пользователя можно устанавливать во многих других файлах:

Например, чтобы добавить каталог в PATH , поместите следующее в

Для применения изменений перезайдите в командную оболочку или используйте команду source: $ source

/.bashrc . Это означает, что, например, активируемые через dbus программы вроде Gnome Files не будут использовать их по умолчанию. Смотрите systemd/Пользователь#Переменные окружения.

Графические приложения

Если переменная окружения влияет только на графические приложения, можно ограничить область её применения, установив её только в рамках графического сеанса.

Чтобы установить переменные окружения только для определённого приложения вместо целого сеанса, измените .desktop файл этого приложения. Смотрите Ярлыки приложений#Изменение переменных окружения.

Использование скрипта запуска

Некоторые графические окружения (например, KDE Plasma), поддерживают запуск скриптов при входе: можно использовать их для установки переменных окружения. Пример есть в статье KDE (Русский)#Автозапуск приложений.

Окружение Xorg

Установка переменных окружения для сеанса Xorg зависит от того, каким конкретно способом он запускается:

    Большинство экранных менеджеров выполняют source файла xprofile. и SLiM выполняют xinitrc. выполняет

/.bash_profile для bash или

Хотя конец скрипта зависит от того, какой это файл, а любой расширенный синтаксис зависит от используемой оболочки, базовое использование универсально:

Окружение Wayland

Так как Wayland не использует Xorg-специфичные файлы, GDM и KDE Plasma вместо них загружают пользовательские переменные окружения systemd.

Другие экранные менеджеры (например, SDDM) пока что не поддерживают это. Однако SDDM выполняет source скриптов оболочек входа и для сеансов Wayland тоже.

На уровне сеанса

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

В таком случае можно определить переменную PATH в текущем сеансе с помощью команды export. Пока командная оболочка продолжает работать, все запускаемые в ней процессы будут использовать изменённое значение переменной.

С помощью pam_env

PAM-модуль pam_env(8) загружает переменные для прописывания в окружение из этих файлов в указанном порядке: /etc/security/pam_env.conf и /etc/environment .

    Эти файлы считываются перед другими файлами, в частности перед

/etc/environment должен содержать только простые пары вида ПЕРЕМЕННАЯ=значение на отдельных строках, например:

/etc/security/pam_env.conf имеет формат:

@ и @ являются специальными переменными, значение которых берётся из /etc/passwd . Следующий пример показывает, как использовать переменную HOME внутри другой переменной:

Формат также позволяет расширить уже определённые переменные значениями из других переменных с помощью $<ПЕРЕМЕННАЯ> , например:

Пары ПЕРЕМЕННАЯ=значение тоже допускаются, но расширение переменных здесь не поддерживается. Подробнее смотрите pam_env.conf(5) .

Примеры

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

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

Как перечислить все имена переменных и их текущие значения? Как показать только переменные окружения? Ответу на эти вопросы посвящена данная статья.

Можно вывести значения переменных по одной, например:

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

printenv

Для bash: (стандартная оболочка во многих дистрибутивах Linux)

Введите следующую команду в терминале, чтобы распечатать все переменные среды:

Для получения дополнительной информации об этой команде прочтите справочную страницу:

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

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

Аналог этой команды:

Для zsh: (оболочка по умолчанию используется в Kali Linux)

Используйте следующую команду:

Для получения дополнительной информации о параметрах ZSH смотрите справочную страницу

declare

Вы можете увидеть все переменные с помощью встроенной команды declare.

Если вас интересуют только переменные среды, используйте

Запустите «help declare», чтобы увидеть, какие есть другие опции.

Переменные среды, доступные для запуска приложения

Во всех описанных выше методах предлагается следующая процедура:

  • запустить терминал
  • показать переменные среды, используя env, printenv или что-то ещё

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

Это заметно, если, например, вы используете свой

/.profile, или .bashrc, или .zshenv (в зависимости от вашей оболочки) для изменения переменных среды — как классическое добавление каталогов к PATH.

Чтобы увидеть переменные среды, доступные для приложения, запущенного непосредственно в графической среде, вы можете сделать следующее (в Gnome Shell, я уверен, что есть эквивалентный метод во всех других DE):

  • нажмите Alt-F2
  • запустите команду

Или, если у вас нет xterm, то запустите:

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

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

Переменные окружения в Linux

Переменные окружения в Linux

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

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

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

  1. Системные переменные. Эти опции загружаются сразу же при старте операционной системы, хранятся в определенных конфигурационных файлах (речь о них будет идти ниже), а также доступны для всех пользователей и всей ОС в целом. Обычно такие параметры считаются самыми главными и часто используемыми во время старта самых различных приложений.
  2. Пользовательские переменные. Каждый пользователь имеет свою домашнюю директорию, где хранятся все важные объекты, к их числу относятся и конфигурационные файлы пользовательских переменных. Из их названия уже понятно, что применяются они под конкретного юзера в то время, когда он авторизован через локальный «Терминал». Действуют они и при удаленном соединении.
  3. Локальные переменные. Существуют параметры, применяемые только в рамках одной сессии. При ее завершении они будут навсегда удалены и для повторного старта все придется создавать вручную. Они не сохраняются в отдельных файлах, а создаются, редактируются и удаляются при помощи соответствующих консольных команд.

Конфигурационные файлы для пользовательских и системных переменных

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

Конфигурационные файлы Описание
/ETC/PROFILE Один из системных файлов. Доступен для всех пользователей и всей системы даже при удаленном входе. Единственное ограничение для него — параметры не принимаются при открытии стандартного «Терминала», то есть в этом расположении никакие значения из этой конфигурации работать не будут
/ETC/ENVIRONMENT Более широкий аналог предыдущей конфигурации. Он функционирует на системном уровне, имеет те же опции, что и предыдущий файл, но теперь без каких-либо ограничений даже при удаленном подключении
/ETC/BASH.BASHRC Файл только для локального использования, при удаленной сессии или соединении через интернет функционировать он не будет. Выполняется для каждого юзера отдельно при создании новой терминальной сессии
.BASHRC Относится к конкретному юзеру, хранится в его домашней директории и выполняется каждый раз при новом запуске терминала
.BASH_PROFILE То же, что .BASHRC, только для удаленного взаимодействия, например, при использовании SSH

Просмотр списка системных переменных окружения

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

Запуск терминала для работы с переменными окружения в Linux

    Запустите «Терминал» через меню или зажатием горячей клавиши Ctrl + Alt + T.

Список основных системных и пользовательских переменных окружения

Благодаря приведенной выше инструкции вы теперь знаете, как можно быстро определить все текущие параметры и их значения. Осталось только разобраться с основными. Обратить внимание хотелось бы на такие пункты:

Конфигурационные файлы Описание
DE Полное название — Desktop Environment. Содержит имя текущего окружения рабочего стола. В операционных системах на ядре Linux используются различные графические оболочки, поэтому приложениям важно понимать, какая сейчас активна. В этом и помогает переменная DE. Пример ее значений — gnome, mint, kde и так далее
PATH Определяет список директорий, в которых происходит поиск различных исполняемых файлов. Например, при действии одной из команд по поиску и доступу к объектам они обращаются к этим папкам для быстрого поиска и передачи исполняемых файлов с указанными аргументами
SHELL Хранит в себе опцию активной командной оболочки. Такие оболочки позволяют пользователю самостоятельно прописывать определенные скрипты и запускать различные процессы с помощью синтаксисов. Самой популярной оболочкой считается bash. Список остальных распространенных команд
HOME Здесь все достаточно просто. Данный параметр указывает путь к домашней папке активного юзера. У каждого юзера он разный и имеет вид: /home/user. Объяснение этому значению тоже легкое — эта переменная, например, используется программами для установления стандартного места расположения их файлов. Конечно, примеров существует еще огромное количество, но для ознакомления этого достаточно
BROWSER Содержит в себе команду для открытия веб-обозревателя. Именно эта переменная чаще всего и определяет браузер по умолчанию, а все остальные утилиты и ПО обращаются к указанной информации для открытия новых вкладок
PWD и OLDPWD Все действия из консоли или графической оболочки происходят из определенного расположения в системе. Первый параметр отвечает за текущее нахождение, а второй показывает предыдущее. Соответственно, их значения меняются достаточно часто и хранятся как в пользовательских конфигурациях, так и в системных
TERM Программ-терминалов для Linux существует большое количество. Упомянутая переменная хранит в себе информацию о названии активной консоли
RANDOM Содержит в себе скрипт, генерирующий каждый раз случайное число от 0 до 32767 при обращении к этой переменной. Такая опция позволяет другому софту обходиться без собственного генератора случайных чисел
EDITOR Отвечает за открытие редактора текстовых файлов. Например, по умолчанию вы можете встретить там путь /usr/bin/nano, но ничего вам не мешает изменить его на любой другой. За более сложные действия с тестом отвечает VISUAL и запускает, например, редактор vi
HOSTNAME Имя компьютера, а USER — имя текущей учетной записи

Запуск команд с указанием нового значения переменной окружения

Можете самостоятельно на время изменить опцию любого параметра, чтобы запустить с ним определенную программу или выполнить любые другие действия. В таком случае в консоли вам будет достаточно прописать env VAR=VALUE , где VAR — название переменной, а VALUE — ее значение, например, путь к папке /home/user/Download .

Запустить команду с присвоением нового значения переменной окружения в Linux

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

Временное значение переменной окружения в Linux

Установка и удаление локальных переменных окружения

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

  1. Запустите «Терминал» и напишите команду VAR=VALUE , после чего нажмите на клавишу Enter. Как обычно, VAR — любое удобное название переменной одним словом, а VALUE — значение. Записать новую локальную переменную окружения в Linux
  2. Проверьте действенность произведенных действий, введя echo $VAR . Строчкой ниже вы должны получить опцию переменной. Проверить работу локальной переменной окружения в Linux
  3. Удаляется любой параметр командой unset VAR . Проверить удаление можно также через echo (следующая строка должна быть пустой). Удалить локальную переменную окружения в Linux

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

Добавление и удаление пользовательских переменных

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

  1. Откройте пользовательскую конфигурацию через sudo gedit .bashrc . Мы предлагаем использовать графический редактор с обозначением синтаксиса, например, gedit. Однако указать можно любой другой, например, vi либо nano. Запустить пользовательский конфигурационный файл переменных окружения в Linux
  2. Не забывайте о том, что при запуске команды от имени суперпользователя потребуется ввести пароль. Ввод пароля для запуска конфигурационного файла пользователя в Linux
  3. В конце файла добавьте строку export VAR=VALUE . Количество таких параметров ничем не ограничивается. Кроме всего, вы можете изменить значение уже присутствующих переменных. Добавить переменную в конфигурационный файл пользователя в Linux
  4. После внесения изменений сохраните их и закройте файл. Сохранить изменения конфигурационного файла пользователя в Linux
  5. Обновление конфигурации произойдет после повторного старта файла, а делается это через source .bashrc . Перезапустить конфигурационный файл пользователя Linux
  6. Проверить активность переменной можно через ту же опцию echo $VAR . Проверить значение переменной файла пользователя в Linux

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

Создание и удаление системных переменных окружения

Осталось только затронуть третий класс переменных — системные. Редактироваться для этого будет файл /ETC/PROFILE, который остается активным даже при удаленном подключении, например, через известный многим менеджер SSH. Открытие конфигурационного элемента осуществляется примерно так же, как и в предыдущем варианте:

  1. В консоли введите sudo gedit /etc/profile . Запустить системный конфигурационный файл переменных в Linux
  2. Внесите все необходимые изменения и сохраните их, нажав на соответствующую кнопку. Редактировать системную конфигурацию переменных в Linux
  3. Перезапустите объект через source /etc/profile . Перезапустить системную конфигурацию переменных в Linux
  4. По окончании проверьте работоспособность через echo $VAR . Проверить работу системной переменной окружения в Linux

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

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

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

Общая информация

Переменные окружения (среды́) это переменные (хранящие значение типа Строка) которые оказывают влияние на работу множества утилит, функций, приложений. Переменные используются для адаптации поведения каждого приложения к конкретному Окружению в котором оно исполняется. Например, вы можете задать пути к файлам, языковые параметры, и т.д. Перечень переменных к которым обращается приложение вы можете посмотреть в его инструкции.

  • PATH = Список директорий (разделенных двоеточиями) в которых следует искать исполняемые файлы соответствующие командам.
  • HOME = Домашняя директория текущего пользователя.
  • LOGNAME = Имя текущего пользователя.
  • SHELL = Командный интерпретатор по-умолчанию для текущего пользователя.
  • EDITOR = Текстовый редактор по-умолчанию для текущего пользователя.
  • MAIL = Путь к каталогу, в котором должны храниться файлы входящей электронной почты текущего пользователя

Вы можете посмотреть переменные вашего текущего Окружения если откроете терминал и выполните команду ‘env’. To see your currently defined variables, open up your terminal and type the env command.

Переменные объявляются с помощью пары имя-значение: NAME=any string as value Variables are defined with name-value pairs: NAME=any string as value. Имя переменной обычно состоит из заглавных букв. The variable name is usually in capital letters. Всё что следует после "знака равно (=)" и до символа переноса строки воспринимается как значение переменной. Anything that follows the equal-sign is considered the variable’s value until the terminating line feed character. Переменные можно определить "на лету" (в любое время) выполнив в терминале нужную команду. Variables can be defined ad hoc in a terminal by writing the appropriate command. Для Интерпретатора Bash эта команда будет выглядеть следующим образом: export MYVAL="Hello world". In Bash this would be export MYVAL="Hello world". В этом случае переменная будет "жить"пока "жива" терминальная сессия. In this case the variable stays defined until the end of the terminal session.

Если вы хотите дополнить значение переменной вместо того чтобы полностью перезаписать его, то включите имя переменной в новое определение. If you want to append something to a variable, instead of overwriting the previous value, include the variable name into the new definition. Например для Bash: export PATH=$PATH:

/bin (E.g. in Bash: export PATH=$PATH:

/bin.)— Этот пример показывает как добавить путь к папке bin расположенной в домашней директории пользователя в переменную Окружения PATH This example shows how to append the bin directory in the user’s home directory onto the PATH environment variable.

Зная это мы приходим к пониманию, что нам необходимо отслеживать порядок запуска обоих системных процессов и изучить конфигурационные файлы которые они считывают. So, with this knowledge we understand that we need to consider both the starting order of system processes and the configuration files they read when they are started. См. страницу посвещенную конфигурационным файлам (DotFiles) или читайте дальше See the DotFiles page, or read on .

Поехали! Lets get to it! Есть два пути взаимодействия с Линукс: текстовая консоль или графический интерфейс There are two ways you can run your Linux box: from text console or graphical user interface .

Использование текстовой консоли

General

Environment variables are named strings available to all applications. Variables are used to adapt each application’s behavior to the environment it is running in. You might define paths for files, language options, and so on. You can see each application’s manual to see what variables are used by that application.

  • PATH = Colon separated list of directories to search for commands.
  • HOME = Current user’s home directory.
  • LOGNAME = Current user’s name.
  • SHELL = The user’s preferred shell.
  • EDITOR = The user’s preferred text editor.
  • MAIL = The user’s electronic mail inbox location.

To see your currently defined variables, open up your terminal and type the env command.

Variables are defined with name-value pairs: NAME=any string as value. The variable name is usually in capital letters. Anything that follows the equal-sign is considered the variable’s value until the terminating line feed character. Variables can be defined ad hoc in a terminal by writing the appropriate command. In Bash this would be export MYVAL="Hello world". In this case the variable stays defined until the end of the terminal session.

If you want to append something to a variable, instead of overwriting the previous value, include the variable name into the new definition. E.g. in Bash: export PATH=$PATH:

/bin. This example shows how to append the bin directory in the user’s home directory onto the PATH environment variable.

  1. Environment variables are inherited; i.e., the parent program sets the environment for the child process. You need to configure the parent’s settings so that it passes it on for all its children.
  2. Various shells and window managers are the parent programs we are looking for but each of them reads a different configuration file (dot file) when it starts.

So, with this knowledge we understand that we need to consider both the starting order of system processes and the configuration files they read when they are started. See the DotFiles page, or read on .

Lets get to it! There are two ways you can run your Linux box: from text console or graphical user interface.

Using text console

bash first reads /etc/profile to get values that are defined for all users. After reading that file, it looks for

Now the environment variables are ready to be used by the applications you start from the terminal.

Using graphical display manager

The Xsession reads

Graphical logins do not read a shell’s startup files (/etc/profile and

/.profile and so on) by default, but you as a user may choose to create a

/.xsessionrc file which does this.

Quick guide

Put all your transient shell settings (aliases, functions, shell options) in

Put all your environment variables in

Create or edit file

Create or edit file

This is a quicky and dirty approach! Not for the pedantic user.

Notes and exceptions

startx from terminal

If you start X Window (the GUI) from a text console, your environment variables are already defined by your login shell, as explained above. However, the window manager may read the same files again (see below). This is usually not a problem, but you may get unexpected results, such as PATH having all entries listed twice.

Shell cascading

If you start another shell within the login shell (yes it is possible), the second one is a non-login shell. It will not read named start-up files but searches non-login start-up script from user’s home directory instead. With Bash it is called

/.bashrc. To avoid specifying same values in two places usually the login-shell start-up script

/.bash_profile includes the

/.bashrc at the end of its execution. To implement include following into your

Terminal windows in X

If you start terminal / console window in graphical desktop environment it will be non-login terminal and it will read only the user’s non-login start-up script. For Bash this is

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *