Configuration d'une machine Mac Dev de zéro à héros avec Dotfiles

L'installation d'une nouvelle machine peut souvent être une perspective excitante. Cependant, en tant que développeurs, nous avons besoin de nombreux outils qui ne sont pas fournis en standard..

Dans cet article, j'aimerais vous présenter certaines des techniques que j'utilise pour configurer ma machine rapidement, efficacement et avec des super pouvoirs supplémentaires..


introduction

Après avoir lu cet article, vous devriez pouvoir effectuer les tâches suivantes:

  1. Configurer rapidement une nouvelle machine
  2. Améliorer SSHing dans une machine Linux
  3. Absorber facilement les configurations intelligentes d'autres développeurs sur GitHub
  4. Partagez éventuellement votre configuration avec d'autres développeurs et participez
  5. C’est ainsi que tous les développeurs professionnels conservent leurs configurations.

Avant de commencer, vous devez comprendre Git et utiliser la ligne de commande. Si vous n’êtes pas sûr de ce qu’il s’agit, je vous conseillerais d’abord de regarder par dessus:

  • http://net.tutsplus.com/?s=git
  • http://net.tutsplus.com/?s=terminal

Super-héros Dotfiles

Et si vous pouviez styler le terminal, accélérer la vitesse de Mission Control, exécuter g au lieu de git, avoir languette autocomplete quel que soit le nom du fichier, recherchez des mises à jour logicielles quotidiennement, pas seulement une fois par semaine? Et si vous pouviez automatiser la configuration de toutes ces fonctionnalités avec un seul script? Ça sonne bien? Alors ce post est pour vous.

À bien des égards, l'installation d'une nouvelle machine dépend beaucoup de vos préférences personnelles. Je suis toujours en train de refacturer et de réévaluer et je vous conseillerais de faire de même. Découvrez ce qui vous convient le mieux et partagez vos connaissances.

TL; DR: Investissez du temps en apprenant à configurer votre machine et à automatiser des processus, vous obtiendrez dix fois ce temps.

Dotfiles, ainsi appelé parce que le nom du fichier commence par un . se trouvent dans le répertoire personnel de l'utilisateur. Ces fichiers sont créés lors de l'installation et de la configuration de votre machine. Je considère chaque fichier de points comme un super-héros, chacun contenant ses propres super pouvoirs. Je vais passer en revue chaque fichier de points de super-héros et les pouvoirs qui s'y trouvent. Mais d'abord…

Il y a beaucoup à dire sur la génialité des fichiers de points, la configuration automatique des configurations et l'accélération des processus. Il peut être tentant de cloner un référentiel et d'exécuter immédiatement des fichiers dot, mais je vous le déconseille, car le résultat peut avoir des résultats indésirables..

Pas de bébé

Tout d’abord, je recommanderais de cloner certains référentiels de fichiers de points existants. Cela vous permettra de commencer à comprendre la structure du fichier et à avoir une vue d'ensemble du code. Vous trouverez ci-dessous les dépôts GitHub de certains des meilleurs développeurs ayant partagé leurs fichiers dot:

  • http://sow.so/dotfiles
  • http://mths.be/dotfiles
  • https://github.com/paulirish/dotfiles
  • http://dotfiles.github.io/

Cela peut paraître intimidant au premier abord, mais ne paniquez pas, je vais passer en revue chaque fichier de points que j'utilise lors de la configuration d'une nouvelle machine. Après avoir lu cet article, lorsque vous aurez une meilleure compréhension de chaque fichier et de ce qu’il peut faire, je vous recommande de créer votre propre référentiel et de tirer parti des fichiers de points existants pour le construire. Vous pouvez ensuite ajouter les fichiers et le code correspondant à vos besoins..

Comme les gens appellent généralement leur repo dotfiles fichiers de points Je configure la structure du dossier comme suit:

 └── fichiers de points mathias fichiers de points ├── LICENSE-MIT.txt README.md par bin bash -> / usr / local / Cellar / bash /4.2.45/bin/bash │ httpcompression └── subl -> / Applications / Sublime \ Text \ 3.app/Contents/SharedSupport/bin/subl │ bootstrap.sh └─ ─ init │ └── Mathias.terminal paulirish dotfiles README.md bin │ github-email │ └── spot │ ├── install- deps.sh de sync.sh de simonowendesign, de fichiers de points, de bootstrap.sh, d'initialisation, de Mathias.terminal, de SolarizedDark.terminal, d'installation-deps.sh └── readme.md

