LINUX.ORG.RU

Миграция zsh -> bash


0

2

Привет!

Передо мной встал выбор: или устанавливать zsh на серверах и копировать туда свой ~/.zshrc, или попытаться сконфигурировать ~/.bashrc таким образом, чтобы поведение при интерактивной работе было такое же, как и на zsh.

Собственно, прошу вашей помощи.

Что нужно:

1. Автодополнение по меню.
Например, набираю ssh <TAB>, появляется список хостов:

192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4

Что нужно: стрелками маневрирую по этому списку. Выбрав нужное значение, жму <ENTER>, срабатывает автодополнение: ssh 192.168.1.x
Как сейчас: менюшка появляется, навигация отсутствует.
-------------------------------------------------------------------------------------
2. Алиасы по расширению

Что нужно: выполнив в консоли, например, /tmp/readme.txt, автоматически открывается файл /tmp/readme.txt с помощью того, что указано в конфиге. Пример моего конфига:

PLAINTEXT_EDITOR='vim'
alias -s conf=$PLAINTEXT_EDITOR
alias -s ini=$PLAINTEXT_EDITOR
alias -s txt=$PLAINTEXT_EDITOR

Как видите, файл откроется в vim.
Как сейчас: вручную запускается vim с аргументом, или открывается файл средствами самого vim.
-------------------------------------------------------------------------------------
3. Аналог alias -g

Пример:

% ls / G home
home/
Что нужно: при подставлении символа G, оболочка разворачивает его в конструкцию | grep
Как сейчас: никак.

Остальные вещи удалось сконфигурировать. К ним относятся: 1. autocd 2. history sharing 3. history-search-backward/history-search-forward 4. autocompletion on single TAB press 5. cdspell

Про какие-то удобные вещи наверняка забыл, но в процессе всё равно столкнусь с их отсутствием.

★★★★★

У меня один вопрос: переход на баш чем-то обусловлен? zsh ведь заруливает bash по скорости.

X10Dead ★★★★★ ()
Ответ на: комментарий от X10Dead

X10Dead

У меня один вопрос: переход на баш чем-то обусловлен? zsh ведь заруливает bash по скорости.


Единственная причина: дефолтность. Больше причин не наблюдаю.
Если не получится сконфигурировать, то так и останусь на zsh. Так что не сильно критично.

blackst0ne ★★★★★ ()
Ответ на: комментарий от blackst0ne

Ну вроде копирование .zshrc даже на чуток большое количество серверов не должно вызвать проблем. Думаю остаться на zsh - самое то.

dada ★★★★★ ()

1) Нет.
2) Нет.
3) Нет.

GotF ★★★★★ ()
Ответ на: комментарий от X10Dead

ассемблер заруливает вообще всех по скорости
переходи на него

anonymous ()

Чтобы не устанавливать - можно сделать проще: берёшь статически слинкованный zsh (в deb: zsh-static) и копируешь куда надо(например, можно alias для ssh сделать). А bash всегда будет в догоняющих по фичам.

lazyklimm ★★★★★ ()

На серверах это не нужно. Если хочется ставь, конечно, но это задротство.

Из моего опыта все что надо на сервере от шела это сохранение истории (bash, ksh, tcsh) и дополнение пути по TAB (чтобы меньше промахиваться набирая полные пути)

sdio ★★★★★ ()
Ответ на: комментарий от X10Dead

Ась?

В среднестатистическом скрипте скорость выполнения внутренних операций самого шелла никогда не будет недостаточной по сравнению с быстродействием внешних команд.

GotF ★★★★★ ()

Мигрировать не получится. Привыкай работать с той матчастью, которая есть. Что за мещанские замашки стрелочками хост выбирать?

imul ★★★★★ ()

https://github.com/robbyrussell/oh-my-zsh + несколько строк в .zshrc

либо храни свой собственный мегакрутой zshrc на гитхабе(или какой другой файлопомойке)

anonymous ()
Ответ на: комментарий от sdio

sdio

На серверах это не нужно. Если хочется ставь, конечно, но это задротство.


Это удобно. Особенно начинаешь это чувствовать, когда подавляющее время пользуешься zsh, а тут пришлось зайти на удалённую машину с дефолтным bash.

Хотя, тем, кто на десктопе пользуется gui only, я подозреваю, этого не понять.

blackst0ne ★★★★★ ()
Ответ на: комментарий от imul

imul

Мигрировать не получится. Привыкай работать с той матчастью, которая есть. Что за мещанские замашки стрелочками хост выбирать?


Выбор хоста - это лишь самый простой пример, который я привёл для того, чтобы было понятно всем.

blackst0ne ★★★★★ ()
Ответ на: комментарий от blackst0ne

Если на сервере приходится делать какие-то виртуозные пасы в консоли, то явно что-то не так. Раз что-то приходится делать более одного раза, это надо завернуть в скрипт и возможно делать уже по крону.
Но, если нравится, и очень хочется, то лучше тогда ставь zsh. Повторить то же самое на баше ты не сможешь, но в результате ты получишь не два варианта, а уже три — zsh, чистый bash и «перебаш-недозаш». Думаю, это будет нервировать намного сильнее, чем разовое копирование ресурсов, или два варианта работы.

Выбор хоста - это лишь самый простой пример, который я привёл для того, чтобы было понятно всем.

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

imul ★★★★★ ()
Ответ на: комментарий от blackst0ne

Хотя, тем, кто на десктопе пользуется gui only, я подозреваю, этого не понять.

Бггг... Так сказать в адрес sdio, это нужно быть с очень богатым воображением, о великий ты наш гуру консоли.

imul ★★★★★ ()
Ответ на: комментарий от blackst0ne

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

а вот и нет, больше 4 лет в zsh, на серверах ни bash ни csh не вызывает затруднений

lazyklimm ★★★★★ ()
Ответ на: комментарий от imul

imul

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


Печально, что мы не поняли друг друга. =)

blackst0ne ★★★★★ ()
Ответ на: комментарий от imul

imul

Бггг... Так сказать в адрес sdio, это нужно быть с очень богатым воображением, о великий ты наш гуру консоли.


Прости, я не являюсь поклонником sdio, поэтому твоего сарказма не распарсил.

blackst0ne ★★★★★ ()
Ответ на: комментарий от lazyklimm

Собственно, мне было достаточно узнать, что этих трёх пунктов в bash добиться нельзя.
Всем спасибо.

blackst0ne ★★★★★ ()
Ответ на: комментарий от blackst0ne

Не нужно быть его поклонником. Достаточно просто тусоваться в general, чтобы знать кто есть кто.
Ну, а «нет» по всем трём пунктам ещё GotF написал. :)

imul ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.