Терминал и оболочка одинаковы?

29

Я знаю, что это может звучать глупо, но я просто хотел узнать, действительно ли существует разница между двумя словами, используемыми в мире Linux. Я знаю, что оболочка является интерфейсом командной строки и имеет много вариантов, таких как Bash, Korn и т. Д. И я также знаю, что Ctrl + Alt + T запускает терминал в Ubuntu. Я просто хочу соединить эти две точки.

Означает ли это, что терминал - это открывающееся окно, а оболочка - это программа, которая запускается для интерпретации команд, введенных в окне? Или они такие же, где терминал - это общий термин, используемый для абстрагирования понятий Shell и т. Д.?

Что именно отличает эти два слова?

Вамси Эмани
источник

Ответы:

30

Эмулятор терминала (часто называемый просто терминалом) - это «просто окно», да. Он запускает текстовую программу, которая по умолчанию является вашей оболочкой для входа в систему (которая является bash в Ubuntu). Когда вы набираете символы в окне, терминал выводит эти символы в окне в дополнение к отправке их в stdin оболочки (или другой программы). Символы, которые оболочка выводит в stdout и stderr, отправляются на терминал, который, в свою очередь, рисует эти символы в окне.

Так что да, оболочка и эмулятор терминала - это совершенно разные программы, и любую из них можно использовать без другой.

geirha
источник
2
Как вы можете использовать оболочку без терминала?
Корай Тугай
5
@ KorayTugay, когда вы запускаете сценарий оболочки из cron или через средство запуска на рабочем столе (где вы не отметили «запуск в терминале»), вы используете оболочку без терминала.
гейра
6

Да, эмулятор терминала и оболочка - две разные программы. Как вы знаете, один из примеров различий заключается в том, что при запуске окна терминала могут выполняться разные оболочки в зависимости от того, что вы настроили (bash, tcsh, ksh, ash, даже python!).

Другое отличие состоит в том, что эмуляторов терминалов больше, чем просто по умолчанию: gnome-terminal, несколько разновидностей xterm, konsole (для KDE) и т. Д. (См .: http://www.howtogeek.com/howto/ubuntu/set- по умолчанию-терминал-эмулятор-на-Ubuntu-Linux / / . Любая оболочка может быть запущена в любом из этих эмуляторов терминала без особых трудностей.

Третье отличие состоит в том, что, помимо запуска команд оболочки, вы также можете запускать определенные интерактивные приложения в эмуляторе терминала, и они будут работать в том же окне (и все еще полагаться на ту же программу эмулятора терминала для обработки фактической графики), например текстовый редактор vim, nethack RPG и другие. Если вы хотите, вы можете настроить профиль в эмуляторе терминала для запуска nethack, скажем, автоматически, когда вы открываете новую вкладку; Оболочка не задействована, но эмулятор терминала остается той же программой.

Четвертое отличие заключается в том, что вы можете выполнять удаленный вход в систему, используя такую ​​программу, как ssh, из окна терминала. В этом случае ваша оболочка (или любая другая программа, которую вы запускаете удаленно) работает на другом компьютере, и программа ssh подключает ее к программе эмулятора локального терминала, работающей на вашем компьютере, которая обрабатывает графику.

Джонатан Каст
источник