Как проверить, используется ли определенная оболочка в Linux

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

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

Введение

В этом практическом занятии (лабораторной работе) вы узнаете, как определить, какой оболочка (shell) в настоящее время используется в среде Linux. Вы изучите различные методы проверки активной оболочки, включая использование команды echo $SHELL для отображения оболочки текущей сессии, анализ файла /etc/passwd для проверки оболочки по умолчанию для входа пользователя и изучение запущенных процессов с помощью команды ps для идентификации процесса оболочки.

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") linux/UserandGroupManagementGroup -.-> linux/env("Environment Managing") subgraph Lab Skills linux/echo -.-> lab-558763{{"Как проверить, используется ли определенная оболочка в Linux"}} linux/cat -.-> lab-558763{{"Как проверить, используется ли определенная оболочка в Linux"}} linux/grep -.-> lab-558763{{"Как проверить, используется ли определенная оболочка в Linux"}} linux/ps -.-> lab-558763{{"Как проверить, используется ли определенная оболочка в Linux"}} linux/env -.-> lab-558763{{"Как проверить, используется ли определенная оболочка в Linux"}} end

Проверка текущей оболочки с помощью команды echo $SHELL

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

Среда LabEx использует zsh в качестве оболочки по умолчанию. Вы можете проверить это, посмотрев значение переменной окружения $SHELL. Переменные окружения - это динамические значения, которые влияют на поведение процессов на компьютере. Переменная $SHELL хранит путь к оболочке по умолчанию пользователя.

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

Введите следующую команду в терминале и нажмите Enter:

echo $SHELL

Вы должны увидеть вывод, похожий на этот, что указывает на то, что ваша текущая оболочка - zsh:

/usr/bin/zsh

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

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

Проверка оболочки пользователя в файле /etc/passwd

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

Этот конфигурационный файл - /etc/passwd. Он содержит информацию о всех пользователях системы. Каждая строка в файле /etc/passwd представляет учетную запись пользователя и разделена на поля, отделенные двоеточиями (:). Последнее поле в каждой строке указывает стандартную оболочку входа пользователя.

Чтобы просмотреть содержимое файла /etc/passwd, вы можете использовать команду cat. Поскольку нас интересует только строка для пользователя labex, мы можем объединить cat с командой grep, чтобы отфильтровать вывод. grep - это мощный инструмент для поиска текстовых шаблонов в файлах.

Введите следующую команду в терминале и нажмите Enter:

cat /etc/passwd | grep labex

Разберем эту команду на части:

  • cat /etc/passwd: Эта команда считывает содержимое файла /etc/passwd и выводит его на стандартный вывод.
  • |: Это символ "конвейер" (pipe). Он берет вывод команды слева (cat /etc/passwd) и передает его в качестве входных данных команде справа (grep labex).
  • grep labex: Эта команда ищет в полученных входных данных строки, содержащие строку "labex", и выводит эти строки.

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

labex:x:5000:5000:LabEx user,,,:/home/labex:/usr/bin/zsh

Эта строка содержит несколько фрагментов информации о пользователе labex, разделенных двоеточиями. Поля (в порядке следования):

  1. Имя пользователя (labex)
  2. Пароль (представлен символом x, фактический хэш пароля хранится в другом месте для безопасности)
  3. Идентификатор пользователя (UID) (5000)
  4. Идентификатор группы (GID) (5000)
  5. Информация о пользователе (поле GECOS) (LabEx user,,,)
  6. Домашний каталог (/home/labex)
  7. Стандартная оболочка входа (/usr/bin/zsh)

Последнее поле, /usr/bin/zsh, подтверждает, что стандартной оболочкой входа для пользователя labex действительно является zsh, что соответствует тому, что вы увидели с помощью команды echo $SHELL.

Нажмите Продолжить, чтобы перейти к следующему этапу.

Проверка процесса оболочки с помощью команды ps

На предыдущих этапах вы определили текущую оболочку (shell) с помощью команды echo $SHELL и проверили стандартную оболочку входа в файле /etc/passwd. Теперь давайте посмотрим на запущенные процессы в системе, чтобы увидеть сам процесс оболочки.

В Linux каждая запущенная программа представляет собой процесс. Команда ps (сокращение от "process status") используется для просмотра информации о текущих запущенных процессах.

Чтобы увидеть процессы, связанные с текущей сессией терминала, вы можете использовать команду ps с опцией -f, которая предоставляет полный формат списка.

Введите следующую команду в терминале и нажмите Enter:

ps -f

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

UID          PID    PPID  C STIME TTY          TIME CMD
labex       XXXX    XXXX  0 HH:MM pts/0    00:00:00 zsh
labex       YYYY    XXXX  0 HH:MM pts/0    00:00:00 ps -f

Рассмотрим столбцы:

  • UID: Идентификатор пользователя, владельца процесса (labex).
  • PID: Идентификатор процесса (Process ID), уникальный номер для каждого процесса.
  • PPID: Идентификатор родительского процесса (Parent Process ID). Это PID процесса, который запустил текущий процесс.
  • C: Использование ЦП (CPU utilization).
  • STIME: Время запуска процесса.
  • TTY: Терминал, связанный с процессом (pts/0 указывает на псевдотерминал, как тот, который вы используете).
  • TIME: Совокупное время использования ЦП процессом.
  • CMD: Команда, которая запустила процесс.

В выводе вы должны увидеть строку с CMD равным zsh. Эта строка представляет процесс оболочки zsh, который запускает текущую сессию терминала. Также вы увидите строку для самой команды ps -f, так как она также является запущенным процессом при ее выполнении.

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

Нажмите Продолжить, чтобы завершить этот практический урок.

Резюме

В этом практическом уроке вы научились проверять, какую оболочку (shell) вы в настоящее время используете в Linux. Сначала вы использовали команду echo $SHELL, чтобы отобразить путь к оболочке, запущенной в текущей сессии терминала. Это показало, что в среде LabEx по умолчанию используется оболочка zsh.

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