Главная
» LINUX
»
Как перейти с Bash на Fish Shell в Linux
Как перейти с Bash на Fish Shell в Linux
Установите Fish, убедитесь, что его полный путь указан в файле /etc/shells, затем запустите команду chsh -s "$(command -v fish)"для своей учетной записи. Выйдите из системы и войдите снова, чтобы использовать Fish в новых сеансах входа. Для первого запуска введите команду fish; нажмите Enter exit, чтобы вернуться в Bash.
Fish использует собственный синтаксис и конфигурацию; он не читает файлы запуска Bash. Скрипты с шебангом Bash могут продолжать работу с Bash.
1. Установите Fish
Используйте менеджер пакетов вашего дистрибутива. Это стандартные команды для пакетов Fish; источники пакетов см. на официальной странице установки Fish :
Ubuntu или Debian:sudo apt install fish
Fedora:sudo dnf install fish
Arch Linux:sudo pacman -S fish
openSUSE:sudo zypper install fish
Для поиска другого дистрибутива найдите его в официальных репозиториях fish; менеджер пакетов хранит установку и обновления в одном месте.
Выберите команду для вашего дистрибутива; версии пакетов и выходные данные установщика различаются в зависимости от репозитория.
2. Проверьте путь к Fish и запись в разрешенной оболочке.
В текущем терминале Bash найдите исполняемый файл и проверьте, отображается ли его точный путь в /etc/shells:
command -v fish
grep -Fx "$(command -v fish)" /etc/shells
Путь часто бывает таким же /usr/bin/fish, но используйте тот, который указан на вашем компьютере. Вторая команда должна вернуть тот же путь. Многие chshсистемы принимают только оболочки, перечисленные в /etc/shells, как объясняется в руководстве по chsh . Если совпадения нет, попросите администратора зарегистрировать путь, указанный в установленной оболочке Fish.
Приведенный путь является примером. Используйте точный путь, указанный вашей системой.
3. Попробуйте Fish, прежде чем сделать его основным приложением.
Начните интерактивную сессию Fish из Bash, введя:
fish
Попробуйте выполнить несколько обычных команд и обратите внимание на подсветку синтаксиса, автодополнение и подсказки. Нажмите Enter, exitчтобы вернуться в Bash. В официальном руководстве Fish подробно описаны эти интерактивные функции.
Тестирование запуска fishвыполняется только для текущего терминала; оно не изменяет оболочку входа в вашу учетную запись.
4. Установите Fish в качестве оболочки для входа в систему.
Если проверка пути прошла успешно, запустите следующую команду из Bash от имени своей обычной учетной записи:
chsh -s "$(command -v fish)"
Введите пароль, если потребуется. Не используйте команду `/etc/bin/` sudo, которая может изменить оболочку root вместо вашей. `/etc/bin ...chsh
Запустите программу chshбез sudoизменений, чтобы они применились к вашей учетной записи.
5. Добавьте настройки Fish в отдельный конфигурационный файл.
Fish считывает пользовательские настройки из папки ~/.config/fish/config.fish, а не из ~/.bashrc. Создайте папку и откройте файл в предпочитаемом вами редакторе; в этом примере используется Nano:
Стандартная папка конфигурации Fish для каждого пользователя находится по адресу ~/.config/fish.
Например, чтобы скрыть приветствие Фиша, добавьте в файл следующую команду Фиша:
set -g fish_greeting
Сохраните файл, затем запустите новую оболочку Fish, чтобы загрузить его. Вы также можете установить экспортированные переменные среды в синтаксисе Fish, например, с помощью ` set -gx EDITOR nano.`. В разделе часто задаваемых вопросов Fish описана настройка приветствия и объясняется, чем файлы запуска Fish отличаются от файлов Bash.
Используйте синтаксис Fish config.fish; присваивания Bash, такие как, EDITOR=nanoне являются командами конфигурации Fish.
6. Настройте подсказку или цвета.
Запустите команду fish_config, чтобы открыть локальный веб-инструмент настройки Fish, где вы можете просмотреть параметры командной строки и цветовой гаммы. Вы также можете работать в терминале. Например, вывести список тем с помощью команды `npm list` fish_config theme list. Чтобы просмотреть и сохранить пример командной строки, выполните команду:
fish_config prompt show
fish_config prompt choose disco
fish_config prompt save
Команда choose применяет приглашение к вводу в текущей сессии; save записывает его для будущих сессий. См. справочник fish_config для получения информации о веб-интерфейсе и параметрах команды.
Fish предоставляет инструменты командной строки и настройки тем оформления, а также конфигуратор на основе браузера.
7. Используйте автоподсказки и автозавершение.
По мере ввода текста Fish может отображать серые подсказки, основанные на вашей истории команд, допустимых путях и автодополнении. Нажмите стрелку вправо или , Ctrl+Fчтобы принять подсказку; принятие подсказки только заполняет командную строку, поэтому нажмите Enter отдельно, чтобы выполнить её. Нажмите , Tabчтобы завершить команду, аргумент или путь, или , чтобы увидеть доступные варианты.
Функция подсказок Fish и автодополнение клавиш Tab помогают завершить команды без их автоматического выполнения.
Что меняется при переходе с Bash?
Fish не является POSIX-совместимой заменой Bash. Переменные и блоки управления используют другой синтаксис:
Задание
Bash
Рыба
Установить переменную
name=value
set name value
Экспорт переменной
export EDITOR=nano
set -gx EDITOR nano
Завершить ifблок
fi
end
Fish не загружает .bashrcпсевдонимы или функции Bash. Для скриптов, которые должны запускаться с помощью Bash, необходимо сохранить шебанг Bash, например, такой-то . Подробности #!/usr/bin/env bashсм. в документации Fish по языку программирования и конфигурации .
Вернитесь к Bash или устраните неполадку.
Чтобы восстановить Bash, запустите эту команду из Fish. Fish поддерживает привычную $(...)подстановку команд:
chsh -s "$(command -v bash)"
Выйдите из системы и войдите снова. Если chshFish отклоняет запрос, перепроверьте его путь и /etc/shells. В случае проблем с SSH или SCP удалите команды, генерирующие вывод, из config.fish; Fish читает его и в неинтерактивных оболочках. Защитите интерактивную конфигурацию следующим образом:
if status is-interactive
# interactive-only setup
end