HTML Diff
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>