Если вы просто хотите делать вещи низкого уровня, вы, вероятно, захотите использовать библиотеку termcap или terminfo .
Если вы хотите сделать это так, как это делают nano и практически все другие приложения с интерактивным терминалом, вы, вероятно, захотите использовать ncurses. Таким образом, вы будете тратить меньше времени на реализацию логики управления терминалом и больше времени на собственное приложение, которое вы разрабатываете.