що ви розумієте під інтерактивною оболонкою?


25

UNIX: Повна довідка, друге видання Кеннет Х. Розен та ін.

Ви можете запустити іншу оболонку після входу, використовуючи ім'я оболонки як команду; наприклад, щоб запустити оболонку Korn, ви можете ввести ksh у командному рядку. Цей тип оболонки не є оболонкою для входу, і вам не доведеться знову входити в систему, щоб використовувати її, але це все-таки інтерактивна оболонка, це означає, що ви взаємодієте з оболонкою, вводячи команди (на відміну від використання оболонки для запустіть сценарій, як обговорювалося у розділі 20). Екземпляри оболонки, що запускаються у вікні терміналу, коли ви використовуєте графічний інтерфейс, також є інтерактивними оболонками, які не входять у систему. Коли ви запускаєте оболонку без входу, вона не зчитує файл .profile, .bash_profile або .login (або ваш .logout файл), але він все одно буде читати другий файл конфігурації оболонки (наприклад, .bashrc). Це означає, що ви можете перевірити свої зміни.

Я проходив вище рядки і не розумію, що це означає під інтерактивною оболонкою. Чи правда, що .profile не читається, якщо я використовую термінал?

Більше того, що означає, коли ви говорите, що bourne - це не інтерактивна оболонка, а bash / csh - інтерактивна оболонка?

Відповіді:


27

Інтерактивна оболонка - це просто будь-який процес оболонки, який ви використовуєте для введення команд та отримання вихідних даних з цих команд. Тобто оболонка, з якою ви взаємодієте.

Отже, ваша оболонка для входу є інтерактивною, як і будь-які інші оболонки, які ви починаєте вручну, як описано у витязі, який ви цитували у своєму запитанні. На противагу цьому, коли ви запускаєте скрипт оболонки, запускається неінтерактивна оболонка, яка запускає команди в сценарії, а потім виходить, коли сценарій закінчується.

Оболонку Борна можна використовувати як інтерактивну оболонку, як bashабо tcsh. Насправді багато систем, наприклад, FreeBSD, використовують shяк оболонку користувача за замовчуванням. Сучасні оболонки, такі як bash, zshі tcshт. Д., Мають багато функцій, яких не має оболонка Борна, що робить їх більш зручними та зручними для інтерактивного використання (історія команд, завершення тощо).

Інтерактивні оболонки без входу (тобто оболонки, які ви починаєте вручну з іншої оболонки або відкриваючи вікно терміналу), не читають ваші файли .loginчи .profileфайли. Вони зчитуються та виконуються лише оболонками входу (оболонками, запущеними loginсистемним процесом, або вашим диспетчером дисплеїв X), тому команди та параметри, які вони містять, застосовуються лише один раз на початку сеансу входу. Таким чином, при запуску терміналу, оболонки , що вона нереститься для вас не читає ваші реєстраційні файли ( .loginдля оболонок з стилем, .profileдля Bourne оболонок типу), але це не читати .cshrc, і .bashrcт.д. файли.


Можна запустити оболонку як неінтерактивну оболонку входу.
jw013

Правда, але потенційно заплутано!
D_Bye

ksh також є сучасною оболонкою :-) Дивіться www2.research.att.com/sw/download та використовуйте меню з лівого краю для переходу до огляду AST-> ksh->. Новий реліз виходить кілька разів на рік від Девіда Корна та Глена Фаулера. Успіхів усім.
снаряд

1
@shellter - так, справді. Але це не той, який я колись використовував, і мені довелося десь перестати перераховувати снаряди! ;-)
D_Bye

Ви сказали, The Bourne shell can be used as an interactive shell, just like bash or tcsh. чи не оболонка Борна така, як bash?
Mr.Web
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.