Знакомство с командным интерфейсом GNU/Linux #

Андрей Михайлович Васильев, 2022

Версии презентации

Графический пользовательский интерфейс #

Пользователи сейчас приучены к графическому интерфейсу:

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

«Продвинутое» использование интерфейса компьютера #

  • Использование раздельных графических пространств для разделения приложений по задачам
  • Множество приложений, включая интерфейс ОС, предлагают использовать сочетания клавиш для быстрого выполнения действий

Что такое командный интерфейс #

CLI, command line interface, командный интерфейс — это способ взаимодействия с ОС, при которой пользователь вводит текстовые команды с клавиатуры, а приложение-интерпретатор их выполняет

Процесс взаимодействия выглядит следующим образом:

  1. Командный интерпретатор показывает приглашение для ввода
  2. Пользователь вводит текстовую команду и нажимает «Ввод»
  3. Командный интерпретатор обрабатывает строку
    • Если команда была введена неверно, то интерпретатор сообщит об ошибке
    • Если команда была введена корректно, то задача будет выполнена
  4. Пока команда выполняется, то ввод и вывод передаются команде
  5. После завершения команды интерпретатор опять показывает приглашение

Какие бывают командные интерпретаторы #

Командный интерпретатор - это обычное приложение, которое запускается средствами ОС, следовательно под каждой ОС может быть установлено множество таких интерпретаторов

Типичные представители интерпретаторов:

  • Windows: cmd, PowerShell
  • MacOS: bash, zsh
  • Linux: bash, zsh, fish, dash и ещё штук 20

Мы будем рассматривать BASH, Bourne Again Shell, в честь создателя оригинального приложения sh Стива Борна

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

Для работы с командным интерпретатором необходимы другие приложения — эмуляторы терминала

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

  • Windows-приложения: ConEmu, Mintty, Windows Terminal
  • Linux-приложения: gnome-terminal, console, terminator, xfce4-terminal, xterm
  • macOS-приложения: Terminal, iTerm2

Linux также обеспечивает возможность работы с интерпретатором без графического интерфейса. Они доступны с помощью сочетания клавиш Ctrl+Alt+F1 (F2, F3, …)

Разбор приглашения командного интерпретатора #

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

Типичный вид приглашения BASH:

[andrey@andrey-home-pc ~]$
  • andrey — имя пользователя, с правами которого будут выполняться команды
  • @ — разделительный знак, обозначающий на
  • andrey-home-pc — название компьютера, на котором находится компьютер
  • ~ — текущий рабочий каталог
  • $ — уровень прав текущего пользователя, $ — обычный пользователь, # — суперпользователь

Чтение ответов от команд #

Давайте введём некорректную команду aoeucrg:

andrey@andrey-home-pc:~$ aoeucrg

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

bash: aoeucrg: команда не найдена
andrey@andrey-home-pc:~$

Не стоит рассчитывать, что вы «ввели всё правильно» и «оно должно было правильно отработать» — всегда читайте результат работы команды

Классические приложения UNIX не выводят ничего, если они выполнились без ошибок

Базовое взаимодействие с командным интерпретатором #

При вводе команды её можно редактировать:

  • Клавиши влево и вправо позволяют передвигать курсор
  • Работают клавиши Delete и Backspace
  • Есть ряд других горячих клавиш, упрощающие передвижение курсора

Последние 1000 введённых команд хранятся в истории. Клавиши вверх-вниз позволяют двигаться по истории команд. Команду из истории можно редактировать

Решение проблемы с командой #

Плохо: при возникновении проблемы начать вводить команду заново

Хорошо: если в команде была ошибка, тогда надо вызвать из истории последнюю команду, отредактировать её и выполнить заново

Ряд рабочих команд #

date — получение информации о текущей дате и времени

andrey@andrey-home-pc:~$ date
Ср 02 сен 2020 11:19:38 MSK

cal и ncal — приложения для отображения календарей на месяц или год

andrey@andrey-home-pc:~$ ncal
    Сентябрь 2020
Пн     7 14 21 28
Вт  1  8 15 22 29
Ср  2  9 16 23 30
Чт  3 10 17 24
Пт  4 11 18 25
Сб  5 12 19 26
Вс  6 13 20 27

Ещё пара рабочих команд #

df — отображение информации о занятом дисковом пространстве

andrey@andrey-home-pc:~$ df -h
Файловая система Размер Использовано  Дост Использовано% Cмонтировано в
/dev/sdd3          111G          56G   56G           51% /
/dev/sde1          466G         384G   82G           83% /home
/dev/sdd2          454M          89M  362M           20% /boot

free — информация об использовании оперативной памяти

andrey@andrey-home-pc:~$ free
              total        used        free      shared  buff/cache   available
Mem:       32889440     6600560     6774420      337268    19514460    25557628
Swap:      16777212           0    16777212

Завершение работы терминала #

Для окончания работы терминала достаточно либо ввести команду exit, либо при пустой командной строке наберите сочетание клавиш Ctrl-D