1 added
1 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Для работы с командной строкой понадобятся две вещи:<strong>терминал</strong>и<strong>командная оболочка</strong>. В этом уроке вы узнаете, как они работают и чем отличаются друг от друга.</p>
1
<p>Для работы с командной строкой понадобятся две вещи:<strong>терминал</strong>и<strong>командная оболочка</strong>. В этом уроке вы узнаете, как они работают и чем отличаются друг от друга.</p>
2
<h2>Терминал</h2>
2
<h2>Терминал</h2>
3
<p>Терминалом называют программу, которая эмулирует поведение железного терминала, состоящего из клавиатуры и монитора. В простейшем случае - это просто окошко с командной строкой внутри:</p>
3
<p>Терминалом называют программу, которая эмулирует поведение железного терминала, состоящего из клавиатуры и монитора. В простейшем случае - это просто окошко с командной строкой внутри:</p>
4
<p>Хороший терминал все же не ограничивается одним окном, а позволяет открывать новые терминалы в<strong>табах</strong>- по такому же принципу, как работают вкладки в браузере.</p>
4
<p>Хороший терминал все же не ограничивается одним окном, а позволяет открывать новые терминалы в<strong>табах</strong>- по такому же принципу, как работают вкладки в браузере.</p>
5
<p>Некоторые терминалы позволяют делать<strong>сплиты</strong>, то есть разделять окно на части. Этот довольно удобный механизм есть, например, в<a>iterm2</a>:</p>
5
<p>Некоторые терминалы позволяют делать<strong>сплиты</strong>, то есть разделять окно на части. Этот довольно удобный механизм есть, например, в<a>iterm2</a>:</p>
6
<p>Хорошие терминалы также умеют восстанавливать завершенную сессию, создавать профили под разные задачи и многое другое.</p>
6
<p>Хорошие терминалы также умеют восстанавливать завершенную сессию, создавать профили под разные задачи и многое другое.</p>
7
<h2>Командная оболочка</h2>
7
<h2>Командная оболочка</h2>
8
<p><strong>Командная оболочка</strong>- программа, через которую пользователь или администратор управляет операционной системой и установленными программами, используя командную строку. У этого понятия множество синонимов - shell, командный интерпретатор и командный процессор.</p>
8
<p><strong>Командная оболочка</strong>- программа, через которую пользователь или администратор управляет операционной системой и установленными программами, используя командную строку. У этого понятия множество синонимов - shell, командный интерпретатор и командный процессор.</p>
9
<p>Оболочка - это лишь средство для выполнения определенных задач, а не сама задача. Этим она отличается от многих других программ.</p>
9
<p>Оболочка - это лишь средство для выполнения определенных задач, а не сама задача. Этим она отличается от многих других программ.</p>
10
<p>Внутри терминала пользователь передает системе строки:</p>
10
<p>Внутри терминала пользователь передает системе строки:</p>
11
<p>Каждая строка - это команда, которую система должна выполнить. После ввода команды обязательно нажать Enter, только в этом случае команда отправится на исполнение. После нажатия Enter отредактировать команду уже нельзя.</p>
11
<p>Каждая строка - это команда, которую система должна выполнить. После ввода команды обязательно нажать Enter, только в этом случае команда отправится на исполнение. После нажатия Enter отредактировать команду уже нельзя.</p>
12
<p>Оболочка запускается внутри терминала и приглашает ко вводу команд:</p>
12
<p>Оболочка запускается внутри терминала и приглашает ко вводу команд:</p>
13
<p>Рассмотрим фрагмент кода подробнее. Мы видим:</p>
13
<p>Рассмотрим фрагмент кода подробнее. Мы видим:</p>
14
<ul><li>Символ $ - он используется как разделитель</li>
14
<ul><li>Символ $ - он используется как разделитель</li>
15
<li>Слева от $ - настраиваемое сообщение для вывода, обычно это текущая директория</li>
15
<li>Слева от $ - настраиваемое сообщение для вывода, обычно это текущая директория</li>
16
<li>Справа от $ - команда, которую вводит пользователь</li>
16
<li>Справа от $ - команда, которую вводит пользователь</li>
17
</ul><p>Все примеры в дальнейшем будут демонстрироваться без этого сообщения и символа. Рассмотрим для примера команду date, которая выводит текущую дату:</p>
17
</ul><p>Все примеры в дальнейшем будут демонстрироваться без этого сообщения и символа. Рассмотрим для примера команду date, которая выводит текущую дату:</p>
18
<p>Другой пример команды - комментарии. Как и в любых языках программирования, они ни на что не влияют. С их помощью мы просто описываем происходящее:</p>
18
<p>Другой пример команды - комментарии. Как и в любых языках программирования, они ни на что не влияют. С их помощью мы просто описываем происходящее:</p>
19
<p>Командная оболочка позволяет запускать на выполнение установленные программы. Но это далеко не все, на что она способна. Для комфортной работы полезно иметь:</p>
19
<p>Командная оболочка позволяет запускать на выполнение установленные программы. Но это далеко не все, на что она способна. Для комфортной работы полезно иметь:</p>
20
<ul><li>Автоматическое завершение имен программ и файлов</li>
20
<ul><li>Автоматическое завершение имен программ и файлов</li>
21
<li>Историю введенных команд</li>
21
<li>Историю введенных команд</li>
22
<li>Возможность перемещаться по файловой системе</li>
22
<li>Возможность перемещаться по файловой системе</li>
23
<li>Удобные горячие клавиши</li>
23
<li>Удобные горячие клавиши</li>
24
<li>Поддержку скриптов</li>
24
<li>Поддержку скриптов</li>
25
</ul><p>Далее в курсе мы раскроем многие из этих аспектов.</p>
25
</ul><p>Далее в курсе мы раскроем многие из этих аспектов.</p>
26
<p>Командные оболочки и терминалы бывают разные, хотя по умолчанию в большинстве операционных систем стоит<a>Bash</a>.</p>
26
<p>Командные оболочки и терминалы бывают разные, хотя по умолчанию в большинстве операционных систем стоит<a>Bash</a>.</p>
27
<p>Отдельно скажем, что командная оболочка и терминал - не одно и то же. Терминал - это программа, которая запускает командную оболочку внутри себя:</p>
27
<p>Отдельно скажем, что командная оболочка и терминал - не одно и то же. Терминал - это программа, которая запускает командную оболочку внутри себя:</p>
28
<p>Как вы увидите далее, командная оболочка - это полноценная среда программирования. Многие команды являются стандартными конструкциями любого языка программирования: переменными, циклами или условиями. Кроме того, некоторые команды являются программами, а некоторые - нет. В ближайших уроках для простоты мы будем говорить слово "команда", но потом объясним разницу.</p>
28
<p>Как вы увидите далее, командная оболочка - это полноценная среда программирования. Многие команды являются стандартными конструкциями любого языка программирования: переменными, циклами или условиями. Кроме того, некоторые команды являются программами, а некоторые - нет. В ближайших уроках для простоты мы будем говорить слово "команда", но потом объясним разницу.</p>
29
<p>Командную оболочку нередко называют<strong>реплом</strong>от английского<em>REPL (Read-Eval-Print-Loop)</em>. Это сокращение отражает способ взаимодействия командной оболочки с пользователем:</p>
29
<p>Командную оболочку нередко называют<strong>реплом</strong>от английского<em>REPL (Read-Eval-Print-Loop)</em>. Это сокращение отражает способ взаимодействия командной оболочки с пользователем:</p>
30
-
<ul><li><em>Read</em>- оболочка ждет ввода команды от ��ользователя</li>
30
+
<ul><li><em>Read</em>- оболочка ждет ввода команды от пользователя</li>
31
<li><em>Eval</em>- исполняет введенную команду</li>
31
<li><em>Eval</em>- исполняет введенную команду</li>
32
<li><em>Print</em>- выводит результат</li>
32
<li><em>Print</em>- выводит результат</li>
33
<li><em>Loop</em>- возвращаемся к первому пункту</li>
33
<li><em>Loop</em>- возвращаемся к первому пункту</li>
34
</ul><p>Этот процесс называется<strong>интерактивной сессией</strong>: после загрузки командная оболочка ждет ввода команды, исполняет ее, выводит результат и снова ждет ввода команды. Так происходит до тех пор, пока не будет дана команда на выход из терминала или выключение компьютера.</p>
34
</ul><p>Этот процесс называется<strong>интерактивной сессией</strong>: после загрузки командная оболочка ждет ввода команды, исполняет ее, выводит результат и снова ждет ввода команды. Так происходит до тех пор, пока не будет дана команда на выход из терминала или выключение компьютера.</p>
35
<p>REPL - широко распространенный способ взаимодействия с пользователем. В следующих курсах вы увидите, что он есть и у баз данных, и у языков программирования.</p>
35
<p>REPL - широко распространенный способ взаимодействия с пользователем. В следующих курсах вы увидите, что он есть и у баз данных, и у языков программирования.</p>
36
<p>Чтобы вам было удобнее выполнять задания к урокам, в среде Хекслета сразу запущено два терминала. Терминалы доступны в нижних вкладках под именами Terminal 1 и Terminal 2.</p>
36
<p>Чтобы вам было удобнее выполнять задания к урокам, в среде Хекслета сразу запущено два терминала. Терминалы доступны в нижних вкладках под именами Terminal 1 и Terminal 2.</p>
37
<p>Во время изучения и экспериментов достаточно легко допустить ошибки. Всегда внимательно читайте вывод, в случае паники переоткройте терминал. Это позволит начать все с чистого листа.</p>
37
<p>Во время изучения и экспериментов достаточно легко допустить ошибки. Всегда внимательно читайте вывод, в случае паники переоткройте терминал. Это позволит начать все с чистого листа.</p>