登录外壳程序和交互式外壳程序有什么区别?

凯撒

什么是login shellinteractive shell,什么是.bash_profile.bashrc

克达克

交互式外壳程序是一个不带非选项参数的启动程序,除非指定了-s而不指定-c选项,并且其输入和错误输出都连接到了终端(由isatty(3)确定),或者是一个以-i选项。

交互式外壳程序通常从用户终端读取和写入用户终端。

[ gnu bash手册]

一个登录shell是你登录一个壳。您可以从ps -f列表中识别出登录外壳,程序名称的开头将带有连字符,例如:

root      3561  3553  0 09:38 pts/0    00:00:00 -bash
qa        7327  3432  0 10:46 pts/1    00:00:00 -bash

一个交互式壳是一个从它的标准输入,通常是一个终端读取命令。

例如,如果您使用xterm或终端仿真器(如)登录到bash putty,则会话既是登录shell,也是交互式会话。如果您随后键入,bash则输入一个交互式外壳程序,但它不是登录外壳程序。

如果运行外壳程序脚本(包含外壳程序命令的文件),则它既不是登录外壳程序也不是交互式外壳程序。

启动文件在bash中是高度可定制的:

调用登录bash shell时,它将/etc/profile被来源(在当前环境中执行)。之后,检查三个文件是否存在。这些文件的检查按以下顺序进行:

如果/etc/profile存在,则源(运行)
如果~/.bash_profile存在,源(运行),
如果~/.bash_login存在,源(运行),
如果~/.profile存在,源(运行)

找到匹配项后,其他文件将被忽略,即使它们存在也是如此。/etc/bashrc文件可能同时使用~/.bash_profile~/.bashrc文件。这将意味着该/etc/bashrc文件源自bash的所有交互式调用,无论它是登录外壳程序还是非登录外壳程序。

因此,.bashrc每当您请求一个新的交互式shell,该文件也会运行这不包括外壳脚本。通常,变量,别名或函数位于此文件中。

如果有适当的说明,Bash Shell脚本会读取其他文件。如果用户定义(通常是他们自己.bash_profileBASH_ENV包含文件名的变量,脚本将读取该文件名。如果未设置(并导出)此变量,则bash脚本将不会读取任何启动文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP交互式外壳程序启动

来自分类Dev

在交互式外壳模式和非交互式外壳模式下运行ssh之间有区别吗?

来自分类Dev

为什么默认情况下OSX登录外壳上有交互式外壳?

来自分类Dev

登录外壳程序和非登录外壳程序之间的区别?

来自分类Dev

什么是登录外壳程序和非登录外壳程序?

来自分类Dev

是否有可能存在非交互式的登录外壳?

来自分类Dev

是否有非交互式登录外壳?

来自分类Dev

是否有可能是非交互式的登录外壳?

来自分类Dev

区分交互式登录和非交互式非登录外壳

来自分类Dev

debian交互式外壳程序不调用.profile

来自分类Dev

如何在tclsh交互式外壳程序(Ubuntu 14.04)中使用左右箭头键?

来自分类Dev

$ SHELL环境变量仅适用于交互式外壳程序吗?

来自分类Dev

启动交互式外壳程序作为异步过程(信号传递)

来自分类Dev

是否可以读取由交互式外壳程序提供的文件的内容?

来自分类Dev

ssh -o PreferredAuthentications:“密码”和“交互式键盘”之间有什么区别?

来自分类Dev

交互式外壳是什么意思?

来自分类Dev

“每个交互式外壳”是什么意思?

来自分类Dev

“ ulimit -Su”是否限制在交互式登录子外壳程序和在其中创建的tmux会话中创建的用户进程的数量?

来自分类Dev

体面的交互式TCL外壳

来自分类Dev

Apache Kafka的交互式管理外壳

来自分类Dev

以编程方式启动交互式外壳

来自分类Dev

Apache Kafka的交互式管理外壳

来自分类Dev

体面的交互式TCL外壳

来自分类Dev

通过命名管道的交互式外壳

来自分类Dev

登录外壳程序的预期目的是什么?

来自分类Dev

控制台,外壳程序,终端,终端仿真器,终端多路复用器和窗口管理器之间有什么区别?

来自分类Dev

如何使用我通过`trap`设置的处理程序来测试bash交互式外壳是否处理了信号?

来自分类Dev

为什么我们有登录,非登录,交互式和非交互式bash shell?

来自分类Dev

cron作业是否运行非交互式,非登录外壳?

Related 相关文章

  1. 1

    PHP交互式外壳程序启动

  2. 2

    在交互式外壳模式和非交互式外壳模式下运行ssh之间有区别吗?

  3. 3

    为什么默认情况下OSX登录外壳上有交互式外壳?

  4. 4

    登录外壳程序和非登录外壳程序之间的区别?

  5. 5

    什么是登录外壳程序和非登录外壳程序?

  6. 6

    是否有可能存在非交互式的登录外壳?

  7. 7

    是否有非交互式登录外壳?

  8. 8

    是否有可能是非交互式的登录外壳?

  9. 9

    区分交互式登录和非交互式非登录外壳

  10. 10

    debian交互式外壳程序不调用.profile

  11. 11

    如何在tclsh交互式外壳程序(Ubuntu 14.04)中使用左右箭头键?

  12. 12

    $ SHELL环境变量仅适用于交互式外壳程序吗?

  13. 13

    启动交互式外壳程序作为异步过程(信号传递)

  14. 14

    是否可以读取由交互式外壳程序提供的文件的内容?

  15. 15

    ssh -o PreferredAuthentications:“密码”和“交互式键盘”之间有什么区别?

  16. 16

    交互式外壳是什么意思?

  17. 17

    “每个交互式外壳”是什么意思?

  18. 18

    “ ulimit -Su”是否限制在交互式登录子外壳程序和在其中创建的tmux会话中创建的用户进程的数量?

  19. 19

    体面的交互式TCL外壳

  20. 20

    Apache Kafka的交互式管理外壳

  21. 21

    以编程方式启动交互式外壳

  22. 22

    Apache Kafka的交互式管理外壳

  23. 23

    体面的交互式TCL外壳

  24. 24

    通过命名管道的交互式外壳

  25. 25

    登录外壳程序的预期目的是什么?

  26. 26

    控制台,外壳程序,终端,终端仿真器,终端多路复用器和窗口管理器之间有什么区别?

  27. 27

    如何使用我通过`trap`设置的处理程序来测试bash交互式外壳是否处理了信号?

  28. 28

    为什么我们有登录,非登录,交互式和非交互式bash shell?

  29. 29

    cron作业是否运行非交互式,非登录外壳?

热门标签

归档