识别登录时运行的文件以及如何处理 Linux 上的新用户环境

识别登录时运行的文件以及如何处理 Linux 上的新用户环境

我正在尝试按顺序识别登录时运行的文件。我特别考虑的是~/.*shrc.bashrc.tcshrc等)、~/.profile或这样的文件/etc/profile

我运行的系统与我习惯的系统不同,并且发现许多基本行为都不同(例如,我键盘上的 Home 键现在插入波浪符号而不是转到行首,别名不同,默认 shell 也不同)。因此,我正在学习有关所有启动脚本如何工作、设置应该在哪里完成等等。到目前为止,我已经阅读了大量有关这些主题的资料,但是非常欢迎提供相关讨论的链接。

编辑:改变标题以准确反映上述其余文字。

答案1

启动时执行的文件取决于您的环境和命令解释器。您必须通过阅读相应的手册页来弄清楚这一点。以 bash 为例:

  • 确定您使用的 SHELL。login(1) 和 getusershell(3) 将为您提供帮助。
  • 确定会话类型-登录/交互?

了解这些后,请阅读 shell 的手册页并查找其启动行为。以 bash(1) 为例:

INVOCATION The following paragraphs describe how bash executes its startup files.:-)

bash(与大多数其他 shell 一样)有一个--verbose选项。如果你想要更花哨,让登录 shell 用其详细设置执行 shell,例如

shiny:bin root# cat vbash 
exec /bin/bash -v

并将其设置/bin/vbash为您的登录 shell。它甚至不必在白名单中即可/etc/shells工作...

然后,在您获得文件后,修复您的终端设置......

答案2

当我需要检查每个启动文件的执行顺序时,我只需echo "{filename}"在每个启动文件的顶部添加一个。只需{filename}用该启动文件的名称替换即可。当您登录时,将执行该 echo 命令并打印出所访问文件的名称。 可能受/etc/profileroot 保护,因此您可能无法编辑该文件。

相关内容