Между нажатием Enter и выводом на экране работают несколько программ, и у каждой своя роль.
Терминал передаёт нажатия клавиш и показывает текст, который печатают программы. Команд он сам не понимает.
Строку читает оболочка — у нас это программа Bash. Она делит строку на слова: первое — имя команды, остальные получит сама программа, например ключи. По имени оболочка находит программу и запускает её. В uname -sr программа uname спросила ядро и напечатала его имя и выпуск, а терминал показал этот текст.
Когда программа закончила работу, оболочка печатает приглашение — строку student@ubuntu:~$ перед курсором. Приглашение значит: оболочка ждёт следующую команду. Набирать его не нужно.
Имя программы оболочка ищет буква в букву, строчные и заглавные различаются: uname и Uname для неё разные имена.
Ты набрал Uname -r и получил такой вывод. Что сделаешь?
Command 'Uname' not found, did you mean:
command 'uname' from deb coreutils (9.4-3ubuntu6.2)
Try: sudo apt install <deb name>
-
Терминал только показал текст, который напечатала оболочка. В новом терминале
Uname -rснова не найдётся: имя то же. -
До ключа дело не дошло: оболочка не нашла программу
Uname, и-rникто не прочитал. С тем же ключомuname -rработает. -
Сообщение называет пакет, где лежит похожая команда
uname, а она уже установлена:uname -rработает. Ставить нечего, нужно исправить имя.
Сообщение пишет оболочка: программы Uname она не нашла, строчные и заглавные буквы для неё разные. Ubuntu добавляет к нему подсказку о похожей команде и пакете, но при опечатке достаточно исправить имя и выполнить строку снова.
Главное в шаге
- Терминал передаёт клавиши и показывает текст, строку разбирает оболочка Bash.
- Оболочка ищет программу по точному имени и запускает её.
- Приглашение — знак, что оболочка ждёт новую команду.