27Jun

Kabuk Komut Dosyası Yazmaya Yeni Başlayanlar Kılavuzu 3: Daha Temel Komutlar &Zincirler

click fraud protection

Senaryoların nasıl oluşturulacağını, bağımsız değişkenleri nasıl kullanacağınızı ve döngüler için nasıl inşa edeceğinizi öğrendiniz.Şimdi, bazı daha temel komutları, metin dosyası manipülasyonunu ve girdileri ve çıktıları dosyaları ve diğer komutları yönlendiren bir göz atalım.

Bazı Temel Faydalı Komutlar

Zaten kabuk betiklerinin temel dökümünü ve for döngülerinin örnek tabanlı bir özetini verdik, ancak şu ana kadar kabuk betikleme rehberimizi kaçırdıysanız, bu makaleleri kontrol etmeyi unutmayın.

Komut satırı birçok nedenden ötürü harikadır ve yeniden yönlendirme en önemli kişilerden biridir. Eğer daha fazla harekete geçmek ya da başka bir şey için kullanmak için her komutanın çıktısını not etmek ve çoğaltmak zorunda kaldıysanız, çoktan çoktan deliye dönmüş olurduk. Yeniden yönlendirme, bu çıktıyı kullanmamıza ve kaydetmemize veya hemen başka bir komut için bir girdi olarak kullanmamıza izin verir. Dosyaları diğer komutlar için de girdi olarak kullanabiliriz.

Devam etmeden önce, birçok farklı yerde kullanılabilecek bazı temel komutları ele alalım.

instagram viewer

echo - Bu komut, argümanının tamamını komut satırı üzerinde çıktı olarak yazdırır( görüntüler)

boşluklu argümanlar

yankı argusu Gördüğünüz gibi normal karakterlerle işlem görmek için özel karakterlerin "kaçılması" gerekir. Bu, karakterin önünde bir ters eğik çizgi( \) kullanılarak yapılır. Tırnak işaretlerini kullanmak daha iyi bir fikirdir. Eko komutu 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 Tek ve Çift Tırnaklar Arasındaki Fark Neye Bakalım?

cat - Bu komut, metin dosyalarının içeriğini çıktı olarak görüntüler.

cat file_to_be_read

Bu metin dosyasını nano'da oluşturduğumuzu varsayalım:

Dosya üzerinde 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 dosyayı inceler ve belirli bir desenle eşleşen herhangi bir satıra yazdırır. Bu model "normal ifade" ye dayandığından, özlü bir satır eşleştirilecek çok sayıda desen ortaya çıkarabilir. Değil, yine de, arama için bir girebilirsiniz.

grep desen dosyası

Sizi temin ederim, grep daha fazlasını yapabilir, ancak şimdilik kolay şeyleri yapalım.

Çıktıları Yeniden Yönlendirme

Bir komutun çıktısını bir dosyaya yönlendirmek için, özel karakter, daha büyük simge( & gt;) kullanıyoruz.

Listenizi değiştirelim, olur mu? Aşağıdaki komutu girin:

echo pepperoni & gt;list

Eko'nun çizgiyi artık göstermediğini görebilirsiniz ve "liste" dosyasının içeriğine baktığımızda orada ne yankılandığımızı görüyoruz.

Ayrıca "liste" nin önceki içeriğinin kaldırıldığına dikkat edin. Tekrar deneyin:

Bu, bir dosyayı yeniden kullanmak istediğinizde kullanışlı olabilir, ancak çoğunlukla sadece var olan bir dosyaya eklemek istiyoruz. Bunun için iki ardışık büyük simgeden yararlanıyoruz:

sarı biber yankı & gt; & gt;list

Kolay! Bu komutu daha büyük bir liste oluşturmak için kullanalım, olur mu?

İşte gidiyoruz. Bence bu kadar çok meraklısı neden yapılacaklar listelerini ve benzerlerini yapmak için komut satırı kullanıyor, ancak daha da iyi görünüyor.

Bir komutun çıktısını alıp bir dosyaya koyalım:

ls -al / & gt;~ / rootlist

Dosyaların listesini yapmak, bunları düzenlemek ve ardından istediğiniz komutları çalıştırmak hiç bu kadar kolay olmamıştı.Ve komut satırında bu temel işlevleri yerine getirirken, bunlar da komut dosyalarında da işe yarıyor.

Boru Açma veya Zincirleme

