Консоль ничего не знает. В простейшем случае (если набрана одна команда без пайпов и перенаправления потоков):
Когда вы набираете строку и нажимаете Enter сначала из строки отделяется первая подстрока до пробела (или конца строки, если пробелов нет). Остаток строки будет передан выполняемой команде как аргументы.
Затем проверяется, не является ли эта подстрока внутренней командой шелла. Если да, то выполняется эта команда.
Если это не внутренняя команда и не указан полный путь к файлу, то идёт поиск файла с таким именем в каталогах, перечисленных в строке окружения PATH. Если файл найден и у пользователя есть права на его запуск, то он запускается.
Если указан полный путь (например, /usr/bin/perl), то поиск не производится, идёт только проверка на права запуска.
PS. Если речь о досовском/виндовом cmd, то он ищет файлы добавляя расширения .bat, .cmd, .exe, если расширение не указано явно. Кроме того, в нём поиск начинается с текущего каталога, а затем уже по переменной PATH.