为什么打开 .bashrc 文件时要在 .bashrc 之前加上 ~/ ?

Mar*_*ark 3 linux bash tilde

我想知道为什么在打开 bashrc 文件时需要将 ~/ 放在 .bashrc 之前。

为了显示:

我通常在我的系统上打开文件如下:

vim filename.extension 
Run Code Online (Sandbox Code Playgroud)

但是在 /home 目录中,如果我执行以下操作:

vim .bashrc 
Run Code Online (Sandbox Code Playgroud)

vim 将打开一个名为 .bashrc 的新文件

为了打开我的 bashrc 文件,我必须执行以下操作:

vim ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

为什么?

我当前的系统是 Linux Mint 18.3

Ste*_*itt 21

你的困难可能来自于此:

而在 /home 目录中

.bashrc不在/home,它在您的主目录中(通常/home/username是 ,是的,这很令人困惑),您可以通过键入

cd
Run Code Online (Sandbox Code Playgroud)

一旦你在那里,

vim .bashrc
Run Code Online (Sandbox Code Playgroud)

将打开现有文件。

一直在用

vim ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

意味着你永远不需要考虑你在哪里;-)。

  • @Kiwy 一些 FreeBSD 系统使用 `/usr/home/username` 作为 `username` 的家。 (3认同)
  • 当用户的目录在 `/usr` 中时更直观;-) (2认同)
  • @Kiwy 七十年代初,参见 [维基百科关于`/usr` 的条目](https://en.wikipedia.org/wiki/Usr)。 (2认同)

小智 13

~~/指又名你的home目录的绝对路径/home/username


此外,如果你尝试cd ~或者cd ~/他们都会做同样的事情;最短的选择是简单的cd. 所有三个选项都会将您带到您的主目录。不是/home


由于.bashrc位于您的主目录中,您必须通过添加波浪号来指定其位置,它允许您从任何地方指向主目录,从而访问.bashrc.

当然,这适用于您的 中的任何其他文件和文件夹~,例如:

  • cd ~/myFolder
  • ~/myScript.sh

您试图做的是 open .bashrc,但是由于 vim 在您当前位置检查文件是否已经存在,它会在您当前的位置创建一个新的.bashrc 文件pwd,因为当前没有您试图打开的 .bashrc它。

换句话说,如果您在 中/home/username/someFolder/someSubFolder,则执行该vim .bashrc命令将创建一个新.bashrc文件,因为已经不存在.bashrc并且您没有指向正确的路径,即/home/username/.bashrc(或~/.bashrc)。

  • 关键的见解是`/home` 不应该是任何帐户的主目录。它是大多数主目录的父目录(也是 Likely 用户主目录的祖父目录,至少在我们在工作中使用的实现中,其中 `/home/MYDOMAIN/*` 是 MYDOMAIN 域中 AD 用户的主目录的位置居住)。 (3认同)