Jak dostosować monit terminala Linux za pomocą statku kosmicznego?

Starship Prompt

Starship to kompilacja typu cross-shell używająca języka rdzy. Jest to bardzo minimalny i niesamowicie szybki monit terminala. Głównym powodem jego popularności jest możliwość dostosowania. Możesz go łatwo dostosować za pomocą pliku konfiguracyjnego TOML. Jeśli przenosisz się na inne urządzenie lub inną powłokę, po prostu przenieś plik konfiguracyjny do odpowiedniej lokalizacji, a Twoja pięknie wyglądająca powłoka automatycznie stanie się gotowa.

Warunek wstępny

Przed użyciem Starship musisz zainstalować czcionkę nerd na swoim komputerze. Czcionka Nerd to piękne połączenie czcionki i ikon. Iść do Czcionki dla frajerów i pobierz swój ulubiony. Jeśli nie możesz się zdecydować, możesz również wyświetlić podgląd czcionek na programowaniefonts.org.

W moim przypadku podoba mi się „czcionka Fira Code Nerd”. Pobierz czcionkę i wyodrębnij jej zawartość. Otrzymasz folder o nazwie „FiraCode” i wszystkie wersje czcionki .otf i .ttf.

Aby zainstalować tę czcionkę, przejdź do terminala i uruchom następujące polecenie.

# Creating the local font directory in your system
mkdir ~/.local/share/fonts
 
# Moving the extracted fonts to local font directory
mv FiraCode ~/.local/share/fonts/

Teraz czcionka FiraCode Nerd staje się dostępna w Twoim systemie. Możesz także zainstalować inne typy czcionek, postępując zgodnie z powyższym przewodnikiem.

Jeśli chcesz przeczytać szczegółowy przewodnik dotyczący instalacji czcionek na pulpicie systemu Linux, zapoznaj się z tym artykułem na temat instalowania czcionek w Ubuntu.

Zainstaluj statek kosmiczny

Aby zainstalować statek kosmiczny, przejdź do swojego katalogu domowego i uruchom następujące polecenie.

curl -sS https://starship.rs/install.sh | sh

To polecenie pobierze i zainstaluje plik binarny statku kosmicznego i doda go do twojej ścieżki.

Zainstaluj statek kosmiczny na swojej powłoce

Jeśli używasz powłoki bash, otwórz plik „~/.bashrc” i wklej ten wiersz kodu na końcu.

eval "$(starship init bash)"

Jeśli używasz Zsh, otwórz plik „~/.zshrc” i wklej powyższy wiersz kodu na jego końcu.

Teraz uruchom ponownie aplikację terminala. Zostaniesz przywitany przez domyślny komunikat dotyczący statku kosmicznego.

Demo statku kosmicznego 1

Jeśli masz inne pociski niż powyższe, przejdź do dokumentacji statku kosmicznego i znajdź tam preferowany pocisk.

Dostosuj statek kosmiczny

Aby dostosować monit powłoki, utwórz plik „starship.toml” w katalogu konfiguracyjnym.

# Creating your .config directory if not existed
mkdir -p ~/.config
 
# Creating a new starship.toml file
touch ~/.config/starship.toml

Możesz także zmienić domyślną lokalizację pliku konfiguracyjnego statku kosmicznego. Aby zmienić domyślną lokalizację pliku konfiguracyjnego statku kosmicznego, dodaj STARSHIP_CONFIG zmienna środowiskowa na dole pliku „~/.bashrc”.

export STARSHIP_CONFIG=~/example/non/default/path/starship.toml

Pojęcie modułu i zmiennej

Moduł to składnik zachęty terminala, który dostarcza informacji kontekstowych o podstawowym systemie operacyjnym. Na przykład Nodejs to moduł w znaku zachęty statku kosmicznego. Kiedy dodamy ten moduł do pliku konfiguracyjnego, otrzymamy różne punkty danych dotyczące bieżącej instalacji Nodejs w Twoim środowisku.

Moduł podaje te informacje w postaci zmiennych. Zmienne to mniejsze podkomponenty, które zawierają informacje o module. Na przykład, version jest zmienną „Nodejs”. Kiedy nazywamy $version wewnątrz modułu Nodejs, daje nam aktualnie zainstalowaną wersję Nodejs w twoim systemie. Zmienne są poprzedzone $ symbol. Nazwa zmiennej może zawierać tylko litery, cyfry i „_”.

Grupy i style tekstu

Grupy tekstowe w statku kosmicznym składają się z 2 części. Pierwsza część znajduje się pod hasłem [ ] symbol. Ta część nazywana jest ciągiem formatu. Możemy tutaj dodawać teksty, zmienne, a nawet zagnieżdżone grupy tekstowe.

Ta ostatnia część jest ujęta w ( ) i nazywa się to ciągiem stylu. Możesz nadać styl grupie tekstu za pomocą tego ciągu stylu.

