Андрей Михайлович Васильев, 2024
Версии презентации
Каждое хорошее интерактивное приложение должно показывать пользователю, что оно ожидает от него ввод команды
Типичный вид приглашения Bash:
[andrey@work-pc ~]$andrey — имя пользователя, с правами которого будут выполняться команды@ — разделительный знак, обозначающий наwork-pc — название компьютера, на котором находится компьютер~ — текущий рабочий каталог$ — уровень прав текущего пользователя, $ — обычный пользователь, # — суперпользовательДругое типичное приглашение:
bash-4.4$Давайте введём некорректную команду aoeucrg:
andrey@home-pc:~$ aoeucrgВ результате обработки команды Bash сообщит, что команда неверна:
bash: aoeucrg: команда не найдена
andrey@home-pc:~$Не стоит рассчитывать, что вы «ввели всё правильно» и «оно должно было правильно отработать» — всегда читайте результат работы команды
Классические приложения UNIX не выводят ничего, если они выполнили свою задачу без ошибок
Сразу за приглашением располагается поле для ввода текста, предоставляющее большое количество функций:
Последние 1000 введённых команд хранятся в истории
Зачастую при написании команды можно допустить ошибки, особенно когда команда занимает более трёх символов
Плохой подход к решению:
Правильный подход к решению:
date — получение информации о текущей дате и времени
andrey@home-pc:~$ date
Ср 02 сен 2020 11:19:38 MSKСр 02 сен 2020 11:19:38 MSK является результатом работы команды date
После выполнения команды командный интерпретатор опять запрашивает ввод:
andrey@home-pc:~$ date
Ср 02 сен 2020 11:19:38 MSK
andrey@home-pc:~$cal — приложение для отображения календарей на месяц или год
andrey@home-pc:~$ cal
Сентябрь 2024
Пн Вт Ср Чт Пт Сб Вс
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
3df — отображение информации о занятом пространстве на файловых системах
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% /bootfree — информация об использовании оперативной памяти
andrey@home-pc:~$ free
total used free shared buff/cache available
Mem: 32889440 6600560 6774420 337268 19514460 25557628
Swap: 16777212 0 16777212В самом простейшем случае команду можно описать следующим образом:
приложение аргумент-1 аргумент-2 аргумент-3Рассмотрим стартовую функцию приложения, написанного на языке Си:
int main(int argc, char *argv[]) {
...
}argc — количество переданных аргументовargv — массив строк, содержащих аргументыЗа логическую обработку аргументов отвечает само приложение
cal -3 — выводит три месяца, содержащих дату для отображенияcal -Y — вывести 12 месяцев, начинающих с месяца, содержащего датуfree -h — вывести информацию о памяти в удобном для человека форматеdf -h — вывести информацию о занятом пространстве на файловых системах в
удобном для человека форматеdate +%F — вывести текущую датуdate +%T — вывести текущий момент времениПо окончании работы эмулятор терминала можно завершить двумя способами:
Рекомендуется использовать последний подход:
Для окончания работы интерпретатора достаточно
exitCtrl-D (Нажать
Ctrl и не отпуская её нажать на клавишу d), послать сигнал завершения потока
ввода