Configuración de una máquina de desarrollo de Mac de cero a héroe con archivos de puntos

Configurar una nueva máquina a menudo puede ser una perspectiva emocionante. Sin embargo, como desarrolladores, hay muchas herramientas que necesitamos que no vienen como estándar.

En esta publicación, me gustaría examinar algunas de las técnicas que utilizo para ayudar a configurar mi máquina de manera rápida, eficiente y con superpoderes adicionales..


Introducción

Después de leer este artículo, deberías poder hacer lo siguiente:

  1. Configurar rápidamente una nueva máquina
  2. Mejorar SSH'ing en una caja de Linux
  3. Absorba fácilmente configuraciones inteligentes de otros desarrolladores en GitHub
  4. Opcionalmente comparte tu configuración con otros desarrolladores y participa.
  5. Así es como todos los desarrolladores profesionales mantienen sus configuraciones.

Antes de comenzar, deberá comprender Git y usar la línea de comandos. Si no está seguro de cuáles son, le recomiendo que consulte primero lo siguiente:

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

Dotfiles de superhéroes

¿Qué pasaría si pudiera diseñar la Terminal, acelerar la velocidad del Control de la Misión, correr? sol en lugar de git, tener lengüeta autocompletar sin importar el caso del nombre del archivo, ¿verifica actualizaciones de software diariamente, no solo una vez por semana? ¿Qué pasaría si pudiera automatizar la configuración de todas estas características con un solo script? ¿Suena bien? Entonces este post es para ti.

En muchos aspectos, configurar una nueva máquina depende en gran medida de las preferencias personales. Siempre estoy refactorizando y reevaluando, y te aconsejo que hagas lo mismo. Descubre qué funciona mejor para ti y comparte tus conocimientos..

TL; DR: Invertir tiempo aprendiendo a configurar su máquina y automatizar procesos, obtendrá ese tiempo diez veces atrás.

Dotfiles, llamados así porque el nombre de archivo comienza con un . se encuentran en el directorio de inicio del usuario. Estos archivos se crean a medida que instala y configura su máquina. Pienso en cada archivo de puntos como un superhéroe que contiene sus propios superpoderes. Voy a repasar cada archivo de puntos de superhéroes y los poderes que se encuentran dentro. Pero primero…

Hay mucho que decir sobre la genialidad de los archivos de puntos, la configuración automática y la aceleración de los procesos. Puede ser tentador clonar un repositorio y ejecutar archivos de puntos de inmediato, pero no lo recomiendo ya que el resultado puede tener resultados no deseados..

Pequeños pasos

En primer lugar, recomiendo clonar algunos repositorios dotfiles existentes. Al hacerlo, podrá comenzar a comprender la estructura del archivo y obtener una descripción general del código. Los siguientes son repositorios de GitHub de algunos de los principales desarrolladores que han compartido sus archivos de puntos:

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

Puede parecer desalentador a primera vista, pero no se asuste, repasaré cada archivo de puntos que utilizo cuando instalo una nueva máquina. Después de leer esta publicación, cuando haya comprendido mejor cada archivo y lo que pueden hacer, le recomiendo que cree su propio repositorio y aproveche los archivos de puntos existentes para crearlos. Luego puede agregar los archivos y el código que mejor se adapte a sus necesidades.

Como la gente generalmente nombra sus archivos de punto repo archivos de puntos Configuré la estructura de carpetas así:

 └── dotfiles ├── mathias │ dotfiles ├── ├── LICENCE-MIT.txt │ ├── README.md ├── 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 │ │ └── lugar │ instalación- deps.sh └── └── sync.sh └── simonowendesign └── dotfiles ├── bootstrap.sh ├── init │ ├── Mathias.terminal └── SolarizedDark.terminal ├── install-deps.sh └── readme.md

Aquí, estoy configurando una carpeta principal llamada dotfiles, luego una carpeta con el nombre de usuario y luego el repositorio. La razón por la que recomiendo configurarlo de esta manera es para evitar confusiones. Parte del código es bastante similar, por lo que me resulta útil ver fácilmente qué código estoy viendo. Por ejemplo, si tuviera cuatro o más repositorios llamados 'dotfiles', este proceso sería mucho más difícil.

