Adicionei um caminho de diretório ao caminho do sistema ( $PATH
) executando,
export PATH=$PATH:/home/avinash/Desktop/raj
Agora meu caminho fica assim,
$ echo $ PATH / usr / lib / lightdm / lightdm: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / jogos: / usr / local / games : / página inicial / avinash / Desktop / raj
Quero remover /home/avinash/Desktop/raj
da variável de caminho do sistema usando o comando ( como o comando de exportação faz ao adicionar o caminho ).
command-line
Avinash Raj
fonte
fonte
Respostas:
A execução
export PATH=$PATH:/...
não define oPATH
sistema inteiro. É apenas uma variável de shell. Inicie um novo shell e o BOOM se foi. Obviamente, se você adicionou isso a~/.bashrc
(ou outro arquivo de inicialização do ambiente), será necessário reverter essa alteração, mas não parece o seu problema aqui.Se você está desesperado para não iniciar um novo shell, você pode configurá-lo removendo-o manualmente, com:
fonte
No seu shell atual (sua sessão atual do gnome-terminal), você pode fazer isso usando:
Em geral:
exclui a correspondência mais curta de
$substring
de trás de$string
.Confira Manipulação de String para mais informações.
fonte
Se você quiser usá-lo como um comando, aqui está um pequeno script:
Nomeie-o
unexport
e adicione-o ao seu PATH.Uso:
unexport /usr/local/bin /bin /sbin
Este script não altera o seu realmente
PATH
. Se você deseja que o script faça isso, altere a última linha. Substituaecho "export PATH=$PATH"
porexport PATH=$PATH
fonte
Se você colocar a
export
instrução em qualquer arquivo de iniciação do shell~/.bashrc
, poderá usar os seguintes comandos no terminal,Isso removerá a pasta do caminho.
Se você exportou o caminho de um terminal
A pasta estará no caminho enquanto você estiver nesse shell. Para substituir o caminho, você deve atribuir um novo caminho. Como oli já mencionado na outra resposta.
Você pode usar o seguinte comando para definir o caminho antigo
Ou simplesmente
Esta é a substituição de substring,
fonte
Um truque sujo é
tr
grep -v
epaste
.isso provavelmente não funcionará bem se algum diretório do PATH tiver
:
ou uma nova linhase você se encontra fazendo muito isso, considere torná-lo uma função e salvando em seu perfil de shell (por exemplo
.bashrc
,.zshrc
)fonte
export PATH=$PATH:/home/avinash/Desktop/raj
(Aqui você adicionou o arquivo à variável de caminho.)echo $PATH
Se você executar este comando, esta é a saída:
Como você o remove do caminho? apenas execute
É um conceito de substituição de string.
fonte
O comando interno do shell
export
Não determina se uma variável está ou não definida, determina se a variável e seu valor também estão definidos nos subprocessos.Alterar uma variável, exportada ou não, não afeta o processo pai ou acima, portanto, alterá-la em um script não tem efeito, a menos que esse script seja executado
source
.Uma função shell:
cortará o último componente da variável PATH. Seu
export
status não é afetado.fonte
declare -x PATH = "/ desejado / caminho / você_quente" se não me engano, ele próprio atualizará o que você deseja e é completamente a seu pedido o que será. [Certifique-se de executar como root E como o usuário desejado para o qual você deseja que essa alteração seja afetada.] Para ter certeza, execute o ENV posteriormente para garantir que o $ PATH foi efetivamente alterado conforme desejado. (Isso é útil para alterar qualquer saída que você obterá quando executar '/ usr / bin / env'. Embora eu não saiba se é permanente ou não. A esse respeito, faça o que foi dito acima e altere ~ / .bashrc para grudar)
fonte