Come rendere un file (ad esempio uno script .sh) eseguibile, in modo che possa essere eseguito da un terminale
Ho un file script.sh e il tipo di questo file è un file shellscript. Voglio rendere questo file come applicazione/x-eseguibile. Come posso farlo?
252
3
Potete marcare il file come eseguibile:
Potete poi eseguirlo in questo modo:
Se volete usare un comando diverso per avviarlo, potete aggiungere un alias:
Aggiungilo alla fine del file:
Aprite una nuova sessione di terminale o digitate
source ~/.bashrc
nel vostro terminale per applicarlo. Poi usa semplicemente il nuovo nome per avviare lo script.Ci sono due modi per rendere un file eseguibile:
Metodo GUI:
Vai alla scheda permessi, poi spunta la casella `Esegui: [ ] Consenti l'esecuzione del file come programma.
Metodo terminale/comando:
È possibile utilizzare:
cd /to/my/required/directory
.Poi eseguire
chmod +x nomefile.estensione
O semplicemente eseguire:
chmod +x /path/to/your/filename.extension
.chmod
ha anche alcune opzioni più avanzate:Gli spazi sono per mostrare che è diviso:
- rwx --- ---
La prima serie di
---
è User. Il secondo è Gruppo e l'ultimo è Altro (chiunque altro)r sta per Read, w per Write e x per eXecute.
Quindi per permettere a tutti di leggere, ma solo al Gruppo di eseguire e all'Utente di leggere e scrivere (ma per qualche motivo non di eseguire) sarebbe:
-rw- rx- r--
Ma questo verrebbe aggiunto al comando come:chmod +rw-rx-r-- /path/to/file.extension
.Anche
chmod
può fare questo in numeri. Si basa sul binario (credo, visto che è 1,2 e 4)Quindi ci sono questi numeri:
Eseguire per utente è
100
. Eseguire per gruppo è010
. Eseguire per altro è 001Scrivere per utente è
200
. Scrivere per gruppo è020
. La scrittura da parte di altri è002
.Leggere per utente è
400
. Letto dal gruppo è040
. Leggere da altri è004
.Poi aggiungi questi per ottenere la combinazione desiderata.
Quindi per permettere a tutti di leggere, ma solo al gruppo di eseguire e all'utente di scrivere (ma per qualche motivo non di eseguire) sarebbe:
400 + 040 + 004
e010
e200
.Questo fa 600 + 050 + 004 = 654.
Potresti quindi eseguire il comando
chmod +654 /path/to/file.extension
per impostarlo.E per impostare tutti i permessi potete digitare:
chmod +rwxrwxrwx /path/to/file.extension
.Oppure (questo è un po' più facile da scrivere, ma più difficile da ricordare ciascuno):
chmod +777 /path/to/file.extension
Infine, puoi fare:
chmod -777 /path/to/file.extension
.Per togliere tutti i permessi a tutti.
E:
chmod +300 /path/to/file.extension
.Per aggiungere lettura e scrittura per l'utente, senza influenzare altri permessi (ad esempio i permessi di esecuzione).
Questo sito web ha una piccola griglia molto utile, dove puoi spuntare le opzioni che vuoi e ti dà il comando:
Tuttavia, non tutte le combinazioni possibili sono sensate da usare; le principali che vengono usate sono le seguenti:
755 -
Proprietario
ha tutto, eGruppo
eAltro
possono leggere ed eseguire700 - il
proprietario
ha tutti644 - Il
proprietario
può leggere e scrivere, eGruppo
eAltro
possono leggere600 - Il
proprietario
può leggere e scrivereE, se stai usando gruppi di utenti non banali:
775 -
Owner
può leggere e scrivere, eGroup
eOther
possono leggere770 -
Owner
eGroup
hanno tutto, eOther
può leggere ed eseguire750 - Il
proprietario
ha tutto e ilgruppo
può leggere ed eseguire664 - Il
proprietario
e ilgruppo
possono leggere e scrivere, eAltro
può solo leggere660 -
Proprietario
eGruppo
possono leggere e scrivere640 - Il
proprietario
può leggere e scrivere, e ilgruppo
può leggere777 e 666 sono usati raramente, tranne che in /tmp.
Grazie Ilmari Karonen per averci fatto notare5 quelli di uso comune!
I miei pronomi sono He / Him
Corri:
Per renderlo ineseguibile, esegui:
Per esempio ho creato il file
.sh
:Dopo aver scritto del codice nell'editor vi, esco dall'editor vi: