Menu

Оболочка пользователя fish

Чтобы придать машине под Linux индивидуальность и облегчить работу администратора, можно рекомендовать замену стандартной оболочки пользователя bash на альтернативную. Среди многообразия выбора из zsh, ksh, tcsh, dash, fish и т.д. внимания заслуживают две:

  • zhs - многофункциональная оболочка с расширенными возможностями автодополнения, поддержкой плагинов и тем. Особенно вспоминается дополнение oh-my-zsh! Ну буквально не оболочка, а новогодняя ёлка с игрушками с мигающей гирляндой. Визуально - ну очень ядерная, ещё чуть-чуть и будет "вырви глаз". Можно рекомендовать zsh для установки на рабочие станции, когда администрировать из командной строки приходится не часто. Вводить команды с консоли становится легко и весело. Именно эта оболочка установлена у меня на ноутбуке.
  • fish - современная оболочка, ориентированная на удобство использования, с подсветкой синтаксиса и интеллектуальными подсказками. Выглядит строже, цвета используются очень грамотно. Работает авто-дополнение команд (попробуйте <TAB> после набора первых букв!) и валидация команд прямо во время набора. Вот эту оболочку можно рекомендовать к установке на сервера. Серьёзный и функциональный инструмент для серьзных задач.

В статье рассмотрим методику установки fish, которая будет актуальной для RHEL, Alma Linux и Rocky Linux версий 8 или 9.

Оболочка fish

Чтобы установить fish и сделать его оболочкой по умолчанию на Rocky Linux, выполните следующие шаги.

Установите fish:

dnf install util-linux-user fish -y

Убедитесь, что fish успешно установлен, проверив его версию:

fish --version

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

chsh -s /usr/bin/fish

Перезайдите в систему или перезагрузите компьютер, чтобы изменения вступили в силу. После входа в систему, fish должен запуститься автоматически. Вы можете проверить текущую оболочку командой:

echo $SHELL

Она должна вывести /usr/bin/fish.

Если вы хотите настроить fish, вы можете отредактировать файл конфигурации:

mcedit ~/.config/fish/config.fish

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

Fish предлагает веб-интерфейс для настройки. Вы можете запустить его командой:

fish_config

Это откроет веб-браузер (при наличии, конечно) с интерфейсом настройки fish. Теперь fish установлен и настроен как ваша оболочка по умолчанию.

Наслаждайтесь его функциями, такими как автодополнение, подсветка синтаксиса и интеллектуальные подсказки!

В fish авто-дополнение — это мощный и удобный инструмент, который помогает быстро и без ошибок вводить команды, пути, параметры и прочее, основываясь на уже введённых ранее командах или доступных вариантах. Основная его ценность — ускорение работы и минимизация опечаток.

Когда ты начинаешь вводить какую-то команду, например:

grep log /var/
и нажимаешь клавишу → (вправо) или Tab , fish пытается автоматически дополнить то, что ты вводишь, на основе истории выполненных команд, существующих файлов, аргументов и возможных вариантов.

Если у тебя есть несколько вариантов для продолжения — например, в /var/ много подкаталогов — fish покажет список возможных путей прямо в терминале, и ты можешь стрелками выбрать нужный, нажав Enter или снова Tab, чтобы продолжить ввод.

Особенно полезно использовать авто-дополнение с историей команд . Например, если ты неделю назад запускал команду:

rsync -avz user@remote:/very/long/path/to/logs /local/copy/
и теперь просто набираешь:

rsync
затем нажимаешь → (вправо) — fish найдёт похожие команды из истории и начнёт их подставлять. Если совпаданий несколько, они будут показаны в виде выпадающего списка, по которому можно пролистать стрелками и выбрать нужное.

Также очень удобно использовать авто-дополнение при работе с файлами, особенно если пути длинные. Допустим, ты хочешь открыть лог:

nano /var/log/app/some_module/error.log
Если ты уже открывал этот файл раньше, то при вводе:

nano /va
и нажатии Tab или → , fish сам дополнит /var/log/app/some_module/error.log, если это единственный подходящий вариант. Если не уверен — проверь, как он предлагает дополнить, и при необходимости выбери нужный путь стрелками.

Ещё один пример: работа с git-ветками. Если ты часто переключаешься между ветками, например:

git checkout feature/new-auth
Потом пишешь:

git co fea
и жмёшь Tab — fish может предложить feature/new-auth как вариант, если такая ветка существует и была использована ранее.

Кроме того, fish умеет "запоминать" не только целые команды, но и отдельные части строк. Это удобно, например, при работе с curl или ssh:

ssh user@
и при вводе первых букв имени хоста fish может предложить варианты, если ты уже подключался к нему ранее.

Финальные штрихи: можно индивидуально отформатировать приглашение командной строки. Например, мне не нужно показывать пользователя (у меня только root), но я хочу видеть имя машины и путь к текущей директории. Открываем ~/.config/fish/config.fish и добавляем в самый конец код.

function fish_prompt
set_color -o brblue
echo -n (hostname)

set_color normal
echo -n ' '

set_color blue
echo -n (prompt_pwd)

set_color normal
echo -n ' '

set_color -o blue
echo -n '#'

set_color normal
echo -n ' '
end
Авторизуйтесь, чтобы получить возможность оставлять комментарии

Другие материалы в этой категории:

Go to top