LINUX.ORG.RU
ФорумTalks

bash vs zsh


0

0

в чем реальные отличия?
Я вот всю сознательную жизнь на bash'е сижу. Нередко слышу возгласы вида "zsh рулит!". Но сам с zsh ниразу не знаком.
Может кто просветит?

★★

Ответ на: комментарий от volh

>есть не менее удобное bash-completion, так что не катит.

Я его так и не осилил :) А в zsh - «из коробки».

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

>Да что ты говоришь. Оно не умеет такого.

изкоробки. справедливости ради, оно не дополнит хост в случае команды ssh TAB, только ssh username@TAB, но опять же, это программируется.

сам пользователь zsh около трех или четырех лет.

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

Это одна из мощных сторон zsh, а ты думал там спецэффекты как в компизе?

anotheranonymous
()
Ответ на: комментарий от vitroot

почитай про модификаторы, все по той же ссылке. меня лично они и автодополнялка ( bash-completion тогда был некузявый совсем вроде, или его совсем не было? ) сподвигли перейти.

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

проверил на bash-completion

дополняет и имя хоста, и пути на удаленном хосте. что я не так делаю?

кстати, zsh уже научили юникоду?

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

> он еще и юникод не понимает??

Уже два года как. К выше сказанному добавлю: подсказки по командам с описанием параметров, навигация по спискам дополнения, группировка и раскраска файлов по типам в этих списках, дополнение по хистори, продвинутые алиасы, корректировка ввода. Ещё всякие мелочи, типа auto_cd, auto_pushd. Но нужно много красноглазить с конфигами чтобы получть удобную рабочую систему. Bash проще конечно. По аналогии с текстовыми редакторами - bash vs zsh это как nano vs vim :)

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

В смысле два года назад уже научился :)

Вообще, какой смысл оценивать с чужих слов? Возьмите да попробуйте. Или это тема просто ради холивара?

Hjorn
()
Ответ на: комментарий от vitroot

Я уже 4 года башем не пользуюсь. А в баше можно написать "s", нажать кномпку "вверх" и получить последние команды, начинающиеся на s?

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

а зачем это нужно, если и там и там работает ^R ? нет, правда интересно. тем более, что изкоробки дополнения стрелочками в zsh нет - надо настраивать.

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

> и там и там работает ^R

Ага, только в баше он работает немного не так. А именно нет навигации по истории вызова команды. Да и к тому же неудобно это - жать ещё ^r.

> изкоробки дополнения стрелочками в zsh нет - надо настраивать

Странно, у меня вроде изкоробки. Хотя может это я сам что то в конфиге прописал давным давно, не уверен.

> а зачем это нужно

Слакварщик? :)

Hjorn
()

ещё там проверка ошибок есть

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

>дополняет и имя хоста, и пути на удаленном хосте. что я не так делаю?

+1. anotheranonymous & volh: Зачем вы врёте? Всё прекрасно дополняется, и ssh TAB и ssh PgUp. Так к чему это тогда? Показать своё незнание?

UserUnknown ★★★★★
()

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

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

>Зачем вы врёте? Всё прекрасно дополняется, и ssh TAB и ssh PgUp. Так к чему это тогда? Показать своё незнание?

какая-то нездоровая реакция. у себя проверил - не дополняется, а pgup однозначно переходит к первой команде в хистори и все. ну да пофигу, свою имху ( что переходить на zsh только из-за дополнялки смысла не имеет ) я высказал в начале.

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

В Debian'е дополняет пути на удаленном хосте.

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

>>есть не менее удобное bash-completion, так что не катит. >Да что ты говоришь. Оно не умеет такого.

Да ну? Таки не умеет?

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

>Да хост это фигня. Zsh умеет например файлы на _удаленном_ хосте автодополнять.

bash_completion умеет тоже.

Если кому надо - выложу полный пруф.

пруф:

# scp(1) completion
#
_scp()
{
local cur userhost path
local optconfigfile

COMPREPLY=()
cur=`_get_cword ":"`

_expand || return 0

if [[ "$cur" == *:* ]]; then
# if $COMP_SCP_REMOTE is not null, 'scp' will
# complete on remote host path (requires
# passwordless access to the remote host)
if [ -n "${COMP_SCP_REMOTE:-}" ]; then
local IFS=$'\t\n'
# remove backslash escape from :
space retained for others.

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

>Уже два года как. К выше сказанному добавлю: подсказки по командам с описанием параметров, навигация по спискам дополнения, группировка и раскраска файлов по типам в этих списках, дополнение по хистори, продвинутые алиасы, корректировка ввода. Ещё всякие мелочи, типа auto_cd, auto_pushd. Но нужно много красноглазить с конфигами чтобы получть удобную рабочую систему. Bash проще конечно. По аналогии с текстовыми редакторами - bash vs zsh это как nano vs vim :)

Все это можно и на bash, афаик. Разве что про навигацию не уверен.

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

>> и там и там работает ^R

>Ага, только в баше он работает немного не так. А именно нет навигации по истории вызова команды. Да и к тому же неудобно это - жать ещё ^r.

нормально там работает. ^r вводишь нужный поиск. А потом внова по ^r/^p продвигаешься вверх/вниз по хистори опять.

Жать ^r ничуть не труднее.

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

> Да что ты говоришь. Оно не умеет такого.

В четвертой версии баша действительно поломали дополнение удаленных файлов. Я даже сделал PKGBUILD, так как основные разработчики не особо шевелятся с фиксом. bash4-completion-git в ауре, если кому из арчеводов понадобится.

baverman ★★★
()

Несколько раз пытался переехать на zsh, но каждый раз находил способ реализации очередной «киллер-фичи» в bash. Наконец, zsh ощутимо притормаживал при запуске и автодополнение для aptitude (имён пакетов) в разы медленнее, чем в bash.

И таки объясните долбодятлу, как в приглашении zsh задавать цвета, ибо стандартные последовательности из

$ man console_codes
не работают... :)

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

> ибо стандартные последовательности из man console_codes не работают...
Работают. Просто их начинать надо с \е.

> автодополнение для aptitude (имён пакетов) в разы медленнее, чем в bash.

При первом запуске думает секунд пять, следующие разы - реактивно. Не говоря уж о том, что zsh показывает кавайную простынку, пот которой можно перемещаться стрелочками, а в баше до сих пор лишь унылое Display all 34435 possibilities? (y or n)

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

И таки объясните долбодятлу, как в приглашении zsh задавать цвета,

А, и забыл. %F же. Например у меня

% echo $PROMPT
[ %F{blue}%B%~/%b%1v %f]
%B%(!.%F{red}#%f.%F{green}%%%f)%b
Т.е. %F{color}text%f выведет text цветом color.

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

kapsh (09.09.2009 17:10:56)

Просто их начинать надо с \е.

Он оно чё...

kapsh (09.09.2009 17:10:56)

можно перемещаться стрелочками

А у меня не перемещалось О_о

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

А у меня не перемещалось

Это делает что-то вроде:

zstyle ':completion:*' menu select=long-list select=0
в ~/.zshrc

Вообще, есть в ZSH отличная конфигурялка с диалоговым режимом, её можно вызвать командами

autoload zsh-newuser-install
zsh-newuser-install

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

Это вроде бы в мане zshmisc. Хотя если что-то искать, лучше пользоваться маном zshall

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