[Özgün yazı: www.linuxjournal.com/content/time-saving-tricks-command-line]
Bir arkadaşımın beni Linux'la tanıştırmasını, ardından komut satırında çalışırken komutların ve dosya yollarının tamamını yazmama gerek kalmadan sadece birkaç karakter yazınca Tab tuşunun kalanı tamamladığını göstermesini hatırlıyorum. Oldukça etkileyiciydi. Bence Tab tuşu ile otomatik tamamlama özelliğini herkes seviyor, çünkü neredeyse kabukta geçirilen her an kullanılan bir özellik. Zamanla birçok başka kısayol ve zaman kazandıran ipuçları keşfettim, bunların birçoğunu da Tab tuşu ile otomatik tamamlama özelliği kadar sık kullanıyorum.
Bu yazıda, sıklıkla karşılaşılabilecek durumlarda kullandığım ve benim için büyük farklar yaratan bazı ipucu setlerinin altını çizeceğim:
Yazıyı okuduğunuz sırada bir terminal ekranının açık olması en iyisi olur, böylelikle ipuçlarını aynı anda deneyebilirsiniz. Yazıda geçen bütün ipuçlarının Linux, UNIX ya da benzeri sistemlerde herhangi bir konfigürasyona ihtiyaç duyulmadan çalışması gerekir.
Screen Oturumlarıyla Çalışmak
Screen konusu daha önce Linux Journal tarafından ele alınmıştı(kaynaklar kısmına göz atın), fakat basitçe ifade etmek gerekirse, screen size bir terminal uygulamasının içinde birden fazla "pencere" kullanma imkanı sağlar. En iyi kısmı, çalışmakta olan bu pencerelere istediğiniz zaman bağlanabilmek ya da istediğiniz anda pencereden ayrılabilmektir. Böylelikle daha sonra geri döndüğünüzde tam olarak kaldığınız yerden işinize devam edebilirsiniz. Özellikle bir sunucuya uzaktan eriştiğinizde en kullanışlı araçlardan biridir.
Neyse ki, screen'in sağladığı avantajları kullanabilmek için onun uzmanı olmanız gerekmez. Onun en kullanışlı özelliğinden faydalanabilmek için sadece birkaç anahtar özelliği bilmeniz gerekir, onları da şöyle listeleyebiliriz:
Not: Yukarıdaki listede, Ctrl-a c ifadesi, Ctrl tuşuna basılı durumdayken a tuşuna basılmasını, ardından c tuşuna basılması anlamına gelir. Ctrl-a ikilisi komut anahtarı olarak adlandırılır, tüm screen komutları bu anahtar tuş ikilisi ile başlar.
Şimdi size tüm bunları gerçekçi bir örnek bağlamında göstereyim: Uzaktan eriştiğim yer sağlayıcı sunucumda yer alan bir Django web sitesini debug edeceğim, bunun için aşağıdaki adımları gerçekleştireceğim.
Elbette, bunların her birini tek tek de yapabilirdim, fakat her biri için açık ayrı bir bir pencerenin olması çok daha pratik. Her biri için gerçek birer terminal oturumu kullanabilirdim, fakat her ihtiyaç duyduğumda her biri için yeni bir terminal oturumu açmak gibi bir iş bıktırıcı ve yavaş olur. Screen, bunu çok daha hızlı ve kolay biçimde yapabilir.
Screen'i başlatmak: Screen oturumunu başlatmadan önce, konsolda çalışmalarınızın çoğunu yapacağınızı düşündüğünüz dizine geçmeniz iyi olur. Çünkü screen oturumu içinde açılacak olan tüm pencereler, screen oturumunu başlattığınız sırada bulunduğunuz dizinde açılacak. Benim örneğimde, öncelikle işlerimi yapacağım Django projesinin dizinine geçiyorum, böylelikle screen oturumu içinde pencereleri açtığımda gerekli dosyalar doğrudan önümde olacak.
Screen'i başlatmanın birden fazla yolu var, ben şunu öneririm:
screen -R web_sitem
Bu komutu ilk çalıştırdığınızda, "websitem" adında bir screen oturumu yaratır. Aynı komutu daha sonra kullandığınızda ise bu isimle oluşturmuş olduğunuz screen oturumuna yeniden bağlanmanızı sağlar(Bu komuttaki -R parametresi "reattach", yani oturuma yeniden bağlanmaya karşılık gelir).
Pencereler Oluşturmak: Şimdi screen'deyim, diyelim ki Django web sitemin konfigürasyon dosyasını düzenlemeye başlıyorum:
vim mysite/settings.py
Varsayalım bazı değişiklikler yaptım ve şimdi siteyi yeniden başlatmak istiyorum. Siteyi yeniden başlatacak komutu çalıştırabilmek için vim'i kapatabilir ya da arkaplanda çalışmaya yollayabilirdim, fakat tahminimce dosyada başka değişiklikler de yapmam gerekecek. Bu durumda screen komutu Ctrl-a c kombinasyonunu kullanarak yeni bir pencere oluşturmak çok daha kolay.
O anda yapmakta olduğunuz şeyden başka bir iş yapmaya başlamanız gerektiğinde, yeni bir pencere oluşturmak gayet kolay. Bu, özellikle komutları farklı dizinlerde çalıştırmanız gerektiğinde çok kullanışlı. Örneğin, /uzun/bir/dosya/yolu/betikler gibi bir dizinde kullandığınız betikler, /baska/bir/uzun/dosya/yolu/loglar gibi bir dizinde de log dosyalarınız varsa, bu iki dizinin arasında sürekli gidip gelmektense, iki dizin için de birer pencereyi açık tutup çalışabilirsiniz.
Bu örnekte, önce konfigürasyon dosyalarına göz atarak işe başladım. Arıdından, web sitesini yeniden başlatmak istedim. Sonra da bazı Django komutlarını çalıştırmak ve son olarak bazı loglara göz atmak istedim. Debug süresince bütün bu işlemleri defalarca yapmam gerekebilir. Dolayısıyla, her bir işlem için ayrı bir pencere oluşturmak mantıklı geliyor.
Yeni bir pencere oluşturmanın maliyeti oldukça düşük, bu yüzden hiç düşünmeden yapabilirsiniz. O anki işinizi bölmeyin, Ctrl-a c ile yeni bir pencere patlatın ve keyfinize bakın!
Pencereler arasında geçiş yapmak: Screen'de oluşturduğunuz pencereler sıfırdan başlayarak numaralandırılır. Açık bir pencereye, numarasını kullanarak geçiş yapabilirsiniz, örneğin açılmış ilk pencereye geçiş yapmak için Ctrl-a 0, ikinci pencereye geçiş yapmak içinse Ctrl-a 1 kısayolunu kullanabilirsiniz. Duruma göre, bir önceki ya da bir sonraki pencereye geçiş yapmak için Ctrl-a n veya Ctrl-a p kısayolları da kullanışlı olabilir.
Açık Pencerelerinizi Listelemek: Eğer bir süre sonra açık olan pencerelerden hangisinde olduğunuzu takip edememeye başlarsanız, Ctrl-a w ya da Ctrl-a " kısayolları ile açık pencereleri listeleyebilirsiniz. Bu kısayollardan ilki, screen'in durum çubuğunda (konsolun alt kısmında) acık pencereleri listelerken, bulunduğunuz pencereyi * işareti ile işaretli olarak gösterir. İkincisi ise, açık pencereleri daha kullanışlı bir menü gösterimi şeklinde sunar.
Bir oturumdan çıkmak ya da oturuma yeniden bağlanmak: Screen'in en çok zaman kazandırıcı özelliklerinden birisi, mevcut oturumlara yeniden bağlanabilmek. Çalışmakta olduğunuz screen oturumundan Ctrl-a d kısayolu ile temiz bir şekilde ayrılabilirsiniz, ama bunu yapmak zorunda değilsiniz. Basitçe terminal penceresini kapatırsanız da screen oturumundan ayrılmış olursunuz.
Screen oturumlarıyla ilgili en müthiş şey, oturumdan hangi yolla ayrılmış olursanız olun tekrar bağlanabilmenizdir. Gün sonunda uzaktan eriştiğiniz sunucuya bağlantınızı sonlandırmadan lokal bilgisayarınızı kapatsanız bile, ertesi gün geri döndüğünüzde, screen oturumunu başlatırken kullandığınız komutun aynısını, yani bizim örneğimizde screen -R web_sitem komutunu kullanarak screen oturumunuza geri dönebilirsiniz.
Farklı amaçlar için çoklu screen oturumları çalıştırmanız da mümkün. Çalışmakta olan screen oturumlarının tümünü şu komut ile listeleyebilirsiniz:
screen -ls
Eğer bir screen oturumunu sonlandırmadan, beklenmedik şekilde bağlantınızı kopardıysanız, bazen sizin hâlâ bağlı durumda olduğunuzu düşünebilir, ki bu durumda alışıldık "screen -R oturum_adı" komutuyla yeniden aynı oturuma bağlanmanıza izin vermez. Böyle bir durumda, mevcut tüm bağlantıları açık oturumlardan ayrılmaya zorlayacak -D parametresini kullanabilirsiniz:
screen -R web_sitem -D
Screen hakkında daha fazlasını öğrenmek: Daha fazla şey öğrenmek istiyorsanız, man sayfasına ve bu yazının Kaynaklar bölümüne göz atın. Kısayolların listesini görüntüleyebileceğiniz, screen'in dahili kopya sayfasına ise Ctrl-a ? kısayolu ile kolaylıkla göz atabilirsiniz.
Screen'in rakiplerinden birinden de bahsetmeliyim: tmux. Bu yazı için screen'i seçtim çünkü tecrübelerime göre, kontrol edemediğim sistemlerde daha erişilebilir. Yukarıda ele aldığım her şeyi tmux ile de yapabilirsiniz. Uzaktan erişeceğiniz sistemde hangisi bulunuyorsa onu kullanabilirsiniz.
Son olarak belirtmem gereken şu ki, screen'i en çok kullanacağınız durum, mesela bir SSH oturumuyla uzaktan eriştiğiniz bir sistemde çalışmanızdır. Lokal sistemde çalışırken, birden fazla sekme ile bir terminal penceresinde çalışmak muhtemelen daha pratik olacaktır. Tamı tamına aynı şey olmamakla birlikte, birbirine oldukça yakın şeyler.
Komut satırında düzenleme yapmak
Oldukça pratik olan birçok kısayol, komut satırında sizi çeşitli açılardan daha hızlı ve verimli hale getirebilir:
Geçmişten Bir Komutu Bulmak: Yakın zamanda çalıştırdığınız bir komutu tekrarlamak istiyorsanız, komutu bulana kadar birkaç kez yukarıya ok tuşuna basmanız yeterince kolay olabilir. Fakat aradığınız komutu birkaç adım önce değil de çok daha önce kullandıysanız bu yöntem epey kullanışsız olur. Özellikle aradığınız bir komutu, komutun içinde geçen bazı parçaları kullanıp Ctrl-r kısayoluyla bulmak genelde çok daha pratik bir yoldur.
Geçmişte bir komutu aramak için, Ctrl-r tuşlarına basın ve aradığınız komuttan hatırladığınız bir parçayı yazmaya başlayın. Yazdığınız sürece, yazdığınız komut parçacığına en uygun ve en son kullanılmış olan komut konsolda gösterilir. Bu, artırımlı bir aramadır, yani siz harfleri yazmayı ya da silmeyi sürdürdükçe aramanızla uyuşan komut dinamik olarak değişecektir.
Bir örnekle deneyelim. Diyelim ki aşağıdaki komutları dün çalıştırdım; yani kullandığım komutların tarihçesinde hâlâ yer alıyorlar ancak yukarı ok tuşuyla kolaylıkla erişebileceğim bir yakınlıkta değiller.
...
cd ~/dev/git/github/bashoneliners
. ~/virtualenv/bashoneliners/bin/activate
./run.sh pip install --upgrade django
git push beta master:beta
git push release master:release
git status
...
Diyelim ki virtualenv'i tekrar aktifleştirmek istiyorum. Bu komutu tekrar yazmak can sıkıcı, çünkü Tab tuşu ile otomatik tamamlama özelliğini kullandığım halde, komut yolunun her bölünüşünde klavyeden en azından birkaç karaktere basmam gerekecek. Bunun yerine, Ctrl-r tuşlarına basıp "activate" sözcüğünü yazmaya başlamam çok daha kolay.
Biraz daha karmaşık bir örnek olarak, diyelim ki bir git push komutunu tekrar çalıştırmak istiyorum, fakat hangisi olduğunu tam olarak hatırlayamıyorum. Ctrl-r tuşlarına basıyorum ve "push" yazmaya başlıyorum. Bu durumda en son kullandığım komutla eşleşecek ve o komut görüntülenecek, fakat benim aradığım ondan bir önceki. Aradığım komutu doğrudan bulmamı sağlayacak başka bir parçasını hatırlayamıyorum. Böyle bir durumda çözüm, Ctrl-r tuşlarına yeniden basmak, böylelikle arama için yazdığım aynı komut parçacığıyla eşleşen bir sonraki komut görüntülenecek.
Bu özellik, sadece klavyeden komutu yazma sürecini değil, aynı zamanda düşünme zamanını da azalttığı için son derece kullanışlı. Birçok boru(pipe) ile iç içe bir seri olarak kullandığınız sed, awk, Perl gibi araçları kullanarak bir metin dosyasını işlediğiniz o tek satırlık uzun komutları; bir sürü parametresi ve filtresiyle bir rsync komutunu; ya da "for" ve "while" kullandığınız karmaşık döngüleri hayal edin. Tüm bunları sadece Ctrl-r tuşlarına basıp hatırladığınız birkaç karakterini klavyeden girerek komut satırınıza tekrar getirebilirsiniz.
Not edilmesi gereken birkaç noktayı daha belirtmek gerekirse;
Bazı yeni alışkanlıklar edinmeniz halinde bu ipucu çok daha kullanışlı olabilir. Örneğin, sık kullandığınız bir dosya yolunu komut satırında girerken, bulunduğunuz dizine göre konumunu belirtmek yerine kök dizinden itibaren tam yolunu belirtmek. Bu sayede, yazdığınız komut bir sonraki sefer komut satırında hangi dizinde olursanız olun yeniden kullanılabilir.
Hızlı biçimde gezinmek ve düzenlemek: Komut satırında basit düzeltme işlemi, düzelteceğiniz komutun üzerinde yön tuşlarıyla gezinmeyi ve karakterleri klavyedeki Backspace ya da Delete tuşlarıyla silmeyi gerektirir. Üzerinden atlayıp ilerlenecek ya da silinecek birkaç karakterden daha fazla bir düzeltme işlemi için bu temel tuşları kullanmak oldukça yavaş olur. Aynı işlemleri, el altında bulunan birkaç ilginç kısayolu kullanarak çok daha hızlı biçimde yapabilirsiniz:
Bu şekilde parça parça silme işleminin daha hızlı olmasının yanı sıra bir de bonusu vardır: Bu şekilde silinen metin bir kenara kaydedilmiş olur, böylelikle daha sonra ihtiyaç duyulduğunda yapıştırılıp kullanılabilir. Aşağıdaki komut dizisini örnek olarak ele alalım:
git init --bare /path/to/repo.git
git remote add origin /path/to/repo.git
İkinci komutun son kısmında ilkiyle aynı dosya yolunun kullanıldığına dikkat edin. Bu yolu ikinci kez yazmaktansa, aşağıdaki tuş dizisini kullanarak ilk komuttan kopyalayıp yapıştırabilirsiniz:
Düzeltme kısayollarının bazıları, komut satırında hareket etmeyi kolaylaştıran aşağıdaki kısayollarla birlikte kullanıldıklarında çok daha kullanışlı olurlar:
Uzun bir komutun ilk sözcüklerini yanlış yazdığınızda satırın başına gitmek oldukça kullanışlıdır. Sola ve sağa yön tuşlarıyla gidebileceğinizden çok daha hızlı bir biçimde satırın başına gidebilirsiniz.
Uzun bir komutun ortasındaki bazı kısımları düzeltecekseniz, ileri ve geriye doğru atlamalar çok pratiktir.
Tümünü birleştirmek: Bu küçük ipuçlarını öğrenmenin yolu, bazı eski verimsiz alışkanlıklardan vazgeçmekten geçer:
Bir kere kullanmaya alışırsanız, bu kısayolları değişik koşullarda harmanlayıp kullanabileceğiniz ve uzun uzun yazmayı azaltacağınız birçok farklı durumu görmeeye başlayacaksınız.
Komut satırında düzenleme yapmak konusunda daha fazla bilgi edinmek: Eğer burada anlatılanlardan fazlasını öğrenmek istiyorsanız, bash'in man sayfasını görüntüleyin (man bash) ve "READLINE" sözcüğünü aratın, "Commands for Moving" ve "Commands for Changing Text" başlıklı kısımlara göz atın.
less Komutunu Kullanarak Dosyaları ya da man Sayfalarını Görüntülemek
less komutu, dosyaları görüntülemek için oldukça pratik bir araç, aynı zamanda birçok modern sistemde man sayfalarını görüntülemek için kullanılan ön tanımlı uygulama. Üstelik sizi hızlandırıp daha verimli olmanızı sağlayacak ve epeyce pratik olan birçok kısayol barındırıyor:
İleriye ve Geriye Doğru Arama Yapmak: Bir metnin içinde bulmak istediğiniz ifadeyi ileriye doğru aramak için / işaretinin ardından arayacağınız ifadeyi yazıp aratabilirsiniz. Geriye doğru aramak için ise / yerine ? kullanabilirsiniz. Aranacak olan ifade basit bir düzenli ifade(regex) de olabilir. Eğer terminal uygulamanız destekliyorsa, arama sonuçları gösterilirken metin rengi ve arkaplan rengi ters çevrilerek bulunan ifadeler öne çıkarılacaktır.
Arama sonuçları arasında ilerleyip bulunan bir sonraki ifadeye atlamak için N tuşuna basabilirsiniz. İleri ve geri atlamaların yönü, aramanın yönüne göredir. Yani, / işaretiyle ileri doğru arama yaptığınızda bulunan sonuçlar arasında ilerlemek için n tuşuna bastığınızda metin içinde ileriye doğru atlarsınız, ? işaretiyle geriye doğru arama yaptığınızda ise bulunan sonuçlar arasında ilerlemek için n tuşuna bastığınızda metin içinde geriye doğru atlarsınız.
Eğer vim metin düzenleyicisini kullanırsanız, evinizdeymiş gibi rahat edebilirsiniz çünkü bu kısayollar vim'de de aynı şekilde çalışır.
Arama işlemi ön tanımlı olarak büyük-küçük harf duyarlıdır, eğer less'i çalıştırırken -i parametresini kullanmadıysanız. less'i çalıştırdıktan sonra da, dosya okunurken, -i tuşlarına basarak büyük-küçük harf duyarlılığı modları arasında geçiş yapabilirsiniz.
Metinde Hızlı Biçimde Gezinmek: Metin üzerinde hızlı biçimde gezinmenizi sağlayacak bazı kısayollar burada.
İşaretler bırakmak ve o işaretlere atlamak: Aynı dosyanın içinde iki ya da daha fazla nokta arasında art arda atlamalar yapmanız gerektiğinde işaretçiler son derece kullanışlıdır.
Örneğin, başlangıcına yakın bir konumda bir servis başlatma bilgisi, orta kısımlarında ise bazı hataların yazıldığı bir log dosyasını görüntülediğinizi varsayalım. Neler olup bittiğini anlayabilmek için bu iki kısım arasında atlamalar yapmanız gerekir, fakat arama işlevini kullanarak ilgili parçaları bulmaya çalışmak, benzer sonuçlar arasından ilgili parçayı bulmaya çalışmak oldukça verimsiz olacaktır.
Uygun çözüm, bu iki lokasyona birer işaret yerleştirmektir, böylelikle doğrudan ikisinin arasında atlamalar yapabilirsiniz. İşaretçiler vim metin düzenleyicisinde de benzer şekilde çalışır: Bulunduğunuz konumu işaretlemek için önce m tuşuna, ardından da o işarete isim olarak vermek istediğiniz herhangi bir küçük harfe basabilirsiniz. Sonrasında ne zaman bu konuma dönmeye ihtiyaç duyarsanız, ' tuşuna basmanızın ardından yine aynı küçük harfe basmanız yeterli olacaktır. Benim örneğimde, servisin başlatıldığı konumu mb tuşlarına basark, hatanın görüldüğü konumu ise mh tuşlarına basarak işaretliyorum. Böylelikle 'b ve 'h tuşlarına basarak iki konuma da kolaylıkla atlayabileceğim. İşaret harfleri de baktığım konumlarla ilgili aklımdaki sözcüklerin ilk harflerinden (başlangıç ve hata) seçtim ki kolaylıkla hatırlayabileyim.
Kısayollar hakkında daha fazla bilgi edinmek: Daha fazlasıyla ilgileniyorsanız, less komutu için man sayfasını görüntüleyin. less'in dahili kopya sayfasına ise h tuşuna basarak kolaylıkla erişebilirsiniz.
Kendinize E-posta Göndertmek
Uzaktan erişim yoluyla bir sunucuda çalışırken, veriyi bilgisayarınıza çekmek oldukça zahmetli olabilir; örneğin bilgisayarınız bir NAT arkasında olabilir ve sunucunuz rsync ya da scp gibi araçlarla bilgisayarınıza ulaşamaz. Böyle durumlarda hızlı bir alternatif, veriyi e-posta yoluyla yollamak olabilir.
Kendinize e-posta göndertmenizin gerekeceği başka bir güzel senaryo ise, gerçekleşmesini beklediğiniz bir olay için bir alarmın tetiklenmesi ve e-posta gönderilmesidir. Örneğin kritik bir servisin ya da sistem bileşeninin çökmesi durumunda bir e-posta gönderilmesini tetikletebilirsiniz.
Bir Log Parçasını E-posta ile Göndertmek: Diyelim ki uzaktaki sunucunuzda bir servisin çökmesine neden olan hatanın logunu buldunuz ve bunu kendi bilgisayarınıza hızlıca kopyalamak istiyorsunuz. Dahası, bu log sayfalarca uzunlukta, yani terminal penceresinden kopyalayıp yapıştırmak epeyce zahmetli olacak. İlgili log parçalarını head, tail, grep gibi komutları kullanarak dışarı çıkardınız. Bu log parçasını bir dosyaya kaydedip rsync komutunu çalıştırarak bilgisayarınıza kopyalayabilirsiniz, aynı zamanda şu komutu çalıştırarak pipe yardımıyla logları basitçe kendinize e-posta ile göndertebilirsiniz:
mailx -s 'error logs' me@example.com
Sisteminize bağlı olarak, mailx komutu belki farklı olabilir, fakat parametreler büyük olasılıkla aynıdır: -s parametresi e-postanıza konu eklemenizi sağlar(zorunlu değildir), kalan argüman kısmı hedef e-posta adresleridir, komutun aldığı standart input ise iletinin gövdesi olarak kullanılır.
Uzun Bir İşlemin Ardından E-posta Alarmı Tetiklenmesi: Büyük bir dosyayı kopyalamak gibi uzun sürecek bir işlemi gerçekleştiriyorsanız, işlemin bitmesini beklemek ve bitip bitmediğini kontrol etmek can sıkıcı bir hal alır. Bu bekleyiştense, işlem bittiğinde kendinize bir e-posta gönderilmesini tetiklemek daha iyi. Örneğin:
uzun_suren_islem; date | mailx -s 'islem tamamlandi' me@example.com
Böylelikle, uzun süren işleminiz tamamlandığınızda, e-posta komutu çalışır. Bu örnekte, e-posta gövdesi basitçe date komutunun çıktısı olacaktır. Gerçek bir durumda, muhtemelen yapılan işlemle daha ilgili bir komutun çıktısını gönderebilirsiniz - mesela kopyalama işleminin yapıldığı dizinde ls -lh komutunun çıktısını ya da aşağıdaki gibi çoklu komutların çıktısını:
uzun_suren_islem; { df -h; tail some.log; } | mailx -s 'islem tamamlandi' me@example.com
Herhangi Tür Bir Olay İçin E-posta Tetiklenmesini Sağlamak: Hiç aşağıdaki durumlardan birini yaşadınız mı?
Ekrana gözlerinizi dikip beklemekten ya da beklediğiniz olayın gerçekleşip gerçekleşmediğini sürekli kontrol etmektense, tek satırlık şu komutu kullanabilirdiniz:
while :; do date; CONDITION && break; sleep 300; done; MAILME
Bu, aslında gerekli bir sonsuz döngü. Ortada yer alan CONDITION, uygun zaman geldiğinde döngüden çıkılmasını ve böylelikle e-posta komutunun çalışmasını sağlayacak. Döngünün hâlâ aktif olduğunu takip edebilmek için döngü içinde tarihi yazdırıyorum ve her çevrimde 5 dakikalık(300 saniye) bir uykuya gönderiyorum ki çalıştığım makinaya aşırı yüklenme olmasın.
CONDITION herhangi bir kabuk komutu olabilir, bu komutun çıkış kodu da döngüden çıkılıp çıkılmayacağını belirler. Yukarıda belirtilenlere uygun olarak, CONDITION yerine aşağıdakileri yazabilirsiniz:
touch -r /jar/dosyası/yolu/jardosyasi.marker
Yani, izlemek istediğiniz jar dosyasıyla aynı zaman damgasına sahip bir dosyayı önceden oluşturmuş olmalısınız. Orijinal dosya güncellendikten sonra find komutu başarıyla tamamlanacak ve döngüyü sonlandıracak.
Kısacası, uzun süren bir işlemin ya da harici bir olayın bitmesi için oturup beklemeyin. Bir sonsuz döngü kurun ve görmeniz gereken ilginç bir durum olduğunda size e-posta ile alarm gönderilmesini sağlayın.
Sonuç
Bu makaledeki ipuçlarının tümü Linux, Unix ve benzeri sistemlerde çalışması gereken standart özelliklerdir. Burada, işinizi yaparken size büyük kolaylık sağlayacak özelliklerinin çok küçük bir kümesini vurgulayabildiğim her bir alana yüzeysel olarak değinebildim. Kullanmaya bir kez alıştığınızda, bu küçük hileler sizi kabukta en az klavye kullanımıyla oradan oraya zıplayan gerçek bir ninja yapacak.
Kaynaklar
Konsolda şu komutları çalıştırın:
man screen
man bash
(ardından "READLINE", "Commands for Moving" ve "Commands for Changing Text" ifadelerini arayın)
man less
Janos Gyerik'in Komut Satırında Zaman Kazandıran İpuçları ile ilgili konuşması:
https://speakerdeck.com/janosgyerik/time-saving-tricks-on-the-command-line
"Power Sessions with Screen", Adam Lazur, Linux Journal, Ocak 2013:
http://www.linuxjournal.com/article/6340
"Status Messages in Screen", Kyle Rankin, Linux Journal, Mart 2011:
http://www.linuxjournal.com/article/10950
“Transfer Your Terminal with Screen” (Video), Shawn Powers:
http://www.linuxjournal.com/video/transfer-your-terminal-screen
Yorum Ekle (giriş yapın) |