Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Tools & Tips

Einrichten einer Mac Dev-Maschine von Null bis Held mit Dotfiles

by
Read Time:12 minsLanguages:

German (Deutsch) translation by Alex Grigorovich (you can also view the original English article)

Das Einrichten einer neuen Maschine kann oft eine aufregende Aussicht sein. Als Entwickler benötigen wir jedoch viele Tools, die nicht zum Standard gehören.

In diesem Beitrag möchte ich einige der Techniken erläutern, mit denen ich meine Maschine schnell, effizient und mit zusätzlichen Superkräften einrichten kann.


Einführung

Nach dem Lesen dieses Artikels sollten Sie in der Lage sein, Folgendes zu tun:

  1. Richten Sie schnell eine neue Maschine ein
  2. Erweitern Sie SSH in einer Linux-Box
  3. Nehmen Sie ganz einfach intelligente Konfigurationen von anderen Entwicklern auf GitHub auf
  4. Optional können Sie Ihr Setup mit anderen Entwicklern teilen und teilnehmen
  5. So pflegen alle professionellen Entwickler ihre Konfigurationen

Bevor wir beginnen, benötigen Sie einige Kenntnisse über Git und die Verwendung der Befehlszeile. Wenn Sie sich nicht sicher sind, was das ist, würde ich empfehlen, zuerst Folgendes zu prüfen:


Superhelden-Dotfiles

Was wäre, wenn Sie das Terminal gestalten, die Geschwindigkeit von Mission Control beschleunigen, g anstelle von git ausführen, die tab unabhängig vom Dateinamen automatisch vervollständigen und täglich nach Software-Updates suchen könnten, 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.

In vielerlei Hinsicht hängt die Einrichtung einer neuen Maschine von den persönlichen Vorlieben ab. Ich überarbeite und bewerte immer wieder neu und ich würde Ihnen raten, dasselbe zu tun. Finden Sie heraus, was für Sie am besten funktioniert, und teilen Sie Ihr Wissen.

TL;DR: Investieren Sie Zeit in das Erlernen der Konfiguration Ihrer Maschine und der Automatisierung von Prozessen. Sie erhalten diese Zeit zehnmal zurück.

Dotfiles, so genannt, weil der Dateiname mit a beginnt . befinden sich im Home-Verzeichnis des Benutzers. Diese Dateien werden bei der Installation und Konfiguration Ihres Computers erstellt. Ich stelle mir jede Punktdatei als Superhelden vor, die jeweils ihre eigenen Superkräfte enthalten. Ich werde jedes Superhelden-Dotfile und die darin enthaltenen Kräfte durchgehen. Aber zuerst...

Es gibt viel zu sagen für die Großartigkeit von Punktedateien, das automatische Einrichten von Konfigurationen und das Beschleunigen von Prozessen. Es mag verlockend sein, ein Repository zu klonen und Dotfiles sofort auszuführen, aber ich würde davon abraten, da das Ergebnis möglicherweise unerwünschte Ergebnisse hat.

Kleine Schritte

Zunächst würde ich empfehlen, einige vorhandene Dotfiles-Repositorys zu klonen. Auf diese Weise können Sie die Dateistruktur verstehen und sich einen Überblick über den Code verschaffen. Das Folgende sind GitHub-Repos von einigen Top-Entwicklern, die ihre Dotfiles geteilt haben:

Es mag auf den ersten Blick entmutigend erscheinen, aber keine Panik, ich werde jede Punktdatei durchgehen, die ich beim Einrichten einer neuen Maschine verwende. Wenn Sie nach dem Lesen dieses Beitrags ein besseres Verständnis für jede Datei und ihre Funktionen haben, empfehle ich, ein eigenes Repository zu erstellen und vorhandene Punktedateien zu nutzen, um sie aufzubauen. Sie können dann die Dateien und den Code hinzufügen, die Ihren Anforderungen am besten entsprechen.

Da die Leute im Allgemeinen ihre Dotfiles als Repo-dotfiles bezeichnen, habe ich die Ordnerstruktur folgendermaßen eingerichtet:

