是否在 GUI 登录时读取 .profile

Tos*_*osh 7 command-line .profile

这个问题中提到,.profile在当今的Linux和Unix系统中,用户从GUI登录时是否被读取并没有标准的行为。那么对于 Ubuntu,是.profile在我从 GUI 登录时读取的吗?

在一个有点不相关的说明中,有没有办法仅通过终端在本地登录 Ubuntu(即不使用 GUI 和不使用 SSH 远程登录)?

May*_*hux 7

引自https://help.ubuntu.com/community/EnvironmentVariables#A.2BAH4-.2F.profile

~/.profile

在此文件中,您还可以放置环境变量分配,因为它在启动过程桌面会话期间由 DisplayManager 自动执行,并在从文本控制台登录时由登录 shell 自动执行。这是上面示例的 ~/.profile 等效项:

export FOO=bar export PATH="$PATH:$HOME/MyPrograms" 注意: ~/.profile 中的代码是在读取 ~/.pam_environment 后运行的。如果您想覆盖在 ~/.pam_environment 中通过例如语言支持设置的区域设置相关变量,这使得 ~/.profile 适合使用。

它在启动过程桌面会话期间由 DisplayManager 自动执行,并在从文本控制台登录时由登录 shell 自动执行。

这意味着 GUI 或 CLI 将读取和使用 .profile

有没有办法只通过终端本地登录Ubuntu

答案是肯定的。您可以使用:

  • 虚拟终端(控制台)tty[1..6]
  • 以文本模式启动

虚拟终端(控制台)tty[1..6]

要使用 tty[1..7] 只需按快捷键Ctrl+ Alt+F[1..6]

PS: tty[1..6] = tty1 ,tty2, ... tty6

启动到真正的文本模式

在 /etc/default/grub 中编辑

停止 Ubuntu 启动

#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
Run Code Online (Sandbox Code Playgroud)

取消注释以通过删除前导哈希来禁用图形终端 #

GRUB_TERMINAL=console
Run Code Online (Sandbox Code Playgroud)

然后更新您的 grub 以加载新配置:

sudo update-grub
Run Code Online (Sandbox Code Playgroud)