Das Einrichten einer neuen Maschine kann oft eine aufregende Perspektive sein. Als Entwickler benötigen wir jedoch viele Tools, die nicht zum Standard gehören.
In diesem Beitrag möchte ich einige der Techniken durchgehen, mit denen ich meine Maschine schnell, effizient und mit zusätzlichen Superkräften einrichten kann.
Nachdem Sie diesen Artikel gelesen haben, sollten Sie Folgendes tun können:
Bevor Sie beginnen, benötigen Sie etwas Verständnis für Git und die Verwendung der Befehlszeile. Wenn Sie sich nicht sicher sind, was diese sind, empfehle ich zuerst die folgenden Punkte:
Was wäre, wenn Sie das Terminal gestalten könnten, die Geschwindigkeit von Mission Control beschleunigen und ausführen könnten G
anstatt git
, haben Tab
Autovervollständigung unabhängig vom Dateinamen, täglich nach Software-Updates suchen, nicht nur einmal pro Woche? Was wäre, wenn Sie die Einrichtung all dieser Funktionen mit einem einzigen Skript automatisieren könnten? Klingt gut? Dann ist dieser Beitrag für Sie.
Die Einrichtung einer neuen Maschine hängt in vielerlei Hinsicht von den persönlichen Vorlieben ab. Ich refactoring und bewerte immer wieder und ich empfehle Ihnen, dasselbe zu tun. Finden Sie heraus, was für Sie am besten funktioniert und teilen Sie Ihr Wissen.
TL; DR: Investieren Sie in die Zeit, um Ihre Maschine zu konfigurieren und Prozesse zu automatisieren. Sie erhalten diese Zeit um das Zehnfache.
Dotfiles, so genannt, weil der Dateiname mit a beginnt .
befinden sich im Heimatverzeichnis des Benutzers. Diese Dateien werden erstellt, wenn Sie Ihren Computer installieren und konfigurieren. Ich denke an jedes Dotfile als einen Superhelden, der jeweils seine eigenen Superkräfte enthält. Ich werde jedes Superheld-Dossier und die darin enthaltenen Kräfte durchgehen. Aber zuerst…
Es gibt viel zu sagen über die Attraktivität von Punktdateien, das automatische Einrichten von Konfigurationen und das Beschleunigen von Prozessen. Es mag verlockend sein, ein Repository zu klonen und dot-Dateien sofort auszuführen, aber ich würde davon abraten, da das Ergebnis unerwünschte Ergebnisse haben kann.
Zunächst würde ich empfehlen, einige vorhandene Dotfiles-Repositories zu klonen. Auf diese Weise können Sie die Dateistruktur verstehen und sich einen Überblick über den Code verschaffen. Es folgen GitHub-Repos von einigen Top-Entwicklern, die ihre Punktedateien freigegeben haben:
Es mag auf den ersten Blick entmutigend erscheinen, aber keine Panik, ich werde jedes Dotfile durchgehen, das ich verwende, wenn ich eine neue Maschine einrichte. Nach dem Lesen dieses Beitrags, wenn Sie die einzelnen Dateien und deren Möglichkeiten besser verstehen, würde ich empfehlen, ein eigenes Repository zu erstellen und vorhandene Dotfiles zu nutzen, um sie aufzubauen. Sie können dann die Dateien und den Code hinzufügen, der am besten Ihren Anforderungen entspricht.
Wie die Leute im Allgemeinen ihre dotfiles Repo nennen Dotfiles
Ich stelle die Ordnerstruktur so ein:
└── dotfiles ├── mathias └── └── dotfiles ├── IC LICENSE-MIT.txt ├── AD README.md ├── bin │ │ h bash -> / usr / local / Cellar / bash /4.2.45/bin/bash ├── │ └── httpcompression Applications S └── subl -> / Applications / Sublime \ Text \ 3.app/Contents/SharedSupport/bin/subl bootstrap.sh └─ ─ init │ └── Mathias.terminal ├── paulirish └── └── dotfiles │ AD README.md ├── bin │ │ ├── github-email └── └── │ ├── deps.sh └── c. sync.sh └── simonowendesign └── dotfiles ├── bootstrap.sh ├── init │ ├── Mathias.terminal ized SolarizedDark.terminal ├── install-deps.sh └── readme.md
Hier richte ich einen Hauptordner namens dotfiles ein, dann einen Ordner mit dem Benutzernamen und dann das Repo. Ich empfehle, das so einzustellen, um Verwirrung zu vermeiden. Ein Teil des Codes ist ziemlich ähnlich, daher finde ich es nützlich, leicht zu sehen, welchen Code ich gerade anschaue. Wenn ich zum Beispiel vier oder mehr Repos hatte, die alle "dotfiles" genannt wurden, wäre dieser Prozess viel schwieriger.
Möchten Sie wissen, wie ich die Ordnerstruktur so auslege? Ich habe dieses tolle Ding benutzt Baum
, installiert in der .brauen
Datei.
Lassen Sie uns jede Datei aufschlüsseln und sehen, was los ist.
Dotfiles sind in zwei Haupttypen unterteilt. Diejenigen, die eine Reihe von Befehlen enthalten und nur einmal ausgeführt werden, .osx
führt beispielsweise eine Liste von Befehlen aus und verleiht OS X Superkräfte. Andere Dateien wie .bash_profile
und .bashrc
Jedes Mal, wenn Sie eine neue Terminalsitzung öffnen, wird Ihr Terminal mit Superkräften ausgestattet.
Hier sind die Dotfiles in meinem Repo heruntergefahren und eine Beschreibung dessen, was sie tun können.
Es ist am besten, dies zuerst auszuführen. Sobald es das überprüft Homebrew
Ist auf dem neuesten Stand, wird es verwendet, um nützliche Tools wie Baum
.
brauen Sie installieren Baum
Anstatt auf eine Website zu gehen und eine App herunterzuladen, ist es auch möglich, die Installation einiger Apps mithilfe von zu automatisieren Bierfass
, sowie:
Brühbehälter installieren dropbox Brühbehälter installieren google-chrome
Diese Datei ist wie das Drehen des Schlüssels in einem Auto, um den Motor zu starten.
Bei der Ausführung werden das lokale Repo und das auf GitHub synchronisiert. Dann werden diese Dateien in Ihren Home-Ordner kopiert und alle vorhandenen Dateien überschrieben, falls vorhanden.
Deshalb vor dem Laufen bootstrap.sh
Es ist eine gute Idee, Ihre vorhandenen Dotfiles zu sichern und sie an einem anderen Ort zu speichern. Eine praktische Verknüpfung, um zu Ihren Dotfiles im Finder zu gelangen, ist:
Finder> Befehlstaste + Umschalttaste + g> ~
Ich verwende eine App namens TotalFinder, die dem Finder einige nette Funktionen hinzufügt. Fenster mit Registerkarten und eine Verknüpfung zum Anzeigen und Ausblenden versteckter Dateien finde ich beispielsweise sehr nützlich.
Im bootstrap.sh
Du wirst es merken source ~ / .bash_profile
. Dies bedeutet, wenn Sie laufen bootstrap.sh
Wenn alle Terminalfenster geöffnet sind, werden Ihre neuen Einstellungen ohne Neustart angewendet.
Wenn Sie eine neue Terminalsitzung öffnen, wird diese Datei von Bash geladen. Es wird in die anderen Punktdateien geladen path, bash_prompt, exporte, Aliase, Funktionen, extra
und konfiguriert einige nützliche Einstellungen wie die automatische Korrektur von Tippfehlern bei der Verwendung CD
Fertigstellung.
In einigen Fällen .bashrc
geladen werden kann, stellt diese Datei sicher .bash_profile
wird genannt.
Ich mag mein Terminal sauber und unkompliziert, so dass ich mich dazu entscheide, den Benutzernamen / den Computernamen standardmäßig nicht mit dieser Datei anzuzeigen.
Diese Datei beschleunigt die Ausführung von ausführbaren Dateien. Anstatt zu müssen CD
Über verschiedene Pfade zu ausführbaren Dateien hin und her können Sie die Dateipfade in Ihrem Ordner festlegen .Pfad
dotilfe und führen Sie dann ausführbare Dateien direkt aus.
Im Allgemeinen wird diese Datei nicht im öffentlichen Repo gespeichert, da sie vertrauliche Informationen enthalten kann.
Hier ist eine Beispieldatei ~ / .path, die ~ / utils zu $ PATH hinzufügt:
export PATH = "$ HOME / utils: $ PATH"
Mit dieser Datei können Sie die verschiedenen Farben Ihrer Bash-Eingabeaufforderung anpassen und einstellen.
Legt Umgebungsvariablen fest, z. B. Vim als Standardeditor festlegen export EDITOR = "vim"
. Außerdem wird die Menge des gespeicherten Verlaufs erhöht, was zum Zurückverfolgen früherer Befehle, die Sie verwendet haben, nützlich ist.
Diese Datei enthält nützliche Aliase, damit Sie weniger schreiben. Zum Beispiel anstelle von 'CD…
"Sie können es hier einstellen"…
'. Beginnen diese Dateien noch zu mögen? :)
Ähnlich wie bei Aliasnamen, außer dass Funktionen Argumente annehmen können.
Bevor ich erwähnt habe, habe ich mir verschiedene Dotfile-Repos angesehen mkdir
ein Verzeichnis erstellen. Danach müsste ich es dann tun CD
in dieses Verzeichnis.
Ein Beispiel für eine Funktion, die ich nützlich finde, ist:
# Erstellen Sie ein neues Verzeichnis und geben Sie die Funktion mkd () mkdir -p "$ @" && cd "$ @" ein.
Jetzt können Sie es einfach tun mkd
. Jetzt haben Sie nicht nur das Verzeichnis erstellt, sondern auch das Verzeichnis.
Diese Datei wird zum Hinzufügen Ihrer persönlichen Informationen verwendet und nicht zu Ihrem Repository hinzugefügt, um sicherzustellen, dass jemand nicht versehentlich Ihr Projekt verzerrt und dann Ihre Daten verwendet. Etwas, was Sie hier hinzufügen können, wäre Ihre Git-Zugangsdaten.
Diese Datei wird nur von Git verwendet, wenn z git
Befehl wird aufgerufen. Obwohl es einen gibt .Aliase
Datei, werden diese Aliase direkt ausgeführt.
Im .Aliase
ich habe G
einstellen git
und in .gitconfig
, s
einstellen Status -s
.
Jetzt statt laufen:
Git Status -s
Ich kann einfach laufen:
g s
Legen Sie Dateien fest, die Git auf dem gesamten System ignorieren soll. Ja, nicht mehr .DS_Store
versehentlich begangen werden!
Eine kleine Datei, die die Lesbarkeit verbessert gvim
.
Simliar zu .Gitignore
für Mercurial.
In einigen Fällen, zum Beispiel, wenn Sie ssh
In eine Maschine kann Ihnen eine Nachricht angezeigt werden. Es könnte ungefähr so aussehen:
_ | | _ __ ___ _ _ ___ ___ ___ | | ___ ___ _ ____ _____ _ __ | '_' _ \ | | | | / __ / _ \ / _ \ | | / __ | / _ \ '__ \ \ / / _ \' __ | | | | | | | | _ | | | (_ | (_) | (_) | | \ __ \ __ / | \ V / __ / | | _ | | _ | | _ | \ __, | \ ___ \ ___ / \ ___ / | _ | | ___ / \ ___ | _ | \ _ / \ ___ | _ | __ / | | ___ / Willkommen auf meinem coolen Server. Jede böswillige und / oder nicht autorisierte Aktivität ist strengstens verboten. Alle Aktivitäten können protokolliert werden.
Diese Datei verhindert, dass dies angezeigt wird.
Konfiguriert die 'Readline-Umgebung'. Dies steuert die Funktionsweise von Tasten, wenn Sie einen Befehl in Ihre Shell eingeben.
Ein Beispiel, wie ich das nützlich finde, ist zu machen Tab
Autovervollständigung unabhängig vom Dateinamen:
setze den Beendigungs-Ignorier-Fall auf
Dies ist mein Liebling aller Dotfiles. Es wird einmal manuell ausgeführt, damit die Befehle ausgeführt werden und wirksam werden. Je nachdem, was Sie zu dieser Datei hinzugefügt haben, müssen Sie möglicherweise Ihren Computer neu starten.
Einige der großartigsten Dinge, die ich liebe, sind:
Wenn du benutzt Bildschirm
, Dadurch wird die Startmeldung entfernt.
Ich bin nicht so vertraut mit vim
. Einige der Möglichkeiten, die Sie mit dieser Datei ausführen können, sind beispielsweise das Aktivieren von Zeilennummern und das Hinzufügen von Syntax-Hervorhebungen.
Klingt nach einer guten Idee für mich :)
Wenn du benutzt wget
, Dadurch werden zusätzliche Einstellungen hinzugefügt, z. B. das Ändern des Timeouts in 60 Sekunden anstelle der Standardeinstellung von 15 Minuten. Außerdem wird der Wiederholungsversuch auf drei statt auf den Standardwert 20 festgelegt!
An diesem Punkt habe ich alle Dateien durchgelesen und bin in einem Stadium, in dem ich mit allem in meinem Repo zufrieden bin. Alles, worüber ich nicht sicher war, wurde auskommentiert.
Nun der aufregende Teil! Wie es aussieht, haben wir die Dotfiles in einem Repo, aber wir müssen sie an der richtigen Stelle platzieren, damit sie gefunden und verwendet werden können.
Stellen Sie sich das so vor: Wir haben Thors Hammer, Batmans Utility Belt, Captain America's Shield und Iron Man's Suit. Alle unsere Helden wissen, wie man sie benutzt, aber ohne sie sind sie verloren! Wir müssen unseren Superhelden ihre Waffen geben, damit sie sie benutzen können.
Öffnen Sie dazu Ihr Terminal (mit meinen vorhandenen dotfiles und meinem Repo auf dem neuesten Stand), CD
zum Repo und laufen
Quelle bootstrap.sh
Nächster, CD
zu ~
und Renn:
Quelle .osx
Schneller Neustart und… Super Superkräfte sind jetzt verfügbar!!!
Verbringst du viel Zeit damit??
cd dies / ist / der / Pfad / das / ich / will / so / ich / typ / it / all / out / to / get / whereiwant
Was wäre, wenn Sie stattdessen einfach Folgendes tun könnten:
z woiwant
Ja bitte. Vielen Dank, https://github.com/rupa/z.
Um dies hinzuzufügen, in .bash_profile
Ich habe folgende Änderung vorgenommen:
# init z https://github.com/rupa/z. ~ / z / z.sh
Und auch in install-deps.sh
:
cd git clone https://github.com/rupa/z.git chmod + x ~ / z / z.sh
Wenn Sie Ihre dotfiles zum ersten Mal ausführen, stellen Sie möglicherweise fest, dass Sie einen Code nicht mögen, der ausgeführt wurde. Zum Beispiel in der .osx
Datei, ich war nicht so scharf darauf, was der folgende Code tat:
Standardwerte schreiben com.apple.dock showhidden -bool true
Dieser Code hat die Deckkraft für versteckte Apps im Dock geändert.
Um dieses Verhalten einfach auf den Standardzustand zurückzusetzen, habe ich den Befehl einfach erneut ausgeführt, diesmal jedoch geändert wahr
zu falsch
, wie so:
Standardwerte schreiben com.apple.dock showhidden -bool false
Dies setzt es auf den Standard zurück.
Bei den meisten Befehlen ist es offensichtlich, den Befehl durch einfaches Ändern zurückzusetzen wahr
zu falsch
oder umgekehrt. Bei anderen ist es möglich, ihn mit den Standardeinstellungen zurückzusetzen Standardeinstellungen löschen
, zum Beispiel, Standardeinstellungen löschen NSGlobalDomain AppleHighlightColor
. In einigen Fällen müssen Sie möglicherweise auch den Computer neu starten.
Jetzt ist dies für den fortgeschritteneren Punktedatei-Master. Wenn Sie mit dotfiles mehr Wissen und Vertrauen gewinnen, möchten Sie möglicherweise Ihren eigenen Code einfügen.
Wenn Sie auf einem neuen Computer feststellen, dass Sie die Einstellungen manuell ändern, sind diese am besten automatisiert.
Eigenes hinzufügen .osx
Befehle können etwas knifflig werden!
Im Allgemeinen ist dies jedoch ein guter Ausgangspunkt:
Standardwerte lesen> a
Standardwerte lesen> b
diff a b
Dadurch wird eine Datei mit dem Namen erstellt ein
und b
zeigt dann den Unterschied zwischen ihnen, mit diesem Wissen können Sie die Datei dann öffnen b
Suchen Sie in Sublime Text 2 nach dem Bit, das sich geändert hat, und versuchen Sie, den Befehl zum Ändern des Bits auszuarbeiten. Wenn Sie diese Methode ausprobieren, viel Glück!
So haben Sie es! Gehen Sie weiter, haben Sie Spaß mit dotfiles, freuen Sie sich darauf, Ihrer Maschine Superkräfte zu verleihen, und wenn Sie das nächste Mal eine Maschine von Grund auf einrichten müssen, können Sie sich selbst lächeln, da der gesamte Prozess automatisiert ist.
Vielen Dank für Ihren Besuch, bitte kommentieren Sie uns, wenn Sie Fragen oder Anregungen haben.
Ich bin besonders daran interessiert, Ihre eigenen zu sehen .Dotfiles
Repos und alle neuen Ergänzungen, die Sie hinzufügen, fügen Sie dem Dotfiles-Repo in den Kommentaren unten einen Link hinzu.
Dieser Blogeintrag wäre ohne die wunderbare Hilfe der Community nicht möglich gewesen, insbesondere an @mathias, @paul_irish, @reybango und @AndrewPerkins.