为什么打开终端时不提供.profile?


36

刚刚安装了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. 打开新终端后,是否进行“登录”?
  5. 在哪里将$ HOME / bin添加到我的路径?.bashrc?因为.profile具有相同的代码,这会引起问题吗?

Answers:


34
  1. 因为默认情况下,终端通常不运行登录Shell。它们通常还具有运行登录shell的选项,这些登录shell执行source .profile
  2. 控制登录Shell的行为。
  3. 取决于外壳。有关的信息bash,请参阅启动文件集
  4. 从某种意义上讲(例如更新登录记录)。
  5. 如果您有一个名为binin 的文件夹$HOME,则.profileUbuntu 的默认文件夹会将其添加到您的文件夹中PATH。由于.profile是从登录时获取的(甚至使用GUI登录),因此PATH对于重新登录后启动的非登录Shell ,它应该是您的一部分。如果目录在中出现两次是没有错的PATH,有关详细信息,请参见此U&L问题

3
好的,这很有意义。需要重新登录到GUI才能查看对的更改.profile
B

1
@BS即使您始终可以为每个命令行shell手动提供它:. .profilesource .profile
muru

. .profile很酷,我从未见过。找不到有关period命令的更多信息。您可以提供参考以及其他有用快捷方式的链接吗?谢谢!
B 2014年

1
对于诸如.或的shell命令source,@ BSeven 可以使用helphelp .,例如。通常,请参阅《 TLDP Bash入门指南》第3章。《 Bash入门指南》在某些地方有些过时,但对于起点而言却是不错的选择。或者在其他答案之一中查看其他链接。
muru


8

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

之后,新的终端将提供.profile脚本。

在此处输入图片说明


1
IIUC是一个黑客,因为通常应该在启动GUI终端之前获取.profile,并且每次生成终端窗口时都再次提供它是多余的。
Mu Mind
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.