Como adicionar shell script ao meu sistema linux [duplicado]

8

Eu tenho um shell script para monitorar o tráfego da área local para o meu sistema. Agora eu quero instalá-lo, e quero rodar como outro comando unix

    
por ADR 27.11.2012 / 01:42

3 respostas

8

A maneira como eu resolveria isso (com meu skillz linux bastante rudimentar) é fazer um alias para o shell script.

Primeiro, certifique-se de que o script de shell seja executável.

chmod u+x,g+x script.sh

Em seguida, edite o arquivo .bashrc da seguinte forma:

cd
vi .bashrc

Adicione isso na parte inferior. (Eu acho que você também pode adicionar isso em um arquivo de alias específico, como .bash_aliases , mas eu não.)

alias commandtorun='/home/user/script.sh'

Aqui, commandtorun será o comando que você digita para executar o script e '/home/user/script.sh' é o caminho para o script.

Para salvar as alterações no seu .bashrc no editor vi, :wq , que grava no arquivo e sai.

Editar: você também precisará reutilizar seu .bashrc para usar as alterações na sessão atual. (Ou apenas reinicie a sessão / feche e reabra o terminal).

source ~/.bashrc

Boa sorte!

    
por David_G 27.11.2012 / 02:08
12

O local habitual para instalar scripts locais é /usr/local/bin ou /usr/local/sbin . Veja man hier para detalhes da estrutura de diretórios.

Esses diretórios geralmente são incluídos se os diretórios /usr/bin ou /usr/sbin correspondentes estiverem no caminho. Veja man eviron para informações sobre as variáveis de ambiente padrão, incluindo o PATH.

A hierarquia de diretórios para muitas distribuições é documentada na página man heir. Pode ser exibido com o comando man heir

/usr/local/bin é para programas que todos os usuários devem ser capazes de executar. É equivalente a /bin e /usr/bin . Normalmente, a maioria dos usuários não os terá em seu caminho.

/usr/local/sbin é para programas que são usados para administração do sistema. É equivalente a /sbin e /usr/sbin .

    
por BillThor 27.11.2012 / 02:09
3

No Ubuntu, é possível criar uma pasta bin em sua pasta pessoal e colocar seus scripts de usuário lá. De fato, seu ~/.profile conterá o seguinte:

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

Depois de criar sua pasta bin , você deve efetuar logout e fazer login novamente para que /home/$USER/bin apareça no seu caminho ao inserir echo $PATH . Quando estiver no seu caminho, você poderá chamar scripts lá por nome e executá-los como qualquer outro programa.

A pasta bin não precisa de nenhuma permissão especial, e se você quiser que seu usuário seja capaz de executar os scripts, digite chmod u+x quando torná-los executáveis.

Sua nova saída de echo $PATH quando sua pasta bin é adicionada deve ser:

/home/mike/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Você pode colocar seus scripts em /usr/local/bin , mas você precisará usar o sudo para copiá-los para a pasta e usar o sudo novamente quando quiser editá-los, então acho que ter uma pasta bin na pasta home é muito conveniente e sensato, particularmente em um único sistema de usuário.

No entanto, é importante observar que, se você tiver mais de um usuário em seu sistema e desejar que o script esteja disponível para todos eles, você definitivamente precisará colocá-lo em /usr/local/bin .

    
por user76204 28.11.2012 / 03:10