.png)
как я могу выполнить более одной команды одновременно? (ОС = 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.