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)

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

Кстати, в zsh история отдельная для каждого каталога, что очень удобно.

Кавычки забыл. Кому такое вообще в голову могло прийти.

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

В fish тоже. Точнее, история из конкретного каталога подсказывается первой, что чаще всего и нужно.

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

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

Закономерность я так и не выяснил. Если бы этого не было, то не было бы соотв. записи в ChangeLog bash (много лет назад было, точно помню), и кучи тем об этой его особенности, с хаками, которые типа это фиксят (типа в подсказке вызывать свою команду для сохранения истории, точно уже не помню).

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

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

На Линуксе лет десять (?) как zsh (без oh-my-zvercd), под виндой несколько позже открыл для себя clink, обмазав которым cmd.exe последний превращается в некое подобие первого.

В том числе

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

8-)

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

много лет назад было, точно помню

Если больше 12, то я мог те чудесные времена и не застать, я тогда еще мало им пользовался. А так за 12 лет, не натыкался на такой баг.

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

зато sh указан в скриптах, где расширенный человеко-ориентированный функционал bash не нужен, а пониженные требования dash лишними не будут, я рад что вы пользуетесь bash, а не dash

s-warus ★★★
()
Последнее исправление: s-warus (всего исправлений: 1)
Ответ на: комментарий от wandrien

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

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

Так, что если на posix не оглядываться, то лучше писать на нормальном скриптоязыке а не на шелле. Таким образом все bash fish zsh и что ещё там идут мимо. Они уже не имеют posix-совместимости, но ещё не нормальные скриптоязыки.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от wandrien
export HISTIGNORE=mc:ls:l:ll:la:df:du:bc:cd:su:top:pstree:bg:fg:su

это опция игнорит только ls или ещё ls|grep aaa заигнорит хочу себе вставить.

Тут ещё PROMPT_COMMAND='history -a' выставляют тогда наверное хистори в салат из многих терминалов превратится

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

         A  colon-separated  list of patterns used to decide which command lines should be saved on the history list.  Each pattern is anchored at the beginning of the line and must match the complete line (no implicit `*' is appended).  Each pattern is tested  against  the  line  after  the checks  specified  by HISTCONTROL are applied.  In addition to the normal shell pattern matching characters, `&' matches the previous history line.  `&' may be escaped using a backslash; the backslash is removed before attempting a match.  The second and subsequent lines of a multi-line  compound  command  are not tested, and are added to the history regardless of the value of HISTIGNORE.  The pattern matching honors the setting of the extglob shell option.
wandrien ★★
()
Ответ на: комментарий от firkax

Теперь понял. Такую точку зрения я разделяю.

Проблему несовместимых мейкфайлов и дерьмовых генераторов я в своих проектах решил аналогичным способом. :)

a1batross ★★★★★
()

Только bash, только хардкор.

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

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

Вот только #!/usr/local/bin/bash, потому оно не отвалится, оно просто не будет работать. ☺

mord0d ★★★★★
()

zsh. технически, все эти шелы +/- одинаковые. на zsh переключился несколько лет назад. причины: понравилось как он с историей работает, режим vi, куча плагинов для удобства. В остальном - ничем не лучше баша.

ergo ★★★
()

Всего голосов: 555, всего проголосовавших: 407

Добавьте: «всего процентов: 136»

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

Понятно, но всё равно как-то странно смотрится.

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

люди были другими.

Это — да... Таких больше не делают. Остальное вторично.

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

Той, которая под руку попадётся.

Вот именно такого пункта не хватает в опросе.

anc ★★★★★
()

К сожалению, bash, потому что дефолт.

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

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

Той, которая под руку попадётся.

Правильно. А то залезешь на какой нибудь раутер/плоттер/камера какой то cli есть а что это хз.

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

И этого будет недостаточно. Утилиты в Linux все модные-молодёжные, и большинство конструкций в *BSD работать не будут. ☺

mord0d ★★★★★
()

Bash. Недавно узнал как настроить историю команд зависимую от рабочей директории. Теперь вообще оболочкой доволен.

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

Bash. Недавно узнал как настроить историю команд зависимую от рабочей директории

И как это делается? Мусорить $HISTFILE-ами и абьюзить $PROMPT_COMMAND или что-то более элегантное?

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

Интересно, почему мы имеем целую гору дистрибутивов (о нужности или ненужности речи не идет), кучу DE и WM, но всего три шела (на самом деле немного больше) bash, zsh, fish ? Где наш герой, который исправит эту несправедливость? И главное, почему к этому никто не притронулся?

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

С бинарными логами и командами вроде systemctl reload history после очередного фичи глюка :D

Ладно, ладно, шучу. Лучше, конечно же, так:

sudo journalctl --list-history
sudo journalctl --show-last-command cd10a087ed164a47a7490d7c4f0503df

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

Ну везде мусорить histfile’ами я не стал, выделил директорию.

PROMPT_COMMAND тоже не стал трогать.

Вот что у меня в .bashrc сейчас. Вроде хорошо работает, но я пока тестирую:

function ch () {
    history -a
    alias cd=cd
    cd "$@"
    alias cd=ch
    mkdir -p "$HOME/.bash_history/$(pwd)"
    export HISTFILE="$HOME/.bash_history/$(pwd)/.bash_history"
    history -c
    history -r
}

alias cd=ch
unDEFER ★★★★★
()
Ответ на: комментарий от nebularia

И это хорошо! Не нужны линуксовые подходы в бздях!

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

Знаков препинания не хватило? Я ничего не понял.

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

и получился бы питон :) или джаваскрипт иль иной скриптовый язык…
пользуй спец.заточенный под нужное дело инструмент, а не натягивай ужа на ежа…

pfg ★★★★★
()
Ответ на: комментарий от unDEFER
    alias cd=cd
    cd "$@"
    alias cd=ch

Не сразу понял, что ты хочешь сделать builtin cd "$@", но не знаешь о нем.

А в целом, решение не очень красивое. Жаль.

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

За подсказку builtin спасибо.

Можно заморочиться в один файл писать и при каждом переходе всё это парсить, но по-моему так всё же лучше.

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

и получился бы питон :) или джаваскрипт иль иной скриптовый язык…

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

EXL ★★★★★
()

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

Bash и Fish, при выборе того или другого - выбираю Fish. Также хочу использовать Xiki в будущем, но это крайне маловероятно для такой непривычной мне оболочки.

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