Linux как запустить несколько команд одной строкой

Как запустить несколько команд Linux из одной строки

Практически для каждого администратора Linux командная строка становится основным инструментом для работы вместо любого графического интерфейса.

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

Возьмем, к примеру, возможность запуска нескольких последовательных команд из bash. Лучший пример этого — апдейт и апгрейд Ubuntu Linux. В командной строке bash вы можете сделать это, выполнив сначала команду sudo apt-get update, а затем команду sudo apt-get upgrade -y.

Но что, если бы вы могли объединить эти две команды в одну? Таким образом, вам не нужно сидеть сложа руки и ждать первой команды, прежде чем вводить вторую. К счастью, это на самом деле довольно просто. Есть два способа сделать это. Первый использует точку с запятой примерно так:

Единственная проблема этого метода заключается в том, что вторая команда будет запущена, даже если первая команда не будет выполнена. Могут быть случаи, когда вы не хотите, чтобы это произошло. В этих случаях вы запускаете команду:

Будут выполняться обе версии команды, но вторая форма будет выполнять вторую команду только в том случае, если первая завершится успешно.

Это очень важно, когда вы делаете такие вещи, как установка программного обеспечения из исходного кода. И вы можете сделать это с более чем двумя командами. Допустим, вы хотите обновить, обновить и автоматически удалить с помощью apt. Сделайте это с:

И вот как вы можете легко запустить последовательно несколько команд из bash.

Источник

📑 Запуск нескольких команд Linux одной составной командой

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

Возможность запуска нескольких команд Linux в одной строке существенно экономит время и является значительно более продуктивным.

Есть 3 способа запустить несколько команд Linux в одной команде:

cmd1; cmd2 «;» Оператор выполняет все команды независимо от того, были ли предыдущие неудачными или нет.
cmd1 && cmd2 Оператор «&&» выполняет вторую команду, только если предыдущая команда выполняется успешно.
cmd1 || cmd2 «||» Оператор выполняет вторую команду, только если предыдущая команда возвращает ошибку.
Читайте также:  Windows dvd usb tool win 10

1) Использование «;»

Независимо от того, успешно ли запущена первая команда cmd1 или нет, всегда запускается вторая команда cmd2:

2) Использование «&&»

Только если первая команда cmd1 выполнена успешно, запускается вторая команда cmd2:

3) Использование «||»

Только когда первая команда cmd1 не сработала, запускается вторая команда cmd2:

Использование этих разделителей — «;», «&&» и «||» позволяет в одной строке создать что-то типа bash-скрипта и существенно облегчить работу в командной строке.

Источник

Выполнение сразу нескольких команд в командной строке

В командной строке Linux можно объединять сразу несколько команд в одну строку (в один запуск). Например, вам нужно выполнить сначала одну команду, за ней вторую и так далее. Но вы хотите сразу вбить в командной строке одну инструкцию, которая все сделает. Для этого можно воспользоваться служебными символами.

Выполнение команд последовательно

Например, мы хотим выполнить сначала одну команду. Затем, когда она отработает (вернет управление в командную строку), нам нужно запустить вторую команду. Для этого служит символ точка с запятой ;. Таким образом, если вы выполните в терминале:

то сначала запустится первая команда mycommand1, а когда управление вернется в терминал, то запустится вторая и так далее.

Для теста попробуйте выполнить (в Ubuntu):

Это называется последовательным выполнением команд. Вне зависимости от того, как выполнилась предыдущая команда, вторая команда должна будет запуститься. Можно выполнять команды в зависимости от того, как отработала предыдущая для этого служат символы && и ||.

Зависимое выполнение команд

Символы && и || означают не что иное, как логическое И и ИЛИ. Поэтому когда мы пишем:

то это означает, что команда mycommand2 будет выполнена только в том случае, если команда mycommand1 была выполнена успешно. Каждая следующая команда выполняется только при успешном выполнении предыдущей.

Если выполнить конструкцию:

то команда mycommand2 будет выполнена только, если mycommand1 вернула ошибку. Каждая следующая команда запускается только если предыдущая вернула ошибку.

Источник

Выполнить объединить несколько команд linux в одной строке

Я пытаюсь объединить несколько команд linux в одной строке для выполнения операции развертывания. Например

9 ответов:

если вы хотите выполнить каждую команду только в том случае, если предыдущая удалась, то объедините их с помощью && оператор:

если одна из команд не выполняется, то все остальные команды, следующие за ней, не будут выполнены.

если вы хотите выполнить все команды независимо от того, были ли предыдущие неудачными или нет, разделите их точкой с запятой:

в вашем случае, я думаю, что вы хотите первый случай, когда выполнение следующей команды зависит от успеха предыдущего.

Читайте также:  Самые свободные дистрибутивы linux

вы также можете поместить все команды в скрипт и выполнять его вместо:

(обратные косые черты в конце строки существуют, чтобы оболочка не думала, что следующая строка-это новая команда; если вы опустите обратные косые черты, вам нужно будет написать всю команду в одной строке.)

сохраните это в файл, например myscript , и сделать его исполняемым:

