Terminal e shell sono uguali?


29

So che potrebbe sembrare sciocco, ma volevo solo sapere se c'è davvero una differenza tra le due parole usate nel mondo Linux. So che Shell è un'interfaccia a riga di comando e ha molte varianti come Bash, Korn, ecc. E so anche che un Ctrl + Alt + T avvia un terminale su Ubuntu. Voglio solo collegare questi due punti.

Significa che il terminale è la finestra che si apre e la shell è il programma che gira dietro per interpretare i comandi digitati nella finestra? O sono gli stessi in cui terminale è un termine generico usato per astrarre i concetti di Shell, ecc.?

Cosa differenzia esattamente le due parole?

Risposte:


30

L'emulatore di terminale (spesso chiamato semplicemente terminale) è "solo la finestra", sì. Esegue un programma basato su testo, che per impostazione predefinita è la shell di accesso (che è bash in Ubuntu). Quando si digitano i caratteri nella finestra, il terminale disegna questi caratteri nella finestra oltre a inviarli allo stdin della shell (o di altri programmi). I caratteri che la shell invia a stdout e stderr vengono inviati al terminale, che a sua volta disegna questi caratteri nella finestra.

Quindi sì, la shell e l'emulatore di terminale sono programmi completamente separati e possono essere usati senza l'altro.


2
Come puoi usare la shell senza terminale?
Koray Tugay,

5
@KorayTugay, quando esegui uno script di shell da cron o tramite un desktop launcher (dove non hai selezionato "esegui nel terminale"), stai usando una shell senza un terminale.
geirha,


6

Sì, l'emulatore di terminale e la shell sono due programmi diversi. Come sapete, un esempio della differenza è che l'avvio di una finestra di terminale può eseguire shell diverse a seconda di ciò che è stato configurato (bash, tcsh, ksh, ash, persino python!).

Un'altra differenza è che ci sono più emulatori di terminali oltre a quelli predefiniti: gnome-terminal, diverse varietà di xterm, konsole (per KDE), ecc. (Vedi: http://www.howtogeek.com/howto/ubuntu/set- the-default-terminal-emulator-on-ubuntu-linux / ). Qualsiasi shell può essere eseguita in uno di questi emulatori terminali, senza troppe difficoltà.

Una terza differenza è che, oltre a eseguire i comandi della shell, è anche possibile avviare alcune applicazioni interattive nell'emulatore di terminale, che verranno eseguite nella stessa finestra (e ancora facendo affidamento sullo stesso programma di emulazione di terminale per gestire la grafica effettiva), come l'editor di testo vim, il gioco di ruolo nethack e altri. Se lo desideri, puoi impostare un profilo nell'emulatore di terminale per avviare nethack, diciamo, automaticamente quando apri una nuova scheda; nessuna shell coinvolta, ma l'emulatore di terminale è sempre lo stesso programma.

Una quarta differenza è che puoi eseguire accessi remoti, usando un programma come ssh, dall'interno di una finestra del terminale. In questo caso, la shell (o qualunque programma in esecuzione in remoto) è in esecuzione su un altro computer e il programma ssh lo collega al programma di emulazione terminale locale in esecuzione sul computer che gestisce la grafica.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.