Como fazer um arquivo executável (por exemplo, um script .sh), para que possa ser executado a partir do terminal

167

Eu tenho um arquivo script.sh e o tipo deste arquivo é um arquivo shellscript. Eu quero fazer este arquivo como arquivo application / x-executável. Como posso fazer isso?

    
por Ziyaddin Sadigov 16.12.2012 / 13:27

3 respostas

227

bem, você pode fazê-lo fazendo

chmod +x filename.sh

então ele será executado quando você ligar,

./filename.sh

e você pode acessar esse script como aplicativo também.

abra seu terminal e digite como abaixo em seu diretório pessoal.

gedit .bashrc

depois, no arquivo aberto, digite isso na última linha.

alias <Name_with which you wanna call it >='./filename.sh'

salve e feche.

Em seguida, digite isso no seu terminal source ~/.bashrc para aplicar as alterações feitas. Em seguida, basta digitar o nome que você deu lá após o alias para acessar seu script.

verifique se você colocou no diretório inicial.

else

alias <Name_with which you wanna call it >='./<path to your script >.sh'

Espero que ajude.

    
por Ten-Coin 16.12.2012 / 13:33
29

Existem duas maneiras de tornar um arquivo executável:

Método GUI:

Vá para a guia de permissões e, em seguida, marque a caixa 'Execute: [] Permitir a execução do arquivo como programa.

Método de terminal / comando:

Você pode usar:

cd /to/my/required/directory

Em seguida, execute

chmod +x filename.extension

Ou apenas execute:

chmod +x /path/to/your/filename.extension

chmod também tem algumas opções mais avançadas:

Os espaços são para mostrar que está dividido: - rwx --- ---

O primeiro conjunto de --- é o usuário. O segundo é Group e o último é Other (qualquer outra pessoa)

r significa Read, w para Write e x para eXecute.

Então, para permitir que todos o leiam, mas somente o grupo a executar e o usuário a ler e escrever (mas, por algum motivo, não executar) seria:

-rw- rx- r-- Mas isso seria adicionado ao comando como:

chmod +rw-rx-r-- /path/to/file.extension

chmod também pode fazer isso em números. É baseado em binário (eu acho, como é 1,2 e 4)

Então existem esses números:

Executar por usuário é 100 . Executar por grupo é 010 . Executar por outro é 001

Escrever por usuário é 200 . Escreva por grupo é 020 . Escreva por outro é 002 .

A leitura pelo usuário é 400 . Ler por grupo é 040 . Ler por outro é 004 .

Depois, adicione-os para obter a combinação desejada.

Então, para permitir que todos o leiam, mas apenas o grupo a ser executado e o usuário a escrevê-lo (mas, por algum motivo, não executar), ele seria:

400 + 040 + 004 e 010 e 200

Isso resulta em 600 + 050 + 004 = 654.

Você pode então executar o comando.

chmod +654 /path/to/file.extension para configurá-lo.

E para definir todas as permissões, você pode digitar:

chmod +rwxrwxrwx /path/to/file.extension

Ou (isso é um pouco mais fácil de escrever, mas mais difícil de lembrar de cada um):

chmod +777 /path/to/file.extension

Finalmente, você pode fazer:

chmod -777 /path/to/file.extension

Para tirar todas as permissões de todos.

E:

chmod +300 /path/to/file.extension

Para adicionar e ler para o usuário, sem afetar outras permissões (por exemplo, permissões de execução).

Este site tem uma pequena caixa de verificação muito útil, onde você pode selecionar as opções desejadas o comando:

No entanto, nem todas as combinações possíveis são sensatas para uso; os principais que são usados são os seguintes:

755 - Owner tem tudo, e Group e Other podem ler e executar

700 - Owner tem todos

644 - Owner pode ler e escrever, e Group e Other podem ler

600 - Owner pode ler e escrever

E, se você estiver usando grupos de usuários não triviais:

775 - Owner pode ler e escrever e Group e Other podem ler

770 - Owner e Group têm todos e Other podem ler e executar

750 - Owner tem tudo, e Group pode ler e executar

664 - Owner e Group podem ler e escrever, e Other pode ler apenas

660 - Owner e Group podem ler e escrever

640 - Owner pode ler e escrever e Group pode ler

777 e 666 são raramente usados, exceto em / tmp.

Obrigado Ilmari Karonen por apontando os de uso comum!

    
por Tim 18.06.2014 / 14:22
6

Executar:

chmod +x /path/to/file.sh

Para torná-lo não executável, execute:

chmod -x /path/to/file.sh

Por exemplo, criei .sh file:

vi tester12.sh

Depois de escrever algum código no editor vi, sairei do editor vi:

:wq!
chmod +x tester12.sh
./tester12.sh
    
por iTux 18.06.2014 / 14:39