Outros já explicaram o que .e o que ..significa (diretório atual e diretório pai, respectivamente). Isso se aplica a todos os nomes de caminho.
Quando você abre um terminal, geralmente inicia no diretório inicial: ~(que se expande para /home/username). Os caminhos abaixo são todos equivalentes, desde que o diretório de trabalho atual seja /home/username:
/home/username
.
../username
../../home/username
../../../home/username(o diretório pai de /ainda está /)
./././././. (o diretório atual no diretório atual no ...)
./ (barras finais são permitidas para diretórios)
/home////username/// (e também várias barras)
Você não confundir ./programcom . program. ./programexecuta um arquivo no diretório atual com o bit de execução definido. . ./programé uma coisa do bash e, alternativamente, pode ser escrito, pois source ./programlê os comandos do programarquivo no diretório atual e os executa no shell atual.
Se você se pergunta por que simplesmente pode executar em geditvez de /usr/bin/gedite não em programvez de ./programou /home/username/program, consulte a pergunta relacionada: