LINUX.ORG.RU

Fish, zsh или bash?

 , , , ,


1

3

В последнее время заинтересовался возможностями zsh, fish. Очень и очень удобно, порой. Особенно, zsh. Родился вопрос такого плана: не являются ли удобства zsh ловушкой, в которую ты попадёшь, когда окажешься один на один с «голой» системой и дефолтным bash? Может и не стоит привыкать к хорошему, а учиться не такому удобному, но зато дефолтному и «работающему всегда и везде»? Является ли привычка работать c zsh плохой? Не терялись ли вы, когда в одночасье лишались удобств zsh?

Вывод (для себя): zsh - «велосипед» с модными финтифлюшками, bash+Tab ничем не хуже. Лучше пользоваться дефолтными вещами, которые всегда при тебе, в любой ситуации, с минимальным временем развёртывания в боевое положение, так сказать))...

★★★★★

Последнее исправление: Desmond_Hume (всего исправлений: 1)

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

Вот и тут, привыкнешь к автодополнениям zsh

есть bash-completion

И, вот когда, придёт час Х и придётся в голом баше поднимать систему, тут может ожидать некий баттхерт...я просто предположил. Возможно ли такое?

У меня такое было. Да, бесит. Да, неудобно. Но не смертельно. Такая беда в слаке по дефолту (там bash-completion в extra).

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

не является ли электричество ловушкой

в этой шутке очень мало шутки. Умение разжигать костёр и ориентироваться на местности меня неоднократно выручало. Хотя я живу в центре Питера, и не только из города, даже из дома редко выхожу, т.к. лениво и интернеты.

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

современный человек потеряется в лесу, не сможет разжечь огонь из подручных материалов

значит этот человек — дурак.

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

Я вполне понимаю туристов и прочих любителей природы, сам люблю прогулки и живописные места, но далеко не каждому *необходимо* умение выживать в дикой природе.

потом будешь локти грызть, когда заблудишься в 5и км от дороги.

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

разрисовываешь консоль во все цвета радуги,

наслаждаешься красотой, и удобством

/0

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

zsh табом листаешь имена, в баше такого нет

там есть список имён по <tab><tab>.

А есть в zsh дополнение _опций_?

Вот так:

$ gpg --re<TAB><TAB>
--reader-port                  --recv-keys                    --require-backsigs
--rebuild-keydb-caches         --refresh-keys                 --require-cross-certification
--recipient                    --remote-user                  --require-secmem
$ gpg --reci<TAB> #  дополняется  до --recipient

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

нет возможности их редактировать, это сделано специально чтоб из каждого тупняка новенького тащился весь ЛОР.

если не тормозить, то тупняк можно удалить. А звездатым тоже тупняк не удалить, есть же история правок.

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

там есть список имён по <tab><tab>.

Говно.

http://i.imgur.com/ritm1gV.png

А есть в zsh дополнение _опций_?

/home/gotf % gpg --re
Completing option
--reader-port                  -- card reader port
--rebuild-keydb-caches         -- create signature caches in keyring
--recipient                    -- specify user to encrypt for
--recv-keys                    -- receive a list of keys from a keyserver
--refresh-keys                 -- update all keys from a keyserver
--require-cross-certification  --require-secmem

И где твой bash теперь?

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

А есть в zsh дополнение _опций_?

[ blackst0ne at mysticfox: ~ ]% gpg --re<TAB>
option
--reader-port                  -- card reader port
--rebuild-keydb-caches         -- create signature caches in keyring
--recipient                    -- specify user to encrypt for
--recv-keys                    -- receive a list of keys from a keyserver
--refresh-keys                 -- update all keys from a keyserver
--require-cross-certification  --require-secmem     
blackst0ne ★★★★★
()
Ответ на: комментарий от Kroz

bash умеет выполнять поиск по истории, учитывая левую от курсора часть выражения?

Alt+PgUp

blackst0ne@mysticfox:~$ sudo 3~3~3~

Эту штуку ещё как-то нужно настраивать?

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

http://i.imgur.com/ritm1gV.png

а я в курсе, пробовал, мне не понравилось. Это у меня в VIM так настроено, потому-что в VIM я довольно редко файлы выбираю, я их там обычно редактирую. А вот в bash их надо выбирать постоянно, и потому я почти всегда точно знаю, что мне нужно.

И где твой bash теперь?

а мне эта фича нужна для выбора, если я точно не знаю что мне нужно (а такое бывает редко), точнее знаю, но bash не смог дополнить, ибо волею хаоса тут неоднозначность. Обычно у меня всё дополняет с одного <TAB>.

Ну а назначения опций я лучше в мане посмотрю и/или в другой документации. Мне как-то не нужен список опций и их назначение, которые начинаются на --re.