Ici, je configure un dossier principal appelé dotfiles, puis un dossier avec le nom d'utilisateur et ensuite le référentiel. La raison pour laquelle je recommande de le configurer comme ceci est pour éviter toute confusion. Une partie du code est assez similaire, donc je trouve utile de voir facilement le code que je regarde. Par exemple, si j'avais quatre référents ou plus, tous nommés «fichiers de points», ce processus serait beaucoup plus difficile..

Vous voulez savoir comment je génère la structure de dossiers comme ça? J'ai utilisé cette chose géniale appelée arbre, installé dans le .brasser fichier.

Casser chaque fichier et regarder ce qui se passe.


Super-héros Dotfiles et leurs super pouvoirs

Les fichiers de points sont divisés en deux types principaux. Ceux qui contiennent un ensemble de commandes et ne s'exécutent qu'une fois, .osx par exemple, lance une liste de commandes et donne à OS X des super pouvoirs. D'autres fichiers tels que .bash_profile et .bashrc exécutez chaque fois que vous ouvrez une nouvelle session de terminal et donnez à votre terminal des super pouvoirs.

Voici un aperçu des fichiers de points dans mon dépôt et une description de ce qu'ils peuvent faire..

.brasser

C'est mieux de lancer ça en premier. Une fois qu'il vérifie que Homebrew est à jour, il sera utilisé pour installer des outils utiles tels que arbre.

 brasser installer arbre

Plutôt que de devoir accéder à un site et télécharger une application, il est également possible d’automatiser l’installation de certaines applications à l’aide de brassin de bière, tel que:

 installation du fût de bière installation du fût de bière Dropbox installer google-chrome

bootstrap.sh

Ce fichier est comme tourner la clé dans une voiture pour démarrer le moteur.

Une fois exécuté, il synchronisera le référentiel local et celui de GitHub, puis copiera ces fichiers dans votre dossier personnel, en remplaçant les fichiers existants, le cas échéant..

Par conséquent, avant de courir bootstrap.sh C'est une bonne idée de sauvegarder vos fichiers dot existants et de les sauvegarder ailleurs. Un raccourci pratique pour accéder à vos fichiers de points dans le Finder est le suivant:

Recherche> Cmd + Maj + g> ~

J'utilise une application appelée TotalFinder, qui ajoute quelques fonctionnalités intéressantes au Finder. Fenêtres à onglets et un raccourci pour afficher et masquer les fichiers cachés, par exemple, je trouve très utile.

Dans bootstrap.sh vous remarquerez source ~ / .bash_profile. Cela signifie que si vous exécutez bootstrap.sh et que toutes les fenêtres du terminal soient ouvertes, vos nouveaux paramètres seront appliqués sans qu'il soit nécessaire de les redémarrer..

.bash_profile / .bashrc

Lorsque vous ouvrez une nouvelle session Terminal, ce fichier est chargé par Bash. Il se charge dans les autres fichiers dot chemin, bash_prompt, exports, alias, fonctions, extra et configure certains paramètres utiles tels que la correction automatique des fautes de frappe lors de l'utilisation CD achèvement.

Dans certains cas .bashrc peut être chargé, donc ce fichier fait en sorte que .bash_profile est appelé.

J'aime mon terminal propre et sans encombrement, donc je choisis de ne pas afficher le nom d'utilisateur / nom d'ordinateur en haut par défaut avec ce fichier.

.chemin

Ce fichier accélère le processus d’exécution des fichiers exécutables. Plutôt que de devoir CD dans les divers chemins d'accès aux fichiers exécutables, vous pouvez définir les chemins de fichiers dans votre .chemin dotilfe, puis exécutez les fichiers exécutables directement.

Généralement, ce fichier n'est pas dans le dépôt public car il peut contenir des informations sensibles.

Voici un exemple de fichier ~ / .path qui ajoute ~ / utils au $ PATH:
export PATH = "$ HOME / utils: $ PATH"

.bash_prompt

En utilisant ce fichier, vous pouvez personnaliser et définir les différentes couleurs de votre invite Bash..

.exportations

Définit les variables d'environnement, telles que définir Vim comme éditeur par défaut à l'aide de export EDITOR = "vim". Cela augmente également la quantité d’historique sauvegardée, ce qui est utile pour revenir sur les commandes précédentes que vous avez utilisées..

.alias

