Comment créer des commandes personnalisées sous Unix / Linux? [fermé]

55

Quelqu'un peut-il me guider pour créer des commandes personnalisées sous Unix / Linux.

Qadir Hussain
la source
2
Pour référence future, vous devriez consulter la page des faits. Il explique les choses que vous devriez mettre dans vos questions. (comme poster les choses que vous avez recherchées et essayées). C'est probablement pourquoi quelqu'un a donné à cette question un vote négatif.
spuder

Réponses:

68

Créez un script bash dans votre dossier / usr / bin, il devrait ressembler à ceci

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

C'est vraiment aussi simple que ça.

Il suffit de nommer le script bash ce que vous voulez saisir dans le terminal et de le rendre exécutable: chmod +x filenameet vous voilà prêt à partir!

Eric
la source
1
Pourriez-vous modifier cela pour qu'il s'agisse d'un guide étape par étape, comprenant toutes les étapes nécessaires? Je ne sais toujours pas comment créer ma propre commande personnalisée.
Yoda
5
@AndersMB, vous devez lire un livre . Il y en a beaucoup de bons, même disponibles gratuitement. Commencez avec "La ligne de commande Linux" .
Wildcard
Umm .. il plaisantait. Il a été plaisante, non ?!
Somenath Sinha
1
exécuter avec./filename
Squirrl
46
  1. Créez un répertoire dit "bin" sous votre répertoire personnel.
  2. Mettez à jour votre variable de chemin pour inclure ce répertoire bin. Mettez ceci dans .profileun .bash_proflefichier pour le rendre permanent.

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

  3. Créez un script avec le mot "hello" et conservez-le dans votre répertoire bin. Donnez la permission d'exécution au script hello par $ chmod +x hello.

    #!/bin/bash    
    echo My first program
  4. Recharger .profileou .bash_profle:

    $ . ~/.bash_profile

  5. De n'importe quel répertoire, vous tapez simplement:

    $ hello
    My first program
Gourou
la source
Je sais que c'est très vieux, mais j'ai déjà vu votre suggestion de créer un bindossier dans de nombreuses réponses. Y at-il un problème si c'est au .binlieu de bin? Je suis vraiment pointilleux sur la façon dont mon homeapparence et je ne veux pas un dossier supplémentaire juste parce que.
MO
J'ai essayé d'utiliser cette solution sans succès et j'ai été très frustré pendant un certain temps, pensant que quelque chose n'allait pas avec mon zshinstallation ou bien, $PATHmais en fin de compte, cela chmod -x hellone fonctionnait pas, pas plus qu'un capital -X. Au lieu de cela, j'ai essayé chmod 755 hello, alors que je ne suis pas sûr des risques de sécurité liés à cette commande, il m'a en fait laissé courir hello. Est-ce que quelqu'un a une explication à ce sujet? Je suppose que c'est un problème en ce qui concerne l'âge?
ConstantFun le
1
@ConstantFun Utilisez-le chmod +x hellopour ajouter des privilèges "exécuter" au script. chmod -x hellofait exactement le contraire - supprime les privilèges "exécuter". (Remarquez la différence de signe plus / moins dans la réponse et dans votre commentaire.)
Filip Happy
25

Facile, créer un alias.

Supposons que vous souhaitiez écrire une commande sur cd dans votre répertoire de téléchargement. Et vous voulez l'appeler cdd.

alias cdd='cd ~/Downloads' 

Vous pouvez créer n'importe quelle commande que vous voulez.

Voici des informations supplémentaires:
http://www.mediacollege.com/linux/command/alias.html

spuder
la source
6
Cela ne persiste pas d'une session à l'autre. Cette commande fonctionne, mais n'est pas permanente. Un moyen plus permanent serait de modifier votre fichier ~ / .bash_aliases et d’ajouter la ligne que vous avez suggérée.
Jeff Grimes
2
Fonctionne également en l'ajoutant à votre fichier ~ / .bashrc
Delicia Brummitt
11

La plupart des distributions Linux, si ce n'est toutes maintenant, ont un petit script dans ~ / .bashrc qui semble presque identique à ceci:

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

Cela signifie simplement que vous pouvez créer vos propres commandes (également connu sous le nom de ' aliases' généralement appelé une commande existante avec certains arguments que vous devez toujours utiliser, ou une liste de commandes devant être exécutées dans l'ordre).

Le fichier .bash_aliases ne sera probablement pas créé chez vous, sauf si vous l'avez déjà fait manuellement. Donc, pour créer le fichier, tapez la commande suivante:
touch ~/.bash_aliases

Maintenant, ce fichier sera exécuté automatiquement à chaque fois que vous déclenchez un nouveau terminal.

Ce que vous pouvez faire maintenant est de créer une liste d’alias et de les ajouter à ce fichier pour une utilisation ultérieure. Par exemple, la rmcommande (supprimer) par défaut ne vous demande PAS de confirmer votre demande lorsque vous lui dites de supprimer un fichier / répertoire. Cependant, il y a un argument qui dit rmde vous demander de confirmer votre demande, -i. Ainsi, rm -i filePathun message vous demandant si vous êtes sûr de vouloir supprimer le fichier spécifié apparaîtra. Maintenant, si vous supprimez accidentellement un fichier, vous oublierez très probablement d’inclure l’ -ioption, et c’est là qu’un aliasavantage devient très bénéfique. Taper la commande suivante

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

vous dira Bashque chaque fois que vous demandez la suppression d’un fichier, un message de confirmation vous sera affiché. Bien sûr, vous pouvez faire beaucoup plus - ce ne sont que des bases.

Si vous voulez apprendre comment utiliser quelques commandes de base (c. -à cd, touch, rm, mkdir, pushd, popd, etc.) et / ou les plus sophistiqués, je vous recommande un très bon livre que vous pouvez avoir sur votre étagère comme référence appelé

un guide pratique sur les éditeurs de commandes linux et la programmation shell , par Mark G. Sobell . ISBN: 978-0133085044

Fadi Hanna AL-Kass
la source
1
pourquoi le backslash?
phil294