zsh history is too short [closed]

NVaughan (the OP) has already stated the answer in an update to the question: history behaves differently in bash than it does in zsh:

In short:

  • zsh:
    • history lists only the 15 most recent history entries
    • history 1 lists all – see below.
  • bash:
    • history lists all history entries.

Sadly, passing a numerical operand to history behaves differently, too:

  • zsh:
    • history <n> shows all entries starting with <n> – therefore, history 1 shows all entries.
    • (history -<n> – note the - – shows the <n> most recent entries, so the default behavior is effectively history -15)
  • bash:
    • history <n> shows the <n> most recent entries.
    • (bash’s history doesn’t support listing from an entry number; you can use fc -l <n>, but a specific entry <n> must exist, otherwise the command fails – see below.)

Optional background info:

  • In zsh, history is effectively (not actually) an alias for fc -l: see man zshbuiltins
    • For the many history-related features, see man zshall
  • In bash, history is its own command whose syntax differs from fc -l
    • See: man bash
  • Both bash and zsh support fc -l <fromNum> [<toNum>] to list a given range of history entries:
    • bash: specific entry <fromNum> must exist.
    • zsh: command succeeds as long as least 1 entry falls in the (explicit or implied) range.
    • Thus, fc -l 1 works in zsh to return all history entries, whereas in bash it generally won’t, given that entry #1 typically no longer exists (but, as stated, you can use history without arguments to list all entries in bash).

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)