Shell Scripting Hakkında Başlangıç Kılavuzu 3 Daha Fazla Temel Komut ve Zincirler
Senaryoların nasıl oluşturulacağını, argümanların nasıl kullanılacağını ve döngüler için nasıl oluşturulacağını öğrendin. Şimdi, daha basit bazı komutlara, metin dosyalarının manipülasyonuna ve girdi ve çıktıların dosyalara ve diğer komutlara yönlendirilmesine göz atalım..
Bazı Temel Faydalı Komutlar
Size zaten kabuk betiklerinin temel bir dağılımını ve döngüler için örnek tabanlı bir taslak verdik, ancak şu ana kadar kabuk betik kılavuzumuzu kaçırdıysanız bu makaleleri incelediğinizden emin olun..
Komut satırı birçok nedenden ötürü harikadır ve yönlendirme en öne çıkanlardan biridir. Daha fazla harekete geçmek veya başka bir şey için kullanmak için her komutun çıktısını not almak ve çoğaltmak zorunda olsaydınız, o zaman hepimiz çok önce çıldırırdık. Yönlendirme, bu çıktıyı kullanmamızı ve kaydetmemizi ya da hemen başka bir komut için girdi olarak kullanmamızı sağlar. Dosyaları diğer komutlar için girdi olarak da kullanabiliriz.
Devam etmeden önce, birçok farklı yerde kullanılabilecek bazı temel komutları ele alalım..
Eko - Bu komut, argümanlarının tamamını komut satırındaki çıktı olarak basar (görüntüler).
boşluklu yankı argümanı
Görebildiğiniz gibi, özel karakterlerin "kaçması" gerekir, bu yüzden normal davranırlar. Bu, karakterin önünde ters eğik çizgi (\) kullanılarak yapılır. Tırnak kullanmak daha iyi bir fikirdir. Echo komutu ayrıca değişkenlerle de çalışır.
Gördüğünüz gibi, tek ve çift tırnak farklı davranır. Daha fazla bilgi için Bash Kabuğundaki Tekli ve Çiftli Tırnaklar Arasındaki Fark Nedir??
kedi - Bu komut, metin dosyalarının içeriğini çıktı olarak görüntüler..
cat file_to_be_read
Diyelim ki bu metin dosyasını nano'da oluşturduk:
Dosyadaki cat komutunu kullandığımızda çıktı olduğunu görebiliriz..
grep - Bu, Linux'ta kullanabileceğiniz en güçlü ve kullanışlı komutlardan biridir. Global / Normal İfade Baskısı anlamına gelir. Bir dosyaya bakar ve belirli bir kalıpla eşleşen herhangi bir satırı yazdırır. Bu model “normal ifade” ye dayandığından, özlü bir çizgi eşleştirilecek çok sayıda model üretebilir. Olmasa da, aramak için bir sumru girebilirsiniz..
grep desen dosyası
Sizi temin ederim, grep daha fazlasını yapabilir, ama şimdilik daha kolay şeylere sadık kalalım..
Yönlendirme Çıktıları
Bir komutun çıktısını bir dosyaya yönlendirmek için, büyük harf (>) sembolünden özel bir karakter kullanırız..
Listemizi değiştirelim mi? Aşağıdaki komutu girin:
echo pepperoni> liste
Yankının artık satırı göstermediğini görebilirsiniz ve “liste” dosyasının içeriğine baktığımızda, içinde neyi hatırladığımızı görürüz..
Ayrıca, önceki “list” içeriğinin kaldırıldığını unutmayın. Tekrar dene:
Bir dosyayı yeniden kullanmak istediğinizde bu yararlı olabilir, ancak genellikle sadece mevcut bir dosyaya eklemek istiyoruz. Bunun için iki ardışık sembolden daha büyük simgeler kullanıyoruz:
yankı sarı biber >> liste
Kolay! Daha büyük bir liste oluşturmak için bu komutu kullanalım.?
Oraya gidiyoruz. Sanırım bu kadar çok ineğin yapılacaklar listesi ve benzeri şeyler yapmak için komut satırını kullandığını görebiliyorsunuz..
Bir komutun çıktısını alıp bir dosyaya koyalım:
ls -al /> ~ / rootlist
Dosya listeleri yapmak, bunları düzenlemek ve daha sonra istediklerinize komut çalıştırmak hiç bu kadar kolay olmamıştı. Ve bu temel fonksiyonları komut satırında yaparken, komut dosyalarında da iyi çalışırlar..
Borular veya Zincirleme
Pipo, pipo kullandığı için adlandırılmıştır ((;; çoğu klavyede \ tuşuyla paylaşılmıştır). Temel olarak, bir komutun çıktısını alır ve doğrudan diğerine besler. Bu şekilde çok özel bir istenen çıktı elde etmek için uzun komut zincirleri oluşturabilirsiniz ve grep gibi komutlar için çok kullanışlıdır..
Birden çok kez zincirlenebilmesi dışında “>” gibi çok fazla hareket eder ve bir metin dosyasından geçmesi gerekmediğinden etkisi daha geneldir..
Gördüğünüz gibi, grep büyük / küçük harf duyarlıdır. “-İ” bayrağını büyük / küçük harfleri yok saymak için kullanabilirsiniz.
Girişleri Yönlendirme
Ayrıca komutlardan daha küçük olan sembolünü kullanarak dosyalardan giriş alabilirsiniz.<).
kedi < list
“Bu argüman kullanmaktan farklı değil!” Diyebilirsiniz. Bu durumda haklısın. Girişin yeniden yönlendirilmesinin gerçekten işe yaradığı yerler, birlikte komutları zincirlemektir.
Diyelim ki içinde "pep" olan herhangi bir kelimeyi mevcut "list" dosyamızdan "revizyon" adı verilen yeni bir dosyaya filtrelemek istiyoruz..
grep pep revizyonları
Hadi bu komutu tekrarlayalım ve biraz sıralama ekleyelim..
grep pep revizyonları
Bu, “list” giriş dosyasındaki arama terimi olarak “pep” yu kullanacak, alfabetik sıraya göre sıralayacaktır (tüm küçük harfli terimler ve ardından tüm küçük harfli terimler), sonra “revizyonlar” dosyasına gönderecektir.
Sort komutunu göstermek için, aşağıdaki örneğe bakalım:
Gördüğünüz gibi, “-f” bayrağını sort komutuna eklemek, büyük / küçük harfleri görmezden gelmenizi sağlar. Bu, metin dosyalarındaki satırları alfabetik olarak belirlememizi ve önemli olmadığı zaman büyük harfleri göz ardı etmemizi kolaylaştırır..
Basit Bir Senaryo
Aşağıdaki forma sahip bir komut dosyası oluşturalım:
komut dosyası searchterm listfile
Bir terim dosyası içinde arama yapmak, sonuçları sıralamak ve başka bir dosyaya çıkarmak için grep komutunu kullanır..
İşte betiği test edeceğimiz dizin:
Ve burada ne olduğuna dair bir liste oluşturabiliriz, sonra betiği çalıştırabiliriz..
İşte burda! Normal ifadelerin kurallarını ne kadar çok öğrenirseniz, bir arama komutunu o kadar doğru bir şekilde bir araya getirebilirsiniz. Ve tırnak içinde geçerli olan her şey, ilk argümanınız için ikame edilebilir!
Sıralama devam ettiği sürece, alfabetik olarak sıralamaktan daha fazlasını yapabilirsiniz. Aşağıdaki komutlardan bazıları için man sayfasına bakın:
- tsort - daha gelişmiş bir topolojik sıralama işlevi
- tr - belirli karakterleri diğer karakterlerle eşleştirmeni ve aralarında transkript etmeni sağlar.
- uniq - benzersiz olmayan herhangi bir şeyi kaldırır (read: duplicate)
- awk - dosya adlarındaki alanları ayırmak için kullanılabilecek gerçekten gelişmiş bir metin işleme dili / işlevi
- cut, paste / join - metin dosyalarından alanları ayırmak ve sütunlara yeni veri eklemek için yararlı komutlar
- look - grep gibi arama yapar, ancak arama için bir kullanıcı dosyası kullanır (kullanıcı tarafından tanımlanabilen)
- wc - Sözcük sayımı, satır sayımı, karakter sayımı ve daha fazlasını elde etmenizi sağlar
Bugün komut satırında olduğu kadar komut satırlarında da yararlı olabilecek bazı temelleri inceledik. Metin tabanlı veriler genellikle günlük olarak kullandığımız şeylerin kalbidir, bu nedenle onunla çalışabilme, arayabilmeyi ve işleyebilmenin anahtarıdır..
En sevdiğiniz komut dosyalarından bazıları neler? Metin tabanlı dosyalar için özel kullanımlı komut dosyalarınız var mı? Yorumlarda bildiklerinizi paylaşın!