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 (например, apt
, pacman
, dnf
).
# Для 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 | Показывает ✔ при успешном выполнении, ✘ при ошибке | ✔ или ✘ |
Если вы не видите процент заряда батареи в текущем запросе, это может быть связано с тем, что:
- Вы находитесь на компьютере/системе без аккумулятора — Starship отображает информацию об аккумуляторе только на устройствах, у которых он действительно есть
- Проблема с определением аккумулятора — иногда Starship не может определить аккумулятор в некоторых системах
- Процент заряда батареи может быть равен 100% — проверьте, появляется ли это сообщение, когда батарея заряжена не полностью
Тестовая Конфигурация Starship
Для проверки синтаксиса или ошибок во время выполнения:
starship explain
Эта команда будет:
- Покажите, как устроена ваша система
- Выделите недостающие модули
- Сообщайте о проблемах с синтаксисом (например, о неправильном TOML)
Если вы видите такие ошибки, как «не удалось проанализировать конфигурацию», это означает, что в starship.toml
что-то не так.
Если всё в порядке, вы увидите, какие модули активны в текущем каталоге:

Вывод команды объяснения 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
Редактор: AndreyEx