Posso fare i miei comandi?


12

Mi chiedevo se avrei potuto fare i miei comandi come se dovessi digitare "musica" dalla riga di comando, il mio vlc dovrebbe aprirsi e iniziare a riprodurre la mia playlist. La cosa vlc è solo un esempio ma la domanda rimane.

Posso fare i miei comandi? Se si, come?


puoi fare degli script, se è quello che vuoi?
Alvar,

Risposte:


19

Sì: crea un file chiamato musica e inserisci al suo interno quanto segue:

#!/bin/bash
echo "Hello world"

Quindi, digitare chmod +x music- questo rende il file eseguibile. Ora puoi digitare ./musicper eseguire questo script.

È una buona idea digitare echo $PATHe copiare lo script in una di quelle directory. Suggerirei di crearlo $HOME/bine aggiungerlo al tuo PERCORSO tramite ~/.bash_profileo ~/.profile. Questo può essere fatto con l'aggiunta (per uno di quei file): export PATH="$HOME/bin:$PATH". Sarà quindi necessario eseguire source .bash_profile(supponendo di averlo inserito in quel file) per ricaricarlo.

Un'altra alternativa sarebbe quella di aggiungere il comando che si desidera eseguire come alias bash. Puoi farlo aggiungendo quanto segue a un file chiamato .bash_aliasesnella tua home directory:

alias music='vlc --some-option --foo'

Esegui source ~/.bash_aliaseso disconnetti e accedi e dovrebbe funzionare :-)


3

Il modo migliore per farlo è modificare (o creare) un file chiamato .bash_aliasesnella cartella principale.

La sintassi è abbastanza semplice:

alias install='sudo apt-get -y install'

Con questo comando, se si digita installun terminale, verrà invece interpretato come

sudo apt-get -y install

Tuttavia, questi comandi non funzioneranno da nessuna parte al di fuori di un terminale.


1

Qualsiasi file eseguibile in una directory nel tuo percorso può essere un "comando". Può essere uno script come suggerito in altre risposte, ma potrebbe anche essere un programma compilato in qualsiasi lingua supportata che conosci.

Anche gli alias funzioneranno, ma sono limitati perché sono "a linea singola" in modo che fare qualsiasi cosa intricata con loro generi rapidamente codice che è molto difficile da leggere. Inoltre, poiché si eseguono nello stesso ambito di variabili della shell in cui li digiti, possono facilmente avere effetti collaterali indesiderati come lasciarti in un'altra directory o lasciare variabili definite che sono necessarie solo per l'attività svolta dall'alias. (Certo, a volte potresti voler usare un alias proprio perché ha effetti collaterali desiderabili.)

Se metti i tuoi nuovi comandi in una directory nel tuo percorso, possono essere trovati dalla shell ed eseguiti. Il posto più comune per metterli è in $ HOME / bin. Se questa directory esiste, verrà spesso aggiunta automaticamente al tuo percorso.

Due cose da tenere a mente quando si imposta questo sono: 1) Di solito è meglio usare nomi univoci per i tuoi comandi che non corrispondono a quelli già definiti sul tuo sistema. C'è molto dibattito su questo, ma il punto principale è che i comandi familiari non dovrebbero avere risultati inattesi se qualcun altro sta usando il tuo sistema e che abituarsi a un comando comune facendo qualcosa di speciale può metterti nei guai quando lavori su un altro sistema dove non è definito in questo modo.

2) Puoi aggiungere $ HOME / bin all'inizio o alla fine del tuo percorso (o in qualsiasi punto intermedio, ma di solito non è fatto).

Aggiungerlo all'inizio del percorso è la scelta più conveniente perché la versione di un comando sarà sempre quella che verrà eseguita e verrà trovata più velocemente. È anche una vulnerabilità della sicurezza perché chiunque può ottenere i permessi di scrittura su $ HOME / bin (molto più facile di ottenere l'accesso come root) può sostituire i comandi comuni con codice potenzialmente dannoso molto facilmente. Inoltre, se hai mai bisogno di chiedere aiuto a qualcuno che non conosce il tuo sistema, è probabile che vengano attivati ​​dal comportamento speciale dei tuoi comandi personalizzati, a meno che tu non spenda molto sforzo in più per spiegare tutto porre la tua domanda.

L'aggiunta alla fine dell'istruzione path è un po 'più sicura perché qualsiasi comando con lo stesso nome del comando che è già nel percorso verrà trovato per primo ed eseguito invece - e qualsiasi altra cosa che si basa su quel comando funziona come previsto funzionerà comunque .

Per evitare tutto ciò (a scapito di una piccola digitazione extra), puoi anche inserire il tuo comando in una directory che non è nel tuo percorso, quindi non verrà quasi mai eseguito involontariamente perché dovrai digitare il nome completo del percorso in eseguirlo.

Come la maggior parte delle cose in Linux, ci sono molti modi per creare e usare nuovi comandi e ognuno ha i suoi vantaggi e limiti.

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.