Ho un file script.sh e il tipo di questo file è un file shellscript. Voglio fare questo file come file application / x-eseguibile. Come posso farlo?
Ho un file script.sh e il tipo di questo file è un file shellscript. Voglio fare questo file come file application / x-eseguibile. Come posso farlo?
Risposte:
È possibile contrassegnare il file come eseguibile:
chmod +x filename.sh
È quindi possibile eseguirlo in questo modo:
./filename.sh
Se si desidera utilizzare un comando diverso per avviarlo, è possibile aggiungere un alias:
gedit ~/.bashrc
Aggiungi questo alla fine del file:
alias <new name>='/home/<full path to script>/filename.sh'
Apri una nuova sessione di terminale o digita il source ~/.bashrctuo terminale da applicare. Quindi utilizza semplicemente il nuovo nome per avviare lo script.
./filename.she non solo filename.sh?
filenamee non./filename
./filename.shspecifica un file nella directory corrente e l'utilizzo filename.shspecifica un file nella directory corrente o in qualsiasi directory di PATH. Il primo utilizzo rimuove qualsiasi incertezza su quale file sia accessibile. In questo caso, stai tentando di eseguire lo script con bash o un altro interprete (in virtù di una #!/bin/bashprima riga del tuo script) semplicemente inserendo il nome del file. Questo utilizzo richiede che la directory sia specificata. In alternativa, puoi provare bash filename.shquale sembra funzionare con una directory non specificata.
Esistono due modi per rendere eseguibile un file:
Metodo GUI:
Vai alla scheda permessi, quindi spunta la casella `Esegui: [] Consenti l'esecuzione del file come programma.

Metodo terminale / comando:
Puoi usare:
cd /to/my/required/directory
Quindi corri
chmod +x filename.extension
O semplicemente corri:
chmod +x /path/to/your/filename.extension
chmod ha anche alcune opzioni più avanzate:
Gli spazi indicano che è suddiviso: - rwx --- ---
Il primo set di ---è Utente. Il secondo è Gruppo e l'ultimo è Altro (chiunque altro)
r sta per Read, w per Write e x per eXecute.
Quindi per consentire a tutti di leggerlo, ma solo Group lo eseguirà e l'utente lo leggerà e lo scriverà (ma per qualche motivo non eseguirlo) sarebbe:
-rw- rx- r-- Ma questo verrebbe aggiunto al comando come:
chmod +rw-rx-r-- /path/to/file.extension
chmodpuò anche farlo in numeri. Si basa su binario (penso, dato che è 1,2 e 4)
Quindi ci sono questi numeri:
Eseguire dall'utente è 100. Eseguire per gruppo è 010. Eseguire da altro è 001
Scrivi per utente è 200. Scrivere per gruppo è 020. Scrivere da altri è 002.
Letto dall'utente è 400. Leggi per gruppo è 040. Letto da altri è 004.
Quindi li aggiungi insieme per ottenere la combinazione desiderata.
Quindi, per consentire a tutti di leggerlo, ma solo Group lo eseguirà e l'Utente lo scriverà (ma per qualche motivo non lo eseguirà) sarebbe:
400 + 040 + 004e 010e200
Ciò aggiunge fino a 600 + 050 + 004 = 654.
È quindi possibile eseguire il comando.
chmod +654 /path/to/file.extension per impostarlo.
E per impostare tutte le autorizzazioni è possibile digitare:
chmod +rwxrwxrwx /path/to/file.extension
Oppure (è un po 'più facile da scrivere, ma più difficile da ricordare ognuno):
chmod +777 /path/to/file.extension
Finalmente puoi fare:
chmod -777 /path/to/file.extension
Per togliere tutte le autorizzazioni a tutti.
E:
chmod +300 /path/to/file.extension
Per aggiungere la lettura e la scrittura per l'utente, senza influire su altre autorizzazioni (ad es. Autorizzazioni di esecuzione).
Questo sito Web ha una piccola casella di controllo della griglia molto utile, per cui puoi spuntare le opzioni che vuoi e ti dà il comando:

Tuttavia, non tutte le possibili combinazioni sono sensate da usare; i principali utilizzati sono i seguenti:
755 - Ownerha tutto, Groupe Otherpuò leggere ed eseguire
700 - Ownerha tutto
644 - Ownersa leggere e scrivere, Groupe Othersa leggere
600 - Ownerpuò leggere e scrivere
E, se stai usando gruppi di utenti non banali:
775 - Ownerpuò leggere e scrivere Groupe Otherpuò leggere
770 - Ownere Groupavere tutto, e Otherpuò leggere ed eseguire
750 - Ownerha tutto e Grouppuò leggere ed eseguire
664 - Ownere Grouppuò leggere e scrivere, e Otherpuò solo leggere
660 - Ownere Grouppuò leggere e scrivere
640: Ownerpuò leggere e scrivere e Grouppuò leggere
777 e 666 sono usati raramente, tranne in / tmp.
Grazie Ilmari Karonen per aver segnalato quelli di uso comune!