LINUX.ORG.RU

Какой командной оболочкой вы пользуетесь?

 , , , ,


0

1
  1. bash 480 (71%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. zsh 201 (30%)

    **************************************************************************************************************************************

  3. cmd.exe / COMMAND.COM 64 (9%)

    ******************************************

  4. fish 63 (9%)

    ******************************************

  5. PowerShell 52 (8%)

    **********************************

  6. (d)ash 28 (4%)

    ******************

  7. (t)csh 18 (3%)

    ************

  8. другой 14 (2%)

    *********

  9. ksh 11 (2%)

    *******

  10. eshell 5 (1%)

    ***

Всего голосов: 936, всего проголосовавших: 680

★★★

Проверено: Satori ()
Последнее исправление: Dimez (всего исправлений: 2)

На alt bash, на FreeBSD пока csh, но тоже будет bash.

sparkie ★★★★★
()

Использую fish в эмуляторе терминала. bash оставил дефолтным шеллом для запуска скриптов и POSIX совместимости.

Раньше ковырялся с zsh и Oh-My-Zsh/Prezto. Потом задумался, а зачем пытаться из zsh делать унылое подобие fish, когда можно просто поставить fish.

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

у меня /bin/sh является ссылкой на /bin/sh. Что ты об этом думаешь?

думаю, что это циклическая ссылка. Вероятно она не запустится.

Shushundr ★★★
()

bash ибо остальное какое-то ещё более кривое.

X512 ★★★★★
()

Bash. Мне его хватает с головой.

Vidrele ★★★
()

какая по дефолту стоит, такой и пользуюсь, пока она ведёт себя тише воды ниже травы — претензий к нет.

а когда ты нажимаешь ctrl + r и всё начинает мигать, свистеть и пердеть, тогда оболочка меняется на bash.

привет арчеводам с их zsh.

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

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

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

+1

fish требует некоторого привыкания, но после нее возвращаться к шеллам из 70-х годов вообще не хочется.

emorozov
()

zsh. Но скрипты пишу под POSIX.

CrX ★★★★★
()

bash во всех случаях, включая скрипты (если нет оснований полагать, что скрипт будет запускаться где-то в ембеде/Alpine)

#!/bin/bash, конечно. Пользователи BSD установят, не отвалится у них ничего, чтобы ради этого избегать удобных башизмов.

nebularia ★★★
()

Той, которая по умолчанию.

Psilocybe ★★★★
()

Существует ли Python-интерпретатор командной строки, который при сохранении совместимости, мог бы принимать команды, удобные для пользования? Хотя видимо все команды будут усеяны кавычками и скобками

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)

Той которая в Debian по умолчанию.

Polugnom ★★★★★
()

Вот те кто пишут про дефолтное - очень зря. Попробуйте zsh с хайлайтингами, дополнением команд и прочиими фичами. Это реально круто. Я вот хрен когда на баш вернусь. Это же.. После zsh баш это как виндовый cmd после линуксовой консольки.

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

Дык, а fish ещё круче. zsh всё-таки не сильно моложе bash, и какие-то вещи в нем сделаны по лекалам 70-х, как и в bash, когда и терминалы и возможности и люди были другими.

emorozov
()

bash, ибо дефолт

пытаюсь юзать fish - прикольно, но странный он после баша. Зачем было `команда` менять, например?

yu-boot ★★★★★
()
Ответ на: комментарий от s-warus

кардинально неправильно мыслишь.
мануал живет отдельно, шел живет отдельно.
man sh у меня к примеру выдает мануал по dash.
а в /etc/passwd прописан /bin/bash :)

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

да согласен. отсутствует опция «дефолтный по установке» :)

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

Поддерживаю. Пытаться писать шеллскрипты с оглядкой на POSIX какая-то боль.

Местами использую zsh, правда просто как SHELL. Скрипты под него не пишу.

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

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

Притом, видел, что в ChangeLog bash как-то писали, что починили потерю истории, обрадовался, обновился, и буквально через неделю он опять потерял всю историю, как раньше.

Да, ещё знаю, что монстры велосипедостроения используют эзотерические трюки и самописные скрипты для предотвращения потери.

Попробовал zsh… Вообще не зашло. Не знаю, не нравится она мне, и всё.

А вот fish как-то сразу «в руку лег». Просто, понятно, удобно.

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

На самом деле, мог бы загуглить «bash vs fish» и скопипастить, но это вряд ли бы было полезнее.

У меня скорее субъективные ощущения удобства, которые не пытался анализировать.

Скрипты на fish пишу только если для себя, хотя fish сейчас уже почти везде есть. Вроде на маке его даже сделали дефолтным шеллом.

emorozov
()

Zsh со своим конфигом. Хотя bash с 4-й версии не хуже

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

Хм. Оказывается я уже утащил себе автодополнение и подсветки синтаксиса и истории себе в zsh с помощью плагинов… Так что возможно большого смысла переезжать нет.

А что за fish скрипты?

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

слишком большая глубина рекурсии ссылок

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

Наверное, почти всё из fish можно реализовать в zsh скриптами… Не знаю, разве только fish ещё серым показывает дополнение для текущей вводимой команды, если она есть в истории, мне это очень нравится, и не уверен, что это можно реализовать в других оболочках скриптами.

Мне нравится в fish, что всё это и другое, уже есть из коробки. Хотя плагины для fish тоже есть.

fish скрипты - у fish чуть-чуть другой синтаксис, чем в bash. Более читаемый, на мой взгляд. Но т.к. очевидно, что bash ещё долго будет стандартом де-факто, скрипты на fish пишу только для самого fish или для своего личного использования.

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

