Jaka jest różnica między powłoką, konsolą i terminalem?

188

Jestem mylony z terminologią. Jaka jest różnica między powłoką, konsolą i terminalem?

pazury
źródło
8
a co, prompta nawet command line?
n611x007
1
Spójrz na to pytanie z Unixa i Linuksa: unix.stackexchange.com/questions/4126/…
Flimm
4
Moja żona powiedziała „czarny ekran”
Kenji Noguchi,

Odpowiedzi:

168

W świecie linuxa wszystkie mogą wyglądać tak samo z punktu widzenia użytkownika na klawiaturze. Różnice polegają na wzajemnym oddziaływaniu.

Powłoka jest program, który faktycznie przetwarza polecenia i zwraca wynik. Większość powłok zarządza również procesami pierwszego planu i tła, historią poleceń i edycją wiersza poleceń. Te funkcje (i wiele innych) są standardem w bashnajpopularniejszej powłoce w nowoczesnych systemach Linux.

Zacisk dotyczy programu owijkę, która prowadzi do powłoki. Dziesiątki lat temu było to fizyczne urządzenie składające się z niewiele więcej niż monitora i klawiatury. Ponieważ systemy unix / linux dodały lepsze systemy wieloprocesorowe i okienkowe, ta koncepcja terminali została przekształcona w oprogramowanie. Teraz masz takie programy, jak Gnome Terminal, który uruchamia okno w środowisku okienkowym Gnome, które uruchomi powłokę, w której możesz wprowadzać polecenia.

Konsola jest specjalny rodzaj terminala . Dawniej konsola była pojedynczą klawiaturą i monitorem podłączonymi do dedykowanego portu szeregowego konsoli na komputerze używanym do bezpośredniej komunikacji na niskim poziomie z systemem operacyjnym. Nowoczesne systemy Linux zapewniają wirtualne konsole . Są one dostępne poprzez kombinacje klawiszy (np. Alt+ F1Lub Ctrl+ Alt+ F1; klawisz funkcyjny numeruje różne konsole), które są obsługiwane na niskich poziomach systemu operacyjnego Linux - oznacza to, że nie ma specjalnej usługi, którą należy zainstalować i skonfigurować do działania . Interakcja z konsolą odbywa się również za pomocą programu powłoki .

Doug Harris
źródło
1
Zanim terminalami były monitory z klawiaturami, były to teletypy - rodzaj elektrycznej maszyny do pisania. en.wikipedia.org/wiki/Teleprinter
Kevin Panko
13
Konsola czasami oznacza „klawiaturę i monitor fizycznie podłączone do tego komputera”. Np. „Zalogowałem się z konsoli, ponieważ serwer nie reagował na sieć”.
Kevin Panko
1
@Doug Harris: Czy możesz dodać zdjęcia sprzętu, o którym mówisz?
pazury
1
Kiedy byłem na studiach pod koniec lat osiemdziesiątych, dużo pracowałem na terminalach DEC VT220 - en.wikipedia.org/wiki/VT220 - To dobry przykład opisanego urządzenia fizycznego.
Doug Harris
5
Jeśli więc terminale i konsole są obecnie wdrażane w oprogramowaniu - jaka jest różnica między nimi (teraz)?
Gavin Hope
15

Powłoka to program, który wyświetla monit i czeka na wpisanie poleceń. Wykonuje je, a następnie drukuje kolejny monit. Tak jak CMD w Windows lub Bash w Uniksie. Może działać w terminalu lub na konsoli.

Konsola była pierwotnie rzeczą fizyczną, panelem sterowania. W terminologii komputerowej oznacza to zwykle ekran, który widzisz przed uruchomieniem GUI lub po jego zakończeniu; czasami możesz przejść do wyświetlania zamiast GUI. To miejsce, w którym system operacyjny drukuje komunikaty o błędach. Na komputerze z wieloma użytkownikami jest to wyświetlacz, który jest faktycznie podłączony do komputera. Aby Cię pomylić, w systemie Windows może to również oznaczać okno z powłoką poleceń, tj. Terminalem.

Terminal był również pierwotnie sprzętowy, służący do komunikacji z komputerem. Obecnie zwykle odnosi się do okna z wierszem poleceń (powłoką), które może pojawić się w oknie GUI lub zamiast GUI.

Peter Westlake
źródło
2

Terminal to interfejs tekstowy (prawdopodobnie do powłoki)

Różnica między konsolą a powłoką jest tym, czego jeszcze nie rozumiem, ale mogę powiedzieć, jak terminal różni się od powłoki.

Zacisk jest ( w zależności od Wikipedia ) „szeregowy interfejs komputer do wprowadzania i wyświetlania tekstu. Informacja jest przedstawiona w postaci tablicy wybranych wstępnie ukształtowanych znaków”.

Możesz używać terminala do interakcji z powłoką, ale możesz także używać go do interakcji z tekstowym interfejsem GUI , zwanym czasem interfejsem użytkownika terminala . Na przykład:

  • Vim ma elementy GUI, w tym numery linii i nazwane tabulatory
  • Nano ma elementy GUI, w tym menu pomocy poleceń
  • Tmux ma elementy GUI, w tym pasek stanu i linie podziału między panelami
  • Minicom ma elementy GUI, w tym menu i pasek stanu

W każdym przypadku elementy GUI są „rysowane” za pomocą tekstu, a nie pikseli.

Nathan Long
źródło
Nie jestem pewien, czy ta definicja opiera się wyłącznie na tekście. W pewnym sensie niektóre GUI można uznać za terminale imo.
jiggunjer
2

Dla początkujących początkujących

Bardziej szczegółowy opis: https://askubuntu.com/a/506628/130518

  • terminal = środowisko wprowadzania / wyprowadzania tekstu
  • konsola = terminal fizyczny
  • shell = interpreter wiersza poleceń

W tym tekście opiszę najbardziej normalny przypadek użycia tego.

Terminal używa powłoki. Powłoka może działać bez terminala.

Aby odnosić się do przedmiotów codziennego użytku:

  • Terminal -> ekran telewizora w domu
  • Shell -> Program działający na ekranie telewizora

Inny sposób patrzenia na to: Twoje uszy (wejście) i usta (wyjście) są zaciskami dźwięku. Twój mózg interpretuje te dźwięki za pomocą określonej powłoki (przetwarzania).

Terminal jest dla nas ludzi, więc możemy czytać i pisać do powłoki. Powłoki mogą działać w procesach w tle, które nie wymagają interakcji człowieka, np. Zadanie cron, a zatem nie wymagają terminala.

Kilka przykładów istniejących terminali:

  • Wiersz polecenia
  • guake
  • terminal gnome
  • terminator

Kilka przykładów istniejących powłok:

  • Grzmotnąć
  • sh (skorupa Bourne'a)
  • PowerShell [Windows]
  • zsh (powłoka Z)

Napisałem tylko, jak te dwa działają normalnie, są inne sposoby, ale są one dla bardziej zaawansowanych użytkowników.

Karl Morrison
źródło
1

Pomyśl o innym kontekście, jakim jest rozwój.
Nawet jeśli nie masz bardzo głębokiej wiedzy o programowaniu, prawdopodobnie znasz podstawy, to znaczy: edytujesz program, przekazujesz go do kompilatora lub interpretera, który tworzy skompilowaną aplikację.
Konsola jest jak edytor twojego programu; pomaga ci pisać, ale tak naprawdę nic nie wykonuje: po zakończeniu wyślij go do kompilatora.

Możesz użyć preferowanego edytora, vim, gedit, emacs, notepad ++, Netbeans, eclise itp. Itp., Ale na końcu są to po prostu różne narzędzia: jeśli napiszesz ten sam program, wynik będzie taki sam.
W tej metaforze powłoka jest kompilatorem. Polecenia wprowadzane do terminala są wysyłane do powłoki, która je interpretuje i wykonuje je natychmiast.
Tak więc, chociaż terminale są tylko frontonami dla powłoki, powłoka zawiera rzeczywisty język, jak to się dzieje w przypadku kompilatora.

Oczywiście terminal nie jest dokładnie edytorem tekstu, głównie dlatego, że nie tworzy pliku, ale wysyła tekst do podstawowej powłoki i pobiera z niego dane wyjściowe.

Powłoka nie jest kompilatorem, w rzeczywistości interpretuje twoje polecenie i wykonuje je natychmiast, zamiast budować plik wykonywalny.

Nawet z tą wielką różnicą, znajduję tę metaforę, która bardzo pomaga w zrozumieniu tego pomysłu.

AgostinoX
źródło
0

Naprawdę nie ma dużej różnicy. Dawno temu, gdy „powłoka” była programem, „terminal” był nakładką na frontend tego programu, a „konsola” była fizycznym połączeniem z komputerem (klawiatura / ekran).

Różnica zależy od używanego systemu operacyjnego. „Standardową” powłoką jest BASH , która jest zwykle dostępna we wszystkich wersjach Linux / Unix. Windows używa zupełnie innej powłoki.

Josh K.
źródło