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 ~/.bashrc
tuo terminale da applicare. Quindi utilizza semplicemente il nuovo nome per avviare lo script.
./filename.sh
e non solo filename.sh
?
filename
e non./filename
./filename.sh
specifica un file nella directory corrente e l'utilizzo filename.sh
specifica 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/bash
prima riga del tuo script) semplicemente inserendo il nome del file. Questo utilizzo richiede che la directory sia specificata. In alternativa, puoi provare bash filename.sh
quale 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
chmod
può 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 + 004
e 010
e200
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 - Owner
ha tutto, Group
e Other
può leggere ed eseguire
700 - Owner
ha tutto
644 - Owner
sa leggere e scrivere, Group
e Other
sa leggere
600 - Owner
può leggere e scrivere
E, se stai usando gruppi di utenti non banali:
775 - Owner
può leggere e scrivere Group
e Other
può leggere
770 - Owner
e Group
avere tutto, e Other
può leggere ed eseguire
750 - Owner
ha tutto e Group
può leggere ed eseguire
664 - Owner
e Group
può leggere e scrivere, e Other
può solo leggere
660 - Owner
e Group
può leggere e scrivere
640: Owner
può leggere e scrivere e Group
può leggere
777 e 666 sono usati raramente, tranne in / tmp.
Grazie Ilmari Karonen per aver segnalato quelli di uso comune!