Введение в терминал Linux

Введение

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

Если вы хотите получить максимум от этого учебника, вам потребуется Linux-сервер для подключения и использования. Если у вас его еще нет, вы можете быстро создать один, следуя этой ссылке: Как создать цифровой океанский капель. Этот учебник написан для сервера Ubuntu 22.04, но общие принципы применимы к любому другому дистрибутиву Linux.

Давайте начнем с того, что такое эмулятор терминала.

Эмулятор терминала

A terminal emulator is a program that allows the use of the terminal in a graphical environment. As most people use an OS with a graphical user interface (GUI) for their day-to-day computer needs, the use of a terminal emulator is a necessity for most Linux server users.

Вот несколько бесплатных, часто используемых эмуляторов терминала по операционным системам:

  • Mac OS X: Terminal (по умолчанию), iTerm 2
  • Windows: ConEmu, Windows Terminal, PuTTy
  • Linux: Gnome Terminal, Konsole, XTerm

Каждый эмулятор терминала имеет свой набор функций. В общем, вы можете ожидать, что современный эмулятор терминала поддерживает вкладки и выделение текста.

Оболочка

В системе Linux оболочка – это интерфейс командной строки, который интерпретирует команды пользователя и файлы сценариев, и указывает операционной системе сервера, что с ними делать. Существует несколько оболочек, которые широко используются, такие как оболочка 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 чувствительно к регистру, включая имена файлов и каталогов, команды, аргументы и опции. Если что-то не работает как ожидается, убедитесь в правильности написания и регистрации ваших команд!

Вот несколько примеров, которые охватывают основы выполнения команд.

Примечание: Если вы еще не подключены к серверу Linux, сейчас самое подходящее время войти. Если у вас есть сервер Linux, но возникают проблемы с подключением, следуйте по этой ссылке: Как подключиться к вашему Droplet с помощью SSH.

Без аргументов или опций

Для выполнения команды без каких-либо аргументов или опций введите имя команды и нажмите Enter.

Если вы запустите команду таким образом, она проявит свое стандартное поведение, которое может различаться от команды к команде. Например, если вы запустите команду cd без аргументов, вы вернетесь в домашний каталог текущего пользователя. Команда ls выведет список файлов и каталогов текущего каталога. Команда ip без аргументов выведет сообщение, показывающее, как использовать команду ip.

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

  1. 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. Вот несколько общих опций, которые пригодятся при использовании ls:

  • -l: вывод “длинного списка”, который включает дополнительные сведения, такие как разрешения, владелец, размеры файлов и метки времени
  • -a: список всех файлов в каталоге, включая скрытые (начинающиеся с .)

Чтобы использовать флаг -l с ls, используйте эту команду:

  1. ls -l

Обратите внимание, что список включает те же файлы, что и раньше, но с дополнительной информацией о каждом файле.

Как уже упоминалось ранее, опции часто можно объединять. Если вы хотите использовать опцию -l и -a вместе, вы можете выполнить ls -l -a, или просто объединить их в одну команду, как в этом примере:

  1. 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. Прочтите следующий урок в этой серии, чтобы узнать, как перемещаться, просматривать и редактировать файлы и их разрешения.

Source:
https://www.digitalocean.com/community/tutorials/an-introduction-to-the-linux-terminal