Comments 64
Советую всё же воспользоваться zkbd, что бы не мучаться при переходе на другие терминалы.
# part of .zshrc
# part of .zshrc
autoload zkbd [[ ! -d ~/.zkbd ]] && mkdir ~/.zkbd [[ ! -f ~/.zkbd/$TERM-$VENDOR-$OSTYPE ]] && zkbd source ~/.zkbd/$TERM-$VENDOR-$OSTYPE #setup key accordingly [[ -n "${key[Home]}" ]] && bindkey "${key[Home]}" beginning-of-line [[ -n "${key[End]}" ]] && bindkey "${key[End]}" end-of-line [[ -n "${key[Insert]}" ]] && bindkey "${key[Insert]}" overwrite-mode [[ -n "${key[Delete]}" ]] && bindkey "${key[Delete]}" delete-char [[ -n "${key[Up]}" ]] && bindkey "${key[Up]}" up-line-or-history [[ -n "${key[Down]}" ]] && bindkey "${key[Down]}" down-line-or-history [[ -n "${key[Left]}" ]] && bindkey "${key[Left]}" backward-char [[ -n "${key[Right]}" ]] && bindkey "${key[Right]}" forward-char
+6
Вот это удобно! В Zsh столько всего — не уследишь… :)
0
Только почему то не работает это у меня:
zkbd: must be run as a function or shell script, not sourced
% zsh --version
zsh 4.3.5 (i686-pc-linux-gnu)</.code>
0
Спасибо за вводную статью. Переходить уж точно не хочется — zsh очень могуч!
Для того, чтобы велась история комманд (например последние 100 штук) нужно добавить в .zshrc:
Для того чтобы настроить правильное поведение нажатия клавиш Home, End итп (а оно скорее всего понадобится, так как zsh не читает /etc/inputrc, в отличие от bash), воспользуйтесь сочетанием клавиш Ctrl-v Home в терминале. Символ, который отобразится после этого можно использовать для задания поведения.
Поведение клавиш может отличаться в зависимости от используемого терминала (я пользую rxvt-unicode).
Для того, чтобы велась история комманд (например последние 100 штук) нужно добавить в .zshrc:
SAVEHIST=100
HISTFILE=~/.zsh_history
Для того чтобы настроить правильное поведение нажатия клавиш Home, End итп (а оно скорее всего понадобится, так как zsh не читает /etc/inputrc, в отличие от bash), воспользуйтесь сочетанием клавиш Ctrl-v Home в терминале. Символ, который отобразится после этого можно использовать для задания поведения.
bindkey "^[[7~" beginning-of-line
Поведение клавиш может отличаться в зависимости от используемого терминала (я пользую rxvt-unicode).
+4
Куча конфигов на любой вкус для великого zsh dotfiles.org/.zshrc
+1
>>находим строчку с вашим логином в /etc/passwd и меняем /bin/bash на /bin/zsh
$chsh [user] изящнее будет, да и рут не нужен тогда =)
$chsh [user] изящнее будет, да и рут не нужен тогда =)
+4
Ух ты как интересно (=
-1
А мне нравится csh
тем что можно недонабрать команду до конца, затем нажать стрелку вверх и будет поиск по хистори начинающийся с этих символов.
Что я делаю не так?
тем что можно недонабрать команду до конца, затем нажать стрелку вверх и будет поиск по хистори начинающийся с этих символов.
Что я делаю не так?
0
ну поиск по хистори стрелочками по первым буквы комманды умеет не только zsh и csh, но и к примеру tcsh :) а вот райтпромпт ничего кроме zsh не умеет, по табу казать список доступных опций для продолжения команды и потом их выбирать стрелочками на клавиатуре тоже никто кроме zsh не умеет. ну есть еще много чего чем zsh рулит.
не могу поверить своим глазам, неужто кто-то из линуксятнегов смог выкинуть свой баш и посмотреть на что-то другое? ну что ж, автор молодец, смог не только поставить zsh, но и прочитать немного про него :)
не могу поверить своим глазам, неужто кто-то из линуксятнегов смог выкинуть свой баш и посмотреть на что-то другое? ну что ж, автор молодец, смог не только поставить zsh, но и прочитать немного про него :)
0
Вроде бы есть какой-то пакет скриптов к tcsh где в зависимости от команды нужное дописывается, вроде как во Frenzy 0.3 стоят (давно не видел его)
0
не могу поверить своим глазам, неужто кто-то из линуксятнегов смог выкинуть свой баш и посмотреть на что-то другое?
Что ж у фряшников такие проблемы с самооценкой, что надо непременно других опускать, чтоб свою значимость почувствовать…
0
не видел ни одного линупсойда, который бы не кричал что линупс рулез, а баш лучший шелл. автор топика ломает шаблоны :)
пс: я не говорил что я «фряшник», но точно могу сказать что не «линупсойд» :)
пс: я не говорил что я «фряшник», но точно могу сказать что не «линупсойд» :)
0
То есть аватар Вы себе поставил исключительно потому, что картинка понравилась?
0
UFO just landed and posted this here
Ну, так и bash умеет.
А zsh, пожалуй, сегодня попробую.
А zsh, пожалуй, сегодня попробую.
0
UFO just landed and posted this here
bullshit.
-8
Если не использовать сильно специфичные вещи для одного шелла, то особой разницы нету.
На всех полноценных шеллах (/bin/sh не в счет :) есть автодополнение, имена команд от шелла не зависят.
Проблемы «знать» bash имхо нет, если пользуешься zsh.
На всех полноценных шеллах (/bin/sh не в счет :) есть автодополнение, имена команд от шелла не зависят.
Проблемы «знать» bash имхо нет, если пользуешься zsh.
0
А наете почему никто не хочет переходить с баша? потому что это дефолтный пакет на всех серверах. Сделали это так что бы админу не приходилось знать по 50 шелов… а было достаточно одного. Дома канеш можно ставить что угодно, но когда работаешь в калективе с хреновой тучей серверов, то только баш.
Это Вы просто так сказали или можете обосновать?
0
UFO just landed and posted this here
Шелл — не язык программирования. Стандартные операции и возможности, которые есть в sh, есть во всех других шеллах (кроме разве что крошечных вроде бизибоксовых). Соответственно, если знать sh, не составит проблемы работать с любым другим шеллом.
Более того, преимущества того же zsh над башем проявляются именно во взаимодействии с пользователем. На серверах нет никакого взаимодействия. На серверах есть скрипты, в которых от шелла опять же требуются возможности на уровне sh. Для остального есть стандартные утилиты — awk, grep, find, xargs. Если чего-то нельзя сделать с таким инструментарием — значит, это нужно делать с применением более тяжеловесных языков: перла, питона. Использовать для этого нестандартные расширения того же баша — ненадежно и неправильно в принципе.
Более того, преимущества того же zsh над башем проявляются именно во взаимодействии с пользователем. На серверах нет никакого взаимодействия. На серверах есть скрипты, в которых от шелла опять же требуются возможности на уровне sh. Для остального есть стандартные утилиты — awk, grep, find, xargs. Если чего-то нельзя сделать с таким инструментарием — значит, это нужно делать с применением более тяжеловесных языков: перла, питона. Использовать для этого нестандартные расширения того же баша — ненадежно и неправильно в принципе.
+1
UFO just landed and posted this here
Погодите… не стоит за меня расписыватся… я не гоорил что Шелл — это язык программинга
А я и не утверждал, что Вы такое говорили. Вы сравнили работу админов с разными шеллами с работой программистов с разными языками. Я указал на то, что сравнение некорректно, поскольку разница между шеллами на уровне написания скриптов значительно меньше, нежели между языками программирования. Поэтому
Сделали это так что бы админу не приходилось знать по 50 шелов… а было достаточно одного. Дома канеш можно ставить что угодно, но когда работаешь в калективе с хреновой тучей серверов, то только баш.
не соответствует истине. Для администрирования от шелла не требуется ничего сверх того, что умеют почти все шеллы. Тут уж никакой разницы — баш или что-то другое. Если админ для скриптов вместо стандартных системных утилит использует плюшки конкретного шелла — это плохой админ.
0
UFO just landed and posted this here
Тоесть вы только что сказали, что если я использую в шеле те функции которых нет в стандартном — то я плохой админ
Не подменяйте понятия. Я сказал конкретно о скриптах, которые ДОЛЖНЫ работать во всех sh-совместимых шеллах. Для написания скриптов не нужно продвинутое автодополнение, история команд и прочие прелести zsh.
Но если я их не использую, то зачем мне ставить другой шел взамен стандартного
Чтобы использовать указанные выше автодополнение, историю команд и прочие прелести. Для работы _пользователя_ с шеллом использовать, а не для выполнения шеллом скриптов! Если я пишу скрипты с #!/bin/sh, то я знаю, что эти скрипты будут работать всегда и везде. А для повседневной работы буду пользоваться тем шеллом, который мне больше нравится, или даже менять шеллы по десять раз в день — от этого ничего не изменится и не сломается.
0
UFO just landed and posted this here
Про «все серверы» сказано громко и не совсем верно, но в подавляющем числе *никсов — определенно да. Даже Макось и OpenSolaris на него перебрались.
0
Вот _минимум_ =)
# AutoCD setopt autocd # Set xterm title case $TERM in (xterm*|rxvt) precmd () { print -Pn "\e]0;%n@%m: %~\a" } preexec () { print -Pn "\e]0;%n@%m: $1\a" } ;; esac # Extended opts setopt extendedglob setopt extended_glob # Expands {abc}file to afile bfile cfile, etc. setopt brace_ccl # Searches =name in PATH setopt equals # Dont require a leading dot for matching "hidden" files setopt glob_dots # Enable multiple redirections setopt multios # Report status of bg jobs immediately setopt notify # Report status of bg jobs if exiting setopt check_jobs # Suffix aliases alias -s py='env python' alias -s php='env php'
0
Да, zsh на самом мощнейшая вещь. Чего он только не умеет. Там даже тетрис встроенный есть. Включается следующим образом:
autoload -U tetris
zle -N tetris
bindkey КЛАВИША tetris
autoload -U tetris
zle -N tetris
bindkey КЛАВИША tetris
0
Прописал zsh вместо bash в окошечном terminal под гномом. Выяснилось, что оно не подменяет заголовок текущим каталогом. Как сделать, чтобы подменяло?
0
имхо zsh удобнее bash'a, но поддерживает ли он unicode utf8? когда года два назад я им пользовался, ещё не было поддержки в официальном релизе, а как щас? поддерживает ли его в автодополнении?
+1
zsh 4.3.6 (x86_64-pc-linux-gnu)
max ~ % cd русс [tab]
русс/ русск/ русский/
max ~ % cd русс [tab]
русс/ русск/ русский/
0
в КОИ тоже так можно делать :)
в 2005 был задан вопрос (релиз 3. х. х какой-то):
в ньюсах про UTF-8 тоже мало хорошего:
на счёт того, поддерживается ли сейчас unicode UTF-8 полностью я не нашёл записей.
в 2005 был задан вопрос (релиз 3. х. х какой-то):
Q: Why doesn't zsh have proper UTF-8 support?
A: The code has not been written yet.
Q: What makes UTF-8 support difficult to implement?
A: In order to handle arbitrary encodings the correct way, significant and intrusive changes must be made to the shell
в ньюсах про UTF-8 тоже мало хорошего:
Release 4.3.1
This is the first release of the 4.3 series, which contains initial support for multibyte characters in the shell's line editor (in particular UTF-8, although any character set supported by the system library is usable)
на счёт того, поддерживается ли сейчас unicode UTF-8 полностью я не нашёл записей.
0
max ~ % locale
LANG=en_US.UTF-8
LC_CTYPE=«en_US.UTF-8»
LC_NUMERIC=«en_US.UTF-8»
LC_TIME=«en_US.UTF-8»
LC_COLLATE=«en_US.UTF-8»
LC_MONETARY=«en_US.UTF-8»
LC_MESSAGES=«en_US.UTF-8»
LC_PAPER=«en_US.UTF-8»
LC_NAME=«en_US.UTF-8»
LC_ADDRESS=«en_US.UTF-8»
LC_TELEPHONE=«en_US.UTF-8»
LC_MEASUREMENT=«en_US.UTF-8»
LC_IDENTIFICATION=«en_US.UTF-8»
LC_ALL=
я что-то не понимаю?
LANG=en_US.UTF-8
LC_CTYPE=«en_US.UTF-8»
LC_NUMERIC=«en_US.UTF-8»
LC_TIME=«en_US.UTF-8»
LC_COLLATE=«en_US.UTF-8»
LC_MONETARY=«en_US.UTF-8»
LC_MESSAGES=«en_US.UTF-8»
LC_PAPER=«en_US.UTF-8»
LC_NAME=«en_US.UTF-8»
LC_ADDRESS=«en_US.UTF-8»
LC_TELEPHONE=«en_US.UTF-8»
LC_MEASUREMENT=«en_US.UTF-8»
LC_IDENTIFICATION=«en_US.UTF-8»
LC_ALL=
я что-то не понимаю?
-1
это локали машинки вашей, а найти бы где-то хоть строчку в release_notes что zsh поддерживает юникод целиком.
0
да, спасибо, я знаю, что это =)
«zsh поддерживает юникод целиком» — лично меня и так устраивает, с русскими буквами нормально работает. вам нужно что-то конкретно? или просто хотите, чтобы всё было на utf-8?
«zsh поддерживает юникод целиком» — лично меня и так устраивает, с русскими буквами нормально работает. вам нужно что-то конкретно? или просто хотите, чтобы всё было на utf-8?
0
А мне чень нравится fish (friendly interactive shell): fishshell.org/
0
что то на экране одни иероглифы) это точно тот сайт?
0
что то на экране одни иероглифы) это точно тот сайт?
гугл подсказывает, что все таки: fishshell.com/
гугл подсказывает, что все таки: fishshell.com/
0
да говняшка этот zsh. Большая часть его «фич» — не нужные никому перделки, которые к тому же надо агрессивно забатывать. Зато при настройке этого отстоя начинают выползать проблемы как раз связанные с неполной поддержкой UTF-8.
// fish определённо лучше. И настроен хорошо сразу из коробки, в отличии от этого красноглазого говна. Впрочем, бздуны это оценят, у них и склад ума такой, что охота поебаться и всё равно, приходится использовать koi8-r, т.к. сама система говняно работает с utf-8 :D
// fish определённо лучше. И настроен хорошо сразу из коробки, в отличии от этого красноглазого говна. Впрочем, бздуны это оценят, у них и склад ума такой, что охота поебаться и всё равно, приходится использовать koi8-r, т.к. сама система говняно работает с utf-8 :D
0
Only those users with full accounts are able to leave comments. Log in, please.
zsh