Starship: легко настраивайте свою оболочку Linux

22.07.2025
Starship: легко настраивайте свою оболочку Linux

Вы всё ещё используете стандартную, медленную и скучную командную строку? Не стоит. Познакомьтесь с Starship — минималистичной, невероятно быстрой и бесконечно настраиваемой командной строкой для любой оболочки.

Starship не только быстрый как молния, но и адаптируется под любую задачу, показывая вам только ту информацию, которая вам нужна, и именно тогда, когда она вам нужна.

В этой подробной статье мы расскажем, что такое Starship и как установить и настроить командную строку Starship в Linux.

 

Что такое Starship?

Starship — это быстрая и лёгкая кросс-оболочечная командная строка, написанная на Rust. Она работает с Bash, Zsh, Fish, PowerShell, Ion, Xonsh и другими.

Он отображает информацию только тогда, когда это необходимо, например:

  • Ветка Git и ее состояние
  • Версии среды выполнения (Python, Node. js, Go, Rust)
  • Контекст Kubernetes, состояние батареи, фоновые задания
  • Время выполнения команды и статус завершения работы оболочки

 

Это особенно полезно для разработчиков или опытных пользователей, которым нужен быстрый доступ к контексту, но без лишнего беспорядка.

 

Чем полезен Starship?

Starship — это не просто красивая подсказка, это мощный инструмент, призванный улучшить работу с терминалом в любой оболочке в любой операционной системе.

Он создан на Rust, что обеспечивает высочайшую скорость и безопасность вашего запроса, делая его невероятно быстрым и надёжным.

Многие пользователи отметили его «молниеносную» производительность: для сбора и отображения информации о запросе часто требуется всего несколько миллисекунд, что значительно лучше, чем у других, более медленных инструментов для настройки запросов.

Такая скорость означает отсутствие заметной задержки при нажатии клавиши Enter, даже при большом количестве активных модулей.

 

Характеристики

Starship быстро становится фаворитом среди разработчиков и системных администраторов.

1. Молниеносная производительность

Благодаря ядру на языке Rust Starship работает невероятно быстро. Он может собирать информацию и отображать запрос за миллисекунды, благодаря чему командная строка всегда отзывчива.

В Starship есть настройка command_timeout, которая предотвращает зависание, если выполнение команды занимает слишком много времени.

2. Бесконечная возможность настройки

Каждый аспект вашего запроса можно настроить по своему усмотрению. Вся конфигурация выполняется с помощью простого starship.toml файла.

Вы можете выбрать один из почти 100 модулей для отображения контекстной информации: от текущей ветки Git и статуса до версии среды выполнения вашего языка программирования.

3. Интеллектуальное отображение информации

Модули Starship предназначены для быстрого отображения важной информации.

Например, модуль git_branch показывает вашу активную ветку, а git_status может отображать символы, указывающие на неотслеживаемые, изменённые или подготовленные к отправке файлы в вашем репозитории.

Модуль aws может отображать текущий регион и профиль AWS, а модуль kubernetes — текущий контекст, пространство имён, пользователя и кластер.

4. Динамический стиль

Вы можете настроить внешний вид каждого модуля с помощью «Строк стиля». Это позволяет задавать цвета (стандартные, шестнадцатеричные или коды ANSI) и такие атрибуты, как полужирныйкурсив или underline.

Например, модуль character может менять цвет или форму, чтобы показать, была ли выполнена последняя команда успешно или нет.

5. Расширенные функции подсказок

Starship поддерживает сложные функции, такие как TransientPrompt в оболочках PowerShell, Cmd и Fish, которые заменяют предыдущее приглашение пользовательской, зачастую более простой, строкой, когда ввод не требуется.

Это также позволяет TransientRightPrompt отображать информацию в правой части строки ввода.

Кроме того, вы можете определить пользовательские команды перед запросом и перед выполнением, чтобы запускать функции непосредственно перед выводом запроса или выполнением команды.

6. Универсальная Совместимость

Starship без проблем работает в широком спектре оболочек и операционных систем.

Независимо от того, используете ли вы Bash, Zsh, Fish, PowerShell, Cmd (с Clink), Elvish, Ion, Nushell или Tcsh, Starship поможет вам.

Его архитектура без привязки к государству и оболочке обеспечивает широкую поддержку.

 

Это «минимализм» или «максимализм»?

Starship позиционируется как «минималистичный» браузер, что иногда может сбивать с толку, учитывая его обширный функционал.

«Минимальность» относится к подходу к настройке и возможности сделать интерфейс настолько простым или многофункциональным, насколько вам хочется.

Хотя некоторым конфигурация по умолчанию может показаться «максималистской» из-за отображения различных версий инструментов и информации о Git, у вас есть полная возможность отключить любой модуль или изменить его внешний вид, чтобы создать действительно минималистичную подсказку, которая будет соответствовать вашему рабочему процессу.