Если я правильно понял, по крайней мере в zsh это можно сделать с помощью плагина, который называется zsh-autosuggestions. Там на страничке есть демонстрация. Штука супер удобная, всегда ее использую.

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

Оказывается я уже утащил себе автодополнение и подсветки синтаксиса и истории себе в zsh с помощью плагинов…

В целом да, для zsh написаны плагины, реализующие основные фишки fish вроде синтаксической подсветки, поиска по подстроке в истории команд и автоподсказок серым цветом. Но в fish все это работает сразу искаропки без всяких конфигов. Ну и встроенные фичи fish, написанные на крестах, обычно работают шустрее и надежнее, чем сторонние zsh плагины на шелл скриптах. У меня например zsh, обвешанный плагинами, запускался с заметной задержкой, а fish стартует практически мгновенно.

Еще fish умеет автоматически парсить маны, вытаскивать из них все возможные флаги командной строки и предлагать их при автодополнении. А в bash/zsh автодополнение работает только для определенных команд, для которых разрабы специально заморочились и написали скрипты автодополнения. В результате fish может показывать автодополнение там, где остальные шеллы сдаются.

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

Задержка была при использовании «голого» zsh или был обвес со всем подряд типа oh-my-zsh? С oh-my-zsh я ждал две секунды, чтобы приступить к работе… Выкинул его и больше никогда не устанавливал, сделал себе конфиг на 180 строк (с комментариями), запускается сразу даже на hdd.

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

А вот это интересно. Хоть у меня и нет в системе манов, только help.

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

Задержка была при использовании «голого» zsh или был обвес со всем подряд типа oh-my-zsh?

С обвесом в виде Prezto. Он позиционируется как легковесная альтернатива Oh-My-Zsh, которая по идее должна быть очищена от лишнего жира и работать намного шустрее. Но что-то на практике я особой легковесности не заметил. Включил плагины вроде history-substring-search, git, syntax-highlighting, autosuggestions, сменил дефолтную тему на paradox и все это стало запускаться около секунды на ссд. Можно было бы конечно отказаться от фреймворков и использовать голый zsh, но пердолиться с конфигами уже желания не было. Поставил fish на поиграться и в итоге на нем и остался.

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

fish скрипты - у fish чуть-чуть другой синтаксис, чем в bash. Более читаемый, на мой взгляд.

Я бы сказал, что он более продуманный. Разрабы fish провели работу над ошибками и исправили самые досадные недостатки POSIX shell, например когда скрипты ломаются из-за пробелов в содержимом переменных. Синтаксис местами поприятнее. Блоки кода всегда заканчиваются кейвордом end вместо наркоманских if/fi или case/esac. Переменные объявляются через единую команду set вместо разношерстного набора из declare, local, readonly и export. И так далее. Но это все еще нетипизированный скриптовый язык из 70-х. Писать на нем что-то сложнее наколенного скрипта на 50-100 строчек лучше даже не пытаться.

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

Не знаю. Точнее не помню. Да и не важно это. Важно что это неплохой шелл для интерактива.

Там недоделали нормальную с историей. И так как он был брошен, то уже не доделают.

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

#!/bin/bash, конечно.

#!/usr/bin/env bash

Пользователи BSD установят, не отвалится у них ничего, чтобы ради этого избегать удобных башизмов.

И проклянут за необходимость патчить shebang в твоём коде.

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

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

Никогда не терял историю.

Стоит история в 10000 элементов и скриптик для чистки дублей.

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

Если открыто несколько эмуляторов терминала, то последний перезапишет ~/.bash_history. Хотя может у него что-то более специфическое.

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

А как у рыбы с совместимостью? Если указано #!/bin/bash, он ведь запустит баш? А если не указано? И вообще, какие косяки могут вылезть, если настроить его дефолтным шеллом?

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

Если открыто несколько эмуляторов терминала, то последний перезапишет ~/.bash_history.

Это в настройках выставляется.

# History Settings

if [[ -n "$BASH_VERSION" ]] ; then
	export HISTFILE=~/.bash_history
	export HISTCONTROL=ignoreboth:erasedups
	export HISTIGNORE=mc:ls:l:ll:la:df:du:bc:cd:su:top:pstree:bg:fg:su
	export HISTSIZE=15000
	export HISTFILESIZE=$HISTSIZE
	# append to the history file, don't overwrite it
	shopt -s histappend
else
	export HISTFILE=~/.sh_history
	export HISTSIZE=15000
fi
wandrien ★★
()
Ответ на: комментарий от InterVi

А как у рыбы с совместимостью?

Никак, это отдельный язык. Как csh, с sh несовместим.

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

А вот так дубли убираются:

function dedup {
	awk '! x[$0]++' $@
}

function history_cleanup {
	printf "Записей в истории было: %s\n" "`history | wc -l`"
	local HISTFILE_SRC="${HISTFILE}"
	local HISTFILE_TMP="${HISTFILE}_dedup"
	if [[ -f "$HISTFILE_SRC" ]] ; then
		cp "$HISTFILE_SRC" "$HISTFILE_SRC.backup" && \
			(tac < $HISTFILE_SRC | dedup | tac > "$HISTFILE_TMP") && \
			test -s "$HISTFILE_TMP" && \
			mv "$HISTFILE_TMP" "$HISTFILE_SRC"
		history -c
		history -r
	fi
	printf "Стало: %s\n" "`history | wc -l`"
}
wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 2)
Ответ на: комментарий от a1batross

Пытаться писать шеллскрипты с оглядкой на POSIX какая-то боль.

POSIX - это единственная причина писать скрипты на шелле вообще. Если про него не думать то для скриптов лучше подходит например пхп или для некоторых питон.

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