Shell
Kabuk
- Okunuşu
- şel
Kısaca
Shell, kullanıcının yazdığı ya da bir betikte yazılı komutları okuyup işletim sisteminden çalıştırmasını isteyen, genellikle metin arayüzlü bir programdır.
Shell (kabuk) nedir?
Shell bir komut yorumlayıcısıdır: yazdığınız komutları okur, ne demek istediğinizi çözer ve işletim sisteminden onları yerine getirmesini ister. Adını, kernel'ın etrafındaki dış katman, yani sistemle doğrudan etkileşime girdiğiniz kısım olmasından alır. Yaygın shell'ler arasında Unix benzeri sistemlerde Bash, Zsh ve fish, Windows'ta ise PowerShell vardır.
ls -l gibi bir komut yazdığınızda shell onu bir program adına ve argümanlara ayırır, o programı PATH ortam değişkeninde listelenen dizinlerde arar ve yeni bir process olarak başlatır. Shell'ler ayrıca değişkenler, bir komutun çıktısını diğerine gönderen pipe'lar (|), çıktıyı dosyaya kaydeden yönlendirme (>), komut geçmişi ve tab tamamlama gibi işi hızlandıran özellikler sunar. Komutlar bir dosyaya kaydedilip sonra çalıştırılabildiği için shell aynı zamanda otomasyon için bir betik dili işlevi görür.
Shell, sizinle işletim sistemi arasında duran bir tercüman gibidir. Siz kısa komutlarla konuşursunuz, shell onları kernel'ın anladığı system call'lara çevirir. Geliştiriciler shell'leri derleme araçlarını ve Git'i çalıştırmak, SSH üzerinden uzak sunucuları yönetmek, dağıtım betikleri yazmak ve yinelenen işleri zamanlamak için kullanır.
İnsanlar çoğu zaman shell'i terminalle karıştırır. Terminal ya da terminal öykünücüsü, metni gösteren ve tuş vuruşlarınızı gönderen penceredir; shell ise içinde çalışan ve o tuş vuruşlarını komut olarak yorumlayan programdır. Aynı terminalde farklı shell'ler çalıştırabilirsiniz ve bir shell, bir betik yürüttüğünde hiç terminal olmadan da çalışabilir.
Önemli noktalar
- Shell komutları yorumlar ve işletim sisteminden çalıştırmasını ister.
- Popüler shell'ler arasında Bash, Zsh, fish ve PowerShell vardır.
- Pipe'lar, yönlendirme ve değişkenler küçük komutları güçlü olanlara dönüştürmenizi sağlar.
- Shell betikleri derleme, yedekleme ve dağıtım gibi tekrarlayan görevleri otomatikleştirir.
- Terminal metni gösterir; shell komutları yorumlar.
Örnek
#!/usr/bin/env bash
# Variables
name="world"
echo "Hello, $name"
# Pipe: count how many .ts files are in the src folder
find src -name "*.ts" | wc -l
# Redirection: save the current date to a file
date > last-run.txtSık sorulan sorular
Shell ile terminal arasındaki fark nedir?
Terminal, metni gösteren ve klavye girdinizi gönderen penceredir ya da programdır. Shell ise terminalin içinde çalışan, o girdiyi okuyan ve komutları yürüten programdır.
Bash ile Zsh arasındaki fark nedir?
İkisi de çok benzer sözdizimine sahip Unix shell'leridir ve çoğu Bash betiği Zsh'de de çalışır. Zsh daha gelişmiş tab tamamlama ve istem (prompt) özelleştirmesi gibi ekstralar ekler ve macOS'un son sürümlerinde varsayılan etkileşimli shell'dir.
Shell betiği nedir?
Shell betiği, sırayla çalışan bir dizi shell komutu içeren bir metin dosyasıdır. Yazılım kurmak, derleme çalıştırmak ya da dosyaları yedeklemek gibi görevleri otomatikleştirmek için yaygın olarak kullanılır.
Sık karşılaştırılanlar
İlgili sayfalar
- LinuxDevOps ve Bulut, s. 31Linux, çoğu sunucuyu, bulutu, konteyneri ve Android telefonu çalıştıran, genellikle dağıtım olarak paketlenen açık kaynaklı bir işletim sistemi çekirdeğidir.
- Processİşletim Sistemleri, s. 23Process, bir programın çalışan örneğidir; işletim sistemi tarafından yönetilen kendi bellek alanına, kaynaklarına ve en az bir yürütme iş parçacığına sahiptir.
- Kernelİşletim Sistemleri, s. 17Kernel, işletim sisteminin CPU'yu, belleği ve donanım aygıtlarını yöneten ve programların bu kaynaklara nasıl eriştiğini denetleyen çekirdek bölümüdür.
- Ortam DeğişkeniDevOps ve Bulut, s. 36Ortam değişkeni, programın dışında işletim sistemi ya da çalışma zamanınca ayarlanan, programın davranışını yapılandırmak için okuduğu adlandırılmış değerdir.
- System Callİşletim Sistemleri, s. 32System call, bir programın işletim sistemi kernel'ından bir dosyayı okumak ya da process başlatmak gibi ayrıcalıklı bir işlem yapmasını istediği çağrıdır.
- Cron JobBackend ve API'ler, s. 8Cron job, beş alanlı bir cron ifadesiyle tanımlanan ve her gece 02.00 gibi tekrarlayan bir zamanlamayla otomatik çalışan bir komut veya betiktir.
- BashProgramlama Dilleri, s. 2Bash, çoğu Linux sisteminde varsayılan Unix kabuğu ve betik dilidir; komutları etkileşimli yazmak ve görevleri betiklerle otomatikleştirmek için kullanılır.
- Terminalİşletim Sistemleri, s. 33Terminal, bir metin arayüzü gösteren, tuş vuruşlarınızı bir kabuğa ya da komut satırı programına iletip onun geri gönderdiği metni görüntüleyen programdır.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin