Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi
Linux shell, kullanıcıdan aldığı komutları yorumlayıp işletim sisteminde çalıştıran komut yorumlayıcısıdır. Terminal penceresi shell’in kendisi değildir; terminal, shell ile etkileşim kurduğunuz arayüzdür. Shell ise yazdığınız komutu çözümler, gerekli programı bulur, girdileri ve çıktıları yönlendirir, ardından işlemin sonucunu gösterir.

Shell yalnızca tek tek komut çalıştırmaz. Değişken, koşul, döngü, fonksiyon, yönlendirme ve boru hattı gibi özelliklerle komut dosyaları hazırlayarak tekrarlanan işleri otomatikleştirmenizi de sağlar.

Shell, terminal ve Bash arasındaki fark​


Bu üç kavram sıkça aynı anlamda kullanılsa da görevleri farklıdır:
Linux sistemlerinde Bash, Zsh, Dash, Fish ve başka shell’ler kullanılabilir. Bu nedenle “shell” genel kavramdır; Bash ise bu kavramın belirli bir uygulamasıdır. Bir komutun çalışıp çalışmaması, kullanılan shell’in sözdizimine ve komutun sistemde bulunmasına bağlı olabilir.

Bir shell komutu nasıl işler?​


Shell, yazılan satırı kabaca şu sırayla değerlendirir:
  1. Komut satırını okur ve kelimelere, seçeneklere ve özel işaretlere ayırır.
  2. Değişkenleri, tırnakları, joker karakterleri ve komut ikamelerini değerlendirir.
  3. Girdi-çıktı yönlendirmelerini ve boru hatlarını hazırlar.
  4. Komutu yerleşik bir shell komutu olarak veya sistemdeki bir programı çağırarak çalıştırır.
  5. İşlem durumunu, çıktıyı ve varsa hata mesajını terminale gönderir.
Örneğin aşağıdaki komutta printf çıktıyı üretir, > işareti ise bu çıktıyı mesaj.txt dosyasına yönlendirir:

Kod:
printf '%s\n' 'Linux shell' > mesaj.txt
cat mesaj.txt

Beklenen çıktı şöyledir:

Kod:
Linux shell

Bu örneği yalnız deneme dizininde, mesaj.txt adlı gerekli bir dosya bulunmadığını doğrulayarak çalıştırın. İlk komut dosyayı oluşturur veya mevcutsa içeriğini değiştirir. İkinci komut dosyanın içeriğini ekrana basar. Dosyanın oluşmadığını veya erişim hatası aldığınızı görürseniz bulunduğunuz dizini ve yazma izinlerini kontrol edin; komutun amacı mevcut dosyaya ek yapmaksa > yerine >> kullanılır.

Shell’in pratik kullanım alanları​


Shell ile dosya ve dizin işlemleri yapabilir, programları seçeneklerle çalıştırabilir, komutların çıktısını başka komutlara aktarabilir ve işlem sonuçlarına göre karar verebilirsiniz. Örneğin:

Kod:
printf '%s\n' 'bir' 'iki' 'üç' | wc -l

Burada | işareti ilk komutun çıktısını ikinci komutun girdisi yapar. wc -l satır sayısını hesapladığı için sonuç 3 olur. Bu yapı, büyük işlemleri küçük ve anlaşılır komutların birleştirilmesiyle kurmanızı sağlar.

Shell komutlarını dosyaya kaydedip daha sonra çalıştırabilirsiniz. Böyle bir dosya shell script olarak adlandırılır. Ancak Bash’e özgü özellikler kullanan bir script’i farklı bir shell ile çalıştırmak aynı sonucu vermeyebilir. Bu yüzden script’in hangi shell için yazıldığını açıkça belirtmek ve çalıştırma biçimini buna göre seçmek gerekir.

KavramGöreviÖrnek
TerminalKomut yazıp sonucu gördüğünüz uygulama veya oturumBir masaüstü terminal penceresi
ShellKomutları yorumlayan ve çalıştıran katmanBash, Dash, Zsh
BashYaygın bir shell ve komut dosyası yorumlayıcısıbash

Başlangıç için uygulanabilir yol​

  1. Terminali açın ve hesabınız için ayarlanmış oturum açma shell’inin yolunu görmek için printf '%s\n' "$SHELL" komutunu çalıştırın. Bu ortam değişkeni boş kalabilir veya sonradan açtığınız başka bir shell’e rağmen eski değeri koruyabilir; şu anda çalışan yorumlayıcının kesin kanıtı değildir.
  2. Kesin olarak Bash ile küçük bir deneme yapmak için bash -c 'printf "%s\n" "$BASH_VERSION"' komutunu çalıştırın. Bir sürüm metni görürseniz Bash çalışmıştır; bash: command not found benzeri hata alırsanız Bash kurulu değildir veya çalıştırılabilir dosya arama yolunda bulunmuyordur.
  3. Komutların yardımını ve seçeneklerini incelemek için ilgili programın kılavuzunu veya --help seçeneğini kullanın. Shell’in yerleşik komutları ile dış programların yardım biçimleri farklı olabilir.
  4. Birden fazla komutu birleştirmeden önce her komutu ayrı ayrı çalıştırıp çıktısını doğrulayın. Böylece hatanın shell sözdiziminden mi, programdan mı kaynaklandığını daha kolay ayırırsınız.

Sık sorulan sorular​


Shell kullanmak için programlama bilmek gerekir mi?​


Hayır. Önce hazır komutları çalıştırarak başlanabilir. Programlama bilgisi, komutları koşullara ve tekrarlara bağlayıp otomasyon hazırlarken gerekli hâle gelir.

Komut çıktı vermediyse başarısız mı olmuştur?​

Hayır. Bazı komutlar başarı durumunda sessizdir; çıktı başka bir dosyaya da yönlendirilmiş olabilir. Bash’te komuttan hemen sonra printf '%s\n' "$?" ile çıkış durumunu görebilirsiniz: sıfır genellikle başarıyı, sıfır dışı değer ilgili programın belirlediği başka bir durumu gösterir. Ardından yeni bir komut çalıştırmanız önceki durum değerini değiştirir.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.