我正在尝试编辑我的.bashrc
配置,但是当我尝试使用以下命令访问配置时:
电脑:〜家$
.bashrc
我收到一个:-bash: /.bashrc: No such file or directory
错误。
为什么.bashrc 不起作用?
(OSX 10.10)
答案1
简短回答:它不起作用,因为.bashrc
您正在尝试执行一个名为的命令.bashrc
,该命令必须存在于您的某个地方$PATH
并且必须是可执行的。
如何编辑:
如果你想编辑它,你应该写类似
nano ~/.bashrc
或vim ~/.bashrc
或emacs ./bashrc
或任何其他您喜欢的文本编辑器;所有更改将在您下次打开交互式(非登录)shell 时生效。
多说几句:
它必须存在在您的
$PATH
和中,不一定在当前目录中,因为您使用的是commandname
和而不是./commandname
。出于安全原因,当前目录通常不包含在路径中。它必须是可执行的因为即使您的某个目录中存在同名文件
$PATH
,如果它不可执行,它也不会运行。此文件 (
~/.bashrc
) 通常由 shell 在交互时使用bash
。它通常存储在您的主目录中(您可以在 中找到它~/.bashrc
),并决定您的交互式 shell 的行为。从
man bash
:当启动非登录 shell 的交互式 shell 时,如果该文件存在,bash 将从 ~/.bashrc 读取并执行命令。
和
. ~/.bashrc
你一起来源文件就像你逐行写一样在壳中。
警告这意味着您将再次运行里面的所有命令。它不会忘记,例如,alias
文件前一个版本中拼写错误的旧内容...
为了清楚地理解引入的行为,最好启动一个
更多讲座:
答案2
.bashrc:未找到命令
您正在寻找的命令是
source ~/.bashrc
或者
. ~/.bashrc
笔记:
- 由于您似乎已经在主目录中,因此您可以省略
~/
上述命令。
. (源或点运算符)
在当前 shell 上下文中从 filename 参数读取并执行命令。
句法
. filename [arguments] source filename [arguments]
使用 source 运行脚本时,它会在现有 shell 中运行,脚本创建或修改的任何变量在脚本完成后仍可用。相反,如果脚本仅作为 filename 运行,则会生成一个单独的子 shell(具有一组完全独立的变量)来运行脚本。
通过运行 .ss64script(点 ss64script)和 . ss64script(点空格 ss64script)来执行脚本之间存在细微的差别,第一个是运行被“ls”命令隐藏的文件,(尽管 ls -a 将显示隐藏文件)第二个选项将执行 ss64script,即使它没有被用 chmod 设置为可执行文件。
进一步阅读
- Linux 的 Bash 命令行的 AZ 索引- 与 Bash 命令行相关的所有事物的绝佳参考。
- 来源- 在当前 shell 上下文中从文件名参数读取并执行命令。