linux + executa algum script sem “./” + alias

5

Eu tenho uma máquina Linux e tenho um script chamado load_info e o script está localizado em / var

Eu gostaria de poder executar o script load_info de outro diretório sem ter que prefixar o comando com "./"

Por exemplo, se eu estava em / root, quero poder digitar load_info (sem ./) e fazer com que ele execute o script /var/load_info .

Então, como faço para que, se eu cd /root , eu possa digitar load_info e executar o script / var / load_info.

    
por Diana 31.10.2011 / 13:22

4 respostas

24

Seu shell pesquisará os caminhos listados na variável de ambiente $PATH para o comando digitado, se não estiver totalmente qualificado (por exemplo, vi em vez de /usr/bin/vi ). Você pode adicionar facilmente outro caminho à variável $PATH adicionando uma linha em ~/.profile ou ~/.bashrc :

export PATH="$PATH:/path/to/your/scripts"

Como prática recomendada, você também deve salvar seu script em /usr/local/bin ou /usr/local/sbin , consulte hier(7) .

    
por 31.10.2011 / 13:31
6

Você precisa ter a localização do script em uma variável de ambiente chamada PATH .

Variáveis de ambiente são como variáveis normais que você usaria no seu shell, exceto que elas são persistentes durante a sessão de login. Além disso, se você configurá-los para serem carregados em seu ambiente sempre que você fizer login, eles sempre serão definidos e estarão disponíveis o tempo todo.

A variável PATH ajuda o shell a encontrar os comandos que você digita. Seu valor é uma lista de diretórios que o shell pesquisa toda vez que você insere um comando. Os nomes dos diretórios são separados por dois pontos.

Se você estiver usando o shell bash (o shell mais comum usado no Linux), então você pode ver quais diretórios estão na variável PATH digitando echo $PATH no prompt de comando.

Digamos que o script load_info esteja em um diretório chamado /var . Você pode adicionar este diretório adicional à variável PATH digitando:

PATH=$PATH:"/var"

Para tornar isso uma alteração permanente na variável PATH , você pode adicionar isso a três arquivos diferentes, dependendo do efeito que você deseja.

  • Se você adicioná-lo ao arquivo /etc/profile , disponibilizará o diretório para todos os usuários que fizerem login no sistema.

  • Você pode adicionar a modificação do PATH ao seu próprio arquivo .bash_profile em seu diretório pessoal, e isso só se aplicará a você quando você fizer o login.

  • Você também pode adicionar a modificação PATH ao arquivo .bashrc em seu diretório pessoal, o que teria um efeito semelhante ao adicioná-lo a .bash_profile , exceto que o arquivo .bashrc é carregado toda vez você lança um novo shell.

Também vale a pena mencionar que /var provavelmente não é o melhor lugar para um script. /usr/local/bin seria melhor. Confira a página do manual heir (7) com man 7 heir para mais informações sobre quais arquivos devem ir aonde.

    
por 31.10.2011 / 13:43
2

Existem algumas maneiras de fazer isso: (executando como root)

  1. Crie um link simbólico para o /usr/bin

    # ln -s /var/load_info /usr/bin/load_info
    
  2. Adicione-o à variável de ambiente global PATH :

    # echo "export PATH=$PATH:/var" >> /etc/profile
    
por 31.10.2011 / 13:48
0

No OS X (construído no Unix) você pode fazer assim:

  1. pico .profile

  2. Adicione esta linha: -alias scriptname="~ / caminho-para-script /./ scriptname" - Saia do pico e salve.

  3. .profile

Como visto aqui: link

    
por 31.10.2011 / 17:22

Tags