Короче: zsh не нужно.

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

Как-то подозрительно вы оба сразу gpg привели. Вот на man дополнение опций спотыкается, например. И еще на куче команд. Короче, на это полагаться нельзя. Лучше в хелп или ман самому глянуть.

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

что в bash, что в zsh - просто ловкость рук, и никакой магии :)

https://packages.debian.org/wheezy/all/bash-completion/filelist

/usr/share/bash-completion/completions/gpg
/usr/share/bash-completion/completions/gpg2
/usr/share/bash-completion/completions/gprof
/usr/share/bash-completion/completions/groupadd
https://packages.debian.org/sid/all/zsh-common/filelist
/usr/share/zsh/functions/Completion/Unix/_go
/usr/share/zsh/functions/Completion/Unix/_gpg
/usr/share/zsh/functions/Completion/Unix/_gphoto2

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

юзая один нож и подручный материал от матушки-природы.

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

Иногда важнее эмулятор терминала, чем shell в нем. Я вот привык к Konsole. Знаю, что можно пропускать вывод компилятора через стороннюю утилиту для подсветки строчек с ошибками, но почему в эмуляторы не включают функцию поиска слова как это сделано в Konsole мне не понятно.

tlx ★★★★★
()
Последнее исправление: tlx (всего исправлений: 1)
Ответ на: комментарий от entefeed

Про zsh кричат какие-то странные люди. Они им будто не пользуются. Стоит только спросить, «как в zsh сделать X» - наступает гробовая тишина

Как в баше настроить автодополнение по типу как в редакторе - complete word as you type?

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

там есть список имён по <tab><tab>

угу, я в курсе.

$ gpg --re<TAB><TAB>

это bash-completion, не путай кокаин из героином.

А звездатым тоже тупняк не удалить, есть же история правок

туда не смотрит каждый проходящий.

CHIPOK ★★★
()

Когда я пару лет назад экспериментировал с zsh, некоторые *sh-скрипты отказывались работать.

alix ★★★★
()

В fish есть классическое дополнение по Tab, есть своё по Arrow_right, есть перебор по совпадениям в истории arrow_up, arrow_down, и всё без плясок с бубном как в zsh.

Bfgeshka ★★★★★
()

Родился вопрос такого плана: не являются ли удобства zsh ловушкой, в которую ты попадёшь, когда окажешься один на один с «голой» системой и дефолтным bash? Может и не стоит привыкать к хорошему, а учиться не такому удобному, но зато дефолтному и «работающему всегда и везде»?

Родился вопрос такого плана: не являются ли удобства тёплого санузла с канализацией и рулоном туалетной бумаги ловушкой, в которую ты попадёшь, когда окажешься один на один с кустами и дефолтным листом лопуха? Может и не стоит привыкать к хорошему, а учиться не такому удобному, но зато дефолтному и «работающему всегда и везде»?

lazyklimm ★★★★★
()
Последнее исправление: lazyklimm (всего исправлений: 2)
Ответ на: комментарий от entefeed

Как-то подозрительно вы оба сразу gpg привели.

просто в gpg Over9000 опций, и почти все длинные.

Лучше в хелп или ман

просто набирать лень, и можно опечататься.

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

AFAIK, если скрипт выполняется через /bin/sh, а (что?) /bin/sh - ссылка на zsh, то скрипт выполнится (чем?) zsh. А он пару лет назад был не на 100% совместим с bash.

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

не прошло и 15 лет

И всё равно оно кривое. А про меню с навигацией стрелками там и не слышали.

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


Как-то подозрительно вы оба сразу gpg привели. Вот на man дополнение опций спотыкается, например. И еще на куче команд. Короче, на это полагаться нельзя. Лучше в хелп или ман самому глянуть.


Какой пример привели, на такой и ответили.

blackst0ne ★★★★★
()

Понимаешь суть zsh - у него автокомплит поумнее и поудобнее башевого. Ну а насчет голого - zsh будет работать всегда и везде, а забывать - зависит от админа. .zshrc (там, правда, плагины, но это ничего): https://bpaste.net/show/b6f070f88c3e
Посмотри. Некоторые штуки из того, что дает мне zsh, отслаьные шеллы не дадут.

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

Вот на man дополнение опций спотыкается, например.

Пример?

И еще на куче команд.

okay.jpg

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

Надо срочно изучать bash, а не zsh, ибо я только что узнал о ^...*фейспалм, знаю*

И ведь действительно фейспалм, но по другой причине.

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

Да не, ролики ему нужно было записать, чтобы молодёжи наглядно показать, кто не сможет присутствовать на месте, что теряться на местности не стоит, всё не так плохо и не стоит отчаиваться.

