Come posso creare un comando terminale personalizzato (per eseguire uno script)?


36

Sono uno sviluppatore web. Quando voglio iniziare a lavorare, eseguo sempre alcuni comandi sul terminale. Per esempio:

sudo service apache2 start
sudo service mysql start
sublime

Per accelerare questo processo, creo un .shfile che contiene questi comandi.

Ora, quando voglio iniziare a lavorare, sto solo eseguendo questo file .sh e tutti i servizi (mysql, apache2 ecc.) Che iniziano.

È possibile creare un comando personalizzato per questo? Ad esempio, se digito sudo start-workingal terminale, eseguirà questi comandi

Risposte:


58

Un modo comune in cui le persone gestiscono questo è creare un bin directory nella loro home directory:mkdir ~/bin

Quindi, puoi inserire i tuoi script personalizzati: mv start-working ~/bin

Assicurati che il tuo script sia eseguibile: chmod +x ~/bin/start-working

Aggiungi questo in fondo al tuo ~/.bashrc file (se stai usando bash, cosa che probabilmente sei):export PATH=$PATH:~/bin

Ora accedi e scendi dal tuo terminale e dovresti riuscire a digitare start-working e lo script verrà eseguito.

Ora che il tuo percorso è configurato, qualsiasi nuovo script che lasci cadere nel tuo ~/binpuoi semplicemente digitare il nome di.


13
+1 e invece di disconnettersi e accedere, è possibile semplicemente eseguire i comandi source ~/.bashrco . ~/.bashrcper applicare le modifiche.
Meysam,

Joe Oppegaard, trovo queste informazioni davvero utili in quanto ci sono script completi che ho e vorrei eseguire come comando anziché come script. C'è un modo per includere tutte le sottodirectory create in ~ / bin in modo da non dover includere più righe di esportazione in .bashrc? Ho provato export PATH=$PATH:~/bin/*ma questo non ha restituito i risultati desiderati.
Kevin Wyman,

2
Il valore predefinito si ~/.profileaggiunge già ~/bina PATH, quindi aggiungendolo ~/.bashrcin aggiunta lo aggiungerai inutilmente due o più volte.
geirha,

Ha funzionato senza che io aggiungessi nulla a .bashrc, quindi potresti essere in grado di saltarlo come dice Geriha
Aaron Flores

nella mia esperienza, quando aggiungi un nuovo file devi ripetere un comando chmod, altrimenti l'autorizzazione verrà negata
Webwoman

15

Stavo cercando come creare comandi personalizzati e ho trovato questa domanda tra gli altri. Penso che quello che stavo cercando fosse alias, quindi ti darò il modo di farlo con un alias.

Nella tua cartella home:

nano .bash_aliases

E lì puoi scrivere i tuoi comandi in una riga:

alias start-working='sudo service apache2 start; sudo service mysql start; sublime'

Dopo aver salvato il file, riconfigura il tuo bashrc

. ~/.bashrc

E controlla che il tuo nuovo alias sia caricato

alias

Ecco fatto, puoi iniziare a lavorare ora eseguendo

start-working
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.