云网牛站
所在位置:首页 > Linux教程 > 使用rcm管理dotfiles的方法

使用rcm管理dotfiles的方法

2019-03-13 21:52:15作者:戴进稿源:云网牛站

本文介绍使用rcm管理dotfiles的方法。rcm是一个rc文件管理套件(rc是命名配置文件的另一种惯例,已被某些GNU/Linux程序采用,如screen或bash),rcm提供了一套命令来管理和列出它跟踪的文件,使用dnf安装rcm,Fedora系统下运行sudo dnf install rcm命令即可。

使用rcm管理dotfiles的方法

 

背景

很多GNU/Linux程序的标志性功能是易于编辑的配置文件,几乎所有常见的自由软件程序都将配置存储在纯文本文件中,通常采用JSON、YAML或INI-like等结构化格式,这些配置文件经常隐藏在用户的主目录中,但是,一个基本的ls不会透露它们。UNIX标准要求以句点(或点)开头的任何文件或目录名称都被视为隐藏,并且除非用户请求,否则不会列在目录列表中,例如,要使用ls程序列出所有文件,请传递-a命令行选项。

随着时间的推移,这些配置文件变得高度定制,随着时间的推移,管理它们变得越来越具有挑战性,不仅如此,在多台计算机之间保持同步是大型组织的共同挑战,最后,很多用户对其独特的配置设置感到自豪,并希望以简单的方式与朋友分享,这就是rcm有用的地方了。

 

rcm入门

默认情况下,rcm使用~/.dotfiles存储它管理的所有dotfiles,托管的dotfile实际存储在~/.dotfiles中,符号链接放在预期文件的位置,例如,如果~/.bashrc由rcm跟踪,则长列表将如下所示:

[link@localhost ~]$ ls -l ~/.bashrc

lrwxrwxrwx. 1 link link 27 Mar 13 05:19 .bashrc -> /home/link/.dotfiles/bashrc

[link@localhost ~]$

rcm由4个命令组成:

mkrc:将文件转换为由rcm管理的dotfile。

lsrc:列出由rcm管理的文件。

rcup:同步由rcm管理的dotfiles。

rcdn:删除rcm管理的所有符号链接。

参考:什么是bashrc配置文件,如何对其进行编辑

 

在两台计算机上共享bashrc

如今用户在多台计算机上拥有shell帐户是很多见的,在这些计算机之间保持dotfiles同步可能是一个挑战,这个场景将提供一种可能的解决方案,仅使用rcm和git。

首先,将文件转换(或“bless”)到由rcm和mkrc管理的点文件中:

[link@localhost ~]$ mkrc -v ~/.bashrc

Moving...

'/home/link/.bashrc' -> '/home/link/.dotfiles/bashrc'

Linking...

'/home/link/.dotfiles/bashrc' -> '/home/link/.bashrc'

[link@localhost ~]$

接下来,使用lsrc验证列表是否正确:

[link@localhost ~]$ lsrc

/home/link/.bashrc:/home/link/.dotfiles/bashrc

[link@localhost ~]$

现在在~/.dotfiles中创建一个git存储库,并使用你选择的托管git存储库设置一个可访问的远程存储库,提交bashrc文件并推送一个新分支:

[link@localhost ~]$ cd ~/.dotfiles

[link@localhost .dotfiles]$ git init

Initialized empty Git repository in /home/link/.dotfiles/.git/

[link@localhost .dotfiles]$ git remote add origin git@github.com:linkdupont/dotfiles.git

[link@localhost .dotfiles]$ git add bashrc

[link@localhost .dotfiles]$ git commit -m "initial commit"

[master (root-commit) b54406b] initial commit

1 file changed, 15 insertions(+)

create mode 100644 bashrc

[link@localhost .dotfiles]$ git push -u origin master

...

[link@localhost .dotfiles]$

在第二台计算机上,将此存储库clone到~/.dotfiles中:

[link@remotehost ~]$ git clone git@github.com:linkdupont/dotfiles.git ~/.dotfiles

...

[link@remotehost ~]$

现在用rcup更新由rcm管理的符号链接:

[link@remotehost ~]$ rcup -v

replacing identical but unlinked /home/link/.bashrc

removed '/home/link/.bashrc'

'/home/link/.dotfiles/bashrc' -> '/home/link/.bashrc'

[link@remotehost ~]$

覆盖现有的~/.bashrc(如果存在)并重启shell。

至此,目的达到。

 

相关主题

将.bashrc文件恢复到Ubuntu中的默认设置

精选文章
热门文章