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 command3
normal ş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 command1
ve command2
arka planda ve command3
sen 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 %2
CtrlC
Sırasıyla 1. ve 2. arka plan sürecini öldürür (siz command1
ve 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.