Зарегистрируйтесь, чтобы продолжить обучение

Операционные системы Основы командной строки

В этом уроке мы начнем изучать командную строку с истории ее появления.

Как появилась командная строка

Все началось в 1970-х годах. В те времена не существовало ни привычной Windows, ни персональных компьютеров. Компьютерами называли мейнфреймы — большие машины, занимающие целые этажи зданий:

Мейнфрейм

В то же время на свет появилась Unix — операционная система, написанная на языке Си и предназначенная для работы на мейнфреймах. Ключевая ее особенность — это многопользовательский режим. Дело в том, что тогда компьютеры были редкостью, поэтому у каждого мейнфрейма было множество пользователей одновременно.

Unix позволяла подключаться к мейнфрейму через терминалы — специальные устройства, которые служили двум задачам:

  • Ввод информации (клавиатура)
  • Вывод информации (монитор)

При этом вся обработка выполнялась на отдельном сервере. Сам терминал выглядел так:

Мейнфрейм

Unix оказалась очень удачной операционной системой, но была платной и закрытой. Другими словами, никто не мог посмотреть ее исходный код.

Со временем на основе Unix создавались новые системы, которые теряли обратную совместимость. Другими словами, разработчикам приходилось писать отдельную программу под каждую операционную систему.

Такая ситуация усложняла жизнь всем, поэтому был принят стандарт POSIX (Portable Operating System Interface for UNIX). Сейчас это не один стандарт, а целое семейство стандартов. Оно описывает работу ключевых компонентов операционной системы и способов взаимодействия с ними из программ, написанных на Си.

Операционная система Linux

В те же времена начали активно развиваться сети. Сначала появились прообразы интернета, а затем и сам интернет. Компьютеры становились меньше, а серверов — все больше. В 1991 году студент Линус Торвальдс решил написать собственную операционную систему, которая совместима со стандартом POSIX.

Благодаря интернету, Линус собрал целое сообщество разработчиков, которые довольно быстро создали рабочую операционную систему под названием Linux и выложили ее исходный код в открытый доступ. С тех пор популярность Linux для серверного окружения быстро росла.

Но сам Linux — это только ядро операционной системы, которое не получится использовать без сопутствующих программ.

Когда Линус начал свою разработку, уже существовал проект GNU, основанный Ричардом Столлманом. В рамках этого проекта уже были разработаны свободные программы, составляющие основной инструментарий разработчика программ на языке Си:

  • Текстовый редактор Emacs
  • Компилятор языка Си gcc
  • Командная оболочка bash
  • Библиотека важнейших функций для программ на Си libc

Все эти программы были написаны для операционных систем, похожих на Unix. Поэтому в них использовались стандартные для UNIX системные вызовы — POSIX. Благодаря этому, Linux сразу начал поставляться с утилитами — например, архиваторами или командной оболочкой bash, которую мы начнем изучать в этом курсе.

Удивительный факт для тех, кто знаком только с Windows — Linux не имеет своей графической оболочки. Именно поэтому Linux может выглядеть очень по-разному, ведь на него можно поставить множество разных графических оболочек:

History Of OS

Сейчас Linux не используется в чистом виде. Вместо этого конечные пользователи имеют дело с дистрибутивами. Дистрибутив включает в себя:

  • Сам Linux
  • GNU-программы
  • Утилиты для установки и настройки Linux
  • Поддержку регулярного обновления самого ядра и его окружения

Существует очень много дистрибутивов, но некоторые из них особо популярны. Одни делаются энтузиастами, за другими стоят большие компании. Самый популярный дистрибутив — это полностью бесплатная операционная система Ubuntu:

Ubuntu

Также популярны разновидности Ubuntu:

  • Ubuntu Server, оптимизированный для работы на серверах
  • Xubuntu, оптимизированная для маломощных компьютеров

В отличие от Unix-подобных операционных систем, Windows изначально создавалась для однопользовательского режима и никогда не пыталась быть совместимой с POSIX. Ей удалось захватить рынок персональных компьютеров, но на серверах она почти не встречается, несмотря на существование Windows Server.

Windows редко ставят на серверы, потому что она платная, и совсем не совместима с POSIX. При этом у Windows есть командная строка cmd.exe, но ее функциональность отличается от командной строки Linux, в ней используются другие команды. Опыт работы с ней не сильно поможет при работе в Linux-окружении, с которым все равно придется столкнуться.

Мы рекомендуем осваивать Linux и его командную строку через полное погружение. Для этого надо установить Ubuntu основной системой или активировать ее внутри Windows.

Если вы пользуетесь macOS, то можно ничего не делать — эта операционная система основана на Unix и считается даже более POSIX-совместимой, чем Linux. У нее прекрасная командная строка и инструментарий для работы.

Далее в курсе все примеры работы с командной строкой мы будем показывать исключительно на POSIX-совместимых операционных системах.


Самостоятельная работа

Если у вас Windows, настройте окружение в соответствие с нашим гайдом на эту тему.

Когда вы будете добавлять пароль учетной записи Ubuntu, вы не увидите никаких символов — даже привычных *. Не стоит переживать — эта особенность терминала Linux продиктована соображениями безопасности.


Дополнительные материалы

  1. Установка Ubuntu основной системой
  2. Установка Ubuntu на Windows
  3. Книги по операционным системам

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы
профессия
от 25 000 ₸ в месяц
Разработка фронтенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 26 декабря
профессия
от 25 000 ₸ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 26 декабря
профессия
от 14 960 ₸ в месяц
Ручное тестирование веб-приложений
4 месяца
с нуля
Старт 26 декабря
профессия
от 25 000 ₸ в месяц
Разработка приложений на языке Java
10 месяцев
с нуля
Старт 26 декабря
профессия
от 24 542 ₸ в месяц
новый
Сбор, анализ и интерпретация данных
9 месяцев
с нуля
Старт 26 декабря
профессия
от 25 000 ₸ в месяц
Разработка веб-приложений на Laravel
10 месяцев
с нуля
Старт 26 декабря
профессия
от 39 525 ₸ в месяц
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
16 месяцев
с нуля
Старт 26 декабря
профессия
от 25 000 ₸ в месяц
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Автоматизированное тестирование веб-приложений на JavaScript
8 месяцев
c опытом
Старт 26 декабря

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»