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 ~/.bashrc
seu terminal para aplicar. Em seguida, basta usar o novo nome para iniciar o script.
./filename.sh
e não apenas filename.sh
?
filename
e não./filename
./filename.sh
especifica um arquivo no diretório atual e o uso filename.sh
especifica 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/bash
como 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.sh
que 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
chmod
també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 + 004
e 010
e200
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 - Owner
tem tudo Group
e Other
pode ler e executar
700 - Owner
tem tudo
644 - Owner
pode ler e escrever Group
e Other
pode ler
600 - Owner
sabe ler e escrever
E, se você estiver usando grupos de usuários não triviais:
775 - Owner
pode ler e escrever Group
e Other
pode ler
770 - Owner
e Group
tem tudo, e Other
pode ler e executar
750 - Owner
tem tudo e Group
pode ler e executar
664 - Owner
e Group
pode ler e escrever, e Other
pode apenas ler
660 - Owner
e Group
pode ler e escrever
640 - Owner
pode ler e escrever e Group
pode ler
777 e 666 raramente são usados, exceto em / tmp.
Obrigado Ilmari Karonen por apontar os que são de uso comum!