Como você está executando um executável no diretório de trabalho atual, você deve prefixar com ./ . Então, para o seu programa, execute-o como ./a.out .
Explicação
O terminal procura por executáveis em $PATH . Esta é uma variável de ambiente que lista os diretórios que contêm binários do sistema (como ls , echo ou gcc ). Se você chamar um executável que não seja em um diretório $PATH (como a.out ), será necessário indicar seu caminho absoluto no sistema de arquivos.
No terminal . é um sinônimo para o diretório de trabalho atual, portanto, ./a.out . Você poderia igualmente chamar /home/yihang/Documents/a.out .