Сегодня большинство пользователей работают в графических интерфейсах (GUI — graphical user interface), где взаимодействие с компьютером осуществляется преимущественно через клики мышью по элементам интерфейса, таким как кнопки, меню и текстовые поля. Однако так было не всегда.

Изначально интерфейсы были текстовыми, и для выполнения задач необходимо было вводить текстовые команды в так называемой командной строке. Этот текстовый метод взаимодействия известен как интерфейс командной строки (CLI — command line interface).

CLI может показаться устаревшим для обычного пользователя, но он остается востребованным и часто более эффективным в ряде профессиональных IT-сфер. Это особенно актуально для серверов, включая веб-серверы, где разработчики могут удаленно разворачивать программные серверы и загружать файлы сайтов.

В операционных системах, особенно таких как GNU/Linux, существует множество разнообразных GUI. Они ориентированы на неподготовленного пользователя, чтобы он мог интуитивно разобраться, как пользоваться системой. Хороший GUI всегда должен быть понятным и доступным.

Сравнение графического интерфейса (GUI) и интерфейса командной строки (CLI) в Linux

Командная строка отличается. Здесь необходимо знать команды и особенности работы операционной системы. Однако CLI предлагает гораздо больше возможностей управления, чем GUI. Написание программного обеспечения проще без графического интерфейса, что делает CLI средством доступа к более широкому спектру системных программ.

Интерфейс командной строки, как и графический, представляет собой абстрактное понятие, не являясь конкретным программным продуктом. Существуют различные реализации каждой из концепций. В Linux популярными GUI являются оболочки для Gnome и KDE, в то время как в Windows графический интерфейс постоянно меняется с обновлением версий.

Что касается интерфейса командной строки в ОС на базе ядра Linux, наиболее часто его реализует программа Bash, которая относится к командным оболочкам.

Bash запускается в текстовом режиме или его эмуляторе — специальной программе, работающей в графическом режиме и представляющей собой текстовое окно. В последних версиях GNU/Linux такая программа-эмулятор называется "Терминал".

Между тем, в определенных дистрибутивах Linux можно переключиться из графического в текстовый режим, нажав Ctrl + Alt + F1 (вместо F1 можно использовать клавиши от F2 до F6). Возврат в графический режим обычно осуществляется через Ctrl + Alt + F7.

В текстовом режиме графические элементы, включая курсор мыши, отсутствуют, и взаимодействие с системой осуществляется только с помощью клавиатуры. Именно таким был процесс работы на компьютере до появления GUI.

Ранее терминалы представляли собой клавиатуры и мониторы, удаленные от компьютера. Терминалы подключались к ЭВМ через модемы или последовательные порты, обеспечивая многопользовательский доступ к ресурсам вычислительной машины. А комплект клавиатура+монитор, непосредственно подключенный к компьютеру, назывался консолью. И сегодня во многих областях используется терминальный доступ к общим ресурсам.

Подведем итог: основные преимущества интерфейса командной строки включают в себя:

  • Командная строка дает более быстрый доступ к функциям ОС, иногда это единственный способ запуска определенных процессов.
  • CLI потребляет меньше ресурсов по сравнению с графическим интерфейсом.
  • Бывают случаи, когда GUI вовсе не требуется, например, на серверных платформах.
  • С помощью командной оболочки возможна автоматизация операций и выполнение заранее подготовленных файлов с последовательностями команд.

Вопросы для самопроверки:

  1. Чем отличается интерфейс командной строки (CLI) от графического интерфейса (GUI)?
  2. Какие особенности CLI делают его более предпочтительным в некоторых случаях по сравнению с GUI?
  3. Какой программой чаще всего реализуется интерфейс командной строки в ОС на базе ядра Linux?

Программа курса:

  1. Описание курса
  2. История операционной системы Linux
  3. Основы лицензии GNU GPL и её преимущества
  4. Функции и структура ядра Linux-систем
  5. Структура и каталоги файловой системы Linux
  6. Основные типы файлов в системе Linux
  7. Интерфейс командной строки в Linux
  8. Командная оболочка Bash в Linux
  9. Использование параметров команд в Bash
  10. Использование Ctrl+C, Ctrl+D и Ctrl+Z
  11. Автодополнение и история команд в Bash
  12. Перенаправление ввода и вывода в Bash
  13. Документация Linux и Man-страницы
  14. Абсолютная и относительная адресация в Linux
  15. Команда ls - как просматривать каталоги в Linux
  16. Копирование, перемещение и удаление в Linux
  17. Жесткие и символьные ссылки в Linux
  18. Создание жестких и символических ссылок в Linux
  19. Права доступа к файлам и каталогам в Linux
  20. Изменение прав доступа к файлам с помощью chmod
  21. Использование шаблонов имен файлов в Linux
  22. Поиск файлов в Linux с помощью команды find
  23. Использование команды sudo в Linux
  24. Управление пакетами с помощью APT в Linux