As distribuições Linux mantêm um arquivo de lançamento no diretório / etc. Infelizmente, não é o mesmo para todas as distros, então o mais simples é executar
ls -d /etc/* | grep release
No meu sistema Arch Linux, por exemplo, isso produz a seguinte saída:
# ls -d /etc/* | grep release
/etc/arch-release
/etc/os-release
o arquivo arch-releade está vazio, mas o os-release tem as informações relevantes. No Kubuntu, insted,
# ls -d /etc/* | grep release
/etc/lsb-release
/etc/os-release
abd here lsb-release tem a informação relevante. Outra possibilidade é correr
ls -d /etc/* | grep version
que carregaria informações equivalentes se um arquivo release estiver faltando.
EDITAR:
acabou de perceber que a mesma informação pode ser obtida de forma mais concisa com
cat /etc/*{release,version}