Use pkill :
alias killguake='pkill guake'
Isso é muito mais seguro do que tentar analisar a tabela de processos gerada por ps .
Tendo dito isso, explicarei agora porque seu alias não faz o que você quer, mas, na verdade, use pkill .
Seu alias
alias killguake="kill -9 $(ps aux | grep guake | head -n -1 | awk '{print $2}')"
tem aspas duplas. Isso significa que quando o shell analisa essa linha no seu script de inicialização do shell, ele executará substituições de comando ( $( ... ) ). Portanto, cada vez que o arquivo for executado, em vez de fornecer um alias para matar guake posteriormente, ele fornecerá um alias para eliminar o processo guake em execução agora .
Se você listar seus aliases (com alias ), verá que esse alias é parecido com
killguake='kill -9 91273'
ou possivelmente apenas
killquake='kill -9'
se guake não estava sendo executado no momento da inicialização do shell.
Para consertar isso (mas realmente, use apenas pkill ) você precisa usar aspas simples e escapar do $ no script Awk (que agora está entre aspas):
alias killguake='kill -9 $(ps aux | grep guake | head -n -1 | awk "{print \}")'
Um dos problemas com esta abordagem em geral é que você irá combinar os processos pertencentes a outros usuários. Outra é que você encontrará apenas o comando grep guake em vez do processo pretendido. Outra é que ele lançará um erro se nenhum processo for encontrado. Outra é que você está invocando cinco utilitários externos para fazer o trabalho de um.