¿Quieres saber cómo saco la estructura de carpetas de esa manera? Utilicé esta cosa increíble llamada árbol, instalado en el .elaborar cerveza expediente.

Rompamos cada archivo y veamos lo que está pasando.


Dotfiles de superhéroes y sus superpoderes

Dotfiles se dividen en dos tipos principales. Aquellos que contienen un conjunto de comandos y solo se ejecutan una vez., .osx por ejemplo, ejecuta una lista de comandos y otorga superpoderes de OS X. Otros archivos como .bash_profile y .Bashrc corre cada vez que abres una nueva sesión de Terminal y le das superpoderes a tu Terminal.

Aquí hay un resumen de los archivos de puntos en mi repositorio y una descripción de lo que pueden hacer..

.elaborar cerveza

Es mejor ejecutar esto primero. Una vez que comprueba eso Homebrew está actualizado, se utilizará para instalar herramientas útiles como árbol.

 brew install tree

En lugar de tener que ir a un sitio y descargar una aplicación, también es posible automatizar la instalación de algunas aplicaciones usando barril de cerveza, como:

 instalación de barriles de cerveza instalar Dropbox instalar barriles de cerveza google-chrome

bootstrap.sh

Este archivo es como girar la llave en un automóvil para arrancar el motor..

Cuando se ejecuta, sincronizará el repositorio local y el de GitHub, luego copiará esos archivos a su carpeta de inicio, anulando cualquier archivo existente si existe.

Por lo tanto, antes de correr bootstrap.sh es una buena idea hacer una copia de seguridad de los archivos de puntos existentes y guardarlos en otro lugar. Un atajo útil para llegar a tus archivos de puntos en el Finder es:

Buscador> Cmd + Shift + g> ~

Utilizo una aplicación llamada TotalFinder, esto agrega algunas características interesantes al Finder. Las ventanas con pestañas y un acceso directo para mostrar y ocultar archivos ocultos, por ejemplo, me parecen muy útiles.

En bootstrap.sh notarás fuente ~ / .bash_profile. Esto significa que si corres bootstrap.sh y tenga las ventanas de Terminal abiertas, su nueva configuración se aplicará sin necesidad de reiniciar.

.bash_profile / .bashrc

Cuando abres una nueva sesión de Terminal, este archivo es cargado por Bash. Se carga en los otros dotfiles. ruta, bash_prompt, exportaciones, alias, funciones, extra y configura algunos ajustes útiles, como la corrección automática de errores tipográficos al usar discos compactos terminación.

En ciertas ocasiones .Bashrc se puede cargar, por lo que este archivo se asegura de que .bash_profile se llama.

Me gusta mi terminal limpio y libre de desorden, por lo que opto por no mostrar el nombre de usuario / nombre de la computadora en la parte superior de manera predeterminada con este archivo.

.camino

Este archivo acelera el proceso de ejecución de archivos ejecutables. En lugar de tener que discos compactos una y otra vez a través de varias rutas a archivos ejecutables, puede establecer las rutas de archivos en su .camino dotilfe y luego ejecuta los archivos ejecutables directamente.

Generalmente, este archivo no se guarda en el repositorio público ya que puede contener información confidencial.

Aquí hay un ejemplo de archivo ~ / .path que agrega ~ / utils a $ PATH:
export PATH = "$ HOME / utils: $ PATH"

.bash_prompt

Usando este archivo puede personalizar y configurar los diversos colores de su mensaje de Bash.

.las exportaciones

Establece variables de entorno, como establecer Vim como el editor predeterminado usando export EDITOR = "vim". También aumenta la cantidad de historial guardado, útil para realizar un seguimiento de los comandos anteriores que ha utilizado.

.alias

Este archivo contiene alias útiles para ayudarte a escribir menos. Por ejemplo, en lugar de escribir 'discos compactos… 'Puedes configurarlo aquí para ser'... '. ¿Ya te van a gustar estos archivos? :)

.funciones

