Термины «Консоль», «Терминал», «Эмулятор терминала» и «Оболочка»
Консоль
- Командный интерпретатор, интерпретатор командной строки
- Программа, часть операционной системы. Обеспечивает базовые возможности управления компьютером посредством интерактивного ввода команд через интерфейс командной строки или последовательного исполнения пакетных командных файлов.
- Как правило, его функции сводятся к
- возможности запускать другие программы
- может содержать базовые команды ввода-вывода
- может содержать свой простой скриптовый язык программирования.
- значение слова - доска с кнопками, пульт управления (“organ console”, то есть “пульт органа”, на ЭВМ - operator’s console)
- совокупность устройств, которые позволяет вам взаимодействовать с устройством.
- исторически: терминал, который подключен напрямую к компьютеру. Большинство терминалов были соединены неявно, но хотя бы один был подключен напрямую к компьютеру. Консоль было разрешено использовать строго определенному кругу лиц, так как она позволяла настраивать компьютер.
- консоль, это работа непосредственно с самим устройство, терминал - некая удаленная работа.
- В компьютере клавиатура и монитор, подключенные непосредственно к компьютеру, называются Консоль. Терминал подключен через последовательный пор (это не часть самого компьютера), а консоль - это устройство, которое есть у самого компьютера, его часть. У компьютера есть только одна консоль. Когда компьютер запускается, вся информация будет отображаться на консоли, но не на терминале. Другими словами, консоль является базовым устройством компьютера, а терминал - дополнительным устройством.
- В операционной системе компьютера информация, не связанная с терминалом, такая как сообщения ядра и сообщения фоновой службы, может отображаться на консоли, но не на терминале. Терминал, который может напрямую отображать системные сообщения, называется консолью, а остальные называются терминалами. В системе Linux эта концепция была размыта.Но в других UNIX-подобных системах существует четкая разница между виртуальным терминалом и консолью. Например, система freeBSD. В freebsd только первый «терминал» является настоящей консолью. (То есть виртуальный терминал получается нажатием alt + f1), независимо от того, на каком виртуальном терминале вы выполняете вышеуказанную команду (даже если она выполняется на псевдотерминале, подключенном через сеть). Внутренняя информация о системе, например, какой пользователь вошел в систему на каком терминале, система имеет любое серьезное предупреждение об ошибке и другую информацию, отображается на этой реальной консоли. Здесь концепция терминала и консоли четко различается.
Терминал
- сейчас: графическое окно (обычно) для запуска реальной оболочки (shell). Инструмент для просмотра оболочки, как разные браузеры (Firefox, Chrome) = инструменты для просмотра Internet. Надстройка над консолью
- исторически: комбинация дисплея и клавиатуры, то есть физическое устройство. Раньше это была комбинация принтера и клавиатуры. Обычно несколько терминалов подключались к одному и тому же компьютеру. Таким образом возможно было работать нескольким пользователям за одним и тем же компьютером, причем каждому выделялась своя сессия, независимая от других. Терминал был назван так потому, что он находился на конце терминального кабеля (terminal end).
Эмулятор
- gnome-terminal, xterm, etc...
- программа, предоставляющая функционал терминала.
Оболочка (Shell)
- это программа, которую вы используете для взаимодействия с компьютером. Интерпретатор командной строки. Главное предназначение — запускать другие программы. Это может быть интерфейс командной строки или графический интерфейс. Bash - это оболочка.
- это программа, которая принимает ваши команды (ls , cd и т.д.) И обрабатывает их, выполняя встроенные функции (например, cd) или вызывая внешние программы (например, ls или gcc).
- Terminal Emulator — GUI приложение, то есть окно в X Window System. Shell — это command line interpreter, то есть просто исполнитель команд, он не имеет графической оболочки. Если говорить совсем правильно, вы не запускаете Bash, вы запускаете Terminal Emulator, который запускает внутри себя Bash. Terminal Emulator и Bash — абсолютно 2 различные программы. Первая отвечает исключительно за ввод/вывод, вторая — за обработку команд.
Про Linux
- в Linux сложилось так, что текстовой консолью (просто консолью) называют вот те 6 (обычно, но может быть до 63-х) текстовые сессии (экраны), которые вы можете переключать Ctrl+Alt+F2, Ctrl+Alt+F3 и т.д.
- в одной (но может быть и несколько) из таких консолей (обычно Ctrl+Alt+F1 или Ctrl+Alt+F7) запущена сессия графического сервера X Window ... то что вы видите как GUI...
- а в этой графической сессии, среди других GUI программ может быть запущены разные программы эмулятров терминала (gnome-terminal и мн. др.)
- вот эти окна или вкладки эмулятров терминала можете называть терминал ... если не блюсти в тщательности терминологическую девственность ;-) ... потому что нет других терминалов в современном Linux
- наконец, в серверном Linux может вообще не быть графики (X Window), а значит и терминалов, но там всегда и обязательно может быть до 63 текстовых консолей...
Как связаны
- Консоль = программа, часть ОС. Интерпретирует введенные команды и выдает результат.
- К консоли может быть подключен терминал (или эмулятор терминала).
- В окне консоли или терминала запускается программа-оболочка. Эта программа принимает мои команды и выводит некий результат.
Оболочка Cmd.exe
- интерпретатор командной строки Windows
- поставляется в комплекте с Windows
- аналог COMMAND.COM, который используется в семействах MS-DOS и Windows 9x.
- как запустить
- вызвать окно Run и набрать команду cmd.
- в меню Start кликнуть пиктограмму "Командная строка"
- найти и запустить файл cmd в папке Windows/System32
Ссылки
- Wikipedia - Cmd.exe
- zametkinapolyah.ru - CMD.exe. Как пользоваться интерпретатором командной строки Windows.
Консоль IDE PhpStorm
- Плагин в IDE PhpStorm. Позволяет прямо в IDE запускать команды для терминала
- По-умолчанию терминалом для PhpStorm является стандартный терминал windows cmd.exe.
- Можно изменить настройки на использование другого терминала File/Settings/Tools/Terminal
- У меня стоит настройка "C:\Program Files\Git\bin\sh.exe" --login -i" + какая папка открывается при запуске (D:\Work_Localsites\legmo_notes)
Ссылки
- Git bash в PhpStorm для Windows
- ru.stackoverflow.com - Настроить консоль phpStorm, чтобы были доступны unix-команды (как в Git bash)
- JetBarins - Terminal PhpStorm
Консоль FAR manager
- FAR = консольный файловый менеджер для Windows
- в качестве консоли использует
cmd
Windows. Также, сюда вписываются консольные команды при подключении к серверам по SSH (SFTP), FTP, WebDav - Есть много плагинов и всяких настроек.
Оболочка Git Bash
- Оболочка
bash
(Bourne-Again Shell) - это улучшенная реализация оболочки sh, т.е. все, что вы можете делать в sh, также можно сделать в bash. Bash имеет дополнительные функции, упрощающие написание скриптов. - Оболочка
Git bash
- это оболочкаmsys
, включенная в Git for Windows, поскольку Windows изначально не поддерживает функцииbash
(если вы не добавите Подсистема Windows для Linux). - Оболочка
Git bash
- приложение для сред Microsoft Windows, эмулирующее работу командной строки Git - Пакет, который устанавливает в Windows оболочку
Bash
(используется в Linux), некоторые распространенные утилитыBash
и системуGit
. - Обычно ставится автоматически вместе с установкой Git для Windows
Ссылки
- Bitbucket - Git Bash
- Git. Краткое руководство по терминалу
- Stackoverflow - In the install path of Git for Windows, what's the difference between ./git-bash.exe and bin/bash.exe and bin/sh.exe?
Различия Git Bash и Git CMD в Windows
-
Не бывает
git cmd
илиgit bash
. Есть одна сервисная утилита с разными именами:git-cmd.exe
иgit-bash.exe
. -
Оба эти exe-файла делают следующее:
- Инициализация переменных окружения (PATH, и пр.)
- Запуск терминала.
-
Разница между ними:
git-bash.exe
запускает терминалmintty
сbash
внутри.git-cmd.exe
запускает стандартный терминал Windows сcmd.exe
. Имеет ключик--command=...
с помощью которого можно запустить в нёмbash
вместоcmd
при желании.
-
Реальные различия:
- Из командной строки
cmd.exe
несколько меняется синтаксис, т.к.^
это управляющий символcmd.exe
. Например, вместоgit.exe rebase -i 2385397^1
нужно писатьgit.exe rebase -i 2385397^^1
. - Маски файлов, вроде вышеописанного
git add *.cpp
не "разворачиваются" в список файлов, то есть аргументы передаются без изменений и git самостоятельно выполняет поиск подходящих файлов. В итоге мы имеем ошибочное поведение когдаgit add *.cpp
добавляет файлы из подкаталогов. - В консоли
cmd.exe
(если только она не в ConEmu запущена) нельзя использовать 256 цветов в Vim.
Ссылки
- Из командной строки
Различия git-bash.exe, bash.exe, sh.exe в Windows
- В папке git для Windows есть 3 exe файла:
git-bash.exe
,bin/bash.exe
,bin/sh.exe
. В чём различия? sh.exe
иbash.exe
- это оболочки. Примеры оболочек: cmd, powershell, sh, bash, zsh и т.д. Bash и zsh — более мощные версии sh.git-bash.exe
- это очень простое приложение-терминалmintty
, которое автоматически открывает оболочкуbash
.
Node JS command prompt
- Это ярлык, который сначала запускает
cmd.exe
, а затемnode.exe
(через.bat
). Аналогично тому, если бы вы сами запустили[win+r] > cmd.exe > [enter]
и там запустилиnode.exe
(через.bat
).
Windows PowerShell
- расширяемое средство автоматизации от Microsoft, состоит из
- оболочки с интерфейсом командной строки
- сопутствующего языка сценариев.
- построен на базе .NET
- Дополнительно предоставляет доступ к COM, WMI и ADSI, позволяет выполнять обычные команды командной строки
- Скрипты Windows PowerShell хранятся в виде обычных текстовых файлов с расширением .ps1. Запустить их двойным кликом нельзя: нужно правой кнопкой мыши вызвать контекстное меню и выбрать пункт «Запустить в PowerShell»
Ссылки
- Habr - Что такое Windows PowerShell и с чем его едят? Часть 1: основные возможности
- Windows PowerShell ISE и Windows PowerShell: в чем разница?
Windows PowerShell ISE
- Integrated Scripting Environment — Интегрированная Среда Сценариев
- является полноценной средой разработки с поддерживающим вкладки и подсветку синтаксиса редактором кода, конструктором команд, встроенным отладчиком и другими программистскими радостями. Если в редакторе среды разработки после имени команды написать знак дефис, вы получите в выпадающем списке все доступные параметры с указанием типа.
Ссылки
Command.com
- интерпретатор командной строки в операционных системах DOS, OS/2, семейства Windows 9x и ряда других.
- 2 режима работы
- интерактивный, когда пользователь вводит с клавиатуры команды, которые немедленно выполняются.
- пакетный, когда COMMAND.COM выполняет последовательность команд, заранее сохранённую в пакетном файле с расширением .BAT.
Bash
- Одна из наиболее популярных современных разновидностей командной оболочки UNIX. Особенно популярна в среде Linux, где она часто используется в качестве предустановленной командной оболочки.
- командный процессор, работающий, как правило, в интерактивном режиме в текстовом окне. Bash также может читать команды из файла, который называется скриптом (или сценарием)
Ссылки
Прочее
- В Windows, при верной настройке, везде запускается cmd + поверх нее запускается приложение с доп. возможности (GitBash, Node JS command prompt и т.д.). Это приложение добавляет разные доп. функции (типо автодополнения команд) + позволяет быть уверенным, что все команды выполнятся в нужных каталогах, с использованием нужных путей. Поэтому, лучше работать в специализированной консоли, а не делать всё через какую-то одну.
- С npm лучше работать через Node JS command prompt
Ссылки