Например, многие пользователи считают полезным отображать код завершения последней команды, текущий рабочий каталог или ветку Git, но при этом предпочитают скрывать версии языков, используемых в контейнерных средах.

Такая гибкость позволяет создавать подсказки, которые предоставляют именно тот контекст, который нужен, предотвращая ненужный беспорядок, экономя ваше время и помогая избежать ошибок.

 

Начало работы со Starship

Чтобы начать путешествие со Starship, вам нужно выполнить одно ключевое условие: в вашем терминале должен быть установлен и включен Nerd Font. Это гарантирует правильное отображение всех фантастических глифов и символов.

После установки необходимых компонентов запустите скрипт установки Starship:

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

 

Кроме того, Starship можно установить через менеджер пакетов вашего дистрибутива Linux (например, aptpacmandnf).

# Для Debian 13/Ubuntu
sudo apt install starship

# Для Arch Linux
sudo pacman -S starship

# Для Fedora
sudo dnf install starship

 

После установки вы просто добавляете небольшой скрипт инициализации в файл конфигурации вашей оболочки (например, ~/.bashrc для Bash, ~/.config/fish/config.fish для Fish или ~/.zshrc для Zsh).

Bash: Добавить в ~/.bashrc

eval "$(starship init bash)"

 

Fish: Добавить к ~/.config/fish/config.fish

starship init fish | source

 

Zsh: Добавить в ~/.zshrc

eval "$(starship init zsh)"

 

После настройки запустите source в конфигурационном файле вашей оболочки (например, source ~/.bashrc) или откройте новый сеанс оболочки, и вы сразу увидите красивую новую подсказку в действии.

Вы заметили, что приглашение оболочки изменилось?

Всё ещё не нравится? Нет проблем, мы можем доработать его по своему усмотрению.

 

Настройка Вашего Приглашения

Настоящая магия происходит в ~/.config/starship.toml. Вот пример конфигурации, с которого можно начать.

Откройте или создайте файл ~/.config/starship.toml и вставьте в него следующий код:

add_newline = true
scan_timeout = 20
format = """
$time\
$character $directory$git_branch$git_status$python$nodejs$rust$golang$memory_usage$battery$cmd_duration
→ """

[time]
format = "🕒 [$time]($style) "
time_format = "%H:%M:%S"
style = "dimmed green"
disabled = false

[directory]
style = "bold cyan"
truncation_length = 3
truncate_to_repo = true
home_symbol = "~"

[git_branch]
symbol = " "
style = "bold magenta"

[git_status]
style = "white"
format = "$all_status "
untracked = "✱${count} "
modified = "✎${count} "
staged = "+${count} "
ahead = "↑${count} "
behind = "↓${count} "
conflicted = "‼ "

[python]
symbol = "🐍 "
style = "bold green"
format = "$symbol[${version}]($style) "

[nodejs]
symbol = " "
style = "bold blue"
format = "$symbol[${version}]($style) "

[rust]
symbol = "🦀 "
style = "bold red"
format = "$symbol[${version}]($style) "

[golang]
symbol = "🐹 "
style = "bold cyan"
format = "$symbol[${version}]($style) "

[memory_usage]
disabled = false
threshold = 70
symbol = "🧠 "
style = "bold blue"
format = "$symbol[$ram_pct]($style) "

[battery]
disabled = false
full_symbol = "🔋"
charging_symbol = "⚡"
discharging_symbol = "🔌"
unknown_symbol = "❓"
empty_symbol = "🪫"
format = "$symbol[$percentage]($style) "
style = "bold yellow"

[cmd_duration]
min_time = 2000
format = "⏱ [$duration]($style) "
style = "yellow"

[character]
success_symbol = "[✔](bold green)"
error_symbol = "[✘](bold red)"
vicmd_symbol = "[🕪](bold blue)"

 

Если каталог не существует, создайте его:

mkdir -p ~/.config

 

Вы можете использовать эту конфигурацию, потому что она предоставляет исчерпывающую и информативную подсказку:

  • Отображение времени
  • Справочная информация
  • Состояние репозитория Git
  • Определение языковой версии
  • Мониторинг системных ресурсов
  • Обратная связь по выполнению команды
  • Процент заряда батареи

 

При необходимости вы можете изменить значки или цвета.

Сохраните файл и закройте его. Перезапустите терминал или перезагрузите конфигурацию оболочки (source ~/.bashrc, и т. д.), чтобы изменения вступили в силу.

Теперь ваша подсказка будет выглядеть так:

🕒 14:52:31
✔ ~/code/myproject main ✱1 +2 🐍 3.11.2 🧠 75% 🔋 92%
→

 

Вот краткое описание вышеприведённой конфигурации Starship:

МодульЦельПример вывода
timeПоказывает текущее время в формате ЧЧ:ММ:СС🕒 14:52:31
directoryПоказывает текущий каталог, обрезанный после трёх частей~/code/projects/
git_branchПоказывает текущую ветку Git main
git_statusПоказывает изменения в Git: неотслеживаемые, подготовленные и т. д.✱2 ✎1 +3
pythonОтображает версию Python в проектах на Python🐍 3.11.2
nodejsОтображает версию Node. js, если применимо 20.5.1
rustОтображает версию Rust, когда это уместно🦀 1.72.0
golangОтображает версию Go в проектах Go🐹 1.21.0
memory_usageПоказывает % использования ОЗУ, если он превышает 70 %🧠 83%
batteryОтображает уровень заряда батареи + значок зарядки/разрядки⚡ 54%
cmd_durationПоказывает, сколько времени заняла команда (>2 секунды)⏱ 3 секунды
characterПоказывает ✔ при успешном выполнении, ✘ при ошибке✔ или ✘

 

Если вы не видите процент заряда батареи в текущем запросе, это может быть связано с тем, что:

  1. Вы находитесь на компьютере/системе без аккумулятора — Starship отображает информацию об аккумуляторе только на устройствах, у которых он действительно есть
  2. Проблема с определением аккумулятора — иногда Starship не может определить аккумулятор в некоторых системах
  3. Процент заряда батареи может быть равен 100% — проверьте, появляется ли это сообщение, когда батарея заряжена не полностью

 

Тестовая Конфигурация Starship

Для проверки синтаксиса или ошибок во время выполнения:

starship explain

 

Эта команда будет:

  • Покажите, как устроена ваша система
  • Выделите недостающие модули
  • Сообщайте о проблемах с синтаксисом (например, о неправильном TOML)

 

Если вы видите такие ошибки, как «не удалось проанализировать конфигурацию», это означает, что в starship.toml что-то не так.

Если всё в порядке, вы увидите, какие модули активны в текущем каталоге:

Вывод команды объяснения Starship

Вывод команды объяснения Starship

 

Это подтверждает, что каждый компонент анализируется и отображается.

 

Модули тестирования

Вы можете проверить, все ли модули работают должным образом.

1. Тест git_branch

mkdir test-git && cd test-git
git init

 

Теперь вы должны увидеть что-то вроде этого:

🕒 16:30:12 ✔ ~/test-git master
→

 

2. Тест memory_usage

Используйте stress или откройте несколько программ, чтобы занять более 70 % оперативной памяти. Или снизьте порог:

[memory_usage]
threshold = 10

 

3. Тест battery

Если вы пользуетесь ноутбуком, отключите зарядное устройство или измените его:

[battery]
disabled = false

 

4. Тест cmd_duration

Запуск:

sleep 3

 

Вы должны увидеть:

🕒 17:24:54 ✔ ~ ⏱ 3 с

 

Если команда не выполнена, вы увидите примерно такой результат:

🕒 17:26:54 ✘ ~ ⏱ 45 секунд

 

Тестирование отдельных модулей

Вы можете отлаживать отдельные модули следующим образом:

# Тестирование отдельных модулей
starship module time
starship module directory  
starship module git_branch
starship module python
starship module battery

 

Чтобы получить подробную расшифровку запроса, выполните команду:

starship prompt --help

 

Сделайте свою командную строку красивой уже сегодня!

Starship предлагает беспрецедентное сочетание скорости, возможностей настройки и универсальности, что делает ваш терминал более эффективным и удобным для работы.

Он предоставляет всю необходимую информацию без лишних элементов, отлично выглядит «из коробки» и предлагает бесконечные возможности настройки для опытных пользователей.

Кроме того, он обеспечивает идеальный баланс между функциональностью и простотой.

Если вы всё ещё используете стандартную подсказку оболочки, сделайте себе одолжение и попробуйте Starship. Независимо от того, предпочитаете ли вы лаконичную подсказку, ориентированную на получение информации, или подробный обзор вашей среды, Starship можно настроить в соответствии с вашими потребностями.

Не забудьте установить шрифт Nerd (например, FiraCode Nerd Font), чтобы максимально эффективно использовать поддержку иконок в Starship. Удачной настройки!

Более подробную информацию можно найти в документации Starship: https://starship.rs/guide/.

 

Ресурсы:

  • Веб-сайт: https://starship.rs/
  • Репозиторий Starship на GitHub: https://github.com/starship/starship

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Редактор: AndreyEx

Рейтинг: 5 (1 голос)
Если статья понравилась, то поделитесь ей в социальных сетях:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Это может быть вам интересно


Загрузка...

Спасибо!

Теперь редакторы в курсе.

Прокрутить страницу до начала