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

187

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 / 12:27

3 respostas

250

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 rɑːdʒɑ 16.12.2012 / 12:33
31

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étododeterminal/comando:

Vocêpodeusar:

cd/to/my/required/directory

Emseguida,execute

chmod+xfilename.extension

Ouapenasexecute:

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

chmodtambémtemalgumasopçõesmaisavançadas:

Osespaçossãoparamostrarqueestádividido:-rwx------

Oprimeiroconjuntode---éousuário.OsegundoéGroupeoúltimoéOther(qualqueroutrapessoa)

rsignificaRead,wparaWriteexparaeXecute.

Então,parapermitirquetodosoleiam,massomenteogrupoaexecutareousuárioalereescrever(mas,poralgummotivo,nãoexecutar)seria:

-rw-rx-r--Masissoseriaadicionadoaocomandocomo:

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

chmodtambémpodefazerissoemnúmeros.Ébaseadoembinário(euacho,comoé1,2e4)

Entãoexistemessesnúmeros:

Executarporusuárioé100.Executarporgrupoé010.Executarporoutroé001

Escreverporusuárioé200.Escrevaporgrupoé020.Escrevaporoutroé002.

Aleiturapelousuárioé400.Lerporgrupoé040.Lerporoutroé004.

Depois,adicione-osparaobteracombinaçãodesejada.

Então,parapermitirquetodosoleiam,masapenasogrupoaserexecutadoeousuárioaescrevê-lo(mas,poralgummotivo,nãoexecutar),eleseria:

400+040+004e010e200

Issoresultaem600+050+004=654.

Vocêpodeentãoexecutarocomando.

chmod+654/path/to/file.extensionparaconfigurá-lo.

Eparadefinirtodasaspermissões,vocêpodedigitar:

chmod+rwxrwxrwx/path/to/file.extension

Ou(issoéumpoucomaisfácildeescrever,masmaisdifícildelembrardecadaum):

chmod+777/path/to/file.extension

Finalmente,vocêpodefazer:

chmod-777/path/to/file.extension

Paratirartodasaspermissõesdetodos.

E:

chmod+300/path/to/file.extension

Paraadicionarelerparaousuário,semafetaroutraspermissões(porexemplo,permissõesdeexecução).

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

Noentanto,nemtodasascombinaçõespossíveissãosensatasparauso;osprincipaisquesãousadossãoosseguintes:

755-Ownertemtudo,eGroupeOtherpodemlereexecutar

700-Ownertemtodos

644-Ownerpodelereescrever,eGroupeOtherpodemler

600-Ownerpodelereescrever

E,sevocêestiverusandogruposdeusuáriosnãotriviais:

775-OwnerpodelereescrevereGroupeOtherpodemler

770-OwnereGrouptêmtodoseOtherpodemlereexecutar

750-Ownertemtudo,eGrouppodelereexecutar

664-OwnereGrouppodemlereescrever,eOtherpodelerapenas

660-OwnereGrouppodemlereescrever

640-OwnerpodelereescrevereGrouppodeler

777e666sãoraramenteusados,excetoem/tmp.

Obrigado Ilmari Karonen por apontando os de uso comum!

    
por Tim 18.06.2014 / 12:22
7

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 Liso 18.06.2014 / 12:39