Come creare comandi personalizzati in Unix / Linux? [chiuso]


55

Qualcuno può guidarmi a creare comandi personalizzati in Unix / Linux.


2
Per riferimento futuro, dovresti dare un'occhiata alla pagina dei fatti. Spiega le cose che dovresti porre nelle tue domande. (ad esempio pubblicando le cose che hai cercato e provato). Questo è probabilmente il motivo per cui qualcuno ha dato a questa domanda un voto negativo.
spuder,

Risposte:


68

Crea uno script bash nella tua cartella / usr / bin, dovrebbe essere simile a questo

#!/bin/bash
Whatever combination of commands you want to run when you type this thing.

È davvero così facile.

Basta nominare lo script bash come si desidera digitare sul terminale e renderlo eseguibile: chmod +x filenamee sei a posto!


1
Potresti modificarlo per essere una guida passo-passo, incluso ogni passaggio necessario? Non sono ancora sicuro di come eseguire il mio comando personalizzato.
Yoda,

5
@AndersMB, devi leggere un libro . Ce ne sono molti buoni, anche disponibili gratuitamente. Inizia con "La riga di comando di Linux" .
Wildcard

Umm ... stava scherzando. Egli è stato scherzando, vero ?!
Somenath Sinha,

1
eseguire con./filename
Squirrl

46
  1. Crea una directory dire "bin" nella tua home directory.
  2. Aggiorna la variabile del tuo percorso per includere questa directory bin. Metti questo .profileo il .bash_proflefile per renderlo permanente.

    export PATH=$PATH":$HOME/bin"

  3. Crea uno script che dice "ciao" e tienilo nella tua cartella bin. Autorizza l'esecuzione dello script Hello da $ chmod +x hello.

    #!/bin/bash    
    echo My first program
  4. Ricarica .profileo .bash_profle:

    $ . ~/.bash_profile

  5. Da qualsiasi directory, digita semplicemente:

    $ hello
    My first program

So che è molto vecchio, ma ho visto il tuo suggerimento di creare una bincartella con molte risposte qui. C'è qualche problema se è .bininvece di bin? Sono davvero esigente su come homeappare e non voglio una cartella in più solo perché.
MO,

Ho provato a usarlo senza successo ed è stato molto frustrato per un po 'pensando che ci fosse qualcosa di sbagliato nella mia zshinstallazione o $PATHma alla fine è stato che chmod -x hellonon funzionava, né un capitale -X. Invece ho provato chmod 755 hello, anche se non sono sicuro dei rischi per la sicurezza in merito a questo comando, in realtà mi ha lasciato correre hello. Qualcuno ha una spiegazione per questo? Presumo sia un problema per quanto riguarda l'età?
ConstantFun,

1
@ConstantFun Utilizzare chmod +x helloper aggiungere i privilegi 'run' allo script. chmod -x hellofa l'esatto contrario - rimuove i privilegi di "esecuzione". (Nota la differenza del segno più / meno nella risposta e nel tuo commento.)
Filip Happy

25

Facile, crea un alias.

Supponi di voler scrivere un comando da inserire nella directory di download. E vuoi chiamarlo cd.

alias cdd='cd ~/Downloads' 

Puoi creare qualsiasi comando tu voglia.

Ecco ulteriori informazioni:
http://www.mediacollege.com/linux/command/alias.html


6
Tuttavia, ciò non persiste per tutte le sessioni. Questo comando funziona, ma non è permanente. Un modo più permanente sarebbe quello di modificare il file ~ / .bash_aliases e aggiungere la riga che hai suggerito lì.
Jeff Grimes,

2
Funziona anche aggiungendolo al tuo file ~ / .bashrc
Delicia Brummitt

11

La maggior parte, se non tutte, ormai, le distribuzioni Linux hanno un piccolo script in ~ / .bashrc che sembra quasi identico a questo:

if [ -e ~/.bash_aliases ]
then
. ~/.bash_aliases
fi

Questo significa semplicemente che puoi creare i tuoi comandi (noto anche come ' aliases' di solito riferito a un comando esistente con alcuni argomenti che devi sempre usare, o un elenco di comandi che devono essere eseguiti in ordine).

Molto probabilmente la tua distribuzione Linux non avrà il file .bash_aliases creato nella tua casa, a meno che tu non l'abbia già fatto manualmente. Quindi, per creare il file, digitare il seguente comando:
touch ~/.bash_aliases

Ora quel file verrà eseguito automaticamente ogni volta che spari un nuovo Terminale.

Quello che puoi fare ora è creare un elenco di alias e aggiungerli a quel file per usi successivi. Ad esempio, il rmcomando (rimuovi) per impostazione predefinita NON ti chiede di confermare la tua richiesta quando gli dici di eliminare un file / directory. Tuttavia, v'è un argomento che dice rma chiedervi di confermare la richiesta, -i. Quindi, rm -i filePathverrà visualizzato un messaggio che ti chiede se eri sicuro di voler eliminare il file specificato. Ora, se dovessi eliminare accidentalmente un file, molto probabilmente ti dimenticherai di includere l' -iopzione, ed è qui che aliasdiventa molto vantaggioso. Digitando il seguente comando

echo "alias rm='\rm -i'" >> ~/.bash_aliases

dirà Bashche ogni volta che si richiede di eliminare un file, verrà visualizzato un messaggio di conferma. Certo, puoi fare molto di più: queste sono solo le basi.

Se si vuole imparare ad usare alcuni comandi di base (ad esempio cd, touch, rm, mkdir, pushd, popd, etc.) e / o di quelli più sofisticati, mi consiglia un ottimo libro si può avere sul vostro scaffale come riferimento chiamato

una guida pratica agli editor di comandi linux e alla programmazione della shell , di Mark G. Sobell . ISBN: 978-0133085044


1
perché la barra rovesciata?
phil294
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.