Comments 44
У баша тоже есть отличные плагины, половина фич такая же, половина я не понимаю зачем нужны, в чем прикол... 🤔
Zsh на маке по дефолту. Можно на bash перебраться, но где вылезет - никто не знает.
Да всё нормально переключается и нигде не вылезает. До Catalina у macOS тоже bash был дефолтным. Тем более, шелл переключается у конкретного пользователя, так что всю систему в целом это не аффектит, да и на маке намного меньше системных шелл-скриптов используется.
Нигде не вылезет. Просто смысла ноль.
Это с каких пор он там по-дефолту? Вы либо ставили его настолько давно, что забыли про zsh либо кто-то помимо вас шурудил в вашей системе.
А какие именно сомнения вызвали? Алиасы мб?
Я на баше обычно пользуюсь Ctrl+R, когда надо из истории достать, в остальных случаях -- обычный автокомплит по табу покрывает 99% протребностей.
Разные вариации https://github.com/akinomyoga/ble.sh и https://github.com/dvorka/hstr тоже пробовал, но так и не получил никакого буста с них.
Всевозможные подсветки синтаксиса в целом кроме разделения рут-обычный и сервер-дома -- пользы не приносят. Толку с них как с полупрозрачного фона -- вау-эффект для наблюдателя да, а для себя... всё равно не видишь, так как в мыслях.
Наборы альясов вообще улыбнули...
Это шедевр.jpg
Статья ради
Скрытый текст...
Тогда б он не был скрытым)
Вообще меня пару раз за последнее время спросили, стоит ли переходить. Я задумался, и решил выписать фичи, которые помогают как-то
Понимаете в чем дело, статья выглядит я поставлю zsh и два плагина и это круто, переходите в мой телеграм канал
Но простой запрос в Гугле bash Vs zsh, даёт ссылку на Хабре за 2012
Но в 2025 хотелось бы что вроде этого реально сравнение
https://blog.logrocket.com/bash-vs-zsh/
Согласен, спасибо, переименовал статью.
Касательно сравнения шо Вы приложили - кажется весьма абстрактным, например
Speed: fast vs very fast
Или Posix complience
.
Эти вещи как-то не дают мне представления прям о функционале, который может мне быть полезным
Поэтому свою статью разбавлял скриншотами и примерами
Вообще круто сделано у nushell'a (https://www.nushell.sh/), когда на главной странице сразу видишь скрины/гифки функционала, сразу хочется поставить
Извините, а можно вас спросить?
Зачем вам канал? Ну или в другой формулировке - зачем вам набирать подписчиков? До размера, когда можно будет что-то впаривать пастве, он явно не дорастёт - слишком узкая ниша и слишком мало постов.
Зачем канал вашим подписчикам? Особенно учитывая, что посты там раз в месяц, и половина - или "я написал на Хабр", или "Я нашёл на Хабре" - то есть желающие это прочтут и так.
Только не говорите "все побежали, и я побежал" - это как-то совсем глупо.
Телеграм-каналы прекрасно монетизируются. Яндекс.Рекламу подрубить и вперёд. Набрать актив и потом продать скамеру канал — это как за милую душу. Те, кто утверждают, что этого делать не будут, просто не нашли своего покупателя. Принципиальных в Телеграме нет.
Канал для меня служит в первую очередь цифровым аватаром, поэтому я там и аггрегирую "я написал", "я законтрибьютил", "я сделал видос"
Подписчикам я ничего не продаю, да и не собираюсь. Канал помогает мне при продажах, это правда, потому что можно что-то узнать обо мне, прежде чем писать в личку
Зачем подписываются? Наверно интересно, я ж не заставляю :)
Мой лайфхак - поставить fish вместо zsh. У него из коробки есть большая часть того что в zsh надо добавлять вручную, так что можно просто поставить, выбрать тему и просто пользоваться.
Еще один лайфхак - на винде есть Oh My Posh, который в павершел добавляет многие упомянутые фичи, делая его сильно более юзабельным.
Спасибо! Даже не слышал про fish до этого
Запустил ps и влюбился) Спасибо!
Что-то не заметил преимуществ NuShell перед PowerShell. На лендинге абсолютно всё, что есть в NuShell, первым появилось в PowerShell.
Такое ощущение, что NuShell пытаются пофиксить косяки старых оболочек и привести работу с сырыми текстовыми данными в объектную модель... которая нативна для PowerShell.
Вопрос: где преимущества? Или это всё вкусовщина?
Да, вкусовщина по большей части. Из плюсов могу только выделить нативную работу со структурами, типа json/yaml/csv/etc., ЕМНИП в powershell оно так же не нативно, как в bash (ну то есть через jq/yq/etc.)
Для кого-то с диагнозом "непринятие всего от microsoft" может быть плюсом кроссплатформенность.
Он прямо заметно более шустрый и команды у него не такие длинные как в posh
Как по мне такие фичи, особенно подсветка синтаксиса должны быть по умолчанию, хотя бы в популярных дистрибутивах типо Убунты.
Я первые пару лет программирования вообще не знал что есть другие командные оболочки. И тут на новой работе у всех установлен Видоус по умолчанию. Я открываю PowerShell и бум - там подсветка синтаксиса! Я в шоке - вроде Линукс известен тем, что с ним нужно часто работать из терминала, а у винды - терминал намного удобнее!
Оказалось что нужно такие удобства доустанавливать. Мне посоветовали fish - на нём до сих пор и сижу. Моя терминальная жизнь разделилась на до и после.
Недавно как раз сменил bash на zsh+ oh my zsh. Стало красиво и по большей части всё.
Гит я юзаю из ui phpstorm или goland. Всё остальное вроде и так есть в bash, можно чуть в менее продвинутом виде, но тем не менее.
В общем особей разницы не заметил
Zsh стоит ставить сразу вместе с Oh-my-zsh.
Так стоит делать только, если вы хотите ознакомиться с плагинами и не против того, что часть включённого туда вам совершенно ненужна. На мой взгляд, лучше не использовать какие-либо менеджеры плагинов. Плагины - это просто скрипты, включаемые в основной конфиг (.zshrc) . Просто можно включить только то, что необходимо, не перегружая оболочку кучей бесполезных скриптов.
Поддерживаю. Вообще oh-my-zsh не лучший выбор, лаг на запуск нового экземпляра оболочки может доходить до одной секунды, что сильно бесит когда активно работаешь в чем то на подобии tmux. Попробуйте сначала подключить дефолтный zsh и запустить на нем бенчмарк, а потом при использовании oh-my-zsh с плагинами. После, можно пойти по стопам других людей и заняться профилированием оболочки (Раз, два), но это уже совсем для фанатов oh-my-zsh.
Что даст переход на zsh разработчику?
После 5 лет на zsh после 4х лет на bash, могу уверенно ответить - ничего, ничего не даст.
Да, можно сделать "красиво" с помощью костылей типа oh-my-zsh (хуже), powerlevel10k (лучше) или своими руками, но с большего - мало что поменяется, т.к. большая часть плагинов это все же bash диалект (например в большинстве моих плагинов шебанги #!/usr/bin/bash
, ну а если хочется "все самое новое", то тогда уже ИМХО лучше на nushell переехать
Плагины git и composer, судя по тому что написано в статье - экономия на спичках вида "спасибо > спс"
Для себя имею такой набор плагинов:
https://github.com/tony-sol/git-aware-prompt - состояние репозитория для подстановки в PROMPT/RPROMPT
https://github.com/marlonrichert/zsh-autocomplete - автокомплит
https://github.com/zsh-users/zsh-autosuggestions - предложение на основе истории/окружения
https://github.com/zsh-users/zsh-completions - набор скриптов комплита от сообщества
https://github.com/qoomon/zsh-lazyload - ленивая загрузка (использую для автодополнения команд, например
lazyload kubectl -- 'source <(kubectl completion zsh)'
, благодаря чему уменьшается лаг (см. https://github.com/romkatv/zsh-bench)https://github.com/tony-sol/zsh-ssh - интеграция fzf в автодополнение ssh
Для состояния репозитория https://github.com/magicmonty/bash-git-prompt использую. Очень гибко настраивается, можно добавить отображение кучи всего, например информации по virtualenv.
Спасибо!
Алиасы так-то и в баше делать можно, а зачем набирать gl вместо git pull
я не понимаю. Вы не можете никак запомнить полную команду или так критично пол секунды сэкономить? Я в алиасы заношу, например, длинные команды коннекта к серверам с кучей параметров, ip адресами и т.д., т.е. то, что нафиг не надо запоминать.
А вместо автодополнения, основанного на истории я просто использую fzf
для нечёткого поиска по истории, это очень удобно. Пропишите в ~/.bashrc
что-то подобное и наслаждайтесь:
fzf_history_search() {
local selected_command
selected_command=$(history | fzf +s --tac | sed 's/ *[0-9]* *//')
if [ -n "$selected_command" ]; then
READLINE_LINE="$selected_command"
READLINE_POINT=${#READLINE_LINE}
fi
}
bind -x '"\C-r": fzf_history_search'
В общем, я так и не понял, зачем мне zsh вместо баша.
В топку zsh с его плагинами. На старом ноуте zsh который два дня настраивал, на новом fish. Fish покруче и без танцев с бубном - поставил и сразу работает как надо. На сервере оставил в стоке bash а на открытие tmux переход на fish
zsh после того как на него плагинов навесить для удобства становится ну куда медленнее баша, nushell же при таких же настройках летает, как и fish.
Поэтому вы можете хотеть понастраивать хранение истории
Шта?! (-:
Из статьи решительно непонятно, почему всё-таки старшие коллеги советовали переехать на zsh. У меня так и осталось впечатление, которое сформировалось лет 10 назад - нафиг оно не нужно.
starship + atuin и глубоко фиолетово что там bash/zsh - быстрее не получится. Когда привыкните, а это быстро - на сервере с голой оболочкой будет ломать, сильно.
Что дал переход на zsh мне, как разработчику?