Em um comando shell como
PATH=~/bin:/opt/texbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
o til é expandido para o seu diretório pessoal quando o comando shell é executado. Assim, o valor resultante de PATH é algo como
/home/theconjuring/bin:/opt/texbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games .
Certifique-se de que o til não esteja entre aspas ( ), caso contrário, ele significa. Para preceder um diretório ao valor atual de PATH="~/bin:…" PATH , você pode usar
PATH=~/bin:$PATH
Em geral, em shells que não sejam zsh, $PATH fora de aspas duplas quebra quando o valor contém espaços ou outros caracteres especiais , mas em uma atribuição, é seguro. Com export , no entanto, você precisa escrever export PATH=~/bin:"$PATH" (embora você não precise de export com PATH , pois ele já está no ambiente). Em zsh, você não precisa de aspas duplas, exceto quando a variável pode estar vazia, mas se você definir PATH em .profile , ela será processada por /bin/sh ou /bin/bash .
Se você estiver definindo PATH em ~/.pam_environment , no entanto, não será possível usar ~ ou $HOME para representar seu diretório pessoal. Este arquivo não é analisado por um shell, é uma lista simples de NAME=value lines. Então você precisa escrever os caminhos completos.