Ce fichier contient des alias utiles pour vous aider à écrire moins. Par exemple, au lieu de taper 'CD… "vous pouvez le définir ici pour être"'. Vous commencez à aimer ces fichiers? :)

.les fonctions

Similaire aux alias, sauf que les fonctions peuvent prendre des arguments.

Avant, quand j’ai mentionné que j’étais en train de regarder par-dessus différents dépôts de fichiers, je mkdir créer un répertoire. Après cela, je devrais alors CD dans ce répertoire.

Un exemple de fonction que je trouve utile est:

 # Créez un nouveau répertoire et entrez la fonction mkd () mkdir -p "$ @" && cd "$ @"

Maintenant vous pouvez simplement faire mkd. Maintenant, non seulement vous avez créé le répertoire, vous y êtes également.

.supplémentaire

Ce fichier est utilisé pour l'ajout de vos informations personnelles et n'est pas ajouté à votre référentiel afin de vous assurer que quelqu'un ne créera pas accidentellement votre projet puis ne commencera pas à valider vos informations. Quelque chose de bien à ajouter ici serait vos références Git.

.gitconfig

Ce fichier n’est utilisé que par Git, par exemple, lorsqu’un git La commande est appelée. Donc, bien qu'il y ait un .alias fichier, ces alias sont exécutés directement.

Dans .alias j'ai g mis à git et en .gitconfig, s mis à status -s.

Maintenant au lieu de courir:

 git status -s

Je peux simplement courir:

 g s

.gitignore

Définissez les fichiers que vous souhaitez que Git ignore sur l’ensemble du système. Oui, pas plus .DS_Store être commis accidentellement!

.gvimrc

Un petit fichier qui améliore la lisibilité pour Gvim.

.Hignor

Simliar à .gitignore pour Mercurial.

.hushlogin

Dans certains cas, par exemple, lorsque vous ssh dans une machine, un message peut vous être présenté. Cela pourrait ressembler à quelque chose comme ça:

 _ | | _ __ ___ _ _ _ ___ ___ ___ | | ___ ___ _ ____ _____ _ __ | '_' _ \ | | | | / __ / _ \ / _ \ | | / __ | / _ \ '__ \ \ / / _ \' __ | | | | | | | | _ | | | (_ | (_) | (_) | | \ __ \ __ / | \ V / __ / | | _ | | _ | | _ | \ __, | \ ___ \ ___ / \ ___ / | _ | | | | / \ ___ | _ | \ _ / \ ___ | _ | __ / | | ___ / Bienvenue sur mon super serveur. Toute activité malveillante et / ou non autorisée est strictement interdite. Toute activité peut être enregistrée.

Ce fichier empêche que ceci soit affiché.

.inputrc

Configure l'environnement 'Readline'. Ceci contrôle le fonctionnement des touches lorsque vous entrez une commande dans votre shell.

Un exemple de la façon dont je trouve cela utile est de faire languette autocomplete quel que soit le nom du fichier:

 définir la complétion-ignorer-la casse

.osx

Ceci est mon préféré de tous les fichiers de points. Il est exécuté une fois, manuellement, pour que les commandes soient exécutées et prennent effet. Selon ce que vous avez ajouté à ce fichier, vous devrez peut-être redémarrer votre ordinateur..

Certaines des choses impressionnantes que j'aime sont:

  • Désactivez la boîte de dialogue "Êtes-vous sûr de vouloir ouvrir cette application?"
  • Vérifiez les mises à jour logicielles quotidiennement, pas seulement une fois par semaine
  • Désactiver le centre de notifications et supprimer l'icône de la barre de menus
  • Activer l'accès pour les appareils d'assistance
  • Définir un taux de répétition du clavier extrêmement rapide
  • Finder: permet d'arrêter via + Q; cela masquerait également les icônes du bureau
  • Lorsque vous effectuez une recherche, recherchez le dossier actuel par défaut
  • Accélérer les animations de contrôle de mission

.écran

Si tu utilises écran, cela supprime le message de démarrage.

.vimrc

Je ne suis pas si familier avec vim. Cependant, certaines des choses que vous pouvez faire avec ce fichier incluent l’activation des numéros de ligne et l’ajout de la coloration syntaxique..

Cela me semble être une bonne idée :)

.wgetrc

Si tu utilises wget, Cela ajoute des paramètres supplémentaires tels que la modification du délai d'attente à 60 secondes au lieu des 15 minutes par défaut. Il définit également le nombre de tentatives à trois, plutôt que le paramètre par défaut.!


Les fichiers de points sont aller!

