Dotfiles
Molti programmi sono configurati utilizzando file di testo, noto come “dotfiles”(perché i nomi dei file iniziano con un .
ad esempio ~/.gitconfig
in modo che essi arehidden nella directory elenco ls
per impostazione predefinita).
Molti degli strumenti che usi probabilmente hanno molte impostazioni che possono essere sintonizzate abbastanza finemente. Spesso,gli strumenti sono personalizzati con linguaggi specializzati, ad esempio Vimscript per Vim o il linguaggio della shell per una shell.
Personalizzare e adattare i tuoi strumenti al tuo flusso di lavoro preferito ti renderà più produttivo. Ti consigliamo di investire tempo nella personalizzazione del tuo strumento da solopiuttosto che clonare i dotfile di qualcun altro da GitHub.
Probabilmente hai già impostato alcuni dotfile. Alcuni posti per guardare:
~/.bashrc
~/.emacs
~/.vim
~/.gitconfig
Alcuni programmi non mettere il file nella tua cartella home, direttamente e invece li hanno messi in una cartella sotto ~/.config
.
I dotfile non sono esclusivi per le applicazioni a riga di comando, ad esempio il lettore video MPV può essere configurato modificando i file sotto~/.config/mpv
È possibile conoscere le impostazioni del proprio strumento leggendo la documentazione online o le pagine man. Un altro ottimo modo è quello di cercare su Internet post di blog su programmi specifici, dove gli autori ti informeranno sulle loro personalizzazioni preferite. Ancora un altro modo per imparare aboutcustomizations è quello di guardare attraverso dotfiles di altre persone: si possono trovare tonnellate ofdotfilesrepositorieson GitHub — vedere il più popolare onehere (vi consigliamo di non blindlycopy configurazioni però).
Organizzazione
Come dovresti organizzare i tuoi dotfile? Dovrebbero essere nella propria cartella, sotto il controllo della versione, e collegati simbolicamente in posizione utilizzando uno script. Questo hai benefici di:
- Facilità di installazione: se si accede a una nuova macchina, l’applicazione yourcustomizations richiederà solo un minuto
- Portabilità: gli strumenti funzioneranno allo stesso modo ovunque
- Sincronizzazione: è possibile aggiornare i dotfile ovunque e tenerli allin sync
- Change tracking: probabilmente stai andando a mantenere la vostra dotfilesfor la vostra intera carriera di programmazione, e la versione della storia è bello avere forlong-vissuto progetti
cd ~/srcmkdir dotfilescd dotfilesgit inittouch bashrc# create a bashrc with some settings, e.g.:# PS1='\w > 'touch installchmod +x install# insert the following into the install script:# #!/usr/bin/env bash# BASEDIR=$(dirname $0)# cd $BASEDIR## ln -s ${PWD}/bashrc ~/.bashrcgit add bashrc installgit commit -m 'Initial commit'
Macchina personalizzazioni specifiche
la Maggior parte del tempo, si desidera che la stessa configurazione tra le macchine, butsometimes, in un piccolo delta su una particolare macchina. Ecco un coupleways che puoi gestire questa situazione:
Branch per machine
Usa il controllo di versione per mantenere un branch per machine. Questo approccio è logicamente semplice ma può essere piuttosto pesante.
Istruzioni If
Se il file di configurazione lo supporta, utilizzare l’equivalente di istruzioni if per applicare personalizzazioni specifiche della macchina. Ad esempio, la tua shell potrebbe avere qualcosacome:
if ]; then {do_something else}; fi# Darwin is the architecture name for macOS systemsif ]; then {do_something}; fi# You can also make it machine specificif ]; then {do_something}; fi
Include
Se il file di configurazione lo supporta, fai uso di include. Ad esempio, un ~/.gitconfig
può avere un’impostazione:
path = ~/.gitconfig_local
E poi su ogni macchina, ~/.gitconfig_local
può contenere impostazioni specifiche della macchina. Si potrebbe anche tenere traccia di questi in un repository separato formachine impostazioni specifiche.
Questa idea è utile anche se si desidera programmi diversi per condividere alcune configurazioni. Ad esempio, se vuoi che entrambi bash
e zsh
condividano lo stesso insieme di alias puoi scriverli sotto .aliases
e avere il seguente blocco in entrambi.
# Test if ~/.aliases exists and source itif ; then source ~/.aliasesfi
Risorse
- il Tuo istruttori dotfiles:Anish,Jon,Jose
- GitHub non dotfiles: dotfile quadri di riferimento,utilities, esempi e tutorial
- Guscio startupscripts: anexplanation dei vari file di configurazione utilizzato per la shell
Esercizi
-
Creare una cartella per il vostro dotfiles e impostare versioncontrol.
-
Aggiungere una configurazione per almeno un programma, ad esempio la tua shell, con somecustomization (per iniziare, può essere qualcosa di semplice come personalizzare il prompt della tua shell impostando
$PS1
). -
Impostare un metodo per installare i dotfile rapidamente (e senza sforzo manuale)su una nuova macchina. Questo può essere semplice come uno script di shell che chiama
ln -s
per ogni file, oppure è possibile utilizzare una funzionalità specializzata. -
Testare lo script di installazione su una nuova macchina virtuale.
-
Migrare tutte le configurazioni degli strumenti attuali al repository dotfiles.
-
Pubblica i tuoi dotfile su GitHub.
Modifica questa pagina.
Sotto licenza CC BY-NC-SA.