Как выполнить одновременно несколько команд в Линукс, операционная система Linux курс лекций Алматы

Как выполнить одновременно несколько команд в Линукс, операционная система Linux курс лекций Алматы

Умение работать с Линукс — распространенное требование к соискателям во многих направлениях ИТ. В 2023 году роль данной ОС существенно возросла, потому очень важно познакомиться хотя бы с основами администрирования. При этом умение работать с Линукс — это умение использовать командную строку для решения задач. Сегодня мы расскажем о том, как перестать выполнять команды по одной, это входит в операционная система Linux курс лекций Алматы. И поможет вам стать айтишником в Казахстане в 2023 году.

Объединяем команды в последовательности с помощью амперсанда (&), операционная система Linux курс лекций Алматы

Прежде всего, давайте разберемся, как настроить последовательное выполнение нескольких команд. Введенных в терминал одной строкой, с разделителем. В данном случае в качестве разделителя используется амперсанд — «&». Метасимвол, имеющий особое значение в контексте командной оболочки Линукс. Детальнее о том, что такое метасимволы и для чего они нужны — расскажет наш безопасность Linux курс Алматы. Который позволяет быстро найти работу в ИТ в Казахстане.

Теперь давайте разберемся в том, как применять амперсанд для объединения команд в последовательность. Допустим, что вы хотите создать новый файл и тут же вывести на экран список содержимого папки. Конечно же, это можно сделать по очереди:

  • сначала ввести команду touch file1;
  • потом — ввести команду ls, чтобы убедиться в наличии вновь созданного файла.

Однако выполнить те же действия можно в одну строку — touch file1 & ls. В результате после нажатия клавиши Enter вы сразу увидите список содержимого папки. И среди прочего — файл с названием file1.

Однако что произойдет, если вдруг оболочка не сможет выполнить первую команду? Например, если вам будет отказано в доступе при попытке создать файл? В данном примере комбинация команд все равно попробуем вывести список содержимого, в числе которого не появится новый документ. То есть, вторая команда выполняется независимо от того, получилось ли выполнить первую.

Стоит отметить, что часто пользователю важно не просто выполнить все команды по очереди. А выполнять следующую в случае успешного выполнения предыдущей. В таком случае достаточно вместо одиночного амперсанда поставить двойной — «&&». Тогда если какая-то команда в очереди завершится ошибкой, дальнейшее выполнение будет также прервано. Детальнее об этом вам расскажут наши курсы Linux torrent Алматы. Однако на практике такой метод используется, к примеру, при выполнении команд apt update и apt upgrade в одну строку.

Объединяем команды в конвейер с помощью вертикальной черты (|)

Стоит отметить, что в некоторых случаях мало просто выполнить цепочку команд по очереди. Иногда нужно сделать так, чтобы вывод одной команды обрабатывался другой командной. К счастью, специально на такой случай в UNIX-подобных операционных системах используется конвейер. Команды в конвейере Линукс разделяются вертикальной чертой — «|». И выполняются в порядке, в котором перечислены в командной строке.

В отличие от простого объединения с помощью амперсанда и двойного амперсанда, конвейер работает иначе:

  • выполняется первая команда с учетом введенных пользователем аргументов и опций;
  • полученный вывод первой команды передается на ввод второй команды;
  • вторая команда выполняется с указанными пользователем опциями и так далее.

Характерный пример — фильтрация вывода команд с помощью утилиты grep, а также сортировка с помощью утилиты sort. Использование конвейера позволяет сократить объемы времени, затрачиваемого на выполнение рутинных операций. А также — выделить из больших массивов информации важные сведения. При этом — без необходимости использовать текстовые редакторы с поиском по файлу. Кроме того, так можно обрабатывать данные, генерируемые в реальном времени, без сохранения на диск. Детальнее об этом вам помогут узнать Linux online курсы Алматы на платформе SEDICOMM University.

Команда SEDICOMM University: Академия Cisco, Linux Professional Institute, Python Institute.