В графике (в меню приложений) есть терминал - запустил и ты почти в полном аналоге tty.
Кроме того в графике есть команда run в которую можно передать вполне нормальную CLI команду. Это по сути аналог виртуального терминала, но на одну команду. Собственно этой командой можно и просто bash вызвать.
Кроме того в графике можно написать скрипт (в домашнем каталоге), дать ему права на исполнение (хозяин-барин: сам создал - сам с ним делай что хочешь) и запустить двойным кликом.
Еще виртуальный терминал (если его убрать из меню) можно открыть из шортката программы в /usr/share/applications.
...
Т.е. если задача не давать пользователю (который ходит в GUI) доступ к шелл-интерпретатору, то это задача не так проста как кажется. Любой пользователь что вхож в графику может найти лазейку и запустить шелл, интерпритатор питона (по сути тоже шелл) и кучу еще чего другого. Если пусти в графику, то считайте что уже пустили всюду.
Другое дело что пользователю можно попытаться обрезать прва на запуск только (допустим) интернет-браузера или какой-то специальной программы. И именно эту программу прописать вместо графической оболочки для пользователя. Но даже в таком решении (обычно такое называют "киоск") есть лазейки (зависит от GUI окружения).