Similar a los alias, excepto que las funciones pueden tomar argumentos.

Antes, cuando mencioné que estaba revisando diferentes repositorios de archivos de puntos, hice mkdir para crear un directorio. Después de eso, necesitaría discos compactos en ese directorio.

Un ejemplo de una función que me parece útil es:

 # Crea un nuevo directorio e ingresa la función mkd () mkdir -p "$ @" && cd "$ @"

Ahora puedes simplemente hacer mkd. Ahora, no solo ha creado el directorio, también está en el directorio.

.extra

Este archivo se utiliza para agregar su información personal y no se agrega a su repositorio para asegurarse de que alguien no bifurque accidentalmente su proyecto y luego comience a usar sus datos. Algo agradable de agregar aquí serían tus credenciales de Git.

.gitconfig

Este archivo solo lo usa Git, por ejemplo, cuando un git Se invoca el comando. Así que aunque hay una .alias archivo, esos alias se ejecutan directamente.

En .alias yo tengo sol ajustado a git y en .gitconfig, s ajustado a estado -s.

Ahora en lugar de correr:

 estado de git -s

Simplemente puedo correr:

 g s

.gitignore

Configure los archivos que le gustaría que Git ignorara en todo el sistema. Yay no mas .DS_Store estar cometiendo accidentalmente!

.gvimrc

Un pequeño archivo que mejora la legibilidad para gvim.

.hgignore

Simliar a .gitignore para mercurial.

.hushlogin

En algunos casos, por ejemplo, cuando ssh en una máquina, se le puede presentar un mensaje. Podría verse algo como esto:

 _ | | _ __ ___ _ _ ___ ___ ___ | | ___ ___ _ ____ _____ _ __ | '_' _ \ | | | | / __ / _ \ / _ \ | | / __ | / _ \ '__ \ \ / / _ \' __ | | | | | | | | _ | | | (_ | (_) | (_) | | __ \ __ / | \ V / __ / | | | | | | | | | | | | | | | | | | | | | | | / \ ___ | _ | \ _ / \ ___ | _ | __ / | | ___ / Bienvenido a mi servidor genial. Cualquier actividad maliciosa y / o no autorizada está estrictamente prohibida. Toda actividad puede ser registrada.

Este archivo evita que esto se muestre.

.inputrc

Configura el 'entorno Readline'. Esto controla la forma en que funcionan las teclas cuando ingresas un comando en tu shell.

Un ejemplo de cómo encuentro esto útil es hacer lengüeta autocompletar sin importar el caso del nombre de archivo:

 establecer caso de finalización-ignorar en

.osx

Este es mi favorito de todos los dotfiles. Se ejecuta una vez, manualmente, para que los comandos se ejecuten y surtan efecto. Dependiendo de lo que haya agregado a este archivo, es posible que deba reiniciar su máquina.

Algunas de las cosas maravillosas que amo son:

  • Desactive el cuadro de diálogo "¿Está seguro de que desea abrir esta aplicación?"
  • Busque actualizaciones de software diariamente, no solo una vez por semana
  • Desactive el Centro de notificaciones y elimine el icono de la barra de menú
  • Habilitar el acceso para dispositivos de asistencia
  • Establece una velocidad de repetición de teclado increíblemente rápida
  • Buscador: permitir salir a través de ⌘ + Q; Al hacerlo también se ocultarán los iconos del escritorio.
  • Al realizar una búsqueda, busque la carpeta actual por defecto
  • Acelerar las animaciones de Control de Misión

.pantalla

Si utiliza pantalla, esto elimina el mensaje de inicio.

.vimrc

No estoy tan familiarizado con empuje. Sin embargo, algunas de las cosas que puede hacer con este archivo incluyen habilitar números de línea y agregar resaltado de sintaxis.

Me parece una buena idea :)

.wgetrc

Si utiliza wget, esto agrega configuraciones adicionales, como cambiar el tiempo de espera a 60 segundos en lugar de los 15 minutos predeterminados. También establece el reintento en tres, en lugar de los 20 predeterminados.!


Dotfiles Are Go!

