O que fazer quando o .profile não existe para editar o PATH?

4

Eu quero editar minha variável de ambiente $PATH . De acordo com vários tutoriais e outras fontes (por exemplo, Q & A ), a maneira mais comum é editar ~/.profile . No entanto, para mim, esse arquivo não existe. O que eu posso fazer? (Existem nomes diferentes em alguns sistemas? Devo criá-lo? O que precisa ir lá? Existem outras maneiras?)

Eu sou um usuário em um cluster de rede, obviamente não quero editar nenhuma variável de ambiente global. Eu editei ~/.bashrc antes para alterar algumas coisas para meu usuário, e existem vários ~/. -files, mas não ~/.profile .

Eu estou no Ubuntu 16.04.2 LTS Codename: Xenial. echo $PATH me fornece apenas alguns bin-diretórios globais, mas depois de instalar alguns escaninhos específicos do usuário (para /path/to/home~/expanded/.local/bin/ ) eu só quero adicionar isso ao PATH.

    
por Honeybear 09.10.2017 / 12:04

1 resposta

7

Se você tiver um arquivo ~/.bash_profile , edite-o (já que parece estar usando bash (já que você está no Linux e já mencionou que há um arquivo ~/.bashrc presente que você editou) antes)). O shell bash tentará apenas ler ~/.profile se ~/.bash_profile não existir. Se nenhum arquivo existir, você poderá criar ~/.bash_profile .

A linha que você provavelmente deseja adicionar é

PATH="$HOME/.local/bin:$PATH"

ou

PATH="$PATH:$HOME/.local/bin"

dependendo se você deseja / precisa que o diretório adicionado seja pesquisado primeiro ou por último.

Não há necessidade de export , pois a variável PATH já foi exportada.

$HOME é o mesmo que ~ , mas é mais expressivo em scripts de shell. Ele também se comporta como uma variável adequada, enquanto ~ não. Veja por exemplo Por que o til (~) não expande as aspas duplas internas?

Observe também que os caminhos são delimitados com barra ( / ) no Unix, não com barras invertidas ( \ ), portanto você deseja ~/.bash_profile e não ~\.bash_profile .

A maioria das conchas sh -like (das quais bash é uma) lê .profile no diretório pessoal do usuário quando iniciado como um shell de login. É por isso que a resposta que você vinculou menciona .profile em vez de .bash_profile ; o shell específico usado não foi mencionado na pergunta.

Alguns shells, como bash , irão ignorá-lo se o seu próprio arquivo de inicialização especial estiver presente.

    
por 09.10.2017 / 12:06