Андрей Михайлович Васильев, 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
3
df
— отображение информации о занятом пространстве на файловых системах
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@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
— вывести текущий момент времениПо окончании работы эмулятор терминала можно завершить двумя способами:
Рекомендуется использовать последний подход:
Для окончания работы интерпретатора достаточно
exit
Ctrl-D
(Нажать
Ctrl и не отпуская её нажать на клавишу d), послать сигнал завершения потока
ввода