...

Interactive shell что это за программа

what do you mean by interactive shell?

You can start another shell after you log in by using the name of the shell as a command; for example, to start the Korn shell, you could type ksh at the command prompt. This type of shell is not a login shell, and you do not have to log in again to use it, but it is still an interactive shell, meaning that you interact with the shell by typing in commands (as opposed to using the shell to run a script, as discussed in Chapter 20). The instances of the shell that run in a terminal window when you are using a graphical interface are also interactive non-login shells. When you start a non-login shell, it does not read your .profile, .bash_profile, or .login file (or your .logout file), but it will still read the second shell configuration file (such as .bashrc). This means that you can test changes to your .bashrc by starting another instance of the shell, but if you are testing changes to your .profile or .login, you must log out and then back in to see the results.

I was going through above lines and I don’t understand what it means by interactive shell. Is it true that .profile is not read if I am using terminal? Moreover, what does it mean when you say that bourne is not is an interactive shell while bash/csh is an interactive shell?

66.2k 35 35 gold badges 114 114 silver badges 250 250 bronze badges
asked Jul 18, 2012 at 13:37
7,825 24 24 gold badges 71 71 silver badges 97 97 bronze badges

1 Answer 1

An interactive shell is simply any shell process that you use to type commands, and get back output from those commands. That is, a shell with which you interact.

So, your login shell is interactive, as are any other shells you start manually, as described in the excerpt you quoted in your question. By contrast, when you run a shell script, a non-interactive shell is started that runs the commands in the script, and then exits when the script finishes.

The Bourne shell can be used as an interactive shell, just like bash or tcsh . In fact, many systems, such as FreeBSD, use sh as the default user shell. Modern shells like bash , zsh , tcsh , etc have many features that Bourne shell doesn’t have, that make them more comfortable and convenient for interactive use (command history, completion, etc).

Interactive non-login shells (that is, shells you start manually from another shell or by opening a terminal window) don’t read your .login or .profile files. These are only read and executed by login shells (shells started by the login system process, or by your X display manager), so the commands and settings they contain are only applied once, at the beginning of your login session. So, when you start a terminal, the shell that it spawns for you does not read your login files ( .login for c-style shells, .profile for bourne style shells), but it does read the .cshrc , .bashrc etc files.

что вы подразумеваете под интерактивной оболочкой?

UNIX: полный справочник, второе издание Кеннета Х. Розена и соавт.

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

Я проходил вышеупомянутые строки, и я не понимаю, что это значит под интерактивной оболочкой. Правда ли, что .profile не читается, если я использую терминал?

Кроме того, что это значит, когда вы говорите, что bourne не является интерактивной оболочкой, а bash / csh — интерактивной оболочкой?

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

Итак, ваша оболочка входа в систему является интерактивной, как и любые другие оболочки, которые вы запускаете вручную, как описано в отрывке, который вы цитировали в своем вопросе. Напротив, когда вы запускаете сценарий оболочки, запускается неинтерактивная оболочка, которая выполняет команды в сценарии, а затем завершает работу, когда сценарий завершается.

Оболочка Bourne может использоваться как интерактивная оболочка, как bash или tcsh . Фактически, многие системы, такие как FreeBSD, используют sh в качестве пользовательской оболочки по умолчанию. Современные раковины любят bash , zsh , tcsh и т.д. есть много особенностей , которые Bourne оболочка не имеет, что делает их более удобными и удобными для интерактивного использования (историй команд, завершения и т.д.).

Интерактивные оболочки без входа в систему (то есть оболочки, которые вы запускаете вручную из другой оболочки или открыв окно терминала) не читают ни ваши, .login ни .profile файлы. Они считываются и выполняются только оболочками входа в систему (оболочками, запущенными login системным процессом или вашим диспетчером отображения X), поэтому содержащиеся в них команды и настройки применяются только один раз, в начале сеанса входа в систему. Таким образом, при запуске терминала, оболочки , что она нерестится для вас не читает ваши регистрационные файлы ( .login для оболочек с стилем, .profile для Bourne оболочек типа), но это не читать .cshrc , и .bashrc т.д. файлы.

Можно запустить оболочку как неинтерактивную оболочку входа в систему.
Правда, но потенциально сбивает с толку!

ksh также является современной оболочкой 🙂 См. www2.research.att.com/sw/download и используйте меню на левом поле для перехода к AST-> ksh-> Overview. Новый релиз выходит несколько раз в год от Дэвида Корна и Глена Фаулера. Всем удачи.

@shellter — да, действительно. Но это не тот, который я когда-либо использовал, и мне пришлось где-то прекратить перечислять оболочки! 😉

Вы сказали, что The Bourne shell can be used as an interactive shell, just like bash or tcsh. оболочка Борна не такая же, как bash ?

При подготовке материала использовались источники:
https://unix.stackexchange.com/questions/43385/what-do-you-mean-by-interactive-shell
https://qastack.ru/unix/43385/what-do-you-mean-by-interactive-shell

Оцените статью