许多GNU/Linux程序的一个特性是易于编辑的配置文件。几乎所有常见的免费软件都将配置设置存储在纯文本文件中,通常采用结构化格式,例如JSON、YAML或“类似ini”的文件。这些配置文件通常隐藏在用户的主目录中。但是,基本的ls不会显示它们。UNIX标准要求任何以点开头的文件或目录名都被视为“隐藏的”并且不会在目录列表中列出,除非用户特别要求。例如,要使用ls列出所有文件,请传递-a选项。随着时间的推移,这些配置文件有很多自定义配置,管理它们变得越来越具有挑战性。不仅如此,保持多台计算机同步是大型组织面临的共同挑战。***,很多用户也为自己独特的配置而自豪,并希望以一种简单的方式与朋友分享。这就是rcm的用武之地。rcm是一个“rc”文件管理套件(“rc”是另一种命名配置文件的约定,已被某些GNU/Linux程序采用,例如screen或bash)。rcm提供一组命令来管理和列出它跟踪的文件。使用dnf安装rcm。入门默认情况下,rcm使用~/.dotfiles来存储它管理的所有隐藏文件。托管隐藏文件实际上保存在~/.dotfiles目录中,其符号链接位于文件应有的位置。例如,如果~/.bashrc由rcm管理,则详细列表如下。[link@localhost~]$ls-l~/.bashrclrwxrwxrwx。1linklink27Dec1605:19.bashrc->/home/link/.dotfiles/bashrc[link@localhost~]$rcm包含4个命令:mkrc-将文件转换为隐藏的rcm管理文件lsrc-列出rcm管理文件rcup-同步隐藏的rcm管理的文件rcdn-删除由rcm管理的所有符号链接在两台机器上共享bashrc在每台计算机上都有一个shell帐户并不少见。在这些计算机之间同步隐藏文件可能是一个挑战。此处将介绍一种可能的解决方案,仅使用rcm和git。首先使用mkrc将文件转换为由rcm管理的文件。[link@localhost~]$mkrc-v~/.bashrcMoving...'/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]$gitinit在/home/link/.dotfiles/.git/[link@localhost.dotfiles]$gitremoteaddorigingit中初始化空Git存储库@github.com:linkdupont/dotfiles.git[link@localhost.dotfiles]$gitaddbashrc[link@localhost.dotfiles]$gitcommit-m"initialcommit"[master(root-commit)b54406b]initialcommit1文件已更改,15insertions(+)createmode100644bashrc[link@localhost.dotfiles]$gitpush-uoriginmaster...[link@localhost.dotfiles]$在第二台机器上,将这个存储库克隆到~/.dotfiles中间。[link@remotehost~]$gitclonegit@github.com:linkdupont/dotfiles.git~/.dotfiles...[link@remotehost~]$现在使用rcup更新由rcm管理的符号链接。[link@remotehost~]$rcup-vreplacing相同但未链接的/home/link/.bashrcremoved'/home/link/.bashrc''/home/link/.dotfiles/bashrc'->'/home/link/.bashrc'[link@remotehost~]$覆盖现有的~/.bashrc(如果存在)并重新启动shell。就这样!指定主机选项(-o)是对上述情况的有用补充。一如既往,阅读手册页。它们包含许多示例命令。
