nano ~/.bash_profile 添加了一行 HOME=/Users/MyCompName/Desktop 来更新我的主目录变量。这个更改起作用了,可以通过使用 printenv 查看所有环境变量来查看,但是当我想要把 HOME 改回去时,我似乎找不到 ~/.bash_profile 了。它哪儿去了?
nano ~/.bash_profile 添加了一行 HOME=/Users/MyCompName/Desktop 来更新我的主目录变量。这个更改起作用了,可以通过使用 printenv 查看所有环境变量来查看,但是当我想要把 HOME 改回去时,我似乎找不到 ~/.bash_profile 了。它哪儿去了?
它在同一个地方。
在更改之前,~ 扩展为类似于 /Users/YourUserName 的内容,shell 在那里找到你的 .bash_profile 文件。在文件被加载后,~ 扩展为另一个路径,因此 ~/.bash_profile 不再指向相关文件。这是因为在此上下文中,~ 表示 $HOME。
如果你知道实际家目录的完整路径,可以使用它代替 ~。在 Mac 上,它可能看起来像这样:
nano /Users/YourUserName/.bash_profile
或者让你的Bash在用户数据库中查找你的主目录,而不仅仅看$HOME。这不需要你记住任何东西:
nano ~YourUserName/.bash_profile
修改你的HOME变量而不改变你实际的主目录并不是一个好主意。改变任何用户的主目录是一个管理任务,通常普通用户不能这样做。
.bash_profile 是一个 Bash 脚本的形式。你可以运行一个脚本或者将其作为资源进行引用。运行脚本意味着创建一个子shell并在其中逐行执行脚本。资源引用则是在当前 shell 中执行脚本。某些旨在影响当前 shell 的任务无法在子shell中执行;更改当前 shell 中的变量就是其中之一。这就是为什么有些文件需要被资源引用,而不是在子shell中执行。要手动引用一个文件,请使用. 文件(. 是 POSIX 规范指定的)或 source 文件(source 是少数几个 shell 可理解的非 POSIX 扩展命令)。 - Kamil Maciorowskinano ~YourUserName/.bash_profile 来代替。这将在用户数据库中查找你的主目录,而不仅仅是查看 $HOME。 - Stig Hemmer
~的意思是$HOME。 - el.pescado - нет войне$HOME,~也会被重新定义。 - el.pescado - нет войне