Boru Açma, boru kullandığı için( | olarak adlandırılır; çoğu klavyede \ tuşuyla paylaşılır).Esasen, bir komutun çıktısını alır ve onu doğrudan diğerine gönderir. Bu şekilde çok spesifik bir istenen çıktı almak için uzun zincir komutlar oluşturabilir ve grep gibi komutlar için çok uygundur.

Birden fazla kez zincirlenebilir ve efektinin bir metin dosyasına girilmesine ihtiyaç duyulmaması nedeniyle daha genel olduğu dışında, "& gt;" benzeri çok şey görür.

Gördüğünüz gibi, grep büyük / küçük harf duyarlıdır. Davayı yoksaymak için "-i" bayrağını kullanabilirsiniz.

Girişleri Yeniden Yönlendirme

Ayrıca komutlardan dosyalardan girdileri az az sembol( & lt;) kullanarak da alabilirsiniz.

kedi

"Bir argüman kullanmaktan farklı birşey değil!" Diyebilirsiniz. Bu durumda doğru olurdun. Giriş yeniden yönlendirme gerçekten kullanışlı geldiğinde komutları birbirine zincirleme içinde.

Diyelim ki "peşin" olan herhangi bir kelimeyi geçerli "liste" dosyamızdan "revizyonlar" adında yeni bir dosyaya süzmek istiyoruz.

grep pep liste & gt;revizyonlar

Bu komutu yeniden yapalım ve bazı sıralama ekleyelim.

grep pep

Bu, "liste" giriş dosyasındaki arama terimi olarak "peşpeği" kullanır, alfabetik sırada sıralar( hepsi küçük harfli terimlerle birlikte tüm küçük harf terimleri), daha sonra bunu "revizyonlar" dosyasına çıkarır.

Sıralama komutunu göstermek için şu örneğe göz atalım:

Gördüğünüz gibi, "-f" bayrağını sıralama komutuna ekleyerek büyük / küçük harfleri yoksayabilirsiniz. Bu, metin dosyalarındaki satırları alfabe haline getirmenizi ve önemli olmadığında büyük harf kullanımını görmezden gelmeyi kolaylaştırır.

Basit Komut Dosyası

Aşağıdaki formda bir komut dosyası oluşturalım:

komut dosyası searchterm listfile

Bir liste dosyasını aramak, sonuçları sıralamak ve daha sonra bunları başka bir dosyaya çıkmak için terimi kullanacak ve grep'i kullanacağız.

Burada komut dosyasını test edeceğimiz dizin var:

Ve burada bir şeyin listesini oluşturup betiği çalıştırabiliriz.

İşte gidiyorsun! Normal ifadelerin kurallarını ne kadar çok öğrenecekseniz, bir arama komutunu daha doğru bir araya getirebilirsiniz. Ve, tırnaklarda geçerli olan her şey ilk argümanınızın yerini alabilir!

Sıralama karşılaştırıldığında alfabetik sıralamadan çok daha fazlasını yapabilirsiniz. Aşağıdaki komutlardan bazıları için man sayfasına bir göz atın:

  • tsort - daha gelişmiş bir topolojik sıralama işlevi
  • tr - belirli karakterleri diğer karakterlerle eşleştirmenize ve aralarında yazı yazmanıza olanak tanır.
  • uniq - benzersiz olmayan( okunan: tekrarlanan) dosyaları kaldırır
  • awk - dosya adlarındaki alanları ayırmak için kullanılabilecek gerçekten gelişmiş bir metin işleme dili / işlevi
  • kes, yapıştır / katıl - metin dosyalarından alanları izole etmek için kullanışlı komutlar ve eklemeyeni veriler sütunlara
  • look - grep gibi bakar ancak arama için bir sözlük dosyası( kullanıcı tarafından belirtilebilir) kullanır
  • wc - kelime sayısı, satır sayısı, karakter sayısı ve daha fazlasını bulmanızı sağlar

Bir göz attığımızdakomut satırlarında komut dosyalarında olduğu gibi yararlı olabilecek bazı temellerde bugün. Metin tabanlı veriler genellikle günlük kullandığımız şeylerin kalbindedir, bu yüzden onunla çalışabilir, arama yapabilir ve işleyebilirsiniz.

Favori komut dosyalarınızdan bazıları nelerdir? Metin tabanlı dosyalar için özel kullanım komut dosyaları var mı?Yorumları bildiğiniz şeyleri paylaşın!