теперь вы можете выполните этот сценарий, как и другие программы на машине. Но если вы не поместите его в каталог, указанный в вашем PATH переменные среды (например, /usr/local/bin , или на некоторых дистрибутивах Linux

/bin ), то вам нужно будет указать путь к этому скрипту. Если он находится в текущем каталоге, выполните его:

команды в скрипте работают так же, как команды в первом примере; следующая команда выполняется только в том случае, если предыдущая выполнена успешно. Для безусловного выполнения всех команд просто перечислите каждую команду в отдельной строке:

я обнаружил, что использование; для разделения команд работает только на переднем плане. например :

cmd1; cmd2; cmd3 & — будет выполняться только cmd3 в фоновом режиме, в то время как cmd1 && cmd2 && cmd3 & — выполнит всю цепочку в фоновом режиме, если нет ошибок.

чтобы удовлетворить безусловное выполнение, используя скобки решает это:

(cmd1; cmd2; cmd3) & — выполняет последовательность команд в фоновом режиме, даже если какой-либо шаг не удается.

вы можете разделить свои команды с помощью точки с запятой:

вы это имели в виду?

чтобы запустить их все сразу, вы можете использовать ключ трубопровода » | » вот так:

Если вы хотите выполнить все команды, независимо от того, выполняется ли предыдущая или нет, вы можете использовать точку с запятой (;) для разделения команд.

Если вы хотите выполнить следующую команду, только если предыдущая команда выполнена успешно, то вы можете использовать && для разделения команд.

в вашем случае выполнение последовательных команд, по-видимому, зависит от предыдущих команд, поэтому используйте второй пример, т. е. используйте && для присоединения к командам.

какова полезность только одного амперсанда? Сегодня утром я сделал пусковую установку на панели XFCE (в Manjaro+XFCE), чтобы одновременно запустить 2 менеджера паролей:

но он не работает как я хочу. Т. е., первое приложение запускается, но второе запускается только тогда, когда предыдущее закрыто : -/

однако я обнаружил, что (только с одним амперсандом):

и он работает так, как я хочу сейчас.

Источник

Как запустить одновременно несколько команд в Linux

Главное меню » Операционная система Linux » Как запустить одновременно несколько команд в Linux

Как запустить несколько команд в Linux в одно и тоже время?

Есть несколько операторов, доступных для запуска несколько команд в Linux в одно и тоже время, такие как «точка с запятой или ;», оператор «логический AND» и оператор «логический OR».

Читайте также:  Windows для стареньких ноутбука

Используйте оператор точку с запятой «;»

Оператор точка с запятой или «;» позволяет запускать несколько команд одновременно в Linux, когда команда отделяются символом «;».

Базовый синтаксис для оператора с запятой:

Не имеет значения, если предыдущая команда успешно или нет. Даже в случае выхода из строя одной команды, следующая команда будет выполнена. Это очень удобно в сценариях оболочки.

Использование логического оператора «&&»

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

Базовый синтаксис логического оператора:

Пример логического оператора.

В приведенном выше примере мы создали папку или каталог с именем «data» в разделе каталога «/tmp». Так как мы успешно создали каталог /tmp/data, мы можем в состоянии перейдите в каталог «/tmp/data».

Для того, чтобы перепроверить это условие, выполните одну и ту же команду еще раз, как показано ниже:

В приведенном выше вывода команды «mkdir /tmp/data» не удалась, так как уже существует. Система не позволяет запускать вторую команду.

Оператор логический AND рекомендуется над оператором точкой с запятой, так как это проверит состояние успеха или неудач предыдущей команды. Чтобы объяснить это, давайте рассмотрим пример.

  1. Перейдите в директорию /tmp/data1
  2. Удалите все файлы в нем.

Здесь, в приведенных выше примере выполнение команды “cd /tmp/data1;rm -rf *” параллельно привело к катастрофе, так как на системном каталоге /tmp/ data1 не существует, и поэтому вместо того, чтобы удалять файлы в /tmp/ data1/, будут удалены все наши файлы в текущем рабочем каталоге, которые находятся в /tmp/data. Чтобы избежать такой ситуации используйте ниже команды с логическим оператором “cd /tmp/data1 && rm -rf *”.

Здесь вторая команда не удалось, так как первая команда тоже не удалось.

Использование логического оператора OR «||»

В некоторых других случаях мы должны выполнить вторую команду, только если первая команда вышла неудачной. Чтобы справиться с этим делом мы используем логический оператор OR.

Основной синтаксис для логического оператора OR:

Пример логического оператора OR.

Здесь мы только создали каталог «/tmp/data1″ во второй команде, только если она не существует, которая проверяется в первой команде»[-d /tmp/ data1]».

Объединение нескольких оператор для выполнения нескольких команд в Linux

Мы можем также объединить несколько операторов для запуска нескольких команд в Linux.

В приведенной выше команде мы использовали несколько операторов. В случае, если файл существует, мы получим сообщение, наподобие этого «успешно открыл файл» иначе мы получим сообщение об ошибке «Не удалось открыть файл». Так мы можем объединить несколько операторов в один раз, чтобы запустить несколько команд в Linux.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Оцените статью