Hier richte ich einen Hauptordner namens dotfiles ein, dann einen Ordner mit dem Benutzernamen und dann das Repo. Der Grund, warum ich empfehle, es so einzurichten, ist, Verwirrung zu vermeiden. Ein Teil des Codes ist ziemlich ähnlich, daher finde ich es nützlich, leicht zu erkennen, wessen Code ich betrachte. Wenn ich zum Beispiel vier oder mehr Repos mit dem Namen "Dotfiles" hätte, wäre dieser Prozess viel schwieriger.

Möchten Sie wissen, wie ich die Ordnerstruktur so ausgebe? Ich habe dieses großartige Ding namens tree verwendet, das in der .brew-Datei installiert ist.

Lassen Sie uns jede Datei aufschlüsseln und schauen, was los ist.


Superhelden-Dotfiles und ihre Superkräfte

Dotfiles werden in zwei Haupttypen unterteilt. Diejenigen, die eine Reihe von Befehlen enthalten und nur einmal ausgeführt werden, z. B. .osx, führen eine Liste von Befehlen aus und verleihen OS X Superkräfte. Andere Dateien wie .bash_profile und .bashrc werden jedes Mal ausgeführt, wenn Sie eine neue Terminalsitzung öffnen und Ihrem Terminal Superkräfte verleihen.

Hier ist ein Überblick über die Dotfiles in meinem Repo und eine Beschreibung dessen, was sie tun können.

.brew

Es ist am besten, dies zuerst auszuführen. Sobald überprüft wurde, ob Homebrew auf dem neuesten Stand ist, werden nützliche Werkzeuge wie tree installiert.

Anstatt auf eine Website zu gehen und eine App herunterzuladen, können Sie auch die Installation einiger Apps mithilfe von brew-cask automatisieren, z. B.

bootstrap.sh

Diese Datei ist wie das Drehen des Schlüssels in einem Auto, um den Motor zu starten.

Wenn es ausgeführt wird, synchronisiert es das lokale Repo und das auf GitHub und kopiert diese Dateien in Ihren Home-Ordner, wobei vorhandene Dateien überschrieben werden, falls vorhanden.

Bevor Sie bootstrap.sh ausführen, sollten Sie daher Ihre vorhandenen Punktedateien sichern und an einem anderen Ort speichern. Eine praktische Verknüpfung, um zu Ihren Punktedateien im Finder zu gelangen, ist:

Finder > Cmd + Shift + g > ~

Ich benutze eine App namens TotalFinder, die dem Finder einige nette Funktionen hinzufügt. Fenster mit Registerkarten und eine Verknüpfung zum Ein- und Ausblenden versteckter Dateien finde ich zum Beispiel sehr nützlich.

In bootstrap.sh werden Sie die source ~/.bash_profile bemerken. Dies bedeutet, dass Ihre neuen Einstellungen angewendet werden, wenn Sie bootstrap.sh ausführen und Terminalfenster geöffnet haben, ohne dass ein Neustart erforderlich ist.

.bash_profile / .bashrc

Wenn Sie eine neue Terminalsitzung öffnen, wird diese Datei von Bash geladen. Es lädt in den anderen path,bash_prompt,exports,aliases,functions,extra und konfiguriert einige nützliche Einstellungen wie die automatische Korrektur von Tippfehlern bei Verwendung der cd-Vervollständigung.

In einigen Fällen kann .bashrc geladen werden, daher stellt diese Datei sicher, dass .bash_profile aufgerufen wird.

Ich mag es, wenn mein Terminal sauber und übersichtlich ist, daher möchte ich den Benutzernamen / Computernamen in dieser Datei standardmäßig nicht oben anzeigen.

Clean TerminalClean TerminalClean Terminal

.path

Diese Datei beschleunigt das Ausführen ausführbarer Dateien. Anstatt über verschiedene Pfade zu ausführbaren Dateien hin und her cd müssen, können Sie die Dateipfade in Ihrer .path dotilfe festlegen und dann ausführbare Dateien direkt ausführen.

Im Allgemeinen wird diese Datei nicht im öffentlichen Repo gespeichert, da sie vertrauliche Informationen enthalten kann.

Hier ist eine Beispieldatei ~/.path, in der ~/utils zum $PATH hinzugefügt wird:export PATH="$HOME/utils:$PATH"

.bash_prompt

Mit dieser Datei können Sie die verschiedenen Farben Ihrer Bash-Eingabeaufforderung anpassen und festlegen.

.exports

Legt Umgebungsvariablen fest, z. B. das Festlegen von Vim als Standardeditor mithilfe von export EDITOR="vim". Es erhöht auch die Menge des gespeicherten Verlaufs, was nützlich ist, um frühere Befehle, die Sie verwendet haben, zurückzuverfolgen.

.aliases

Diese Datei enthält nützliche Aliase, mit denen Sie weniger schreiben können. Anstatt beispielsweise "cd .." einzugeben, können Sie hier ".." festlegen. Fangen Sie an, diese Dateien schon zu mögen? :)

.functions

Ähnlich wie Aliase, außer dass Funktionen Argumente annehmen können.

Bevor ich erwähnte, dass ich verschiedene Dotfile-Repos durchgesehen habe, habe ich mkdir erstellt, um ein Verzeichnis zu erstellen. Danach müsste ich dann in dieses Verzeichnis cd.

Ein Beispiel für eine Funktion, die ich nützlich finde, ist:

Jetzt können Sie einfach mkd machen. Jetzt haben Sie nicht nur das Verzeichnis erstellt, sondern befinden sich auch im Verzeichnis.

.extra

Diese Datei wird zum Hinzufügen Ihrer persönlichen Daten verwendet und nicht zu Ihrem Repository hinzugefügt, um sicherzustellen, dass jemand Ihr Projekt nicht versehentlich verzweigt und dann mit der Verwendung Ihrer Daten beginnt. Etwas Nettes, das Sie hier hinzufügen können, sind Ihre Git-Anmeldeinformationen.

.gitconfig

Diese Datei wird von Git beispielsweise nur verwendet, wenn ein git-Befehl aufgerufen wird. Obwohl es eine .aliases-Datei gibt, werden diese Aliase direkt ausgeführt.

In .aliases habe ich g auf git und in .gitconfig auf s status -s gesetzt.

Jetzt anstatt zu rennen:

Ich kann einfach rennen:

.gitignore

Legen Sie Dateien fest, die Git auf dem gesamten System ignorieren soll. Ja, nicht mehr .DS_Store wird versehentlich begangen!

.gvimrc

Eine kleine Datei, die die Lesbarkeit für gvim verbessert.

.hgignore

Ähnlich wie .gitignore für Mercurial.

.hushlogin

In einigen Fällen, z. B. wenn Sie in einen Computer ssh, wird möglicherweise eine Nachricht angezeigt. Es könnte ungefähr so aussehen:

Diese Datei verhindert, dass dies angezeigt wird.

.inputrc

Konfiguriert die 'Readline-Umgebung'. Dies steuert die Funktionsweise von Tasten, wenn Sie einen Befehl in Ihre Shell eingeben.

Ein Beispiel dafür, wie ich dies nützlich finde, ist die automatische Vervollständigung von tab unabhängig vom Dateinamen:

.osx

Dies ist mein Favorit unter allen Dotfiles. Es wird einmal manuell ausgeführt, damit die Befehle ausgeführt werden und wirksam werden. Je nachdem, was Sie dieser Datei hinzugefügt haben, müssen Sie Ihren Computer möglicherweise neu starten.

Einige der großartigen Dinge, die ich liebe, sind:

  • Deaktivieren Sie "Möchten Sie diese Anwendung wirklich öffnen?" Dialog
  • Suchen Sie täglich nach Software-Updates, nicht nur einmal pro Woche
  • Deaktivieren Sie das Benachrichtigungscenter und entfernen Sie das Menüleistensymbol
  • Aktivieren Sie den Zugriff für Hilfsgeräte
  • Stellen Sie eine blitzschnelle Tastaturwiederholrate ein
  • Finder: Beenden über ⌘ + Q zulassen; Dadurch werden auch Desktopsymbole ausgeblendet
  • Durchsuchen Sie bei der Suche standardmäßig den aktuellen Ordner
  • Beschleunigen Sie Mission Control-Animationen

.screenrc

Wenn Sie den screen verwenden, wird die Startmeldung entfernt.

.vimrc

Ich bin nicht so vertraut mit vim. Mit dieser Datei können Sie jedoch unter anderem Zeilennummern aktivieren und Syntaxhervorhebungen hinzufügen.

Klingt für mich nach einer guten Idee :)

.wgetrc

Wenn Sie wget verwenden, werden zusätzliche Einstellungen hinzugefügt, z. B. das Ändern des Zeitlimits auf 60 Sekunden anstelle der Standardeinstellungen von 15 Minuten. Außerdem wird der Wiederholungsversuch auf drei anstatt auf die Standardeinstellung 20 gesetzt!


Dotfiles sind los!

Zu diesem Zeitpunkt habe ich alle Dateien durchgesehen und bin in einem Stadium, in dem ich mit allem in meinem Repo zufrieden bin. Alles, bei dem ich mir nicht sicher war, wurde auskommentiert.

Nun der aufregende Teil! So wie es aussieht, haben wir die Punktedateien 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 Gebrauchsgürtel, Captain America's Shield und Iron Man's Suit. Alle unsere Helden wissen, wie man diese 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 (cd mit dem Repo) und führen Sie es aus (wobei meine vorhandenen Punktedateien gesichert und mein Repo auf dem neuesten Stand sind)

Als nächstes cd zu ~ und ausführen:

Schneller Neustart und... Super Superkräfte sind jetzt verfügbar!!!


Zusätzliche Superkräfte

Rupa Z

Verbringen Sie viel Zeit damit, solche Dinge zu tun?

Was wäre, wenn Sie stattdessen einfach Folgendes tun könnten:

Ja, bitte. Vielen Dank, https://github.com/rupa/z.

Um dies hinzuzufügen, habe ich in .bash_profile die folgende Änderung vorgenommen:

Und auch in install-deps.sh:

Dinge umkehren

Wenn Sie Ihre Punktedateien zum ersten Mal ausführen, stellen Sie möglicherweise fest, dass Ihnen ein ausgeführter Code nicht gefällt. Zum Beispiel war ich in der .osx-Datei nicht besonders interessiert an dem, was der folgende Code tat:

Dieser Code hat die Deckkraft versteckter Apps im Dock geändert.

Um dieses Verhalten einfach auf den Standardzustand zurückzusetzen, habe ich den Befehl einfach erneut ausgeführt und diesmal true in false geändert.

Dies setzte es auf den Standard zurück.

Bei den meisten Befehlen ist es ziemlich offensichtlich, den Befehl zurückzusetzen, indem einfach true in false geändert wird oder umgekehrt. Bei anderen ist es möglich, die Standardeinstellungen mit den defaults delete zurückzusetzen, z. B. defaults delete NSGlobalDomain AppleHighlightColor. In einigen Fällen müssen Sie den Computer möglicherweise auch neu starten.

Benutzerdefinierte .osx-Befehle

Dies ist nun für den fortgeschritteneren Dotfile-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 Einstellungen manuell ändern, sollten Sie diese am besten automatisieren.

Das Hinzufügen eigener .osx-Befehle kann etwas schwierig werden!

Aber im Allgemeinen ist dies ein guter Anfang:

  • defaults read > a
  • Ändern Sie die Einstellung
  • defaults read > b
  • diff a b

Auf diese Weise wird eine Datei mit den Namen a und b erstellt und der Unterschied zwischen ihnen angezeigt. Mit diesem Wissen können Sie die Datei b in Sublime Text 2 öffnen, nach dem geänderten Bit suchen und versuchen, den Befehl zum Ändern auszuarbeiten. Wenn Sie diese Methode ausprobieren, viel Glück!


Abschluss

Also, da 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 neu einrichten müssen, können Sie vor sich hin lächeln, da der gesamte Prozess automatisiert ist.

Vielen Dank für Ihren Besuch. Bitte kommentieren Sie unten, wenn Sie Fragen oder Anregungen haben.

Ich bin besonders daran interessiert, Ihre eigenen .dotfiles-Repos und alle neuen Ergänzungen zu sehen, die Sie vornehmen. Fügen Sie also in den Kommentaren unten einen Link zu Ihrem dotfiles-Repo hinzu.

Besonderer Dank

Dieser Blog-Beitrag wäre ohne die wunderbare Hilfe der Community nicht möglich gewesen, insbesondere dank @mathias, @paul_irish, @reybango und @AndrewPerkins.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.