Ich bin ein ziemlich aktiver Befehlszeilenbenutzer und habe überall Shellkonten. MacBooks, Linux-Desktop-Maschinen, Linux-Server, Cygwin auf XP, Sie nennen es.
Wie kann ich meine Shell-Konfiguration ( .bashrc
, .vimrc
usw.) über alle diese Maschinen synchronisieren, indem Sie die begrenzten Tools verwenden, die auf allen Plattformen verfügbar sind?
Ich habe rsync
in einer ziemlich eingeschränkten Weise verwendet, die das manuelle Kopieren einiger Dateien erfordert, wenn ich sie brauche, aber ich möchte eine Standardmethode für die Einrichtung derselben grundlegenden Shell-Umgebung auf all meinen Maschinen. Sagen Sie mir Ihre Shell-Account-Management-Strategie.
Ich habe einen Ordner in Dropbox mit globalen, pro Betriebssystem und pro Shell-Shell-Konfigurationen:
%Vor% bashrc
wird auf jeder Maschine geladen, bashrc-Linux
, bashrc-Darwin
werden auf ihren jeweiligen Betriebssystemen geladen, und einige Konfigurationen sind für einzelne Maschinen spezifisch. (Darwin ist übrigens der BSD-ähnliche Kernel von OS X.)
Was alles zusammenhält, ist die Datei bashbootstrap
. Es lädt jede anwendbare Konfigurationsdatei in der Reihenfolge der zunehmenden Spezifität, dies ermöglicht pro Betriebssystem und Maschinenüberschreibungen einen höheren Vorrang. Darüber hinaus überspringen wir stillschweigend fehlende Konfigurationsdateien. Sie müssen keine leeren Konfigurationsdateien für jede Ihrer Maschinen erstellen, um das Skript glücklich zu machen.
Auf einem neuen Rechner, nach der Installation von Dropbox auf ~/Dropbox
, entferne ich den Standardcode .bashrc
und verbinde stattdessen einfach die Bootstrap-Datei an ihrer Stelle:
Oh, und hier sind die Inhalte der Datei bashbootstrap
:
Eine letzte Anmerkung, dieses Skript bietet auch drei bequeme Aliase zum Bearbeiten Ihrer Bash-Konfigurationsdateien, ohne sich merken zu müssen, wo sie gespeichert sind.
editbashrc
: Bearbeiten Sie die globale Konfigurationsdatei. editosbashrc
: Bearbeiten Sie die betriebssystemspezifische Konfigurationsdatei. editlocalbashrc
: Bearbeiten Sie die maschinenspezifische Konfigurationsdatei. Ich habe das nur auf Bash getestet, aber es könnte bei anderen Bash-ähnlichen Shells funktionieren. Aber, wie sie sagen, Ihre Meilenzahl kann variieren.
Ich habe einen Blogeintrag über diese hier gemacht.
Wenn Sie Zugriff auf die Quellcodeverwaltung haben, würde ich sie einfach einchecken. Auf diese Weise können Sie sie über mehrere Computer hinweg synchronisieren und bei Bedarf vergleichen / zurücksetzen. Wenn Sie CVS / SVN bei der Arbeit nicht haben, sind freie Wahlen verfügbar.
Tags und Links shell synchronization development-environment dotfiles