Articles

Dotfiles

många program konfigureras med vanliga textfiler som kallas ”dotfiles”(eftersom filnamnen börjar med ett ., t.ex. ~/.gitconfig, så att de ärgömda i kataloglistan ls som standard).

många av de verktyg du använder har förmodligen många inställningar som kan ställas inganska fint. Ofta anpassas verktyg med specialiserade språk, t.ex. Vimscript för Vim eller skalets eget språk för ett skal.

att anpassa och anpassa dina verktyg till ditt önskade arbetsflöde gör dig mer produktiv. Vi rekommenderar dig att investera tid i att anpassa ditt verktyg självsnarare än att klona någon annans dotfiles från GitHub.

Du har förmodligen redan några dotfiles. Några ställen att titta på:

  • ~/.bashrc
  • ~/.emacs
  • ~/.vim
  • ~/.gitconfig

vissa program lägger inte filerna direkt i din hemmapp och istället lägger de dem i en mapp under ~/.config.

Dotfiles är inte exklusiva för kommandoradsapplikationer, till exempel kan MPV-videospelaren konfigureras redigera filer under ~/.config/mpv

Du kan lära dig om verktygets inställningar genom att läsa online-dokumentation orman-sidor. Ett annat bra sätt är attsök på internet efter blogginlägg om specifika program, där författare kommerberätta om deras föredragna anpassningar. Ännu ett sätt att lära sig omanpassningar är att titta igenom andras dotfiles: du kan hitta massor avdotfilerrepositionerpå GitHub — se den mest populärahär (vi rekommenderar dig att inte blindlycopy konfigurationer dock).

organisation

hur ska du organisera dina dotfiles? De ska vara i sin egen mapp, under versionskontroll och symlänkas på plats med ett skript. Detta harfördelarna med:

  • enkel installation: om du loggar in på en ny maskin tar det bara en minut att använda dina anpassningar
  • portabilitet: dina verktyg fungerar på samma sätt överallt
  • synkronisering: du kan uppdatera dina dotfiles var som helst och hålla dem Allain sync
  • ändra spårning: du kommer förmodligen att behålla din dotfilesfor hela din programmeringskarriär, och Versionshistorik är trevligt att ha förlånglivade projekt
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'

Maskinspecifika anpassningar

För det mesta vill du ha samma konfiguration över maskiner, men ibland vill du ha ett litet delta på en viss maskin. Här är ett par sätt du kan hantera denna situation:

gren per maskin

använd versionskontroll för att behålla en gren per maskin. Detta tillvägagångssätt ärlogiskt enkelt men kan vara ganska tungviktigt.

om satser

om konfigurationsfilen stöder den, använd motsvarande if-satser tillapplicera maskinspecifika anpassningar. Till exempel kan ditt skal ha någotsom:

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

inkluderar

om konfigurationsfilen stöder det, använd includes. Till exempel kan ett ~/.gitconfig ha en inställning:

 path = ~/.gitconfig_local

och sedan på varje maskin kan ~/.gitconfig_local innehålla maskinspecifika inställningar. Du kan även spåra dessa i ett separat arkiv förmaskinspecifika inställningar.

den här ideen är också användbar om du vill att olika program ska dela vissa konfigurationer. Om du till exempel vill ha både bash och zsh för att dela samma uppsättning alias kan du skriva dem under .aliases och ha följande block i båda.

# Test if ~/.aliases exists and source itif ; then source ~/.aliasesfi

resurser

  • dina instruktörers dotfiles:Anish,Jon,Jose
  • GitHub does dotfiles: dotfile frameworks,utilities, examples and tutorials
  • Shell startupscripts: anexplanation av de olika konfigurationsfilerna som används för ditt skal

övningar

  1. skapa en mapp för dina dotfiles och ställa in versioncontrol.

  2. Lägg till en konfiguration för minst ett program, t. ex. ditt skal, med somecustomization (till att börja med kan det vara något så enkelt som att anpassa din skalprompt genom att ställa in $PS1).

  3. Ställ in en metod för att installera dina dotfiles snabbt (och utan manuell ansträngning)på en ny maskin. Detta kan vara så enkelt som ett skalskript som kallar ln -sför varje fil, eller du kan använda en specializedutility.

  4. Testa ditt installationsskript på en ny virtuell maskin.

  5. migrera alla dina nuvarande verktygskonfigurationer till ditt dotfiles-arkiv.

  6. publicera dina dotfiles på GitHub.

redigera den här sidan.

licensierad enligt CC BY-NC-SA.