![为什么节点版本管理器安装到 ~/.nvm 而不是仅仅 ~/nvm 以及 Linux 中的“source”是什么?](https://linux22.com/image/1441201/%E4%B8%BA%E4%BB%80%E4%B9%88%E8%8A%82%E7%82%B9%E7%89%88%E6%9C%AC%E7%AE%A1%E7%90%86%E5%99%A8%E5%AE%89%E8%A3%85%E5%88%B0%20~%2F.nvm%20%E8%80%8C%E4%B8%8D%E6%98%AF%E4%BB%85%E4%BB%85%20~%2Fnvm%20%E4%BB%A5%E5%8F%8A%20Linux%20%E4%B8%AD%E7%9A%84%E2%80%9Csource%E2%80%9D%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我在 64 位 Amazon Linux 2014.09 Web 服务器上安装节点版本管理器时发生了一个简单的事件。当我执行此安装脚本时
curl https://raw.githubusercontent.com/creationix/nvm/v0.23.3/install.sh | bash
NVM 安装到我的文件系统 ~/.nvm/
~/.nvm 与 ~/nvm 相比有何意义?具体来说,nvm 前面的“ . ”是什么意思?
这尤其重要,因为当我在 ~/ 文件夹中执行“ ll ”时,我看不到任何文件。但是,当我执行 cd ~/.nvm 时,我会进入 ~/.nvm 文件夹。
另外,为了让 nvm 在终端中工作,我必须以这种方式“获取” nvm.sh 文件
source ~/.nvm/nvm.sh
这个源命令完成了什么任务?
注意:一切正常,这只是出于好奇,我想更好地理解,以便我对服务器配置等感到更舒服。
非常感谢!
答案1
.
文件名开头的字符使它隐.
看到隐藏文件从 shell 中你可以执行ls -a
(或ls -A
)。
注意差异:
.myfile.sh # hidden file
. myfile.sh # source the file myfile.sh
source
(或.
)是 的内部命令bash
。您可以使用 访问它们的定义help
。
使用命令type
你可以了解某个命令是否是内置 shell或不。
例如该命令
type source /bin/ls
将回答
源是 shell 内置的
/bin/ls 是 /bin/ls
help
然后您可以用或分别向系统询问有关命令的信息man
。
您help source
可以阅读
源:源文件名 [参数]
在当前 shell 中执行来自文件的命令。在当前 shell 中读取并执行来自 FILENAME 的命令。$PATH 中的条目用于查找包含 FILENAME 的目录。如果提供了任何参数,它们将成为执行 FILENAME 时的位置参数。
从man ls
-a、--全部
不要忽略以...开头的条目。