как я могу выполнить более одной команды одновременно? (ОС = sun solaris)

как я могу выполнить более одной команды одновременно? (ОС = sun solaris)

как я могу выполнить более одной команды одновременно? (ОС = sun solaris)

решение1

Рад видеть, что вы готовы изучить shell, как я уже предлагал в другом вопросе. :-)

Чтобы перевести команду в фоновый режим и разрешить ей там выполняться:

yourcommand &

Чтобы вернуться к этому процессу (если запущен только один фоновый процесс):

fg

Чтобы вывести список всех фоновых процессов:

jobs -l

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

yourcommand && yourothercommand && youryetanothercommand

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

yourcommand; yourothercommand; youryetanothercommand

Также, команда screenстанет вашим новым лучшим другом. Она позволяет вам запускать процесс на своем собственном «экране», который вы можете отсоединить и снова присоединить позже, так что вы можете, например, подключиться к серверу с вашего рабочего компьютера, запустить экран и позволить длительной команде выполниться там, отсоединить сеанс, подойти к вашему рабочему ноутбуку, подключиться к этому серверу с его помощью и снова присоединить сеанс и посмотреть, что произошло тем временем.

В любом случае, все это те основы, которые я не должен вам объяснять; идите и прочитайте руководство, чтобы начать! Просто погуглитеbash учебники, если ваша оболочка bash. Вы, кажется, используете Solaris, так что ваша оболочка может бытьcsh, в этом случае поищите в Googleучебники csh. Они похожи друг на друга, но некоторые различия все же есть, например, в переменных окружения.

решение2

Вы не пытаетесь выполнить две команды одновременно, а скорее хотите запустить вторую команду на выходе первой. SvenW уже упоминал аргумент -exec для find, но другой способ - использовать xargs, который позволяет использовать вывод переданной по конвейеру команды в качестве аргумента для другой команды.

Предположим, вы хотите найти все каталоги с именем foo и просмотреть разрешения для всех файлов в этом каталоге:

найти / -тип d -имя 'foo' -print0 | xargs -0 ls -la

(При необходимости см. страницы руководства find и xargs для использования -print0 и -0.)

решение3

Пожалуйста, объясните, что вы хотите сделать, поскольку существует множество способов сделать это.

  • Вы можете объединить команды, например:command1; command2
  • Вы можете перевести длительные команды в фоновый режим с помощью &, напримерcommand &
  • Вы можете использовать screen (настоятельно рекомендуется man screen), чтобы одновременно запустить несколько виртуальных консолей, даже после отключения.
  • Вы можете писать скрипты оболочки
  • и т.д. и т.п.

Почитайте любые руководства для начинающих по Linux/Unix, там это объясняется очень подробно.

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

Связанный контент