Управление средой Linux

LinuxBeginner
Практиковаться сейчас

Введение

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

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

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

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

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

Сначала создадим специальную директорию для наших практических упражнений (LabEx):

mkdir -p ~/project/env_lab

Перейдем в эту директорию:

cd ~/project/env_lab

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

env

Эта команда отображает список всех переменных окружения в текущем сеансе. Вывод будет похож на следующий:

PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
HOME=/home/labex
USER=labex
SHELL=/bin/zsh
...

Каждая строка содержит имя переменной, за которым следует знак равенства (=), а затем ее значение. Эти переменные определяют различные аспекты вашего окружения.

Чтобы просмотреть конкретную переменную окружения, вы можете использовать команду echo с именем переменной, предваряемым знаком доллара ($). Например, чтобы просмотреть значение переменной домашней директории:

echo $HOME

В результате должно отобразиться что-то вроде этого:

/home/labex

Аналогично, чтобы просмотреть текущего пользователя:

echo $USER

Ожидаемый вывод:

labex

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

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

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

export TEST_VAR="Hello, Linux"

Эта команда создает переменную с именем TEST_VAR и значением "Hello, Linux". Чтобы убедиться, что переменная была установлена правильно, используйте команду echo:

echo $TEST_VAR

Вы должны увидеть следующий вывод:

Hello, Linux

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

export VAR1="First" VAR2="Second"

Проверьте обе переменные:

echo $VAR1
echo $VAR2

Ожидаемый вывод:

First
Second

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

env | grep VAR

Эта команда отфильтрует вывод, показывая только строки, содержащие "VAR", например:

TEST_VAR=Hello, Linux
VAR1=First
VAR2=Second

Помните, что переменные, созданные таким образом, существуют только в текущем сеансе оболочки. Если вы откроете новое окно или вкладку терминала, эти переменные не будут доступны там.

Понимание и изменение переменной PATH

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

Сначала посмотрим на текущее значение переменной PATH:

echo $PATH

Вы увидите список директорий, разделенных двоеточием, похожий на следующий:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Когда вы вводите команду, система последовательно ищет в этих директориях соответствующий исполняемый файл.

Теперь создадим новую директорию для наших собственных скриптов и добавим ее в переменную PATH:

mkdir -p ~/project/env_lab/bin

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

export PATH=~/project/env_lab/bin:$PATH

Эта команда добавляет нашу новую директорию в начало существующего значения переменной PATH. Проверим изменения:

echo $PATH

Теперь вывод должен начинаться с нашей новой директории:

/home/labex/project/env_lab/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Создадим простой скрипт, чтобы проверить измененную переменную PATH:

cd ~/project/env_lab/bin

Создадим файл с именем hello с помощью редактора nano:

nano hello

Добавим в файл следующее содержимое:

#!/bin/bash
echo "Hello from my custom script!"

Сохраните файл, нажав Ctrl+O, затем Enter, и выйдите, нажав Ctrl+X.

Сделаем скрипт исполняемым:

chmod +x hello

Теперь из любой директории вы должны быть able to запустить скрипт, просто введя его имя:

cd ~/project/env_lab
hello

Вы должны увидеть следующий вывод:

Hello from my custom script!

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

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

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

Сначала создадим новую переменную окружения с вашим именем:

export MY_NAME="Linux User"

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

echo "Hello, $MY_NAME"

Должно быть выведено следующее:

Hello, Linux User

Переменные окружения также могут быть использованы с другими командами. Например, создадим директорию с именем, соответствующим нашей переменной:

mkdir -p ~/project/env_lab/$MY_NAME

Проверим, что директория была создана:

ls -la ~/project/env_lab/

В выводе вы должны увидеть директорию с именем "Linux User".

Теперь создадим простой скрипт, который использует переменные окружения:

cd ~/project/env_lab
nano greet.sh

Добавим следующее содержимое:

#!/bin/bash

## Используем существующие переменные окружения
echo "Hello, $MY_NAME"
echo "Your home directory is $HOME"

## Используем переменную, полученную от скрипта
echo "The current time and date is $(date)"

## Создаем локальную переменную
local_var="This is a local variable"
echo $local_var

## Экспортируем новую переменную из скрипта
export GREETING="Have a nice day!"
echo $GREETING

Сохраните и выйдите, нажав Ctrl+O, Enter и Ctrl+X.

Сделайте скрипт исполняемым:

chmod +x greet.sh

Запустите скрипт:

./greet.sh

Вы увидите вывод, похожий на следующий:

Hello, Linux User
Your home directory is /home/labex
The current time and date is Fri Aug 18 12:34:56 UTC 2023
This is a local variable
Have a nice day!

После запуска скрипта проверьте, существует ли переменная GREETING в вашем окружении:

echo $GREETING

Вы должны увидеть:

Have a nice day!

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

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

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

В Linux для установки постоянных переменных окружения используются файлы запуска оболочки, такие как .bashrc, .zshrc или .profile. Поскольку наша среда использует zsh, мы будем использовать файл .zshrc.

Сначала откроем файл .zshrc:

nano ~/.zshrc

Перейдите в конец файла (используйте Ctrl+End или стрелки на клавиатуре) и добавьте следующие строки:

## Пользовательские переменные окружения
export PERSIST_VAR="This variable will persist"
export PATH=$HOME/project/env_lab/bin:$PATH

Сохраните и выйдите, нажав Ctrl+O, Enter и Ctrl+X.

Чтобы применить эти изменения без закрытия и повторного открытия терминала, выполните файл:

source ~/.zshrc

Теперь проверьте, что новая переменная установлена:

echo $PERSIST_VAR

Вы должны увидеть:

This variable will persist

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

Для демонстрации давайте имитируем закрытие и повторное открытие терминала, запустив новую сессию оболочки:

zsh

Проверьте, доступна ли ваша переменная:

echo $PERSIST_VAR

Вы по-прежнему должны увидеть:

This variable will persist

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

exit

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

Для системных переменных окружения, которые должны быть доступны для всех пользователей, администраторы могут добавить их в файлы в /etc/profile.d/ или отредактировать /etc/environment.

Резюме

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

Основные концепции, которые были рассмотрены:

  • Просмотр переменных окружения с помощью команды env и отображение конкретных переменных с помощью echo $VARIABLE_NAME
  • Установка временных переменных окружения с использованием команды export
  • Понимание и изменение переменной PATH для управления тем, где Linux ищет исполняемые программы
  • Использование переменных окружения в командах и скриптах для повышения гибкости кода
  • Создание постоянных переменных окружения путем добавления их в файлы конфигурации оболочки

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

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