Terminal, Konsol, Kabuk ve Komut Satırı arasındaki fark nedir?


211

Terminal, Konsol, Kabuk ve Komut Satırı arasındaki fark nedir?


1
(1/2) Ajan Cool çoğunlukla haklı, ancak sağladığı Konsolun tanımı, bu konuda verilen eski bir terimdir. Yine de izlerseniz, linki doğru bilgiye sahiptir. Bağındaki tüm tanımları oku . Konsol, pek çok benzer şeyi ifade etmek için gevşek bir şekilde kullanılır, ancak en önemlisi, genellikle klavye, ekran ve belki fare gibi YEREL BİR TAKİP EDİLEN insan giriş ve çıkış aygıtlarını ifade eder.
0xSheepdog

1
(2/2) Bu, bilgiçlik taslayan bir nokta gibi görünebilir, ancak tecrübeli bir sistem yöneticisi olarak, size bunun olmadığını söyleyeceğim . Bir sistemde bir sorun varsa ve tamamen çöktü / aşağı / çevrimdışı görünüyorsa, hala çalışıyor mu, ama sadece ağ bağlantısını kaybettiğini görmek için sistemin fiziksel konsolunu kontrol etmelisiniz . Bu küçük detay size bir veri, bilgi işleme vb. Ama önemli.
0xSheepdog

6
@ 0xSheepdog Bu yorumları, tam bir cevapta (diğer terimlerin tanımları veya açıklamaları da dahil olmak üzere) genişletmek isteyebilirsiniz. Bir sorunun birden fazla cevabı olması fena değil (belki de aynı bilgiyi aynı şekilde aktardıkları zaman hariç). Neden bir makineyi yerel olarak kontrol etmenin önemli bir uygulamasının aslında fiziksel insan arayüzünü bir konsolu tanımaya / çağırmaya dayandığına emin değilim, ancak meslektaşlarla etkili iletişim kurmanın veya dokümanları kullanmanın önemli olduğu konusunda bir argüman var. (Cevabınızı açıklığa kavuşturmanız gerekir.)
Eliah Kagan

4
Yakın ilişkilerinden dolayı (tüm iyi cevaplara bakın) bu terimler zaman zaman eşanlamlı olarak kullanılır, bu muhtemelen size bunu sormanızı sağlar.
Mark

Yanıtlar:


143

Kısa cevap:

  • terminal = metin giriş / çıkış ortamı
  • konsol = fiziksel terminal
  • shell = komut satırı yorumlayıcısı

Uzun cevap:

Konsol ve terminal yakından ilişkilidir. Başlangıçta, bir bilgisayarla etkileşime girebileceğiniz bir ekipman parçası anlamına geliyorlardı: unix'in ilk günlerinde , bazen telet yazıcısı olarak da bilinen bir daktiloya benzeyen bir teleprinter tarzı bir cihaz ya da kısaca "tty" anlamına geliyordu . “Terminal” adı elektronik bakış açısıyla, “konsol” adı mobilya bakış açısıyla geldi. Unix tarihinin çok başında elektronik klavyeler ve ekranlar terminaller için norm haline geldi.

terminal

Unix terminolojisinde, terminal , okuma ve yazma dışında bir dizi ek komut ( ioctls ) uygulayan özel bir tür cihaz dosyasıdır . Bazı terminaller, bir donanım cihazı adına çekirdek tarafından sağlanır, örneğin klavyeden gelen giriş ve bir metin modu ekranına gelen çıkış veya seri hat üzerinden iletilen giriş ve çıkış. Bazen sahte terminaller veya sahte tipler olarak adlandırılan diğer terminaller, terminal emülatörleri adı verilen programlar tarafından (ince bir çekirdek katmanı vasıtasıyla) sağlanır . Bazı terminal emülatör tipleri şunlardır:

  • X Pencere Sisteminde çalışan GUI uygulamaları : Xterm , Gnome Terminali, Konsole, Terminator, vb.
  • Bir program ve başka bir terminal arasında bir izolasyon katmanı sağlayan ekran ve tmux
  • Bir makinedeki bir terminali, başka bir makinedeki programlarla bağlayan Ssh
  • Beklemek Terminal etkileşimleri komut dosyası için,

Terminal kelimesi ayrıca bir bilgisayarla, tipik olarak bir klavyeyle ve ekranla etkileşime giren bir cihazın daha geleneksel bir anlamını da içerebilir. Örneğin, bir X terminali, bir başka ince istemcidir , tek amacı klavye, ekran, fare ve bazen diğer insan etkileşimi çevre birimlerini çalıştırmak için özel amaçlı bir bilgisayardır, gerçek uygulamalar başka, daha güçlü bir bilgisayarda çalışmaktadır.

konsol

Bir konsol genel olarak fiziksel anlamda bir terminaldir ve bir tanımla doğrudan bir makineye doğrudan bağlı olan birincil terminaldir. Konsol, işletim sistemine (çekirdek uygulamalı) terminaller olarak görünür. Linux ve FreeBSD gibi bazı sistemlerde, konsol birkaç terminal (ttys) olarak görünür (bu terminaller arasında özel tuş kombinasyonları değişir); Sadece konuları karıştırmak için, her bir terminale verilen ad “konsol”, “sanal konsol”, “sanal terminal” ve diğer varyasyonlar olabilir.

