当前位置: 首页>>技术教程>>正文


bash – 为什么打开终端时没有 .profile 来源?

, , , ,

问题描述

刚刚安装了 Ubuntu 14.04.1 LTS。

根据.profile,

# ~/.profile: executed by the command interpreter for login shells. 
# This file is not read by bash, if ~/.bash_profile or ~/.bash_login exists.

没有 ~/.bash_profile 或 ~/.bash_login。

打开终端时似乎没有来源 .profile 。

  1. 为什么在打开终端时它不来源 .profile?

  2. 如果没有来源,为什么 .profile 在那里?

  3. 我如何知道/控制打开新终端时的来源?

  4. 当一个新的终端打开时,它会执行 “login” 吗?

  5. 将 $HOME/bin 添加到我的路径的好地方在哪里? .bashrc?由于 .profile 具有相同的代码,这会导致问题吗?

最佳办法

  1. 因为默认情况下终端通常不运行登录 shell。他们通常还有运行登录 shell 的选项,这些 shell 是 source .profile

  2. 控制登录 shell 的行为。

  3. 取决于 shell 。对于 bash ,请参阅 the set of startup files

  4. 在某种意义上不是(例如更新登录记录)。

  5. 如果您在 $HOME 中有一个名为 bin 的文件夹,则 Ubuntu 的默认 .profile 会将其添加到您的 PATH 中。由于 .profile 是在登录时获取的(即使使用 GUI 登录),对于在 re-login 之后启动的非登录 shell,它应该是 PATH 的一部分。如果一个目录在 PATH 中出现两次并没有错,详见 this U&L question

次佳办法

我发现我必须编辑默认配置文件。在终端中,单击首选项 >简介 >编辑 >命令>以登录 shell 运行命令

之后,新终端将获取 .profile 脚本。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12628.html,未经允许,请勿转载。