Введение
В этом руководстве, первом из серии, обучающей основам Linux, рассматриваются основы работы с терминалом, командной строкой Linux и выполнением команд. Если вы новичок в Linux, вам следует ознакомиться с терминалом, поскольку это стандартный способ взаимодействия с сервером Linux.
Чтобы получить максимальную отдачу от этого руководства, вам понадобится сервер Linux для подключения и использования. Если у вас его ещё нет, вы можете быстро создать его, перейдя по этой ссылке: Как создать дроплет Digital Ocean. Это руководство написано для Ubuntu 22.04 Server, но общие принципы применимы к любому другому дистрибутиву Linux.
Давайте начнем с объяснения того, что такое эмулятор терминала.
Эмулятор терминала
Эмулятор терминала — это программа, позволяющая использовать терминал в графической среде. Поскольку большинство людей используют операционную систему с графическим пользовательским интерфейсом (GUI) для повседневной работы, использование эмулятора терминала является необходимостью для большинства пользователей серверов Linux.
Вот некоторые из самых популярных бесплатных эмуляторов терминала по операционным системам:
- MacOS: Терминал (по умолчанию), iTerm2
- Windows: ConEmu, Терминал Windows, PuTTy.
- Linux: Gnome Terminal, Konsole, XTerm
Каждый эмулятор терминала имеет свой набор функций. Как правило, современный эмулятор терминала поддерживает вкладки и подсветку текста.
Оболочка
В системе Linux оболочка (shell) — это интерфейс командной строки, который интерпретирует пользовательские команды и файлы скриптов и сообщает операционной системе сервера, что с ними делать. Существует несколько широко распространённых оболочек, например, Bourne-Again (bash) и Z (zsh). Каждая оболочка обладает своим набором функций и сложностей, связанных с интерпретацией команд, но все они поддерживают перенаправление ввода и вывода, переменные, проверку условий и многое другое.
Это руководство написано с использованием оболочки Bourne-Again, обычно называемой bash, которая является оболочкой по умолчанию в большинстве дистрибутивов Linux, включая Ubuntu, Fedora и RHEL.
Командная строка
При первом входе на сервер вас обычно встречает сообщение дня (MOTD), которое обычно представляет собой информационное сообщение, содержащее различную информацию, например, версию дистрибутива Linux, установленного на сервере. После MOTD вы переходите в командную строку или приглашение оболочки, где можете вводить команды серверу.
Пользователь может настраивать информацию, отображаемую в командной строке, но вот пример командной строки Ubuntu 20.04 по умолчанию:
sammy@webapp:~$
Ниже приведено краткое описание синтаксиса командной строки:
- sammy: имя текущего пользователя
- webapp: имя хоста сервера
- ~: Текущий каталог. В bash, командной оболочке по умолчанию, ~ или тильда — это специальный символ, который заменяется путём к домашнему каталогу текущего пользователя. В данном случае это /home/sammy.
- $: Значок уведомления. Он обозначает конец командной строки, после которого появляется возможность ввода данных с клавиатуры.
Вот пример того, как может выглядеть командная строка, введенная как root и в папке /var/log:
root@webapp:/var/log#
Обратите внимание, что символ, завершающий командную строку, — это #, стандартный символ строки для root. В Linux пользователь root — это учётная запись суперпользователя, которая представляет собой специальную учётную запись, позволяющую выполнять системные административные функции. Это пользователь без ограничений, имеющий разрешение на любые действия на сервере.
Выполнение команд
Команды можно вводить в командной строке, указав имя исполняемого файла, который может быть двоичной программой или скриптом. Существует множество стандартных команд и инструментов Linux, предустановленных вместе с операционной системой, которые позволяют перемещаться по файловой системе, устанавливать программные пакеты и настраивать систему и приложения.
Экземпляр выполняющейся команды называется процессом. Когда команда выполняется в фоновом режиме (что является способом выполнения команд по умолчанию), пользователю необходимо дождаться завершения процесса, прежде чем вернуться в командную строку, после чего он сможет продолжить ввод команд.
Важно отметить, что практически всё в Linux чувствительно к регистру, включая имена файлов и каталогов, команды, аргументы и параметры. Если что-то работает не так, как ожидалось, дважды проверьте правильность написания и регистр букв в командах!
Вот несколько примеров, охватывающих основы выполнения команд.
Без аргументов и вариантов.
Чтобы запустить команду без аргументов и параметров, введите имя команды и нажмите Enter.
При запуске такой команды будет отображено поведение по умолчанию, которое варьируется от команды к команде. Например, если выполнить команду cd без аргументов, вы вернётесь в домашний каталог текущего пользователя. Команда ls выводит список файлов и каталогов в текущем каталоге. Команда ip без аргументов выводит сообщение, демонстрирующее, как использовать команду ip.
Чтобы вывести список файлов и каталогов в текущем каталоге, выполните команду ls без аргументов (их может и не быть):
lsПо аргументу
Многие команды принимают аргументы, или параметры, которые могут влиять на поведение команды. Например, наиболее распространённый способ использования команды cd — это передача одного аргумента, указывающего, в какой каталог нужно перейти. Например, чтобы перейти в каталог /usr/bin, где установлены многие стандартные команды, выполните следующую команду:
cd /usr/bin
Часть cd — это команда, а первый аргумент /usr/bin следует за ней. Обратите внимание, как обновился ваш текущий путь в командной строке.
Попробуйте выполнить команду ls, чтобы увидеть файлы, находящиеся в текущем новом каталоге.
ls
Output
…
grub-mkrescue sdiff zgrep
grub-mkstandalone sed zipdetails
grub-mount see zless
grub-ntldr-img select-editor zmore
grub-render-label semver znew
grub-script-check sensible-browserС опциями
Большинство команд принимают параметры, также известные как флаги или ключи, которые изменяют поведение команды. Параметры следуют за командой и обозначаются одним символом, за которым следует один или несколько параметров, представленных заглавными или строчными буквами. Некоторые параметры, состоящие из нескольких слов, могут начинаться с —, за которым следует текст флага.
Для примера работы опций рассмотрим команду ls. Вот некоторые распространённые опции, которые полезны при её использовании:
- -l: вывести “длинный список”, включающий дополнительные сведения, такие как разрешения, владелец, размер файла и временную метку.
- -a: Вывести список всех файлов в каталоге, включая скрытые файлы (начинающиеся с .)
Чтобы использовать флаг -l с ls, используйте следующую команду:
ls -lОбратите внимание, что список содержит те же файлы, что и раньше, но с дополнительной информацией о каждом файле.
Как упоминалось ранее, параметры часто можно группировать. Если вы хотите использовать параметры -l и -a вместе, выполните команду ls -l -a или просто объедините их следующим образом:
ls -laОбратите внимание, что в список включены скрытые каталоги . и .. из-за опции -a.
С вариантами и аргументами
При выполнении команд почти всегда возможно комбинировать параметры и аргументы.
Например, вы можете просмотреть содержимое /home, не обращая внимания на текущий каталог, выполнив команду ls:
ls -la /home
ls — это команда, -la — опция, а /home — аргумент, указывающий, какой файл или каталог нужно вывести. Команда должна вывести подробный список содержимого каталога /home, включая домашние каталоги всех обычных пользователей на сервере.
Переменные окружающей среды
Переменные окружения — это именованные значения, используемые для изменения способа выполнения команд и процессов. При первом входе на сервер по умолчанию задаются несколько переменных окружения, основанных на нескольких файлах конфигурации.
Просмотреть все переменные среды
Чтобы просмотреть все переменные среды, установленные для конкретного сеанса терминала, выполните команду env:
env
Вероятно, вывод будет обширным. Найдите запись PATH:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/gamesПеременная окружения PATH представляет собой список каталогов, разделённых двоеточиями, в которых оболочка ищет исполняемые программы или скрипты при выполнении команды. Например, команда env находится в /usr/bin, и её можно запустить без указания полного пути, поскольку путь к ней указан в переменной окружения PATH.
Просмотр значения переменной
Значение переменной окружения можно получить, добавив к имени переменной префикс $. Это расширит указанную переменную до её значения.
Например, чтобы вывести значение переменной PATH, можно использовать команду echo:
echo $PATH
Или вы можете использовать переменную HOME, которая по умолчанию установлена в соответствии с домашним каталогом пользователя, чтобы перейти в свой домашний каталог:
cd $HOME
Если вы попытаетесь получить доступ к переменной окружения, которая не установлена, она будет заменена пустой строкой.
Установка переменных среды
Теперь, когда вы знаете, как просматривать переменные среды, вам нужно научиться их устанавливать.
Чтобы задать переменную среды, вам нужно всего лишь начать с имени переменной, сразу после него поставить знак =, а затем указать ее желаемое значение:
VAR=value
Обратите внимание: если вы зададите существующую переменную, исходное значение будет перезаписано. Если переменная изначально не существовала, она будет создана.
В Bash есть команда export, которая экспортирует переменную для наследования дочерними процессами. Это позволяет использовать скрипты, ссылающиеся на переменную окружения, экспортированную из текущего сеанса.
При установке переменной вы также можете ссылаться на существующие переменные. Например, если вы установили программу в /opt/app/bin, вы можете добавить этот каталог в конец переменной окружения PATH с помощью следующей команды:
export PATH=$PATH:/opt/app/bin
Теперь проверьте, что /opt/app/bin добавлен в конец вашей переменной PATH с помощью echo:
echo $PATH
Имейте в виду, что такая настройка переменных среды действует только для текущего сеанса. Это означает, что если вы выйдете из системы или переключитесь в другой сеанс, внесенные вами изменения среды не сохранятся. Существует способ перманентного изменения переменных среды, но он будет рассмотрен в следующем руководстве.
Результат
Теперь, когда вы начали изучать терминал Linux (и несколько команд), у вас должна быть хорошая основа для дальнейшего расширения знаний о командах Linux. Прочитайте следующее руководство из этой серии, чтобы узнать, как перемещаться по файлам, просматривать и редактировать их, а также как настраивать права доступа.









