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?

Soluzione

Potete marcare il file come eseguibile:

chmod +x filename.sh

Potete poi eseguirlo in questo modo:

./filename.sh

Se volete usare un comando diverso per avviarlo, potete aggiungere un alias:

gedit ~/.bashrc

Aggiungilo alla fine del file:

alias ='/home//filename.sh'

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.

Commentari (5)

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 è 001

Scrivere 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 e 010 e 200.

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, e Gruppo e Altro possono leggere ed eseguire

700 - il proprietario ha tutti

644 - Il proprietario può leggere e scrivere, e Gruppo e Altro possono leggere

600 - Il proprietario può leggere e scrivere

E, se stai usando gruppi di utenti non banali:

775 - Owner può leggere e scrivere, e Group e Other possono leggere

770 - Owner e Group hanno tutto, e Other può leggere ed eseguire

750 - Il proprietario ha tutto e il gruppo può leggere ed eseguire

664 - Il proprietario e il gruppo possono leggere e scrivere, e Altro può solo leggere

660 - Proprietario e Gruppo possono leggere e scrivere

640 - Il proprietario può leggere e scrivere, e il gruppo può leggere

777 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

Commentari (2)

Corri:

chmod +x /path/to/file.sh

Per renderlo ineseguibile, esegui:

chmod -x /path/to/file.sh

Per esempio ho creato il file .sh:

vi tester12.sh

Dopo aver scritto del codice nell'editor vi, esco dall'editor vi:

:wq!
chmod +x tester12.sh
./tester12.sh
Commentari (0)