Dotfile to plik, którego nazwa zaczyna się od kropki (np. .bashrc, .gitconfig), przez co systemy uniksowe domyślnie ukrywają go na liście plików. To nie żadna magia ani specjalny typ pliku — to zwykły plik tekstowy, który po prostu nosi nazwę z kropką na początku. W praktyce dotfiles to miejsce, gdzie programy trzymają swoją konfigurację: ustawienia powłoki, edytora, klienta Git czy SSH.
Jak to działa
Konwencja wzięła się z czystego przypadku. Wczesne wersje Uniksa, gdy listowały pliki, chciały pominąć katalogi . (bieżący) i .. (nadrzędny). Najprostsze rozwiązanie? „Ukryj wszystko, co zaczyna się od kropki”. I tak narodziła się cała filozofia ukrytych plików — z lenistwa programisty, nie z przemyślanego designu. To dlatego standardowe ls ich nie pokaże, a ls -a (od all) owszem.
Dzięki temu programy mogą trzymać swoje pliki konfiguracyjne w katalogu domowym użytkownika, nie zaśmiecając widoku przy zwykłym listowaniu. Każdy program czyta swój dotfile przy starcie i stosuje zapisane w nim ustawienia — aliasy, zmienne środowiskowe, motywy, skróty.
Przykład z praktyki
Klasyk to .bashrc — plik wczytywany przy każdym uruchomieniu interaktywnej powłoki Bash. Wrzucasz tam alias, żeby nie wpisywać tego samego po raz tysięczny:
alias gs='git status'
Po zapisaniu i wykonaniu source ~/.bashrc (albo otwarciu nowego terminala) wpisujesz gs i masz status repozytorium. Inne częste dotfiles to .vimrc (Vim), .gitconfig (Git — tu ustawiasz swoje imię i email do commitów) oraz .ssh/config (skróty do serwerów). Wielu programistów trzyma swoje dotfiles w osobnym repozytorium na GitHubie, żeby na nowej maszynie odtworzyć całe środowisko jednym git clone.
Na co uważać
Najczęstszy błąd początkujących: „gdzie się podziały moje pliki?!” — bo edytor czy menedżer plików domyślnie ukrywa dotfiles. W graficznych menedżerach włącz pokazywanie ukrytych plików (zwykle Ctrl+H), w terminalu używaj ls -a.
Druga pułapka: dotfiles potrafią zawierać sekrety. Plik typu .env z hasłami albo kluczami API to klasyk, który ląduje przez przypadek w publicznym repozytorium. Zanim zrobisz git add, sprawdź, czy nie commitujesz czegoś wrażliwego — i dopisz takie pliki do .gitignore (który, nomen omen, też jest dotfile’em).
Pamiętaj też, że ukrycie to nie zabezpieczenie. Kropka chowa plik przed wzrokiem, ale każdy z dostępem do katalogu spokojnie go odczyta.
Pojęcia powiązane: katalog domowy (home directory), zmienne środowiskowe, .gitignore, powłoka Bash/Zsh, plik konfiguracyjny.