O que são “$ PATH” e “~ / bin”? Como posso ter scripts pessoais?

29

O que é $PATH ?

Como posso ter comandos / programas que estão disponíveis apenas para mim?
Eu já vi esse caminho ~/bin mencionado antes, mas para que é usado e como usá-lo?

    
por Braiam 28.10.2010 / 00:58

2 respostas

25

$ PATH é uma variável de ambiente usada para procurar comandos. O ~ é o seu diretório inicial, então ~ / bin será / home / user / bin; é um diretório normal.

Quando você executa "ls" em um shell, por exemplo, você realmente executa o programa / bin / ls; a localização exata pode variar dependendo da configuração do seu sistema. Isso acontece porque / bin está em seu $ PATH.

Para ver o caminho e descobrir onde um comando específico está localizado:

$ echo $PATH
/home/user/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...
$ which ls     # searches $PATH for an executable named "ls"
/bin/ls
$ ls           # runs /bin/ls
bin  desktop  documents  downloads  examples.desktop  music  pictures  ...
$ /bin/ls      # can also run directly
bin  desktop  documents  downloads  examples.desktop  music  pictures  ...

Para ter seu próprio diretório bin particular, você só precisa adicioná-lo ao caminho. Faça isso editando ~ / .profile (um arquivo oculto) para incluir as linhas abaixo. Se as linhas forem comentadas, você só terá que descomentá-las; se eles já estão lá, está tudo pronto!

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ]; then
  PATH="$HOME/bin:$PATH"
fi

Agora você precisa criar seu diretório ~ / bin e, porque o .profile é executado no login e só adiciona ~ / bin se ele existir naquele momento, você precisa fazer o login novamente para ver o PATH atualizado.

Vamos testar:

$ ln -s $(which ls) ~/bin/my-ls   # symlink
$ which my-ls
/home/user/bin/my-ls
$ my-ls -l ~/bin/my-ls
lrwxrwxrwx 1 user user 7 2010-10-27 18:56 my-ls -> /bin/ls
$ my-ls          # lookup through $PATH
bin  desktop  documents  downloads  examples.desktop  music  pictures  ...
$ ~/bin/my-ls    # doesn't use $PATH to lookup
bin  desktop  documents  downloads  examples.desktop  music  pictures  ...
    
por Roger Pate 28.10.2010 / 00:58
17

Em relação a ~/bin e comandos / programas disponíveis apenas para o seu usuário

As versões recentes do Ubuntu incluem o diretório ~/bin no seu $PATH , mas somente se o diretório ~/bin existir.

Se não existir:

  1. Assegure-se de que seu ~/.profile contenha a seguinte sub-rotina (o padrão ~/.profile já possui):

    # set PATH so it includes user's private bin if it exists
    if [ -d "$HOME/bin" ] ; then
        PATH="$HOME/bin:$PATH"
    fi
    
  2. Crie o diretório ~/bin :

    mkdir -p ~/bin
    
  3. Reinicie seu computador ou force o bash a reler ~/.profile :

    exec -l bash
    
por Danilo Piazzalunga 25.01.2013 / 12:09