Assumindo Bash ...
Você pode definir suas próprias regras de autocompletar para opções / argumentos usando complete . Você pode definir os nomes dos arquivos que são ignorados nos argumentos, exportando a variável $FIGNORE .
No entanto, não acho que você possa alterar a maneira como o Bash resolve os nomes dos programas.
Você poderia, é claro, alias do programa que deseja executar, para não precisar digitar muito:
[me@host ~]$ alias on=oneprog
[me@host ~]$ on
Você poderia (se você estivesse se sentindo bobo) alias o Bash embutido, command e usar complete para definir os argumentos que aceitaria (sua lista de bons programas), e então sempre lembre-se de digitar seu alias antes do comando real.
[me@host ~]$ alias run=command
[me@host ~]$ complete -W "ls cd" run
[me@host ~]$ run ls
Veja também Como o preenchimento automático ignora uma conclusão específica .