Eu tenho um arquivo script.sh e o tipo desse arquivo é um arquivo shellscript. Eu quero tornar esse arquivo como aplicativo / arquivo x-executável. Como posso fazer isso?
Eu tenho um arquivo script.sh e o tipo desse arquivo é um arquivo shellscript. Eu quero tornar esse arquivo como aplicativo / arquivo x-executável. Como posso fazer isso?
Respostas:
Você pode marcar o arquivo como executável:
chmod +x filename.sh
Você pode executá-lo assim:
./filename.sh
Se você quiser usar um comando diferente para iniciá-lo, poderá adicionar um alias:
gedit ~/.bashrc
Adicione isso no final do arquivo:
alias <new name>='/home/<full path to script>/filename.sh'
Abra uma nova sessão do terminal ou digite source ~/.bashrcseu terminal para aplicar. Em seguida, basta usar o novo nome para iniciar o script.
./filename.she não apenas filename.sh?
filenamee não./filename
./filename.shespecifica um arquivo no diretório atual e o uso filename.shespecifica um arquivo no diretório atual ou em qualquer diretório do PATH. O primeiro uso remove qualquer incerteza sobre qual arquivo é acessado. Nesse caso, você está tentando executar o script com bash ou outro intérprete (em virtude de assumido #!/bin/bashcomo primeira linha no seu script) apenas digitando o nome do arquivo. Esse uso requer que o diretório seja especificado. Como alternativa, você pode tentar o bash filename.shque parece funcionar com o diretório não especificado.
Existem duas maneiras de tornar um arquivo executável:
Método da GUI:
Vá para a guia permissões e marque a caixa `Executar: [] Permite executar o arquivo como programa.

Terminal / método de comando:
Você pode usar:
cd /to/my/required/directory
Então corra
chmod +x filename.extension
Ou apenas execute:
chmod +x /path/to/your/filename.extension
chmod também possui algumas opções mais avançadas:
Os espaços devem mostrar que está dividido: - rwx --- ---
O primeiro conjunto de ---é Usuário. O segundo é o grupo e o último é outro (qualquer outra pessoa)
r significa Read, w para Write e x para eXecute.
Portanto, para permitir que todos os leiam, mas apenas o Grupo execute e o Usuário leia e escreva (mas por algum motivo não execute) seria:
-rw- rx- r-- Mas isso seria adicionado ao comando como:
chmod +rw-rx-r-- /path/to/file.extension
chmodtambém pode fazer isso em números. É baseado em binário (eu acho, pois é 1,2 e 4)
Portanto, existem estes números:
Executar pelo usuário é 100. Executar por grupo é 010. Executar por outro é 001
Escrever por usuário é 200. Escreva por grupo é 020. Escreva por outro é 002.
Lido pelo usuário é 400. Lido por grupo é 040. Leia por outro é 004.
Em seguida, adicione-os para obter a combinação desejada.
Portanto, para permitir que todos os leiam, mas apenas o Grupo execute e o Usuário escreva (mas por algum motivo não execute) seria:
400 + 040 + 004e 010e200
Isso soma 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 leitura e gravação para o usuário, sem afetar outras permissões (por exemplo, permissões de execução).
Este site possui uma caixa de seleção de grade muito útil, na qual você pode marcar as opções desejadas e fornecer o comando:

No entanto, nem todas as combinações possíveis são sensatas ao uso; Os principais usados são os seguintes:
755 - Ownertem tudo Groupe Otherpode ler e executar
700 - Ownertem tudo
644 - Ownerpode ler e escrever Groupe Otherpode ler
600 - Ownersabe ler e escrever
E, se você estiver usando grupos de usuários não triviais:
775 - Ownerpode ler e escrever Groupe Otherpode ler
770 - Ownere Grouptem tudo, e Otherpode ler e executar
750 - Ownertem tudo e Grouppode ler e executar
664 - Ownere Grouppode ler e escrever, e Otherpode apenas ler
660 - Ownere Grouppode ler e escrever
640 - Ownerpode ler e escrever e Grouppode ler
777 e 666 raramente são usados, exceto em / tmp.
Obrigado Ilmari Karonen por apontar os que são de uso comum!