Terminali hiç “kabuk” veya “komut satırı” olarak adlandırdınız mı? Bunu yapmakla haksız değilsiniz ancak bu terimler arasında belirgin farklar bulunuyor.
Terminal, Komut Satırı, Shell (Kabuk) ve Konsol Ne Anlama Gelirler ve Farkları Nelerdir?
Terminal Nedir?
“Terminal” kelimesi, eski tarz fiziksel bilgisayar terminallerinin davranışını taklit eden bir program olan “terminal emülatörü”nün kısaltması olarak bilinmekte. Bilgisayar kullanımının ilk dönemlerinde, kullanıcılar uzaktaki bilgisayarlarla özel donanım terminalleri aracılığıyla bir iletişim bağlantısı üzerinden etkileşim kuruyorlardı. Bu tür terminallerin bir klavyesi ve ekranı veya bazı durumlarda bir yazıcısı bulunuyordu. Kullanıcılar, komut göndermek ve metin çıktısını görüntülemek için terminalleri kullanırlardı.
İlgili videoda, restore edilmiş bir ana bilgisayara bağlı bir DEC VT100 bilgisayar terminali gösterilmekte.
Kişisel bilgisayarlar yaygınlaştıkça, işletim sistemleri donanım terminallerini yazılımda taklit etmeye başladı. Bu, kullanıcıların fiziksel terminal donanımına ihtiyaç duymadan uzak sistemlerle etkileşim kurmalarını sağladı. Günümüzde fiziksel terminallerin mirası, çok benzer bir şekilde kullandığımız terminal emülatörleri aracılığıyla devam ediyor.

Bir terminal emülatörü, bir bilgisayara komut göndermenizi ve metin çıktısı almanızı sağlar; terminal penceresi ise onu çevreleyen grafiksel bir kapsayıcı olarak öne çıkıyor. Dolayısıyla teknik olarak, Linux’ta “terminal” kelimesinin yaygın ve modern tanımı, pencerenin kendisini değil; komutlar göndermek ve metin almak için kullanılan simüle edilmiş bir cihazı ifade eder.
Shell (Kabuk) Nedir?
Shell (Kabuk), kullanıcı etkileşimini kolaylaştıran bir sistemin en dış katmanı anlamına geliyor. Bir işletim sisteminde kabuk, komut satırı arayüzü veya grafiksel kullanıcı arayüzü (GUI) biçiminde olabilir. Bu, genellikle çekirdekle doğrudan etkileşime girmek yerine, standart kullanıcı alanı kanalları aracılığıyla sistemle iletişim kuran bir program olarak çalışır.
İPUCU: Kullanıcı alanı, ayrıcalıklı olmayan işlemler için çalışma ortamı olarak bilinmekte. Tüm tipik uygulamalarınız (kök “root” uygulamalar dâhil) kullanıcı alanında çalışır. Çekirdek alanı, ayrıcalıklı kodlar için olmakta ve sistemin geri kalanı üzerinde mutlak yetkiye ve donanıma (örneğin sürücüler veya çekirdek bileşenleri) doğrudan erişime sahip.
Günlük Linux dilinde kabuk, genellikle işletim sisteminde görevleri yerine getirmek için komutları ve komut dosyalarını kabul eden bir komut satırı yorumlayıcısı anlamı taşıyor. Komutları okuyup anlayan ve bunları yürüten bir program olarak öne çıkıyor. Linux’taki tipik kabuk örnekleri Bash, Zsh ve fish olarak biliniyor. Bu kabukların her biri komutları işleme ve komut dosyalarını yürütme konusunda kendine özgü bir yönteme sahip.

Gnome’u da duymuş olabilirsiniz; bu, grafiksel bir kabuğa örnek ve kullanıcılar sistemi kontrol etmek için (örneğin dosya oluşturmak ve silmek vb.) bu kabukla etkileşime girerler. Linux’taki bir grafiksel kabuk, pencere sistemiyle etkileşime girer ve menüler, pencereler ve diğer masaüstü işlevleri biçimini alır.
Komut Satırı Nedir?
Komut satırı (CLI veya komut satırı arayüzü), genellikle bir komut kabuğu aracılığıyla bir sisteme komut girmek için kullanılan bir yer olarak öne çıkıyor. Bu, evrensel bir terim ve komut satırı, bir işletim sisteminin veya hatta bir programın parçası olarak var olabilir. Birçok kişi genellikle bu terimi, terminal veya kabuk gibi yakından ilişkili diğer terimlerle karıştırır. Ancak farklı bir anlamı bulunuyor.
Komut satırının iki yaygın örneği, Bash veya Zsh’e girdiğiniz metin satırları.

