
Owen Little
0
3421
253
Bahse girerim Python'da kabuk senaryoları yazabileceğini bilmiyordun..
Herhangi bir programcı veya sistem yöneticisi için, kabuk komut dosyası yazmak için çok önemli bir beceridir. Bu, sıkıcı görevleri otomatikleştirerek tutarlı ve tekrarlanabilir işlemlere dönüştürmenizi sağlar. Sorun biraz korkutucu olabilir, özellikle de çoğu kabuk komut dosyası lehçelerinin Python ve Ruby'nin beğenilerinde bulunan sözdizimsel incelikten yoksun olduğunu düşündüğünüzde.
Ben daha keskin olacağım. Çoğu kabuk komut dosyası ortalama boksörden daha çirkindir.
Ayrıca, UNIX benzeri platformlar için Bash, CSH, KSH ve (en sevdiğim) FISH de dahil olmak üzere çeşitli mermiler mevcut. Sonuç olarak, her platformda çalışan tutarlı, kabuk komut dosyaları yazmak zor olabilir..
Daha iyi bir yol olmalı, doğru?
Sh.py ile tanışın
Var. MakeUseOf için yazmadığım zamanlarda Python'da eğlence ve kar için kod yazıyorum. Python'u esnekliği, doğal güzelliği ve tasarım yoluyla iyi kod yazmayı zorunlu kılmasından dolayı gerçekten seviyorum. Kulağa hoş geliyorsa, ama zaten bu harika dili bilmiyorsan, neden Python programlamayı öğrenmek için bu beş harika web sitesini kontrol etmiyorsun Python Programlamasını Öğrenmek İçin En İyi 5 Web Sitesi Python Programlamasını Öğrenmek İçin En İyi 5 Web Sitesi İste Python programlama öğrenmek için? Tamamen ücretsiz olan Python'u çevrimiçi olarak öğrenmenin en iyi yolları:. ?
Birkaç ay önce sh.py adında, gerçekten bir Python programının sınırları içinde programları çağırmanıza, parametreleri geçirmenize ve çıktıları yönetmenize izin veren bu gerçekten harika kütüphaneye rastladım..
Peki, bu ne anlama geliyor? Basitçe söylemek gerekirse, kabuk komut dosyalarının tüm işlevselliğine sahip olmanız anlamına gelir; ancak okunması kolay bir dilde, doğada modülerdir ve nesne yönelimli programlamayı destekler. Serin, sağ?
Peki nasıl kullanıyoruz?
Senin hakkında birkaç varsayım yapıyorum. İlki, Linux, OS X veya FreeBSD kullanıyor olmanızdır. Şu anda olduğu gibi, sh.py Windows'da çalışmıyor. Ancak, gerekirse, bir Linux sanal makinesini her zaman yükleyebilirsiniz. Meslektaşım Justin Pot, bu konuyla ilgili oldukça yararlı bir makale yazdı, burada kontrol edebilirsiniz. Açık Kutu İşletim Sistemlerini Test Etmek ve Çalıştırmak İçin Sanal Kutuları Kullanma [Linux] Açık Kutu İşletim Sistemlerini Test Etmek ve Çalıştırmak İçin Sanal Kutuları Kullanma [Linux] Bazıları aşina olduğunuz, bazıları almadığınız çok çeşitli açık kaynaklı işletim sistemlerini deneyin. Hemen hemen tüm çabayı harcayan bir web sitesi olan Virtualboxes'ta gezinmeye başlayabilirsiniz… .
Yaptığım ikinci varsayım, Python'un (2.7 veya 3.2) yeni bir sürümünü çalıştırıyor olmanız ve PIP paket yöneticisinin kurulu olması. Durum böyle değilse, resmi Python belgelerine bakın.
Hepsi iyi? Sonra devam edeceğiz.
Kodlamaya Başlayalım
Bir terminalde, aşağıdaki komutu kullanarak sh.py'yi kurun.
sudo pip yükleme sh
Burada 'sudo' kullanmamızın nedeni, yeni Python paketleri eklemek için izinlerimizi yükseltmemiz gerektiğidir. Sh.py doğru kurulursa, terminalinizde aşağıdaki satırları göreceksiniz.
Sh-1.09.tar.gz sh in indirilmesi / açılması sh paketi için setup.py egg_info'nun çalıştırılması sh Toplanan paketleri yükleme: sh sh için setup.py'nın çalıştırılması sh başarıyla yüklendi sh Temizleme…
Bunu söylemezse, kurulumunuzun başarısız olması ihtimali yüksektir. Üzgün. Bu durumda izinlerinizi ve gerçekte PIP kurduğunuzu kontrol etmeyi deneyin. Hala orada değilse, Yığın Taşması (daha önce tartışılmış olan Örnek Kod Parçacıkları ile Başlangıç Programcısına Yardımcı Olabilecek 10 Web Sitesi İnternet editörümüz Saikat Basu tarafından Örnek Kod Parçacıkları ile Başlangıç Programcısına Yardımcı Olabilecek 10 Web Sitesi) veya MakeUseOf Cevapları.
Şimdi sıralanır, yeni bir dizin oluşturun. Tüm kodlarımızı yerleştireceğimiz yer burası. Bir metin editörü açın ve 'shtest.py' adlı bir dosya oluşturun. Burada, sadece yeni bir dosya oluşturacağız ve sonra içinde bulunduğumuz dizinin içeriğini listeleyeceğiz.?
Shtest.py içine şu satırları ekleyin.
#! / usr / bin / env python içe aktarma sh
sh.touch ('merhaba') yazdır (sh.ls ('- l'))
Burada basit şeyler. Bunu yıkalım..
#! / usr / bin / env python
Bu satıra has-bang adı verilir ve kabuğunuza bu dosyayı Python programı olarak açması talimatını verir. Bu, doğrudan Python (python shtest.py) ile açmak yerine, bir kabuk betiğini (./shtest.py) yaptığınız gibi açmanıza izin verir. Serin, sağ?
sh ithal
Bu satır birkaç dakika önce kurduğumuz sh kütüphanesini içeri aktarıyor. Bu olmadan devam edemeyiz, kodunuzda olduğundan emin olun!
( 'HELLO') sh.touch
Linux komutunu 'dokunma' ile tanıyor olabilirsiniz. Bu, belirttiğiniz dosya adı ile boş bir dosya oluşturur. Burada doğrudan Python'dan 'dokunma' diyoruz. Gördüğünüz gibi, bunu 'sh' ile ön plana çıkardık ve bunu 'merhaba' parametresinden geçiriyoruz.
Baskı (sh.ls ( '- l'))
Konsola metin çıkaran 'print' komutunu biliyor olabilirsiniz. Burada parametre olarak 'sh.ls'yi geçiyoruz. Bu, bir dizinin içeriğini listeleyen Linux ls programını çağırır. Ayrıca, bunu yürüttüğümüz dizinin içeriği hakkında daha ayrıntılı bilgi basan '-l' parametresini geçiyoruz..
Çalışıyor mu? Kendin için gör.
Şahin gözlü, o dizinde 'gitsh.py' adı verilen başka bir dosya olduğunu fark edeceksiniz. Orada ne olabilir ki?
Alt Komutlar
sh.py, önceden pişirilmiş olan popüler programlar için bazı kancalara sahiptir. Bunlar arasında git, sudo ve çok sayıda Linux yardımcı programı bulunmaktadır. Bunlar Python içinden bu servislerle etkileşime girmeyi kolaylaştırıyor.
Ne kadar kolay? Peki, size sadece üç satır kodda boş bir Git deposunu nasıl başlatacağınızı göstereceğim. Öncelikle 'gitsh.py' adlı bir dosya oluşturun ve en sevdiğiniz metin düzenleyicide açın.
İçine şu üç satırı yaz.
#! / usr / bin / env python, sh alma git print (git.init ())
Bunun çoğu size oldukça tanıdık gelmeli. 'Git'i' sh'den aldığımızı fark edeceksiniz. Bu sadece, her şeyi görmezden gelirken, bir modülden belirli bir işlevsellik parçasını içe aktardığımız anlamına geliyor.
Ondan sonra depomuzu başlattık..
Baskı (git.init ())
Parmak izi hakkında konuştuk. Devam etmeden '.sh' olmadan 'git' dediğimizi fark etmelisiniz. Bunun nedeni git işlevini özellikle 'sh' kütüphanesinden içe aktarmamızdır..
Ve bu konuda. Gitsh.py komutunu çalıştırdığımızda, terminalinizde aşağıdaki satırların göründüğünü görmeliyiz..
Sonuç
Sh.py'ye oldukça kolay bir girişti. Daha fazla bilgi edinmek için istekli iseniz, buradaki resmi belgelere bakın. Ancak, takılırsanız, bana aşağıya bir yorum yazmaktan çekinmeyin, size yardım etmeye çalışacağım.