Terminal programs have a lot of hidden rules and conventions (like some programs don't quit when you press Ctrl+C!), and knowing them makes your life WAY easier. Here are some of the questions I ask myself when starting a program! is it a REPL? -> is it using canonical mode? (arrow keys don't work when entering text, try rlwrap) am I actually in another program it started? (A pager like less or a text editor like vim) is it noninteractive? -> is it stuck because it's waiting for input on stdin and I forgot to pipe to it? is it a shell? -> is this a minimal shell like dash? (if so, can I use bash instead?) is it full screen? -> mouse reporting: is it on? -> (selecting text doesn't work, but you might be able to click to navigate) am I in some kind of special environment? -> (a server? tmux/screen? a container? a virtualenv? what environment variables are set?)
https://cdn.masto.host/socialjvnsca/media_attachments/files/114/428/669/171/247/716/original/cd955d7422889059.png