Tornar um script executável

3

Estou tentando executar um programa (Usearch ou samtools) apenas digitando o nome do programa (por exemplo, usearch [options]) de qualquer lugar. Estou executando o Ubuntu.

As instruções dizem para "adicionar o binário ao seu caminho para disponibilizá-lo na linha de comando" Mas eu não sei o que isso significa ou como fazê-lo. Uma pesquisa on-line trouxe à tona coisas que estavam muito além da minha cabeça.

Alguém poderia me dar um simples passo a passo sobre como fazer isso?

    
por Gaius Augustus 22.07.2015 / 01:03

2 respostas

7

"add the binary to your path to make it available on the command line"

No unix, o PATH é a variável de ambiente que define onde o shell procura por programas executáveis para executar quando você inseri-los na linha de comando. Se você fizer um:

echo $PATH

Você pode ver como é o seu PATH . Todos os diretórios no PATH são pesquisados (em ordem) quando você digita um comando (como ls ). Por exemplo, meu $ PATH é:

.:/usr/local/bin:/usr/bin:/bin

Quando eu digito ls , o shell irá procurar por um executável em . (o diretório atual) e então todos os outros diretórios até encontrá-lo, provavelmente em /bin/ls .

Você precisará certificar-se de que seu script é executável ( chmod +x myscript ) e, em seguida, ele precisa estar em um dos diretórios na variável PATH .

Considera-se uma prática um pouco ruim instalar scripts e programas locais nos diretórios bin do sistema. Normalmente, coloco algo como o seguinte no arquivo de configuração de inicialização do meu shell, que é .profile , mas poderia ser .bashrc ou .zshrc dependendo do shell:

export PATH=$HOME/bin:$PATH

Isso adicionará ao caminho um diretório bin pessoal em seu diretório pessoal onde você pode colocar seus próprios scripts. Depois de alterar o arquivo de configuração do shell, você precisará fazer o login novamente para ler o arquivo de configuração.

Se você deseja instalar seu script para todos os usuários do sistema, o melhor local para o seu script é /usr/local/bin . Você deve se certificar de que /usr/local/bin esteja em seu caminho usando o mecanismo acima.

Então você precisa:

  1. Torne seu programa executável ( chmod +x my-program )
  2. Talvez adicione seu próprio diretório bin local ou /usr/local/bin ao seu .profile .
  3. Instale-o em um diretório no seu ambiente PATH .
por 22.07.2015 / 01:10
2

Você precisará adicionar o diretório bin à sua variável PATH.

Se você digitar "echo $ PATH" no seu terminal, ele exibirá uma string de caminhos. Agora você precisa saber onde está a instalação dos programas e assegurar que seu PATH contenha o diretório bin apropriado. Tente executar "PATH = $ PATH: / Path-to-bin /" no seu terminal e agora você poderá executar o programa desejado simplesmente digitando Usearch, por exemplo.

Isso pode ficar irritante adicionando o diretório bin ao seu PATH para cada janela de terminal, por sorte .bashrc (localizado em ~ /) é executado ao longo do tempo você abre um novo terminal. Assim, você pode adicionar sua linha "PATH = $ PATH: //" ao seu .bashrc, usando seu programa de edição favorito (por exemplo, "vim ~ / .bashrc").

O .bashrc é um arquivo oculto. Então digitar "ls" não irá listar o .bashrc, tente "ls -la" para ver que o .bashrc é o seu diretório home.

Espero que isso ajude, deixe-me saber se você tem perguntas mais específicas.

Boa sorte!

    
por 22.07.2015 / 01:20

Tags