我正在尝试按顺序识别登录时运行的文件。我特别考虑的是~/.*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/profile
root 保护,因此您可能无法编辑该文件。