En este punto, he revisado todos los archivos y estoy en una etapa en la que estoy contento con todo en mi repositorio. Todo lo que no estaba seguro ha sido comentado.

Ahora la parte emocionante! Tal como están, tenemos los archivos de puntos en un repositorio pero tenemos que colocarlos en el lugar correcto para que puedan ser encontrados y utilizados..

Piénsalo así, tenemos el Martillo de Thor, el Cinturón de Utilidad de Batman, el Escudo del Capitán América y el Traje de Hombre de Hierro. Todos nuestros héroes saben cómo usarlos, ¡pero sin ellos se pierden! Necesitamos darles a nuestros superhéroes sus armas para que puedan usarlas..

Para hacer esto (con mis archivos de puntos existentes respaldados y mi repositorio todo actualizado), abra su Terminal, discos compactos a la repo y correr

 fuente bootstrap.sh

Siguiente, discos compactos a ~ y correr:

 fuente .osx

Reinicio rápido y ... Impresionantes, ya están disponibles los súper poderes!!!


Superpoderes adicionales

Rupa Z

¿Pasas mucho tiempo haciendo cosas como esta??

cd esto / es / la / ruta / que / i / quiero / así / i / tipo / it / all / out / to / get / whereiwant

¿Qué pasa si, en cambio, podría hacer esto:

z whereiwant

Sí por favor. Gracias https://github.com/rupa/z.

Para agregar esto, en .bash_profile Hice el siguiente cambio:

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

Y tambien en install-deps.sh:

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

Revertir cosas

Cuando ejecuta sus archivos de puntos por primera vez, es posible que no le guste un fragmento de código que se haya ejecutado. Por ejemplo, en el .osx archivo, no estaba muy interesado en lo que hizo el siguiente código:

 los valores predeterminados escriben com.apple.dock showhidden -bool true

Este código cambió la opacidad en aplicaciones ocultas en el dock.

Para revertir simplemente este comportamiento a su estado predeterminado, simplemente ejecuté el comando nuevamente, esta vez cambiando cierto a falso, como tal

 los valores predeterminados escriben com.apple.dock showhidden -bool false

Esto lo volvió a establecer por defecto.

Con la mayoría de los comandos es bastante obvio revertir el comando simplemente cambiando cierto a falso o viceversa. Con otros, es posible volver a establecerlo de forma predeterminada utilizando valores predeterminados eliminar, por ejemplo, los valores predeterminados eliminan NSGlobalDomain AppleHighlightColor. En algunos casos es posible que también deba reiniciar la máquina..

Comandos .osx personalizados

Ahora esto es para el master de dotfile más avanzado. A medida que adquiera más conocimientos y confianza con los archivos dot, puede incluir su propio código..

En una máquina nueva, si encuentra que está cambiando manualmente la configuración, sería mejor automatizarlas..

Añadiendo tu propio .osx los comandos pueden ser un poco complicados!

Pero en general, este es un buen lugar para comenzar:

  • los valores predeterminados leen> a
  • Cambiar el ajuste
  • valores predeterminados leídos> b
  • diff a b

Haciendo esto crea un archivo llamado una y segundo luego muestra la diferencia entre ellos, con este conocimiento puede abrir el archivo segundo en Sublime Text 2, busque el bit que cambió e intente resolver el comando para cambiarlo. Si pruebas este método, buena suerte.!


Conclusión

Así que, ahí lo tienes! Avance, diviértase con archivos de puntos, espere poder darle superpoderes a su máquina y la próxima vez que necesite configurar una máquina desde cero, puede sonreír a usted mismo, ya que todo el proceso está automatizado..

Muchas gracias por visitarnos, comente a continuación si tiene alguna pregunta o sugerencia..

Estoy especialmente interesado en ver el tuyo. .archivos de puntos repos y cualquier nueva adición que haga, así que siéntase libre de agregar un enlace a su repositorio dotfiles en los comentarios a continuación.

Gracias especiales

Esta publicación de blog no hubiera sido posible sin la maravillosa ayuda de la comunidad, gracias especiales a @mathias, @paul_irish, @reybango y @AndrewPerkins.