Это сложно, и в общем случае, невозможно. Так нельзя перехватить в терминале нажатия Ctrl+Shift. Все потому, что "консоль" в Линуксе - это эмулятор реальных терминалов, которые в 60-70-80-90-х годах подключались к большим многопользовательским машинам - и которые могли передавать ограниченное количество символов (в 80-х ASCII стал стандартным набором - и в нем только 127 символов).
Для нажатия стрелки, к примеру передается несколько символов - в эмуляторе xterm нажатие клавишы стрелка влево кодируется тремя символами 0x1b, [ и D. В виртуальной консоли (куда попадаешь при нажатии Ctrl+Alt+F1) они могут кодироваться по другому (стрелки совпадают, а вот клавиша Home - нет).
Для работы с терминалом (клавишами, курсором) в Линуксе используется библиотека ncurses. Надо (если надо) копать в ту сторону.