Проект Fish Shell, известный своей удобной и интуитивно понятной оболочкой для командной строки, представил четвертую версию — Fish Shell 4. Этот релиз стал значительным шагом вперед, поскольку оболочка была полностью переписана на языке Rust. Несмотря на масштабные изменения в кодовой базе, для пользователей переход останется практически незаметным: команды, настройки и типичные взаимодействия сохраняют свою привычную функциональность.

Fish Shell — это командная оболочка для Unix-подобных систем, разработанная для удобства пользователей. Она предлагает автодополнения, подсветку синтаксиса и простой синтаксис скриптов, не требуя сложной настройки. В отличие от Bash, Fish изначально ориентирован на интерактивное использование и интуитивность.
Что нового в Fish Shell 4
Переход на Rust
Fish Shell 4 теперь полностью написан на Rust, что обеспечивает повышенную производительность и безопасность. Однако разработчики подчеркивают, что пользовательский опыт останется прежним. Это изменение направлено на улучшение внутренней архитектуры, а не на пересмотр существующих функций.
Улучшенные привязки клавиш и совместимость с терминалами
Одним из заметных нововведений стала обновленная система привязки клавиш. Теперь пользователи могут заменять сложные последовательности на более интуитивные команды, такие как bind ctrl-right. Благодаря поддержке протокола Kitty и функции modifyOtherKey, Fish Shell 4 может различать управляющие последовательности, которые ранее казались идентичными.
Интеграция с возможностями терминалов
Fish Shell 4 теперь автоматически использует OSC 133 последовательности для вывода подсказок и результатов команд. Это улучшает синхронизацию с различными терминалами, которые ранее требовали дополнительных скриптов для интеграции. Также стандартизированы изменения курсора в vi-режиме, что устраняет проблемы, связанные с особенностями окружения.
Улучшения в работе с длинными командами
Оболочка теперь корректно обрабатывает длинные командные строки, прокручивая их вместо некорректного отображения. Кроме того, изменения, вызванные привязками командной строки, сразу становятся видимыми, что делает процесс написания скриптов и интерактивного использования более удобным.
Новые функции для пользователей
Улучшенный поиск по истории
Функция поиска по истории, впервые представленная в Fish 3.6, была доработана. Теперь пользователи могут использовать синтаксис glob для более точной фильтрации записей. Поиск ограничивается текущей командой, что упрощает восстановление сложных многострочных команд.
Обновленная тема по умолчанию
Тема по умолчанию получила небольшое, но важное изменение: команды теперь отображаются в "нормальном" цвете терминала вместо трудного для чтения синего. Пользователи могут сохранить свои текущие настройки, если не перезагрузят тему вручную через fish_config.
Самостоятельная установка
Новая функция самостоятельной установки (self-installable) позволяет пользователям запускать Fish Shell на серверах без прав администратора. После компиляции можно использовать единый бинарный файл, который извлекает все необходимые компоненты (функции, man-страницы и инструмент веб-конфигурации) в домашний каталог. Это особенно полезно для сред, где отсутствует доступ к пакетному менеджеру. Сборки доступны для x86_64 и aarch64 Linux на странице GitHub. Для других платформ нужна ручная компиляция.
Исключение команд из истории
Долгожданная функция исключения команд из истории теперь доступна. Пользователи могут определить функцию fish_should_add_to_history, чтобы указать, какие команды следует сохранять. Исключенные команды временно остаются доступными для повторного использования, но удаляются после выполнения следующей команды.
Улучшения для разработчиков скриптов
Fish Shell 4 предлагает несколько улучшений для любителей написания скриптов:
-
Команда
string matchтеперь поддерживает опцию--max-matches, позволяющую ограничить количество обрабатываемых совпадений. -
Циклы
forбольше не запоминают локальные переменные из предыдущих итераций. -
Команда
setполучила опцию--no-eventдля подавления событий изменения переменных. -
Команда
timeтеперь измеряет время выполнения с учетом подстановок команд. -
Команда
complete --eraseполностью отключает автозагрузку завершений для указанных команд.
Полный переход на Rust, улучшенная совместимость с терминалами и новые возможности для пользователей делают эту версию одной из самых ожидаемых в сообществе.
Подробнее о всех нововведениях можно узнать в официальном анонсе.
Linux: обзоры и обновления
• GNOME.org вводит официальный запрет на публикацию расширений с кодом, сгенерированным искусственным интеллектом
• Вышел Wine 11.0-rc2: исправления для Ubisoft Connect, Microsoft Office 2013 и классических игр
• Подсистема Windows для Linux (WSL) 2.7.0 получила ядро Linux 6.6.114 LTS и крупный набор исправлений
• Мнение: CachyOS превзошёл Bazzite и SteamOS как игровой Linux-дистрибутив
• Релиз Kali Linux 2025.4: GNOME 49 без X11, KDE Plasma 6.5 и поддержка Android 16 в NetHunter
• В 2025 году в Steam вышло более 19 тысяч игр — почти половина из них получила менее 10 отзывов