De acordo com o documento de padrões de shell , a expansão de til deve ocorrer quando uma variável de shell é atribuída se o til estiver no início de uma palavra ou se seguir um cólon sem aspas.
Portanto, é um pouco incomum para um til bruto acabar no meio da sua variável PATH :
/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/local/bin:/usr/games:~/bin
Mas está lá, e o shell não vai expandi-lo para ser seu diretório pessoal quando procurar PATH para encontrar um executável.
A correção mais fácil é alterar ~ para $HOME em qualquer conjunto de arquivos init PATH . Eu suponho que há algumas aspas duplas nessa declaração que estão impedindo que ~ seja expandido.