我以前没有在我的云服务器上编辑过 bashrc。服务器变化太频繁,这种努力似乎不值得。我也不想将我的本地 bashrc 上传到每个云服务器,因为我的本地 bashrc 中有很多东西只对我的本地机器有意义。但是我有某些别名等,我想在我的所有云服务器上都有。我可以考虑以下几种方法来管理它:
- 为云服务器编写一个 bashrc,然后总是用这个替换默认的 bashrc。缺点:如果我使用具有不同 bashrc 的不同操作系统启动服务器,我会在上传时覆盖它的内容吗?
- 我用我的别名等创建了一个单独的文件并将其上传到我的服务器上,然后在现有 bashrc 的末尾添加一行,该 bashrc 是该附加文件的来源。缺点:有点费力。
- 每次启动新服务器时只需复制粘贴即可。缺点:很费力。
有人有好的解决方案或建议吗?谢谢。
这是我的设置(初始开销高,持续工作量低)
创建一个 git repo 来存储您的配置文件,并编写一个小的安装脚本来安装它们。
例如,您可以将您的 repo 克隆到
~/src/my_config
,安装脚本将覆盖(或符号链接)~/.bashrc
到~/src/my_config/.bashrc
这使得在新环境中工作变得非常简单:您只需要
这并不完全正确:在远程机器上,您还需要
ssh-keygen
在您的 git 主机上将新的公钥添加到您的帐户中。创建一个
~/.bash.d
目录。将此添加到您的 .bashrc这使您可以将诸如定义提示之类的内容放入单独的文件中:
~/.bash.d/prompt.bash
. 我喜欢这样来保持我的 .bashrc 很小,因为我在交互式 shell 中使用了大量的函数。为每个环境创建一个
~/.bash.d/$(hostname)
目录。将此添加到您的 .bashrc所有对特定机器严格本地的东西都可以保持隔离。
符号链接在这里可以正常工作:如果您的所有 AWS 服务器都使用相同的设置,那么您可以创建
~/.bash.d/AWS
所有特定主机名并将其符号链接到它。这个系统对我来说效果很好。我添加了一些新的东西,将更改推送到 git,然后在远程系统上 git pull 以获取新代码。