Komut satırının bir başka örneği Emacs’ta bulunur; bu program, Elisp kullanarak komutları anında girmenize olanak tanır.

Konsol Nedir?
Linux konsolu, Linux çekirdeğiyle birlikte gelen bir giriş/çıkış alt sistemi olarak biliniyor. Mesajları alır ve çekirdekle etkileşimi sağlar.
Linux konsolu ile terminal emülatörü arasındaki fark, Linux konsol sürücüsünün çekirdek alanında çalışması, sistem mesajlarını görüntülemesi ve Linux sistemiyle doğrudan etkileşime girmesini sağlaması. Öte yandan terminal emülatörleri, yalnızca komutları göndermek ve yanıtları almak için kullanılan programlar olarak öne çıkıyor ve tamamen kullanıcı alanında çalışırlar. Linux konsolu, ayrıca terminal emülatörlerine göre çok daha az modern özelliğe sahip.
Linux konsolu, TTY (sanal konsollar) adı verilen sanal terminalleri yönetir. Linux’ta, /dev/tty* dizininde yer alan ve * yerine bir sayı gelen TTY’ler aracılığıyla konsol ile etkileşim kurabilirsiniz. Benzer şekilde terminal emülatörleri de “/dev/pts/” dizininde bulunan sözde terminallerle (örneğin “/dev/pts/0”, “/dev/pts/1” vb.) arayüz oluşturur.
TTY, teleks cihazı (teletypewriter) anlamına gelir. Tarihsel olarak bunlar; daktilolara çok benzeyen, bir iletişim hattı (telefon, telgraf veya seri hat gibi) üzerinden elektronik mesajlar gönderebilen ve alabilen elektromekanik cihazlardı. Bu cihazların geçmişi telgraf dönemine (Mors alfabesinin bir üst versiyonu) kadar uzanır. Modern Linux sistemleri bunları taklit eder.
İlgili videoda, bir seri hat üzerinden Linux sunucusuna bağlı bir teleks cihazı (teletypewriter) gösteriliyor. Kullanıcı, seri TTY aygıt düğümleri (örneğin “/dev/ttyS0”) aracılığıyla Linux konsoluna komutlar gönderiyor ve çıktı alıyor.
Hem sanal konsollar hem de terminal emülatörleri, çeşitli mekanizmalar aracılığıyla genellikle Bash olan bir kabuk çalıştırır. Kabuklar, bunların birbirine benzer hissettirmesine neden olabilir ancak çalışma bağlamları çok daha farklı.
Ctrl+Alt+F* tuşlarıyla bir TTY’ye erişebilirsiniz; burada “*”, bir sayı (1-7) anlamına geliyor. Linux dağıtımları genellikle TTY1’i ekran yöneticisini (oturum açma ekranı) başlatacak şekilde yapılandırır; bu da grafiksel kabuğunuzu (yani bir masaüstü ortamını) başlatır. 2-7 arasındaki sayılar genellikle kullanılabilir fakat TTY1’e geri dönmek sizi masaüstünüze geri getirir.
Giriş oturumunuzun hangi sanal konsola bağlı olduğunu görmek için aşağıdaki komutu kullanın:
loginctl session-status

Mevcut oturum, ilgili görselde gösterildiği gibi vc1’e (diğer adıyla sanal konsol 1 veya TTY1’e) bağlanıyor.
Kısacası Linux konsolu, sanal bir konsol aracılığıyla kontrol edilebilen çekirdek düzeyinde bir giriş/çıkış alt sistemi olarak öne çıkıyor. Bu TTY cihazları, tarihsel kökenlere sahip ve teleks cihazlarını (teletypewriter) taklit ederler. Bu aygıtlar (teletypewriter) aracılığıyla Linux çekirdeğine komut gönderip almak hâlâ mümkün.
Genellikle bu terimler birbirleriyle karıştırılsa da aralarında net ve teknik olarak ayrımlar mevcut. Örneğin CLI, haklı olarak terminal veya konsol anlamına gelebilir. Kabuk ise bu terimlerden herhangi biri anlamına gelebilir. İnsanlar çoğunlukla “bir kabuk aç” derler ancak aslında kastettikleri şey bir terminal açmanın ta kendisi. Fakat belirlenen görevi sanal bir konsol aracılığıyla da gerçekleştirebilirsiniz.
Çoğu kullanıcı için doğru ifade “terminal penceresi”. Grafiksel bir pencere açar ve komutları çalıştırırsınız. “CLI” ifadesi de geçerli çünkü herhangi bir komut arayüzünü (bir Emacs mini arabelleği dâhil) ifade edebilir. Ancak birisi sizden bir konsol açmanızı isterse bu çok özel bir istek olduğundan nedenine dikkat etmelisiniz.
Kaynak: www.howtogeek.com