Recently I needed to repeat a series of long~ish commands in the command line but I never quite memorized them so I ended up resourcing to arrow-up-arrow-up-arrow-up </ad nauseum> until I found the command I was looking for.
But there is a better and super simple way:
history in the command line will list all the recent typed commands (I’m not sure how far it goes…) so you don’t need to remember anything. Now the problem is when you have a very long output. You end up scrolling-scrolling-scrolling </ad infinitum>…
In this case you can use
| grep (pipe (|), the thing on the same key as the \\ in your keyboard) to limit the results. For example: I remember that the command I want has the word ‘prune’ in it but I can’t remember the exact command, so I run:
history | grep prune
and I will get only a list of commands that contain the word ‘prune’.
Now that I have the full command I can also save some typing. See that the history output has a number before the list of commands?
6050 docker ps
6051 docker images
6052 docker rmi c51
6053 docker ps -a
6054 docker image ls
6055 docker volume prune -f
6056 docker system prune -a
6057 docker images
6058 docker ps
Well, if you type !command-number, that command will be executed. From my list above, if I type
docker volume prune -f will run again.
It took me a while to starting using these shortcuts. I didn’t see how searching for a command and calling its shortcut was useful until my history got super long and I started using some commands so rarely that it was hard to recall them from memory.
The post Check which commands you typed in the command line and don’t repeat yourself! was originally published at flaviabastos.ca