Dotfile

Plik, którego nazwa zaczyna się od kropki, domyślnie ukryty na liście plików. Zwykle przechowuje konfigurację programów (np. .bashrc).

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.