I'm trying to get a handle on how to effectively cycle through my previous commands using Ctrl+R. For instance, if I search for a command that includes 'foo', and I have multiple versions of that command, how do I scroll through them reliably? I also noticed that when I press Ctrl+R again, it seems to start from a different point in my history. How can I become a terminal pro and achieve smooth keyboard navigation while doing this?
2 Answers
The behavior you're experiencing is due to the readline library that your shell uses. When you press Ctrl+R, you initiate a backward search in your command history for a specific string. If you hit Ctrl+R again, it fetches an earlier instance of what you've searched for. To go forward in the search, the default command is Ctrl+S, but beware that in most terminals, Ctrl+S might pause the terminal. You can find more shortcuts and details in the readline man page.
When you hit Ctrl+R, it starts the search from the most recent command. You can keep pressing Ctrl+R after typing to go further back. For going forward, you can use Ctrl+S, but if your terminal stops working instead, you might want to remap it to something like Ctrl+F. Alternatively, you can use the 'history' command to see a list of your previous commands or the history expansion feature in bash using '!' with the command string to quickly access your commands.

Related Questions
How To Get Your Domain Unblocked From Facebook
How To Find A String In a Directory of Files Using Linux