À ce stade, j'ai examiné tous les fichiers et je suis à un stade où je suis content de tout dans mon référant. Tout ce dont je n'étais pas sûr a été commenté.

Maintenant la partie excitante! En l'état actuel des choses, nous avons les fichiers de points dans un repo mais nous devons les mettre au bon endroit pour pouvoir les trouver et les utiliser..

Pensez-y comme ceci: nous avons Thor's Hammer, Batman's Utility Belt, Captain America's Shield et Iron Man's Suit. Tous nos héros savent comment les utiliser, mais sans eux, ils sont perdus! Nous devons donner à nos super-héros leurs armes pour qu'ils puissent les utiliser.

Pour ce faire (avec mes fichiers de points existants sauvegardés et mon référentiel à jour), ouvrez votre terminal, CD à la repo et courir

 source bootstrap.sh

Suivant, CD à ~ et courir:

 source .osx

Redémarrage rapide et… Génial, les super pouvoirs sont maintenant disponibles!!!


Super pouvoirs supplémentaires

Rupa Z

Passez-vous beaucoup de temps à faire des choses comme ça?

cd this / is / the / path / that / i / wanna / so / i / tapez / it / all / out / to / get / whereiwant

Et si au lieu de cela, vous pouviez simplement faire ceci:

z oùiwant

Oui s'il vous plaît. Merci https://github.com/rupa/z.

Pour ajouter ceci, dans .bash_profile J'ai apporté le changement suivant:

 # init z https://github.com/rupa/z. ~ / z / z.sh

Et aussi dans install-deps.sh:

 cd git clone https://github.com/rupa/z.git chmod + x ~ / z / z.sh

Inverser les choses

Lorsque vous exécutez vos fichiers de points pour la première fois, vous constaterez peut-être que vous n'aimez pas un morceau de code exécuté. Par exemple, dans le .osx fichier, je n'aimais pas trop ce que faisait le code suivant:

 Les valeurs par défaut écrivent com.apple.dock showhidden -bool true

Ce code a changé l'opacité sur les applications cachées dans le dock.

Pour rétablir simplement ce comportement à son état par défaut, j'ai simplement exécuté à nouveau la commande, cette fois en modifiant vrai à faux, comme tel:

 par défaut, écrivez com.apple.dock showhidden -bool false

Cela rétablit sa valeur par défaut.

Avec la plupart des commandes, il est assez évident de revenir en arrière en changeant simplement vrai à faux ou vice versa. Avec d'autres, il est possible de rétablir les valeurs par défaut en utilisant valeurs par défaut supprimer, par exemple, valeurs par défaut delete NSGlobalDomain AppleHighlightColor. Dans certains cas, vous devrez peut-être également redémarrer la machine..

Commandes personnalisées .osx

Maintenant, ceci est pour le maître de fichier de points plus avancé. Au fur et à mesure que vous gagnerez en connaissances et en confiance en utilisant dotfiles, vous voudrez peut-être inclure votre propre code.

Sur un nouvel ordinateur, si vous modifiez manuellement les paramètres, ceux-ci seraient mieux automatisés..

Ajouter votre propre .osx les commandes peuvent être un peu délicates!

Mais généralement, c’est un bon point de départ:

  • lecture par défaut> a
  • Changer le réglage
  • lecture par défaut> b
  • diff a b

Cela crée un fichier appelé une et b puis affiche la différence entre eux, avec cette connaissance, vous pouvez ensuite ouvrir le fichier b Dans Sublime Text 2, recherchez le bit qui a changé et essayez de trouver la commande pour le changer. Si vous essayez cette méthode, bonne chance!


Conclusion

Alors là vous l'avez! Allez-y, amusez-vous avec les fichiers de points, attendez avec impatience de donner à votre machine des super pouvoirs et la prochaine fois que vous aurez besoin de configurer une machine à partir de zéro, vous pourrez sourire tout le processus automatisé.

Merci beaucoup pour votre visite, veuillez commenter ci-dessous si vous avez des questions ou des suggestions..

Je suis particulièrement intéressé de voir le vôtre .fichiers de points Repo et tous les nouveaux ajouts que vous faites, alors n'hésitez pas à ajouter un lien vers votre repo dotfiles dans les commentaires ci-dessous.

Remerciement spécial

Cet article de blog n'aurait pas été possible sans l'aide merveilleuse de la communauté, en particulier grâce à @mathias, @paul_irish, @reybango et @AndrewPerkins.