Способы взаимодействия с компьютером и что такое shell
GUI
GUI (Graphical User Interface, графический пользовательский интерфейс, “гуй”) — интерфейс, способный использовать графические иконки, а не только текст. Обычно управляется мышью. Знаком всем. GUI обеспечивает интуитивно понятный способ взаимодействия с компьютерными программами, используя визуальные элементы, такие как окна, иконки и кнопки.
GUI
CLI
CLI (Command Line Interface, “командная строка”) — интерфейс, который мог бы работать и на телетайпе: для работы с ним достаточно чего-то, что печатает текст.
CLI предпочитается многими разработчиками и системными администраторами за его гибкость и мощь в выполнении сложных задач с помощью простых команд.
CLI
TUI
TUI (Terminal User Interface) — интерфейс, который выглядит как графический, но оформлен текстом.
TUI сочетает в себе элементы CLI и GUI, предлагая текстовые интерфейсы, которые могут включать меню, окна и другие графические элементы, управляемые с клавиатуры.
TUI
Что такое shell
Определение
shell (“оболочка”) — программа, являющаяся самым внешним слоем, через который пользователь взаимодействует с компьютером.
Windows Shell (1995-наши дни)
Наример, Windows shell — графическая оболочка, в которой есть, в частности, меню Пуск, рабочий стол и панель задач.
Windows Shell
Unix Shell (1970-наши дни)
Unx shell — текстовая программа для операционной системы Unix и подобных ей, предназначенная для запуска других программ.
Unix shell мог бы работать и через телетайп.
Где найти Unix Shell?
Unix shell можно найти на любой популярной операционной системе:
- Linux — Unix-подобная система, там есть Unix shell.
- MacOS — это наследник Unix, достаточно открыть в нём терминал.
- Windows, начиная с 10, предоставляет Unix shell через
- Windows Subsystem for Linux (WSL),
- и Windows Subsystem for Linux 2 (WSL 2). Он предпочтительнее.
[Прим.: в Windows есть PowerShell; он не имеет никакого отношения к Unix shell]
Зачем знать Unix Shell
Unix shell полезно знать в следующих случаях:
- Вам нужно работать с Linux. Он есть повсюду: в микроэлектронике, в роутерах, на почти всех веб-серверах.
В Linux редко можно обойтись без командной строки. - Вам нужно делать что-то экзотическое на MacOS.
- Для автоматизации: во многих случаях Unix shell удобнее какого-нибудь Python.
Какой Unix Shell выбрать
Графических оболочек для Windows довольно мало: список альтернативных оболочек для Windows.
Для Unix даже популярных реализаций shell довольно много (по убыванию популярности):
- bash
- zsh
- dash
- fish
- ksh
У них всех разные языки и разное поведение.
POSIX Shell
Лучше рассматривать не какой-то конкретный shell, а стандарт POSIX, который задаёт, какими свойствами должен обладать каждый корректный shell на Unix.
Ссылка на сам стандарт. Он небольшой, имеет смысл в какой-то момент пролистать его весь: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
Все перечисленные ранее shell-ы, кроме fish, являются более-менее POSIX-совместимыми.
Пример взаимодействия с Unix Shell
Пример взаимодействия в Unix shell
prompt настраивается, поэтому у всех выглядит по-разному;
$ и # — это значения по умолчанию.