Desmond_Hume ★★★★★
() автор топика

zsh использую давно, очень нравится, что можно использовать подобные команды

mv *jpg ..///wallpapers

Ну и дополнение искаропки. Ну и удобная настройка при первом знакомстве из менюшки.

А вот про фиш не слышал, не видел, чтоб кто-то использовал, в чем его фишка?

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

Покажите мне общедоступные «растущие всегда и везде» лопухи в каком-нибудь торговом центре...плохой у вас пример, батенька.

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

fish не умеет запускать собственные функции в фоне:

~> function f; echo start; sleep 5; echo end; end
~> f & f &
start
end
start
end
Job 2, “f &” has ended
Job 1, “f &” has ended

Это особенно печально вкупе с тем, что алиасы реализованы через функции.

Ну ещё синтаксис более многословный, но это не так критично с таким-то автокомплитом.

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

По такой, что ^ никак не связана ни с zsh, ни с bash, ни с другой командной оболочкой, ^su — это обычная строка-аргумент программы (grep), так что

man аргументы программ
man регулярные выражения
man grep
theNamelessOne ★★★★★
()
Ответ на: комментарий от CHIPOK

D[tab]/u[tab]/t[tab], что в баше не удобного?

Представь такую ситуацию:

test
├── folder1
│   ├── nested1
│   │   └── file.txt
│   └── nested2
└── folder2
    ├── nested1
    └── nested2

Нам нужно напечатать содержимое file.txt.

В zsh я делаю так:

cat t/f/n/f[tab][enter]

В bash:

cat t[tab] # комплит до cat test/
cat test/f[tab][tab] # комплит до cat test/folder, bash подсказывает folder1 folder2, выбираю folder1
cat test/folder1/n[tab][tab] # комплит до cat test/folder1/nested, bash подсказывает nested1 nested2, выбираю nested1
cat test/folder1/nested1/f[tab][enter] # комплит до cat test/folder1/nested1/file.txt

И такие ситуации встречаются достаточно часто.

Я бы сказал что удобней в баше, так как например я не знаю все пути к всея файлам,

А кто мешает в таком случае в zsh по старинке дополнять путь по частям?

да и оно мне нужно? А вот эти понты D/u/t только виндузнякам воображение покорять в работе оно не нужно.

Классический «аргумент»: в $favourite_product нет $feature — $feature ненужно и вообще только для позеров.

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

Когда я пару лет назад экспериментировал с zsh, некоторые *sh-скрипты отказывались работать.

«Когда я пару лет назад экспериментировал с zsh, некоторые bash-скрипты отказывались работать.» - Это ты хотел сказать?

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

Это чем-то подкрепляться будет

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

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

То есть, вы хотите сказать, что grep никоим образом не относится к bash и прекрасно существует, функционирует сам по себе? Тогде у меня ещё больший фейспалм, как многого я ещё не знаю!

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

То есть, вы хотите сказать, что grep никоим образом не относится к bash и прекрасно существует, функционирует сам по себе?

grep — это программа, написанная на C, она может спокойно существовать без баша.

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

D[tab]/u[tab]/t[tab], что в баше не удобного?

Представь такую ситуацию:

test ├── folder1 │ ├── nested1 │ │ └── file.txt │ └── nested2 └── folder2 ├── nested1 └── nested2

Нам нужно напечатать содержимое file.txt.

В zsh я делаю так:

cat t/f/n/f[tab][enter]

В bash:

cat t[tab] # комплит до cat test/ cat test/f[tab][tab] # комплит до cat test/folder, bash подсказывает folder1 folder2, выбираю folder1 cat test/folder1/n[tab][tab] # комплит до cat test/folder1/nested, bash подсказывает nested1 nested2, выбираю nested1 cat test/folder1/nested1/f[tab][enter] # комплит до cat test/folder1/nested1/file.txt

В приведённом вами примере, в bash'e было бы достаточно ввести следующее:
cat t*[Tab]f[Tab]1[Tab]n[Tab]1[Tab]
а не приведённую вами

cat t[tab] # комплит до cat test/ cat test/f[tab][tab] # комплит до cat test/folder, bash подсказывает folder1 folder2, выбираю folder1 cat test/folder1/n[tab][tab] # комплит до cat test/folder1/nested, bash подсказывает nested1 nested2, выбираю nested1 cat test/folder1/nested1/f[tab][enter] # комплит до cat test/folder1/nested1/file.txt

портянку...

P.S. * - в зависимости, от того, сколько папок в изначальной локации на t вообще...

Desmond_Hume ★★★★★
() автор топика
Последнее исправление: Desmond_Hume (всего исправлений: 4)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.