I constantly need to close and re-open programs. To do this I press Control+C > Up Arrow > Enter. However, I have more than one program and need to run different commands for these programs. If I run another command in a new terminal the history changes for the original terminal and the up arrow is no longer the last command. I'm forever accidentally running random commands in the terminal.

I have tried Control+R to search history and !! but I do this too frequently and they are too slow.

The ideal situation would be that history for a terminal did not change once the terminal was opened. Even better if that can be done only for arrow keys.

The closest I have gotten is a delay on updating the history.

Any suggestions would be greatly appreciated.

  • 1
    Have a look at terminal multiplexers (tmux, GNU Screen) so that you can dedicate a terminal to this program you launch/stop/restart repeatedly. Run your other commands in other terminal windows to keep your history clean.
    – Httqm
    Dec 4, 2020 at 10:20
  • 1
    Could you just make yourself some 1-character aliases? alias 1='my program with some arguments' Dec 4, 2020 at 13:21
  • Thanks for all the great feedback. @KamilMaciorowski I thought I tried this in bash however it appears I am mistaken. I would consider these all viable answers. This is going to save me so much time!
    – Luke
    Dec 5, 2020 at 10:03

1 Answer 1


There was a comment that was deleted that explained that Bash did not exhibit the same behavior. That great comment helped me find How to make oh-my-zsh history behavior similar to Bash's?.

I updated ~/.profile with:

bindkey "$terminfo[kcuu1]" up-line-or-history
bindkey "$terminfo[kcud1]" down-line-or-history

Which has solved the problem.

  • Can you accept your answer, please, so your question doesn't stay open? Dec 6, 2020 at 21:08

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .