Linux terminalinde çalışmak uzun süren komutlarda/işlemlerde işkenceye dönebiliyor, bazı durumlarda network’te yaşanacak küçük bir ping kaybı ile bağlantınız kopabiliyor ve beraberinde tüm o uzun süren işlem (bir iso dosyası çekiyor olabilirsiniz, bir kurulup script’i çalıştırmış olabilirsiniz) çöp olabiliyor. Daha da script üzerinden yapılan bazı kurulumlarda aynı işlemi tekrarlamamanız gerektiğinde spesifik olarak nerede durduğunu bulmanız gerekebiliyor.

Screen, bize terminal içerisinde sanal session’lar yaratıp bizim bağlantımız koptuğu takdirde bile onları ayakta tutarak bu tarz senaryoları yaşamamızı engelliyor.

Screen’in en güzel yanı yukarıdaki gibi terminal’e bağlandıktan sonra birden fazla session ile aynı anda işlem yapabiliyor olmak..

Screen içerisindeki kısayollar

Kısayol Açıklama
Ctrl+a “ Screen ile oluşturulan terminallerin listesini dönderir.
Ctrl+a A Bulunduğunuz terminalin ismini değiştirmenizi sağlar.
Ctrl+a 1 Herhangi bir sayı olabilir, o sayıda bulunan terminali getirir.
Ctrl+a Q Bulunduğunuz alan dışındaki bütün alanları kapatır.
Ctrl-a X Bulunduğunuz alanı kapatır.
Ctrl+a k Bulunduğunuz bölgedeki terminali kapatır.
Ctrl+a | Ekranı dikey olarak ikiye bölmeyi sağlar.
Ctrl+a S Ekranı yatay olarak ikiye bölmeyi sağlar.
Ctrl+a tab Bölünmüş ekranlarda terminaller arasında geçiş için kulanılır.
Ctrl+a c Bir ekran bölündüğünde boş gelir, o ekranda eğer seçilecek bir shell yoksa eklemek için kullanılır.

Kısayolların yanı sıra Screen yönetimi için önemli olan bazı komutlar bulunmaktadır.

Komut Açıklama
screen -ls Screen ile oluşturulan sessionları görüntülemek için kullanılır. Liste olarak sunar.
screen -r Liste üzerindeki bir session’a tekrar bağlanmak için kullanılır. -r parametresinden sonra session id yazılması yeterlidir.
screen -S Oluşturulacak session’ı isim ile oluşturmamızı sağlar.
screen -t Oluşturulacak session içerisindeki terminalin adını belirlemizi sağlar.
screen -D Bağlanılmış bir terminal üzerindeki bağı kopartmak ve ssh bağlantısından logout olmak için kullanılır.
# screen -ls
There is a screen on:
        61739.pts-0.lemp        (Attached)
1 Socket in /run/screen/S-root.

Ekran kapandığı durumda screen -ls komutu ile daha önce oluşturulan session’ları görebilirsiniz. -r parametresi ile session’a bağlandıktan sonra CTRL+a ” kısayolunu kullanarak o session içerisinde oluşturulmuş terminallerin listesine ulaşabilir ve her birine bağlantı sağlayabilirsiniz.

Benim önerim ekranda oluşturacağınız her region (bölge/alan) için bir session oluşturmak ve bu bölgelere oturumları bağlayıp onların içerisindeki terminallerde çalışmak. Bu sayede çoklu session&terminal çalışmalarında terminalleri session’lar içerisinde kaybetme durumunuz azalır.