Atribuir linha de comando ao programa

2

No meu Linux, instalei três versões do mesmo programa.

Então eu tenho QWERTY4.0, QWERTY4.1 e QWERTY4.2.

Eu uso todos eles alternativamente, mas a linha de comando padrão do qux "qwerty" me envia para a versão QWERTY4.0.

Como posso alterar a qual versão este comando deve ir? E mais geralmente, como alguém pode atribuir um comando para abrir um certo programa, se o comando não existe?

    
por Paul 12.11.2013 / 11:39

2 respostas

1

Você pode iniciar uma versão específica do programa prefixando o caminho exato para o binário, por exemplo, /path/to/qwerty4.0/qwerty , /path/to/qwerty4.1/qwerty , etc.

Você pode criar um alias e adicioná-lo à sua configuração do shell ( .bashrc se o seu shell for bash):

alias qwerty40=/path/to/qwerty4.0/qwerty
alias qwerty41=/path/to/qwerty4.1/qwerty
alias qwerty41=/path/to/qwerty4.2/qwerty
    
por 12.11.2013 / 12:01
1

Algumas dicas rápidas:

which qwerty
file $(which qwerty)

que produz o caminho absoluto do executável / symlink para o executável. O segundo comando apenas obtém o ouput (caminho) do comando which para que eu não tenha que digitá-lo. Você também pode usar o comando tipo (em vez de qual ) para descobrir o caminho absoluto. arquivo informará se é um symlink ou um script ou talvez até um executável.

O arquivo pode ser um link simbólico simples apontando para qwerty4.0. Se assim for, existe a possibilidade de ser controlado através do sistema alternativas (ou atualização-alternativas ). Você pode descobrir isso analisando a saída de update-alternatives --get-selections . Se for, você pode alterar o padrão com algo como update-alternatives --config qwerty . Ele não é controlado pelo sistema alternatives (mas é um symlink) você pode atualizar o symlink assim:

ln -s -f /path/to/qwerty4.2/qwerty /usr/local/bin/qwerty

... assumindo que which qwerty deu / usr / local / bin / qwerty .

Também pode ser um lançador, geralmente um script shell / bash. Nesse caso, você pode apenas tentar alterá-lo (editá-lo) para iniciar a versão correta. Você também pode procurar no respectivo diretório do aplicativo procurando por uma versão atualizada desse lançador e copiá-lo no local.

Se for um executável direto, você poderia simplesmente copiar um novo, mas, em caso afirmativo, eu recomendaria substituí-lo por um symlink apropriado.

Os aliases já foram mencionados. Os alias funcionam bem, mas se você precisar de uma solução para o sistema, os links simbólicos geralmente são mais rápidos. Além disso, dependendo de como os aliases de shell de todo o sistema são configurados, eles podem não funcionar em diferentes shells, etc. Os aliases locais (bash) podem ser mantidos em .bashrc ou .bash_aliases . Se você quiser aliases de todo o sistema /etc/profile.d / pode ser um bom lugar para colocá-los (deve funcionar para a maioria / todos os shells).

    
por 15.11.2013 / 21:37