Способы взаимодействия с компьютером и что такое 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 — графическая оболочка, в которой есть, в частности, меню Пуск, рабочий стол и панель задач.

aa

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 настраивается, поэтому у всех выглядит по-разному;

$ и # — это значения по умолчанию.