Linux İpuçları Ctrl + Z / Ctrl + C

Sevgili dostlar tekrar merhaba, kısa bir yazı ile birlikteyiz. Bir süredir, Linux üzerinde çalışıyorum ve bir yandan da bu platforma yönelik bilgilere göz atıyorum (daha önce de gerek WSL gerekse diğer konulara ilişkin bir çok paylaşım yapmıştım). Bu yazımda da, açıkçası daha önce dikkat etmediğim bir konu ile ilgili bir yazı sizler ile paylaşıyor olacağım o da CTRL+Z ile CTRL+C’nin farkı 🙂

Linux ile çalışan bir çok geliştirici ve DevOps çalışanları, zamanlarını çoğunu terminaller üzerinde geçirir ve genelde bir grafiksel kullanıcı arayüzüne sahip araçları da kullanmazlar. Bu iki komutun da kullanıldığı mekan terminallerdir.

Ctrl+C‘yi bir çoğunuz muhtemelen duymuşsunuzdur ve devam eden işi sonlandırdığını da biliyorsunuzdur. Bu konuda da haklısınız 🙂 Ctrl + C, temelde, terminal üzerinde çalıştırdığınız ve çalışmaya devam eden uygulamaya durdurma sinyali (“Intterupt Signal”, SIGINT) gönderir ve uygulamayı durdurur (SIGINT ne ki dediğiniz duyar gibiyim ama onun için de ayrı bir yazı hazırlamayı planlıyorum). Denemek için hemen bir terminal açıp uzun sürecek bir iş başlatabilirsiniz, örneğin, kullanıcı dizinine gidip,
“find”
komutunu çağırın ve Ctrl + C‘ye basın. Terminalde “^C” görür ve tekrar komut satırına dönersiniz. top veya ps ile de bakarsanız ilgili uygulamanın kapandığını görürsünüz. Elbette Ctrl +C’den önce başka bir terminal açıp, ps komutunu çağırırsanız da, find işlemini görürsünüz.

Şimdi gelelim Ctrl+Z‘ye. Bunun işlevi biraz daha farklı. Bu komut ile birlikte, devam eden uygulamayı askıya alıyorsunuz (“suspend“), bir diğer ifade ile çalışmasını donduruyorsunuz. Bunun için de ilgili işe durdurma sinyali gönderiyoruz (SIGTSTP, Allah’ım yine bu kısaltmalar) Ee peki ne oluyor? Açıkçası tekrar çalıştırılmayı bekliyor. Yine find komutu ile bu kullanıma bir göz atalım:
“find”
komutnu çağırın ve Ctrl + Z’ye basın.

“[2] + 1390 suspended find”

gibi bir ifadeyi terminalde görürsünüz. Peki arkada durdurulan işleri nasıl göreceğiz? Kısaca “jobs” komutu ile bunu görebilirsiniz.

❯ jobs
[1] – suspended find
[2] + suspended find

İlgili işi devam ettirmek için ise “fg”, foreground komutunu kullanabilirsiniz.
İlgili işi devam ettirmeden öldürmek için ise “kill %1” komutunu kullanabilirsiniz. Birden fazla iş durumunda, burada %1 yerine, jobs komutu ile gördüğünüz numarayı yazarsanız, ilgili iş sonlandırılır. Bu arada fg komutunu da benzer şekilde “fg %1” gibi kullanabilirsiniz.

Yazımı sonlandırmadan önce bir komuta daha değineceğim. Bu yukarıdaki ikisi kadar yaygın kullanılmıyor olabilir ama benzer bir işlevi var, o da Ctrl + \, bu komut da aslında Ctrl+C’ye oldukça benzer bir işlev gösteriyor ve ilgili işlemi sonlandırıyor, tek bir farkla, “core-dump” dosyasının da oluşturulmasına izin veriyor. Bu komut da aslında çıkma sinyali gönderiyor arka tarafta (SIGQUIT).

Sinyallere ilişkin ayrı bir yazıda da değineceğim üzere, shell üzerinden bu kısayollar ile yapabildiğiniz her şeyi, “kill” komutu ile de yapabilirsiniz.

Bir sonraki ipucunda görüşmek dileğiyle, bol kodlu günler diliyorum.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.