Ayrıca bkz. Sanal Terminal neden “sanal” ve ne / neden / “gerçek” Terminal nerede? .

Komut satırı arayüzü]

Bir komut satırı ve presler - kullanıcı tipleri (bazı parametreleri ve ardından tipik olarak bir kumanda adı, bir karakter dizisi olarak ifade edilir), bir komut bir arayüz Returnbu komutu çalıştırmak için anahtar.

Kabuk

Bir kabuk , kullanıcıların giriş yaptıklarında gördükleri ana arayüzdür; birincil amacı ise diğer programları başlatmaktır. (Orijinal metaforun, kabuğun kullanıcının ev ortamı mı, yoksa kabuğun diğer programların çalıştığı alan mı olduğunu bilmiyorum.)

Unix çevrelerinde, kabuk , başlamak istediği uygulamanın adını girmek, ardından uygulamanın üzerinde çalışması gereken dosya veya diğer nesnelerin adlarını girmek ve Enter tuşuna basmak üzere ortalanmış bir komut satırı kabuğu anlamına gelmek üzere uzmanlaşmıştır . Diğer tür ortamlar (en son Gnome Shell istisnası hariç) genellikle “kabuk” kelimesini kullanmaz; örneğin, pencere sistemleri bir “kabuk” değil “ pencere yöneticileri ” ve “ masaüstü ortamları ” içerir.

Birçok farklı unix kabukları var. Ubuntu'nun varsayılan kabuğu Bash'dir (çoğu Linux dağıtımı gibi). Popüler alternatifler arasında zsh (gücü ve özelleştirilebilirliği vurgulayan) ve balık (basitliği vurgulayan) bulunur.

Komut satırı kabukları, komutları birleştirmek için akış kontrol yapılarını içerir. Etkileşimli bir komut isteminde komut yazmaya ek olarak, kullanıcılar komut dosyaları yazabilir. En yaygın kabukları, Bourne_shell'e dayanan ortak bir sözdizimine sahiptir . “ Kabuk programlama ” tartışılırken , kabuğun hemen hemen her zaman Bourne tarzı bir kabuk olduğu belirtilir. Genellikle komut dosyası olarak kullanılan ancak gelişmiş etkileşimli özelliklere sahip olmayan bazı kabuklar , Korn kabuğunu (ksh) ve birçok kül varyantını içerir. Neredeyse tüm Unix benzeri sistemler /bin/shgenellikle kül, ksh veya bash olarak kurulmuş Bourne tarzı bir kabuğa sahiptir . Ubuntu'ya, /bin/shbir çizgi (daha hızlı ve Bash daha az bellek kullanır çünkü seçilir), kül varyantı.

Unix sistem yönetiminde, kullanıcının kabuğu giriş yaptıklarında çağrılan programdır. Normal kullanıcı hesaplarında komut satırı kabuğu vardır, ancak erişimi kısıtlı kullanıcılar kısıtlı bir kabuk veya başka bir özel komut içerebilir (örn. Dosya transferi için). -sadece hesaplar).


