There’s another possibility here.
If the OP pressed ctrl+s at any point whilst the terminal was open and in-focus, the terminal will stop responding to input from the keyboard and will stop showing output from any programs that might be running in that terminal. Any program output, or key-presses are buffered until the terminal resumes again.
To get it to resume, you can simply press ctrl+q and then it will process all keyboard events that happened whilst the terminal was stopped, or will resume displaying output from running commands.
The reason for these stop/start shortcuts is mostly historic. Back in the day, most terminals didn’t have any kind of scroll-back, or paging mechanisms. So if a program produced a lot of output to the screen, the user could hit ctrl+s to stop the terminal, in order to read the output, before resuming it again, to let the program continue.
It’s easy to accidentally stop the terminal with ctrl+s. The most common scenario is that you go to press ctrl+d to exit the terminal, but accidentally hit ctrl+s and end up stopping the terminal.
Another, less common scenario is when you have multiple windows open. It’s easy to forget which application is in focus sometimes. So if you’ve got multiple windows open and you’re constantly switching back and forth and one of them is a terminal. You might decide to press ctrl+s to quickly save a document in one of the other application windows. But if you forgot to switch to that other application first and your terminal window currently has focus, you’ll end up stopping the terminal.
This has only happened to me literally once or twice in all the years I’ve been using Linux!
In any case, pressing ctrl+q will resume the terminal.
So if the terminal appears to freeze and doesn’t respond to keyboard events, my first port of call is ctrl+q, in case a ctrl+s was accidentally sent to the terminal!
If the OP pressed ctrl+s at any point whilst the terminal was open and in-focus, the terminal will stop responding to input from the keyboard and will stop showing output from any programs that might be running in that terminal. Any program output, or key-presses are buffered until the terminal resumes again.
To get it to resume, you can simply press ctrl+q and then it will process all keyboard events that happened whilst the terminal was stopped, or will resume displaying output from running commands.
The reason for these stop/start shortcuts is mostly historic. Back in the day, most terminals didn’t have any kind of scroll-back, or paging mechanisms. So if a program produced a lot of output to the screen, the user could hit ctrl+s to stop the terminal, in order to read the output, before resuming it again, to let the program continue.
It’s easy to accidentally stop the terminal with ctrl+s. The most common scenario is that you go to press ctrl+d to exit the terminal, but accidentally hit ctrl+s and end up stopping the terminal.
Another, less common scenario is when you have multiple windows open. It’s easy to forget which application is in focus sometimes. So if you’ve got multiple windows open and you’re constantly switching back and forth and one of them is a terminal. You might decide to press ctrl+s to quickly save a document in one of the other application windows. But if you forgot to switch to that other application first and your terminal window currently has focus, you’ll end up stopping the terminal.
This has only happened to me literally once or twice in all the years I’ve been using Linux!
In any case, pressing ctrl+q will resume the terminal.
So if the terminal appears to freeze and doesn’t respond to keyboard events, my first port of call is ctrl+q, in case a ctrl+s was accidentally sent to the terminal!
Last edited: