Como você adiciona um script bash à sua variável PATH usando links simbólicos?

3

Eu corro um servidor de jogos chamado PocketMine. Então, basicamente eu tenho uma pasta no meu diretório inicial que tem um script bash para executar o servidor: ~/PocketMine/start.sh

Sempre que quero executar o servidor, eu cd na pasta e ./start.sh ou PocketMine/./start.sh

Eu quero saber como eu adiciono um link simbólico chamado pocketmine em /usr/local/sbin (um monte de progs com links simbólicos aqui) que executará start.sh e usará o conteúdo de seu diretório.

/usr/local/sbin/pocketmine = ~/PocketMine/./start.sh

Chame-me de preguiçoso, mas estou cansado de digitar na pasta e executar o script, em vez de simplesmente digitar um comando.

    
por Anonymous 14.06.2015 / 19:44

2 respostas

5

Na verdade, você não precisa de nenhum link simbólico, apenas edite seu ~/.bashrc e adicione a seguinte declaração:

PATH=$PATH:$HOME/PocketMine

Isto evita poluir o seu sistema de arquivos com desordem desnecessária como links simbólicos. Se você é um usuário csh / tcsh em vez de um usuário bash, edite ~/.cshrc e adicione

set path = ( $path ~/PocketMine )

Pessoalmente, eu iria um passo adiante na organização. Eu criaria um diretório ~/bin e colocaria seu script de início lá, talvez com um nome mais distinto como pmstart (não é significativo que seja um script de shell, é? Talvez algum dia você queira reimplementá-lo em% python ou algo assim. .sh é suficiente em executáveis geralmente são uma má idéia porque você está expondo e codificando um detalhe de implementação (a linguagem de implementação) que os usuários finais não se importam, e no processo detalhes de implementação desnecessariamente).

É provável que o seu $ PATH já inclua $ HOME / bin, mas se não, você pode adicioná-lo da mesma forma.

Por fim, há convenções / práticas recomendadas de histórico sobre o que acontece com os diretórios sbin e o que acontece com os diretórios bin . sbin é geralmente reservado para ferramentas para administradores, enquanto bin é para utilitários gerais para usuários finais.

    
por 14.06.2015 / 20:31
0

Se você quiser apenas uma maneira mais curta de executar ~/PocketMine/start.sh , pode criar um alias para ele. Adicione a seguinte linha em ~/.bashrc e chame pm para executar esse script:

alias pm=~/PocketMine/start.sh

Se você precisar mudar primeiro para o diretório do script, defina como uma função:

function pm (
  cd ~/PocketMine && exec ./start.sh "$@"
)

Se você quiser chamar esse atalho de outro script e não apenas de um shell interativo, crie um atalho para o atalho que você colocou em qualquer um dos diretórios em $PATH . O script precisa ser um arquivo executável (por exemplo, chmod a+rx ~/bin/pm ) e contém

#!/bin/sh
cd ~/PocketMine && exec ./start.sh "$@"
    
por 15.06.2015 / 02:30