W pewnym momencie przeszedłem na Zsh tylko dla jednej rzeczy: Oh My Zsh. Te wszystkie ikony, statusy gita i inteligentne podpowiedzi robią robotę, kosztem delikatnego spowolnienia działania… ale jak to wygląda.
Ale Bash… stary poczciwy Bash, wcale nie musi zostawać w tyle. Dzięki projektowi Starship możemy mieć najszybszy i najładniejszy prompt na świecie, nie rezygnując z domyślnej powłoki systemowej.
Czym jest Starship?
Starship to minimalistyczny, niesamowicie szybki i niemal nieskończenie konfigurowalny prompt napisany w Rust. Działa na wszystkim – od Basha, przez Zsh, aż po PowerShell. Jego główną zaletą jest to, że pokazuje tylko te informacje, których w danej chwili potrzebujesz.
Instalacja Starshipa
Proces jest banalnie prosty. Wystarczy jedna komenda, która pobierze i zainstaluje binarkę:
curl -sS https://starship.rs/install.sh | shNastępnie musimy powiedzieć Bashowi, żeby zaczął go używać. Otwórz swój plik ~/.bashrc i dodaj na samym końcu:
eval "$(starship init bash)"Po przeładowaniu powłoki (source ~/.bashrc) zobaczysz domyślny wygląd. Ale my chcemy czegoś więcej – chcemy stylu Lean znanego z Powerlevel10k.
Konfiguracja: Styl i Precyzja
Sercem Starshipa jest plik ~/.config/starship.toml. To tutaj dzieje się magia. Aby uzyskać wygląd czysty, jednoliniowy i techniczny, musimy zdefiniować format i moduły.
Układ terminala (format)
W sekcji głównej określamy kolejność wyświetlanych elementów. Używamy modułu fill, aby rozdzielić lewą stronę (ścieżka, git) od prawej (czas, status):
# starship.toml
format = """
$os$directory$git_branch$git_status$fill$python$nodejs$rust$status$cmd_duration$time$line_break$character"""
[fill]
symbol = " "Moduł Directory (Twoja lokalizacja)
Podobnie jak w P10k, chcemy, aby katalog był wyraźny i inteligentnie skracany:
[directory]
style = "fg:31 bold" # Niebieski kolor z P10k
read_only = " "
truncate_to_repo = false
truncation_length = 3UWAGA: Do poprawnego wyświetlania ikon (np. kłódki czy symbolu Git) musisz mieć zainstalowaną czcionkę typu Nerd Font (np. JetBrainsMono Nerd Font). Bez tego zamiast ikon zobaczysz puste kwadraty.
Funkcjonalność: Bash jak Oh My Zsh
Sam wygląd to nie wszystko. Aby Bash zachowywał się jak nowoczesne Zsh, musimy dodać kilka brakujących “mięśni” bezpośrednio w pliku ~/.bashrc.
1. Inteligentna historia (Arrow Search)
To funkcja, bez której nie da się żyć: wpisujesz git i strzałką w górę przeglądasz tylko komendy gita. Dodaj to do .bashrc:
# Szukanie w historii strzałkami
bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward'
bind '"\eOA": history-search-backward'
bind '"\eOB": history-search-forward'2. Rozmyte szukanie z fzf (Lazy Search)
Jeśli masz zainstalowany fzf (sudo dnf install fzf), możesz stworzyć potężną wyszukiwarkę historii pod skrótem Ctrl+R:
hs() {
local cmd=$(history | perl -ne 's/^\s*\d+\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\s+//; print' | fzf --prompt="[history]: " --height=40% --layout=reverse --border)
if [ -n "$cmd" ]; then
history -s "$cmd"
eval "$cmd"
fi
}
bind -x '"\C-r": hs'Co to daje?
// Po naciśnięciu Ctrl+R pojawia się interaktywne okno. Wpisujesz fragment komendy, wybierasz Enterem i polecenie wykonuje się natychmiast. Dokładnie tak, jak w Zsh.
Narzędzia dodatkowe: Zoxide i Extract
Dopełnieniem całości są dwa narzędzia, które czynią nawigację błyskawiczną:
- Zoxide: Inteligentne
cd. Wpisujeszz doc, a on wie, że chcesz wejść do~/Documents/Projects/secret. - Extract: Jedna funkcja, by rozpakować wszystko (zip, tar.gz, 7z).
# Wymaga: sudo dnf install zoxide
eval "$(zoxide init bash)"
alias cd='z'Oficjalna dokumentacja Starship
Pobierz gotową konfigurację
Jeśli chcesz mieć wszystko w jednym miejscu, przygotowałem dla Ciebie kompletny arkusz ze wszystkimi komendami i gotowym plikiem starship.toml. Możesz go pobrać, zapisać na dysku lub wydrukować jako PDF, aby mieć go pod ręką podczas konfiguracji.
Zasoby
Pełna, gotowa do skopiowania konfiguracja .bashrc oraz starship.toml jest dostępna na osobnej stronie dokumentacji:
Podsumowanie
Przejście na Starshipa w Bashu to nie tylko kwestia estetyki. To dowód na to, że narzędzia są tak potężne, jak potrafisz je skonfigurować. Twoja nowa konfiguracja łączy w sobie:
- Estetykę P10k: Dzięki precyzyjnemu
starship.toml. - Szybkość Basha: Bez narzutu ciężkich frameworków.
- Moc fzf i zoxide: Dla błyskawicznej nawigacji.
Teraz Twój terminal nie jest już tylko czarnym oknem – jest Twoim centrum dowodzenia, które reaguje na Twój styl pracy. Jeśli chcesz zgłębić temat jeszcze bardziej, sprawdź nasz poprzedni wpis o Nmapie – teraz wyniki skanowania będą wyglądać w Twoim terminalu jeszcze lepiej.
PS. Pamiętaj o regularnym robieniu kopii zapasowej swojego .bashrc. Jeden błąd w eval i możesz spędzić wieczór na naprawianiu powłoki z poziomu Live CD.