Ответ 1
OP уже ответила в обновлении вопроса: history
ведет себя по-разному в bash
, чем в zsh
:
Короче:
- ЗШ:
-
history
перечислены только записи 15 последних записей -
history 1
перечислены все - см. ниже.
-
- bash:
-
history
перечислены записи all.
-
К сожалению, передача числового операнда в history
ведет себя по-другому:
- ЗШ:
-
history <n>
показывает все записи , начиная с<n>
, поэтомуhistory 1
показывает все записи. - (
history -<n>
- обратите внимание на-
- показывает самые последние записи<n>
, поэтому поведение по умолчанию эффективноhistory -15
)
-
- bash:
-
history <n>
показывает<n>
последние записи. - (bash
history
не поддерживает список из номера записи, вы можете использоватьfc -l <n>
, но должна существовать конкретная запись<n>
, иначе команда не будет выполнена).
-
Дополнительная справочная информация:
- В zsh
history
фактически (не на самом деле) псевдоним дляfc -l
: см.man zshbuiltins
- Для многих связанных с историей функций см.
man zshall
- Для многих связанных с историей функций см.
- В bash
history
есть собственная команда, синтаксис которой отличается отfc -l
- Смотрите:
man bash
- Смотрите:
- Оба bash и zsh поддерживают
fc -l <fromNum> [<toNum>]
, чтобы перечислить заданный диапазон записей истории:- bash: должна существовать конкретная запись
<fromNum>
. - Команда zsh: успешно выполняется до тех пор, пока в явном или подразумеваемом диапазоне попадает менее 1 записи.
- Таким образом,
fc -l 1
работает в zsh для возврата всех записей истории, тогда как в bash обычно этого не будет, поскольку запись # 1 обычно больше не существует (но, как указано, вы можете использоватьhistory
без аргументы для перечисления всех записей в bash).
- bash: должна существовать конкретная запись