Знакомство с командным интерфейсом GNU/Linux #
Андрей Михайлович Васильев, 2022
Версии презентации
Графический пользовательский интерфейс #
Пользователи сейчас приучены к графическому интерфейсу:
- Интерфейсы мобильных устройств, взаимодействие с помощью касания
- Интерфейсы компьютеров, взаимодействие с помощью клавиатуры и мыши
- Интерфейсы телевизоров, взаимодействие с помощью пульта
- Интерфейсы игровых консолей, взаимодействие с помощью контроллера
«Продвинутое» использование интерфейса компьютера #
- Использование раздельных графических пространств для разделения приложений по задачам
- Множество приложений, включая интерфейс ОС, предлагают использовать сочетания клавиш для быстрого выполнения действий
Что такое командный интерфейс #
CLI, command line interface, командный интерфейс — это способ взаимодействия с ОС, при которой пользователь вводит текстовые команды с клавиатуры, а приложение-интерпретатор их выполняет
Процесс взаимодействия выглядит следующим образом:
- Командный интерпретатор показывает приглашение для ввода
- Пользователь вводит текстовую команду и нажимает «Ввод»
- Командный интерпретатор обрабатывает строку
- Если команда была введена неверно, то интерпретатор сообщит об ошибке
- Если команда была введена корректно, то задача будет выполнена
- Пока команда выполняется, то ввод и вывод передаются команде
- После завершения команды интерпретатор опять показывает приглашение
Какие бывают командные интерпретаторы #
Командный интерпретатор - это обычное приложение, которое запускается средствами ОС, следовательно под каждой ОС может быть установлено множество таких интерпретаторов
Типичные представители интерпретаторов:
- 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