Komutları aynı anda çalıştırmak için &komut ayırıcıyı kullanabilirsiniz .
~$ command1 & command2 & command3
Bu başlar command1, sonra arka planda çalışır. İle aynı command2. Sonra command3normal şekilde başlar .
Tüm komutların çıktısı bir araya toplanacak, ancak bu sizin için bir sorun değilse, çözüm bu olacaktır.
Daha sonra çıktıya ayrı bir göz atmak isterseniz, her komutun teeçıktısını, çıktıyı yansıtmak üzere bir dosya belirtmenize izin veren şekilde yönlendirebilirsiniz.
~$ command1 | tee 1.log & command2 | tee 2.log & command3 | tee 3.log
Çıktı muhtemelen çok karışık olacak. Buna karşı koymak için, her komutun çıktısını kullanarak bir önek verebilirsiniz sed.
~$ echo 'Output of command 1' | sed -e 's/^/[Command1] /'
[Command1] Output of command 1
Öyleyse hepsini bir araya getirirsek, şunları elde ederiz:
~$ command1 | tee 1.log | sed -e 's/^/[Command1] /' & command2 | tee 2.log | sed -e 's/^/[Command2] /' & command3 | tee 3.log | sed -e 's/^/[Command3] /'
[Command1] Starting command1
[Command2] Starting command2
[Command1] Finished
[Command3] Starting command3
Bu, muhtemelen göreceğiniz şeyin oldukça idealize edilmiş bir versiyonudur. Ama şu anda düşünebildiğim en iyisi bu.
Hepsini bir kerede durdurmak istiyorsanız, yerleşimi kullanabilirsiniz trap.
~$ trap 'kill %1; kill %2' SIGINT
~$ command1 & command2 & command3
Bu çalıştırır command1ve command2arka planda ve command3sen onu öldürmek sağlayan ön planda, içinde Ctrl+ C.
Eğer geçen süreci öldürdüğünüzde Ctrl+ biz interupt sinyali basarak gönderilen şeyin alımı ile çalıştırılmaya bağlı çünkü komutlar, yürütür + .Ckill %1; kill %2CtrlC
Sırasıyla 1. ve 2. arka plan sürecini öldürür (siz command1ve command2). Komutlarını kullanmayı unutma, komutlarını kullanman bittikten sonra trap - SIGINT.
Komutun tam canavarı:
~$ trap 'kill %1; kill %2' SIGINT
~$ command1 | tee 1.log | sed -e 's/^/[Command1] /' & command2 | tee 2.log | sed -e 's/^/[Command2] /' & command3 | tee 3.log | sed -e 's/^/[Command3] /'
Elbette ekrana bir göz atabilirsiniz . Konsolunuzu istediğiniz kadar ayrı konsollara bölmenizi sağlar. Böylece tüm komutları ayrı ayrı izleyebilirsiniz, ancak aynı anda.