Terminal ile kabuk arasındaki işbölümü tamamen açık değildir. İşte ana görevleri.

  • Giriş: terminal tuşları kontrol dizilerine dönüştürür (örn. Left\e[D). Kabuk, kontrol dizilerini komutlara dönüştürür (örneğin \e[Dbackward-char).
  • Satır baskısı, giriş geçmişi ve tamamlama kabuk tarafından sağlanır.
    • Terminal, bunun yerine kendi satır basımını, tarihçesini ve tamamlanmasını sağlayabilir ve yalnızca çalıştırılmaya hazır olduğunda kabuğa bir satır gönderebilir. Bu şekilde çalışan tek genel terminal M-x shellEmacs'ta.
  • Çıktı: Kabuk “ekran foo”, “ön plan rengini yeşile değiştir”, “imleci bir sonraki satıra taşı” vb. Gibi talimatlar yayar . Terminal bu talimatlara göre hareket eder.
  • Bilgi istemi tamamen bir kabuk kavramı.
  • Kabuk, çalıştırdığı komutların çıktısını asla görmez (yönlendirilmediği sürece). Çıktı geçmişi (scrollback) tamamen bir terminal konseptidir.
  • Uygulama içi kopyala-yapıştır, terminal tarafından sağlanır (genellikle fare veya Ctrl+ Shift+ Vveya Shift+ gibi tuş dizileriyle Insert). Kabuğun kendi iç kopyala yapıştırma mekanizması da olabilir (örneğin, Meta+ Wve Ctrl+ Y).
  • İş kontrolü (arka planda programlar başlatmak ve bunları yönetmek) çoğunlukla kabuk tarafından yapılır. Ancak, gibi anahtar kombinasyonları kolları terminali bulunuyor Ctrl+ Cön plan işi öldürmek ve Ctrl+ Zasılması.

Den Geri Dönüşümlü Unix ve Linux


1
Terminalde bir terminal cihaz dosyası için uygun bir terim ve / veya çekirdekteki terminal işleme koduna (tty ioctls, raw / pişmiş, basic line editing) katılmıyorum. terminal = çıkış kodlarını işleyen, tuşa basılan karakterleri karakterlere dönüştüren ve ekranda çizilen (veya kağıda / kasete yazdırır) öğeler. Daha fazla ayrıntı için cevabımı gör.
Peter Cordes,

2
@PeterCordes Bu ayrıntı düzeyinde, hiçbir ayrım yoktur. POSIX , terminali , bir cihaz dosyası anlamında terminal cihaza eş anlamlı olarak tanımlar . Unix'in anlamı bu. Kaçış kodlarını işlemek, tuş basışlarını karakterlere dönüştürmek ve ekrana çekmek (veya ağ üzerinden iletmek veya bir dosyaya giriş yapmak, vb.) Yerine malzeme olur.
Gilles,

2
hrm, evet terminal bu anlamda da kullanılıyor. Çekirdeğin kullandığı terminal cihazının bir ucunda bir terminal emülatörü veya kendisine bağlı bir terminal cihazının bulunduğu bir seri port olduğu varsayımıyla. Çekirdek tty kullanımı (pişmiş modda) yalnızca birkaç kontrol kodunu kullanır (sinyaller ^ c, ^ u / ^? Üzerinde satır düzenleme (silme) .tyty ve tty kodu arasında bir çizgi çizmeye çalışıyorum. grafik kartı ve bir USB / ps2 / AT klavyesinde VT100 benzeri bir uçbirim kuran bu aygıt, Linux'u bu olmadan derleme yapabilirsiniz, ancak yazmadan
Peter Cordes,

3
@PeterCordes Çekirdek konfigürasyonunda, terminaller için destek bırakılabilir (belleğin çok sıkı olduğu bazı nadir gömülü sistemler için kullanışlıdır); tarafından kontrol edilir CONFIG_TTY. Terminal emülatörlerine destek (daha doğru sözde terminaller - “terminal emülatörü” her zaman telnetd içermez, ekran, bekle…) tarafından kontrol edilir CONFIG_UNIX98_PTYS. PC metin modu ekranı ve klavye veya benzeri için destek tarafından kontrol edilir CONFIG_VT. Bkz drivers/tty/Kconfigçekirdek kaynak.
Gilles,

2
Hata! Etrafta yatan bir çekirdek kaynağım yoktu. CONFIG_TTY yalnızca 2012'de eklendi. Her neyse, evet, umarım bu, kafasını bulmacanın farklı parçalarının etrafına sarmaya çalışanlara ve nasıl bir araya geldiklerine yardımcı olur.
Peter Cordes,

60

Görsel bir temsil.

terminal

Oturup patron gibi çalışabileceğin bir şey.

terminal

konsol

Bir sürü şey yapan bir donanım.

konsol

Konsolun bir başka örneği, [Actraiser oynayabileceğiniz] Super Nintendo gibi bir video oyun konsolu olabilir.

Kabuk

Temelde komutları çalıştırmak için bir uygulama.

KabukKabuk

Komut satırı arayüzü]

Temelde girdiğiniz her şey komutları.

CLICLI


8
Sen benim fikrimi çaldın - ben de aynı cevabı verecektim. Yani bir artıya sahip olabilirsiniz. Tabii ki, bu terimler bugünlerde çoğunlukla eşanlamlı olsa da, "terminal" ve "konsol" gibi terimlerin kökenleri eski bilişim konseptlerinde ortaya çıkmaktadır.
thomasrutter

2
İyi çaba. Basit ve kolay
Bir Umar Mukthar

19

Gönderen Linux Bilgi Projesi :

Terminal : Teknik olarak, ayrıca bir terminal öykünücüsü olarak da adlandırılan bir terminal penceresi, bir konsolu taklit eden grafiksel bir kullanıcı arayüzünde (GUI) salt okunur bir penceredir.

Sözlerimizle, bir kullanıcı konsoluna erişebileceğimiz bir GUI Uygulaması.

Konsol : bilgisayar kontrollerini içeren gösterge paneli

Shell : Shell , Linux ve diğer Unix benzeri işletim sistemleri için geleneksel, salt metin kullanıcı arabirimini sağlayan bir programdır

Komut Satırı : Komut satırı, bir kullanıcının komut ve verilerini girdiği, bilgisayar monitörü üzerindeki tam metin görüntü modunda komut isteminin sağındaki alandır (genellikle bir CRT veya LCD panel)


5
"Terminal" yalnızca fiziksel bir metin ekranı anlamına gelir. Söylediğiniz şey aslında "terminal emülatörü".
Kayıtlı Kullanıcı

2
@ Kayıtlı Kullanıcı Bir terminal emülatörü bir tür terminaldir. Terminal kelimesi fiziksel terminallerle sınırlı değildir (bunun için genel kelime konsoldur ).
Gilles,

2
Bu komut satırı tanımı yanlıştır. Bir komut satırı tüm metin görüntüleme moduyla sınırlı değildir.
Gilles,

1
@Gilles Bir web linkinden yakaladım. Doğru cevabı iyi söyledin.
rʒɑdʒɑ

5
@AgentCool Kopyala-yapıştır yeteneğinizi sorgulamıyorum. Kaynak seçimini sorguluyorum. Yazdığınız veya yazmasanız da sorumluluğu size aittir.
Gilles,

15

Buradaki cevaplar çok iyi görünüyor. Ancak tadıma göre çok kuru ve teknik oldukları için biraz alıyorum.

Terminal bir şeyin sonu - sona erdiği yer. Örneğin, bir şehirde metroya binerseniz, indiğiniz istasyon sizin terminalinizdir. Ya da bir havaalanında insanların varış ülkesine ulaştıklarında çıktıkları yer terminal olarak kabul edilir. Havalimanındaki terminalin günümüzde gerek insanlara bindiğiniz, gerekse uçaktan indiğiniz yer bariz ekonomik nedenlerden dolayı.

Bir bilgisayarın amacı veri almak, onunla bir şeyler yapmak ve sonucu tükürmektir. Böylece terminal, hesaplamanın sonucunu alabileceğiniz herhangi bir cihazdır (örneğin bir ekran). Sadece ilk bilgisayarlarda genellikle tek bir cihaz olarak giriş (klavye) ve çıkış (ekran) vardı. Bu nedenle, günümüzde terminaller herhangi bir giriş / çıkış cihazı olarak kabul edilir. Bir fare, klavye, ekran, kamera, hepsi terminal.

Shell bir işletim sistemi şeydir. Bir bilgisayarda, örneğin Ubuntu'da Linux parçası olan bir çekirdeğe sahipsiniz. Şimdi, çekirdek gerçekten düşük seviyeli olduğu için, bir kabuk sağlanmıştır - kullanıcının çekirdeğe kolay bir şekilde etkileşime girmesini sağlayan bir program. Örneğin BASH budur.

Konsol (bir sözlükten)

bir makine, bir elektrikli ekipman parçası için kontrolleri içeren düz bir yüzey.

Bu nedenle, müzik endüstrisinde tüm düğmelerin olduğu tahta veya komuta masasında bir mekanda, hepsi konsol olarak kabul edilir. Super Nintendo ve PS2 aynı zamanda tarihsel olarak konsollar olarak da adlandırılıyor, çünkü bu tür eğlence cihazları üzerlerinde bir sürü buton bulunan kutulara benziyordu.

Komut satırı sadece bir arayüzdür - GUI'nin tersi. Yani bir bilgisayarda iki tür arayüz vardır; CLI (komut satırı arayüzü) ve GUI (grafiksel kullanıcı arayüzü). Asıl fark, birincisi klavyeden girdi alırken, ikincisi fareden girdi alır.


1
"GUI'nin karşıtı" derken ne demek istiyorsun?
Koray Tugay

2
Bunun tersine, CLI veya GUI'ye sahip olduğunuzu kastediyorum. Şimdi cevabında biraz daha netleştim.
Pithikos

12

Cevabımı özetlemek için:

Shell , Linux'ta bash gibi processeskomut veren ve çıkaran bir programdır .returns

Terminal bir program run, bir kabuk , geçmişte bu olduğu fiziksel aygıt (terminaller klavye ile monitör olmadan önce, onlar teletypes ) ve daha sonra bir kavram aktarıldı yazılım gibi Gnome Terminal .

Bu yüzden Gnome-Terminal'i açtım , Shell'i çalıştıran siyah bir pencere belirdi, böylece komutlarımı çalıştırabilirim.

Konsol özel bir terminal türüdür , ayrıca Fiziksel bir cihazdı. örneğin Linux'ta virtual consoleonlara Ctrl+ Alt+ kombinasyonu ile erişebildik F1 to F7.

Konsol bazen klavye ve fiziksel olarak bu bilgisayara bağlı olan monitör anlamına gelir .


11

Bu terimler sıklıkla bir araya gelir, bu nedenle insanlar koleksiyona atıfta bulunmak için terimlerden birini kullanır. (yani bağlamdan, komut satırı kabuğuna bir arabirim sağlayan bir terminal penceresi anlamına geldiği açıktır).

Bunu uzun sargıdan korumak için, sadece XTerm / Gnome Terminali / Konsole / mrxvt / etc / etc için bir stand olarak xterm diyeceğim.

Konsolun başka birçok özel anlamı vardır, bu yüzden şimdilik bunu dışarıda bırakın.

Terminal : İki yönlü bir ASCII / UTF8 / diğer karakter akışıyla, genellikle VT100 veya benzer bir kaçış kodu işleme ile programlarla insan etkileşimi sağlayan bir şey. (Örneğin, geri alma, silme, ok tuşları, vb., Çıkış kodları oluşturur. Programlar, imleci terminal ekranı etrafında hareket ettirmek, kalın metne geçmek ve / veya renkli, ekranı silmek veya kaydırmak için çıkış kodları yazdırabilir.) Eski günlerde, bu genellikle bir ekran ve klavye ve bir seri port ile özel bir cihazdı. Şimdi, genellikle xterm gibi bir program.

Programların terminallerden okuma / yazma işlemleri için cihaz dosyaları var ve sanal terminaller de diğer tarafa cihaz dosyası olarak erişebiliyor. Burası xterm'in girişinizi yazdığı yer, böylece bash bunu okuyabilir.

Sanal terminaller dahil her terminal, pişirildiğinde (işlenmemiş yerine) modda temel satır düzenlemesi sağlar. Bu, çekirdek kodu ile gerçekleştirilir. Ok tuşlarıyla yapabileceğiniz çizgi düzenlemesini sağlayan bash. ( catTemel çekirdek düzeni düzenlemesinin nasıl bir şey olduğunu görmek istiyorsanız, çalıştırmayı ve yazmayı deneyin .

Terminal cihazlarının arkasında çok sayıda çekirdek kodu olmasına rağmen, terminalin kendisi değil terminal işleme kodu olarak anılacaktır.

Düzenleme: Gilles, bir tty'yi terminal olarak kullanmanın doğru kullanım olduğuna ikna etti. Terminal Emülatörleri ve bir terminale bağlı çalışan etkileşimli programlar, çekirdeğin uyguladığı terminal anlamına bağlıdır. (Bu davranışın çoğu POSIX tarafından standartlaştırılmıştır ve Linux / * BSD / diğer Unix'te aynıdır.) Bir tam ekran metin editörü, Unix tty öğelerinin davranışına ve imleç hareketi kaçış kodu işlemesine bağlıdır, ve terminal emülatörünün diğer birçok özelliği.

Bununla birlikte, ekranlı, klavyeli ve seri portlu bir fiziksel VT100 bir terminal örneğidir. Seri portunun diğer ucundaki bir Unix çekirdeğinin tamamlanmasını gerektirmez. Tamamen farklı bir şey kaçış kodlarını ve ASCII metnini göndermek ve ondan aynı şeyi almak olabilir. Sadece bir Unix terminali olmasa da VT100 olurdu. Bir terminal emülatörü artı Unix tty semantiği, bash gibi bir programın normal olarak çalıştığı bir Unix terminalinin tam paketini oluşturur.

Komut satırı , bir şeyler yazdığınız bir kullanıcı arayüzü stilidir, daha sonra bir şeyler yapmak için return tuşuna basın. Ayrıca bash veya MS-DOS gibi bir komut satırı kabuğu için bir steno olarak da kullanılır, ancak fdisk gibi bir şey hakkında “bir komut satırı aracı” diyebilirsiniz. Yalnızca kullanıcı arayüzü için bir terminal kullanan programlar göz önüne alındığında, iki ana aile komut satırı ve tam ekran metindir (örneğin vi veya benzeri bir düzenleyici emacs -nw).

Normalde terminallerde çalışan komut satırı programları neredeyse her zaman hala giriş ve çıkışlarıyla dosyalara yönlendirilir, ancak düzenleyiciler veya e-posta istemcileri gibi terminal tabanlı tam ekran programlar yalnızca etkileşimlidir ve çalışmaz.

Bir kabuk , diğer programları başlatmak için kullanılan bir programdır. Bir Unix bağlamında, komut satırı kabuğu (ör. Bourne kabuğu veya C kabuğu eşdeğeri) anlamına gelir. Unix kabukları ayrıca girdilerini dosyalardan da okuyabilir, yani kabuk komut dosyaları. Değişkenler, döngüler ve koşullu tam programlama dilleridir ve birçok program bash (ya da /bin/shdaha fazla taşınabilirlik için yalnızca POSIX kabuk özellikleriyle) ile yazılmıştır . Hızlı for i in *.something; do some_program "$i";done bir şekilde etkileşimli bir kabuk içine yazmak da mümkündür .

Hepsini bir araya koyarsak, bash (veya bir kabuk komutu çalıştırarak başlattığınız program) gibi bir kabuk, /dev/pts/Nxterm girişinizi sözde terminalin yanına yazdıktan sonra terminal aygıtından karakterler alacaktır . Eğer koşar cat, sonra isabet ederseniz ^c, çekirdek kodu çalışacak ^cve SIGINTo terminaldeki ön plan işlemine gönderilecektir. ( Terminal kullanımına dikkat edinBu bağlamda, Unix tty, terminal emülatörü değil veya seri porta bağlı bir şey anlamına gelir. dizileri. (Tty kodunun VT100 kaçış kodlarını, yalnızca birkaç düşük ASCII kontrol kodunu kullanmasıyla ilgisi yoktur.) Eğer bir xterm yerine, Linux konsolu metin terminalini kullanıyorsanız, çekirdek VT100 emülasyonu yapıyor ve bütün bunları idare ediyorum. Linux sanal konsol metin terminali desteği olmadan derlenebilir, ancak tty desteği olmadan derlenebilir.

Konsol bazen terminal ile eş anlamlı olarak kullanılır (KDE'nin Konsole adlı bir terminal emülatörü bile vardır).

0xSheepdog'un işaret ettiği gibi, başka bir anlamı da var: yerel olarak bağlı insan-etkileşim donanımı.

Çekirdek bağlamında, konsolun başka özel bir anlamı vardır: önyükleme iletilerinin yazıldığı terminaldir. Bu seri bir port olabilir. Elbette, normalde, çekirdeğin grafik donanımı ve USB / ps2 / AT klavyeleri için kullanılan sürücülerin üzerine yerleştirdiği metin konsolu. Linux'u console=tty0 console=ttyS0,115200n8komut satırında başlatırsanız, ekranınızda ve seri bağlantı noktasında çekirdek mesajları alırsınız.

Linux (sanal konsolları uygulayan /dev/tty1için N ). Fiziksel ekranınızın / klavyenizin hangisini kontrol ettiğini Ctrl+ Alt+ ile değiştirebilirsiniz . Tipik Linux dağıtımları 6 yaratır ve hepsine başlar , böylece X11'i başlatmak istemeseniz veya istemeseniz bile, 6 kez giriş yapabilir ve bir komut, bir man sayfası ve herhangi bir şey olmadan aralarında geçiş yapabilirsiniz. ekran gibi bir program çalıştırıyor. Linux (çekirdek), sanal konsollardaki ekranınız ve klavyenizden bir terminal arayüzü sağlamak için VT100 tarzı bir terminal emülatörü içerir.FNgetty

Oturum açma istemlerine sahip standart 6 sanal terminaller Ctrl+ Alt+ neden F7sizi X11 oturumunuza geri götürür: X sunucusu bir sonraki kullanılabilir sanal konsolu alır. (X sunucusu /dev/input/..., tuşlara basmak yerine doğrudan açılır /dev/tty7.)

Yani "bir metin konsoluna geçme", Ctrl+ Alt+ tuşlarına basıp F1bu terminali kullanmak anlamına gelir . Bilgisayarların yavaştığı ve fazla RAM olmadığı zamanlar, bazı insanlar zamanlarının çoğunu metin konsollarında geçiriyorlardı, hızlı olduklarından, hoş bir yazı tipi ayarlayabilir, hatta terminal boyutunu daha küçük karakterlere sahip olacak şekilde değiştirebilirlerdi; bir kerede ekranda daha fazla. Alt+ Leftve Alt+, bir Rightsonraki / sonraki konsolu değiştirmek için değiştirilir. (X11, bunu elbette sadece Ctrl+ Alt+ birleşik bırakarak konsolu için devre dışı bırakır .)FN

Dolayısıyla konsol , tek bir iyi tanımlanmış teknik anlamı olmayan bu terimlerden sadece bir tanesidir. Birkaç farklı olanı var. (Terminale karşı uygun olan uçbirim artı uç işleme hakkında ne düşündüğünüze bağlı olarak, uçbirimin de birçok anlamı olduğunu söyleyebilirsiniz.)


2
“Ana” fiziksel terminal anlamına gelen konsol sadece bir çekirdek bağlamında değildir. Bu aynı şey anlam içinde /dev/console. Konsol özellikle belirsiz değildir - ara sıra daha genel terminal anlamında kullanılmasına rağmen , bu oldukça nadirdir ( terminalin özellikle bir konsol anlamına gelmek için kullanılmasından daha nadir ).
Gilles,

1
sağ, evet, yankı foo | sudo tee / dev / console> / dev / null, geçerli VT’niz metin kipindeyse (sadece tam anlamıyla VGA metin kipinde değil çerçeve çerçevesi konsolu dahil) ekranda yazacaktır. Konsolu seri bir portta açtıysanız, oraya gideceğini düşünüyorum. Çekirdeğin sistem konsolu olarak gördüğü işlem için / dev / konsol aygıt dosyasını söyleyebilirsiniz. Sistemdeki başka hiçbir şeyin bir konsol tty olduğu hakkında bir fikre sahip olması gerekmez (sistem çok kullanıcılı moda önyükleme yapamazsa, TTY konsolunda bir kabuk başlatan önyükleme kurtarma öğeleri hariç)
Peter Cordes

1
Xorg X sunucusu (dizgiler / usr / bin / Xorg) donanım erişimi için / dev / console kullanmaz. Kendi VT'sini kurmak için / dev / tty0 ve / dev / tty% d ve / dev / vc /% d komutlarını kullanır. Xorg'un seri bir portta çekirdek konsolu ile başlatılan bir bilgisayarda hala iyi çalışacağından eminim. Ve metin modu sanal terminallerin hala çalışacağını. Bunu ne kadar çok düşünürsem, konsolu bir çekirdek bağlamda konsola görüntüleme sırasında eğildim. (İsterseniz Linux aslında konsol mesajlarını aynı anda birden fazla terminalde verebilir.)
Peter Cordes

6

Zaman paylaşımlı bilgisayarların ilk günlerinde, her kullanıcının bir terminali olduğunu (bir tane alabilecekleri!), Ancak yalnızca sistem operatörlerinin bir konsolu olduğunu düşünüyorum. Konsol, makineyi yeniden başlatmak veya kullanıcı terminallerinden mümkün olmayan sistem teşhisi almak gibi görevler için kullanılabilir. Konsol, bilgisayarın bir parçası olan makine odasındaydı, oysa terminaller uzaktaydı. Konsol aynı zamanda sadece metin giriş ve çıkışını değil donanım ışıklarını ve anahtarlarını da içerecektir.

Komut satırının kullanıcının komut yazabileceği bir alan olduğunu, kabuk ise bu komutu yorumlayan / ona uyan program olduğunu söyleyebilirim. "Kabuk" terimi, Unix türevlerine çok özeldir; "komut satırı", Windows / DOS geleneğinde daha fazladır. Ana karelerdeki eşdeğeri genellikle "iş kontrol dili" olarak adlandırılır.

Açıkçası, teknoloji değiştikçe bu özgün ayrımlar zaman içinde bulanıklaştı.


3

Kullanıcı merkezli kısa cevap deneniyor:

komut satırı - komutları girdiğiniz satır. Genellikle, işletim sisteminiz tarafından sağlanan metin modu penceresinde (komut satırı arayüzü) bir şey çalıştırmanız gerektiğini söylemek için kullanılır.

Kabuk - girdiğiniz öğeleri işlemek için işletim sistemi tarafından yürütülen gerçek program command line. Bu nedenle adı - dostu olmayan işletim sistemi çekirdeği için kullanıcı dostu kabuk. Kendi komutlarını ve uygulamalarını çalıştıran $veya gibi komut istemi sağlar >. Her zaman shellprogram boyunca çalışırsınız ve hiçbir zaman doğrudan konsol veya terminalle çalışmayın.

konsol - metin modu programlarınızın çalıştığı bir penceredir. Bu pencere tuşa basma işlemlerini gerçekleştirir, genişlik ve yükseklik olduğunu bilir. Tam ekran olabilir.

terminal - karakterlerin girdi akışını kabul eden ve bunları gösteren insanlar için ekrana sahip bir cihazdır. Kullanıcıya yükseklik veya genişlik (yalnızca kesmeler) veya klavye tuşlarına ilişkin geri bildirim yoktur - yalnızca karakterler ona seyahat eder. Terminal, renklendirmek, ekranı temizlemek ve diğer kötü şeyleri yapmak için bu akıştaki özel dizileri işler. Terminaller lapa lapa şeklindedir, çünkü çıktı için yayınladığınız dosya bu özel dizileri içeriyorsa işleri karıştırmak kolaydır. Ağ ve aygıt hata ayıklama arayüzlerinde popülerdir, çünkü çıktı göndermek ve çıktı aygıtını kontrol etmek için tek bir akışa tapihtiyacınız vardır ve bir pencereyi başlatmanız ya da oluşturmanıza gerek kalmadan konuşmaya başlayabilirsiniz .

seri konsol - bir terminal gibi giriş akışını işleyen bir konsoldur.


3

Bu belirsiz bir konudur, çünkü terimler çok belirsizdir. Bu cevap boyunca sağladığım bağlantıları okumanızı şiddetle tavsiye ediyorum.

Bir kabuk çekirdeğin üstündeki katmandır:

  • Kullanıcının girdiği komutları yorumlar ve bunları işler. Kabuk, kullanıcıların aksine çekirdeğe erişebilir. Kullanıcılar çekirdeğe yalnızca bir kabuk kullanarak komut girerek ve işlemleri kullanarak (yani programları çalıştırarak) erişebilir. Programlar, çekirdek işlevselliğine erişmek için sistem çağrılarını kullanır. Tüm sistem çağrıları birlikte sistem API'sini oluşturur.
  • İkinci terminal tanımında kabuk örnekleri verilmiştir.

Bir terminalin birçok anlamı vardır:

  • (1) Bir metin terminali . Bu bir ekran monitörü ve klavyenin birleşimidir. Terminali bilgisayara bağlayan bir kablo (genellikle dolaylı olarak). Bu kablonun uç ucunda bulunduğundan terminal olarak adlandırıldı. Bu terminaller genellikle bilgisayardan fiziksel olarak ayrılmıştır, çünkü birçok terminalin tek bir ana bilgisayara / bilgisayara bağlandığı günlerde, aynı anda birden fazla kullanıcının bilgisayara erişimi olabilirdi.
  • (2) Bir terminal penceresi aka terminal emülatörü . Linux'ta, bir terminal penceresi bir GUI penceresinde bulunan bir konsolun öykünmesidir. Metninizi yazdığınız CLI'dir ve bu giriş kullandığınız kabuk tarafından okunur. Birçok mermi türü (örneğin bash, dash, ksh88) ve terminaller (örneğin konsole, gnome) vardır.
  • (3) ile ilgili bir açıklama için sözde terminalleri , görüntülemek , bu . Bir işlem ile bir terminal emülatörü arasındaki iletişim için kullanılan iki 'cihaz dosyası' çiftidir.

Bir konsolun birçok anlamı vardır:

  • (1) bilgisayar kontrollerini içeren bir gösterge paneli.
  • (2) Bir sistem konsolu yani bilgisayar konsolu . Bu, ekranın ve bir bilgisayara bağlı klavyenin birleşimidir. Bu, 'metin terminali' dediğimizle eş anlamlıdır. Bazen fare gibi diğer kullanıcı girişi çevre birimleri de konsolun bir parçasıdır.
  • (3) Tam ekranı kapsayan bir komut satırı arayüzü. Bu, kapatmak için sağ üst köşede X bulunan bir GUI olan bir terminal penceresinin aksinedir. Bunlar Unix benzeri sistemlerde CLI (komut satırı arayüzleri) için iki görüntüleme modudur. Bir terminal penceresine benzer şekilde, konsol da birçok mermi çalıştırabilir.

Genellikle, işletim sistemleri fiziksel bir konsolda birden fazla konsol çalıştırmanıza izin verir (konsol tanımı 2). Bunlara sanal konsollar, yani sanal terminaller denir ve bunlara ctrl+ alt+ Fxkombinasyonları aracılığıyla erişilebilir . Örneğin, 3. sanal konsolu açmak istiyorsanız, ctrl+ alt+ kombinasyonunu kullanın F3.

Konsollar (tanım 3) size bir anakronizm olarak görünebilir, ancak GUI'leri desteklemeyen birçok işletim sistemi bulunduğundan uzmanlar bunları kullanmakta rahat olmalıdırlar. Ayrıca, bir GUI yanıt vermeyi keserse, konsol yine de çalışabilir.


2

Bugünlerde çoğu terminal , kesinlikle terminal emülatörleri konuşuyor . UNIX benzeri bir sistemin çalışmalarında ve aynı zamanda sistemler tarafından sunulan temel arayüzde bir tür rol oynamaktadır . Aslında GUI dahil her şey üzerine inşa edilmiştir.
Ayrıca "terminal", bir yıldız topografyası olan bir bilgisayar ağındaki son noktaları da ifade edebilir.

Konsol , terminallerin (donanım) arayüzlerini ifade eder. Yani seri konsollar var ve günümüzde çoğunlukla sanal olanlar.
Eş zamanlı olarak "konsol" olarak adlandırılan pencere - pencere, sanal bir konsol aracılığıyla sistemin bir terminaline bağlı bir kabuktur.

Bilgisayarların pahalı olduğu günlerde, bir tesisin gerçek bir bilgisayarı ve seri kablolar ("seri konsol") aracılığıyla birbirine bağlanan birkaç terminali olabilirdi. İşletim sistemi, işlemler vb. Fiziksel Bilgisayarda yapıldı, giriş ve çıkış konsollarda gerçekleşti.
Sanal terminaller arasında CTRL+ ALT+ F1(- ile F6) tuşlarına basarak geçiş yapabilirsiniz : bu sürelerin artıkları.
Bugün "zayıf müşteriler" kavramı, büyük miktarlardaki kaynakları merkezileştirme ve gerçek işyerinde en son teknolojiye sahip bir arayüz sağlamak için yeterli donanım sağlama yönünde bu geriye doğru uzanıyor.

kabuk terminalde gördüğünüz "motor" dur. Sistemin kendisi ile birlikte çalışmasını sağlar ve otomatik tamamlama, değişkenler vb. Gibi hoş özellikler ekler
. Sistem çağrılarını kullanan asıl işletim sistemi / çekirdeği ile sizin aranızda ileri ve geri çevirir. Sistem çağrıları, kabuk içermeyen bir kodlama gibidir assemblerve bir kabuk en azından size verir C.

komut satırı , bir metin penceresi aracılığıyla giriş ve çıkış alışverişi yöntemini ifade eder. Kesinlikle sensin yazmanız gereken çizgiyi konuşan (güncel) komut satırı. Genel olarak metoda daha doğru komut satırı arayüzü veya CLI denir .

  1. çekirdek
  2. terminal sunuyor
  3. terminal bir konsol üzerinden bağlanır
  4. konsol kabuğu çalışır
  5. komutlar ve çıktılar komut satırı (arayüz) üzerinden değiş tokuş edilir

1
Komut satırı talimatları çekirdek tarafından değil, bir kabuk tarafından anlaşılır. “Çekirdeğin anladığı temel talimatlar çerçevesi” sistem çağrıları olacaktır. “Temel UNIX komut satırı arayüzü” bir kabuktur, bununla “güzel özellikler” arasında bir ayrım yoktur. Bir “terminal emülatörü penceresi” bir konsol değildir.
Gilles,

1
@ Gilles ayarlandı. Belli ki orada bazı şeyleri kafam karıştı.
Mark
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.