以下是我从讲座中记下的内容:
.bashrc
在您的主目录中查找文件- 做
vi .bashrc
- 当您将应用程序文件夹放在某处时,请确保其地址在路径变量中。
问题是我的主目录中没有文件.bashrc
。我的家中只有一个.bash_history
文件。
如果我转到根目录,etc/bash.bashrc
那里有一个文件,但我认为它会为所有用户做出更改,而不仅仅是为我。我想为自己添加此路径。它不应该影响其他人。此外,$PATH
该 bashrc 文件中没有变量,所以我更加困惑。
答案1
不要忘记它是您主目录中的隐藏文件(您不会是第一个这样做ls -l
并认为它不在那里的人)。
执行以下操作...
ls -la ~/ | more
.bashrc
第一页应该有一个。如果没有,只需使用
vi ~/.bashrc
并简单地在其中写入以下行。
PATH=$PATH:~/bin
或者
大多数发行版都保留一个标准.bashrc
文件,/etc/skel/
您可以将其复制到主目录中。
$cp /etc/skel/.bashrc ~
答案2
大多数发行版都保留一个标准.bashrc
文件,/etc/skel/
您可以将其复制到主目录中。否则,您可以.bashrc
在主目录中创建一个新的空文件。
答案3
为交互式 Shell 创建自己的启动文件
关于 Bash 启动文件
从 INVOCATION 部分可以man 1 bash
看出:
当启动非登录 shell 的交互式 shell 时,bash 会从 /etc/bash.bashrc 和 ~/.bashrc 读取并执行命令(如果这些文件存在)。
请注意,这些启动文件是选修的;Bash 不需要它们。Bash 还区分登录 shell 和交互式 shell。交互式 shell 定义如下:
交互式 shell 是启动时不使用非选项参数且不使用 -c 选项的 shell,其标准输入和错误均连接到终端(由 isatty(3) 确定),或者使用 -i 选项启动的 shell。
许多发行版都从另一种启动文件中获取一种启动文件,但有些则不然,因此这个问题很难规范地解决。您需要检查所有启动文件,以查看您的~/.bashrc
意志在何时以及如何被调用你的系统。
创建每个用户的交互式 Shell 启动文件
如果您只是缺少一个用户特定的~/.bashrc
文件,只需创建一个。Bash 将为非登录 shell(例如,不使用标志启动的 shell --login
)调用此文件,或者每当您通过使用标志调用 shell 来强制 shell 进行交互时,都会调用此-i
文件。
答案4
简短的答案:
find ~ -maxdepth 1 -name '.bashrc'
vi ~/.bashrc
echo $PATH | grep ~/MyNewCoolProgramFolder
详细一:
我采取更贴近字面意义的解释。
“在你的主目录中找到文件 .bashrc”
由于存在命令find
,也许背信弃义的编辑建议您使用它:find ~ -maxdepth 1 -name '.bashrc'
在主目录中搜索
~
,仅下降一级(无子目录-maxdepth 1
)。对于所有选项,请写入man find
。
下面的行将完成最少的工作ls ~/.bashrc
笔记:万一
~/.bashrc
不存在你可以创建它用一个简单的echo >> ~/.bashrc
。如果不存在,则会
>>
创建文件。如果~/.bashrc
存在,则会仅附加无害的空输出echo
,避免无意中删除如此重要的文件,如果不备份,则很难恢复。(以下内容是因为我很少需要尊重我的昵称的含义,如果您有疑问,请不要执行)。
if [ ! -f ~/.bashrc ] ; then cp -i /etc/skel/.bashrc ~/.bashrc ; else ls -la ~/.bashrc; fi || echo " # Auto Generated " >> ~/.bashrc
“做
vi .bashrc
”
现在您可以做了vi ~/.bashrc
,这里的陷阱是您需要按下:并q退出!应用程序文件夹和
$PATH
当您创建应用程序文件夹时,例如~/MyNewCoolProgramFolder
,下面一行将仅检查它是否在$PATH
:echo $PATH | grep ~/MyNewCoolProgramFolder
如果已经存在则无需添加。如果需要,你可以添加
$PATH
到PATH=$PATH:~/MyNewCoolProgramFolder
~/.bashrc
如果您想使其永久存在,请添加该行。“4?!如果只有 3 分,怎么会是 4?”- 解决方法。
对于后者有一些解决方法;假设名为的可执行文件CoolDetraveller
仅存在于新的应用程序文件夹中:(a)您可以尝试执行它。如果它不在中,它将无法启动
$PATH
。CoolDetraveller:未找到命令
(b)你可以尝试自动完成。开始书写
CoolDetravelle
并按Tab。如果在 中,$PATH
它将自动完成(如果启用了自动完成,则始终自动完成)。which
(c)如果您编写命令,您可以询问将使用什么 bash shell命令CoolDetraveller
。which CoolDetraveller
笔记: 如果你的应用程序路径中有一个或多个空格,
which
则可能无法找到CoolDetraveller
,尽管(这里我再次尊重我的昵称)自动完成作为 命令CoolDetraveller
的有效参数which
将会起作用!令人厌烦:你不能问,
whereis CoolDetraveller
因为whereis
具有硬编码路径,因此可能无法始终找到所需内容