Czytać  Co to jest Nohup i jak się go używa?

Weźmy przykład.

  • [make_tech_easier](yellow bold) wydrukuje ciąg „make_tech_easier” z pogrubionym tekstem i żółtym kolorem.
  • [👍 All Done](green) wyświetli „👍 Wszystko gotowe” w kolorze zielonym.
  • [a [b](green) c](red) To jest przykład zagnieżdżonych grup tekstowych. to drukuje a oraz c w kolorze czerwonym i b w zielonym.

Więcej ustawień stylu

  • Dla grup tekstowych możemy ustawić różne plany i tła. [ ](fg:red bg:blue) ustaw kolor czcionki tekstu na czerwony, a tło na niebiesko.
  • Możemy również użyć kolorów ANSI w pliku konfiguracyjnym. [ ](bold fg:27) reprezentują pogrubiony tekst z kolorem ANSI 27 jako kolorem pierwszego planu.
  • Jeśli chcesz dodać swój kolor szesnastkowy, jest to również możliwe. [ ](underline bg:#bf5700) daje podkreślony tekst z jasnym pomarańczowym tłem.
Demo statku kosmicznego 2

Szybka personalizacja w Starship

Szybka personalizacja statku kosmicznego ma 4 opcje. Możemy zmienić te 4 opcje, aby dostosować styl monitu.

  • format: Definiuje wygląd zachęty wewnątrz terminala. Możesz zdefiniować dowolny projekt jako monit.
  • scan_timeout: Limit czasu dla statku kosmicznego na skanowanie plików.
  • command_timeout: Limit czasu dla polecenia wykonanego przez statek kosmiczny.
  • add_nowa linia: To jest wartość logiczna. Jeśli ustawione na true, dodaje pustą linię między wierszem zachęty powłoki.

Plik dostosowywania monitu demonstracyjnego wygląda tak.

# Use custom format
format = """
[┌───────────────────>](bold green)
[│](bold green)$directory$rust$package
[└─>](bold green) """
 
# Wait 10 milliseconds for starship to check files under the current directory.
scan_timeout = 10
 
# Disable the blank line at the start of the prompt
add_newline = false

Dodaj żądany moduł

Teraz, gdy znasz już podstawy statku kosmicznego i wiesz, jak go dostosować, możesz bardzo łatwo dodać żądany moduł. Należy pamiętać, że każdy moduł będzie działał, jeśli pliki i foldery związane z tym modułem będą znajdować się w podanej ścieżce. Po prostu moduł Pythona będzie widoczny tylko wtedy, gdy jakikolwiek plik Pythona znajduje się w bieżącym katalogu roboczym.

Dodajmy moduł Pythona do naszej konfiguracji statku kosmicznego jako demo. otwórz plik starship.toml. Tam dodaj [python] w nowej linii, aby aktywować środowisko Pythona.

Moduł Pythona pokazuje informacje o instalacji Pythona w Twoim systemie operacyjnym lub o aktywowaniu dowolnego środowiska wirtualnego. Jeśli chcesz zmienić ikonę Pythona i chcesz wyświetlić nazwę virtualenv, plik konfiguracyjny wygląda tak.

[python]
symbol = "🐍 "
pyenv_version_name = true

Jeśli zainstalowałeś zarówno python2, jak i python3, możesz określić domyślny plik binarny Pythona za pomocą pliku konfiguracyjnego statku kosmicznego.

[python]
# Only use the `python3` binary to get the version.
python_binary = "python3"

Podobnie jak w tym przykładzie, możesz dodać dowolny moduł i dostosować go zgodnie z własną wyobraźnią.

Jak dodać ustawienia statku kosmicznego

Jeśli nie chcesz samodzielnie wykonywać wszystkich tych dostosowań, ale chcesz dobrze wyglądającego monitu terminala po wyjęciu z pudełka, możesz użyć ustawień wstępnych. Presety to po prostu pliki konfiguracyjne statku kosmicznego udostępniane przez innych użytkowników. Możesz zaimportować te ustawienia do swojego pliku konfiguracyjnego i za chwilę otrzymasz ładnie wyglądający monit terminala.

Starship Prompt Powerline 700px

Możesz zapoznać się z oficjalnymi ustawieniami na tej stronie. Powyższy monit terminala jest przesyłany przez użytkownika i dostępny na stronie ustawień wstępnych. Teraz, aby monit terminala wyglądał tak, otwórz plik konfiguracyjny statku kosmicznego i dodaj tę konfigurację do swojego pliku.

format = """
[←](#9A348E)\
$username\
[→](bg:#DA627D fg:#9A348E)\
$directory\
[→](fg:#DA627D bg:#FCA17D)\
$git_branch\
$git_status\
[→](fg:#FCA17D bg:#86BBD8)\
$c\
$elixir\
$elm\
$golang\
$haskell\
$java\
$julia\
$nodejs\
$nim\
$rust\
[→](fg:#86BBD8 bg:#06969A)\
$docker_context\
[→](fg:#06969A bg:#33658A)\
$time\
[→ ](fg:#33658A)\
"""
 
# Disable the blank line at the start of the prompt
# add_newline = false
 
# You can also replace your username with a neat symbol like  to save some space
[username]
show_always = true
style_user = "bg:#9A348E"
style_root = "bg:#9A348E"
format = '[$user ]($style)'
 
[directory]
style = "bg:#DA627D"
format = "[ $path ]($style)"
truncation_length = 3
truncation_symbol = "…/"
 
# Here is how you can shorten some long paths by text replacement
# similar to mapped_locations in Oh My Posh:
[directory.substitutions]
"Documents" = "📄 "
"Downloads" = "📥 "
"Music" = "🎜 "
"Pictures" = "📷 "
# Keep in mind that the order matters. For example:
# "Important Documents" = "  "
# will not be replaced, because "Documents" was already substituted before.
# So either put "Important Documents" before "Documents" or use the substituted version:
# "Important  " = "  "
 
[c]
symbol = "© "
style = "bg:#86BBD8"
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
 
[docker_context]
symbol = "🐳 "
style = "bg:#06969A"
format = '[[ $symbol $context ](bg:#06969A)]($style) $path'
 
[elixir]
symbol = "💧 "
style = "bg:#86BBD8"
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
 
[elm]
symbol = "🌳 "
style = "bg:#86BBD8"
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
 
[git_branch]
symbol = "☊"
style = "bg:#FCA17D"
format = '[[ $symbol $branch ](bg:#FCA17D)]($style)'
 
[git_status]
style = "bg:#FCA17D"
format = '[[($all_status$ahead_behind )](bg:#FCA17D)]($style)'
 
[golang]
symbol = "🐹 "
style = "bg:#86BBD8"
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
 
[haskell]
symbol = "λ "
style = "bg:#86BBD8"
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
 
[java]
symbol = "☕ "
style = "bg:#86BBD8"
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
 
[julia]
symbol = "ஃ "
style = "bg:#86BBD8"
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
 
[nodejs]
symbol = "🔷 "
style = "bg:#86BBD8"
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
 
[nim]
symbol = "👑 "
style = "bg:#86BBD8"
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
 
[rust]
symbol = "🦀"
style = "bg:#86BBD8"
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
 
[time]
disabled = false
time_format = "%R" # Hour:Minute Format
style = "bg:#33658A"
format = '[[ 🤍 $time ](bg:#33658A)]($style)'

Uruchom ponownie terminal, a monit terminala wygląda dokładnie tak, jak monit na obrazie. Możesz wyszukać więcej ustawień wstępnych monitów terminala i wypróbować, które najbardziej Ci odpowiadają. W międzyczasie, jeśli chcesz wypróbować kilka wskazówek i trików dotyczących bash, ten artykuł powinien być dla Ciebie najbardziej odpowiedni.

Czytać  10 najlepszych debuggerów Linuksa dla inżynierów oprogramowania

Jak odinstalować statek kosmiczny?

Aby odinstalować statek kosmiczny, najpierw usuń plik konfiguracyjny statku kosmicznego.

rm ~/.config/starship.toml

Następnie usuń wiersz, który wkleiłeś podczas instalacji w pliku „~/.bashrc”.

Na koniec odinstaluj plik binarny statku kosmicznego ze swojego urządzenia.

sh -c 'rm "$(command -v 'starship')"'

Teraz uruchom ponownie terminal, a znak zachęty zostanie przywrócony do domyślnego stylu.

Często Zadawane Pytania

Jak zastosować mój obecny styl monitów terminala na innym urządzeniu?

To bardzo łatwe. Po prostu skopiuj plik konfiguracyjny statku kosmicznego znajdujący się w twoim ~/.config/starship.toml do drugiego urządzenia. Zainstaluj statek kosmiczny, uruchom ponownie terminal i gotowe.

Jakie są alternatywy dla statku kosmicznego?

Istnieje wiele alternatyw dla statków kosmicznych, które można znaleźć w Internecie. W przypadku powłoki zsh bardzo popularnym narzędziem jest oh-my-zsh. Podobnie, w przypadku muszli ryb, oh-my-fish jest również dobrze znanym narzędziem, którego ludzie używają do dostosowywania monitu powłoki. Kolejny to statek kosmiczny. jest to konfigurowalny monit zsh. Niektóre inne popularne opcje to czysty oraz powłoka syntezatora.

Czy ten artykuł jest przydatny?

Zapisz się do naszego newslettera!

Nasze najnowsze samouczki dostarczane prosto do Twojej skrzynki odbiorczej