Puis-je créer mes propres commandes?

12

Je me demandais si je pouvais faire mes propres commandes comme si je devais taper «musique» sur la ligne de commande, mon vlc devrait s'ouvrir et commencer à jouer ma playlist. La chose VLC n'est qu'un exemple, mais la question demeure.

Puis-je créer mes propres commandes? Si oui, comment?

harisibrahimkv
la source
vous pouvez faire des scripts, si c'est ce que vous voulez?
Alvar

Réponses:

19

Oui - créez un fichier nommé musique et mettez-y les éléments suivants:

#!/bin/bash
echo "Hello world"

Ensuite, tapez chmod +x music- cela rend le fichier exécutable. Vous pouvez maintenant taper ./musicpour exécuter ce script.

C'est une bonne idée de taper echo $PATHet de copier le script dans l'un de ces répertoires. Je suggère de créer $HOME/binet d'ajouter cela à votre PATH via ~/.bash_profileou ~/.profile. Cela peut être fait en ajoutant (à l' un de ces fichiers): export PATH="$HOME/bin:$PATH". Vous devrez ensuite exécuter source .bash_profile(en supposant que vous l'avez mis dans ce fichier) pour le recharger.

Une autre alternative serait d'ajouter la commande que vous souhaitez exécuter en tant qu'alias bash. Vous pouvez le faire en ajoutant ce qui suit à un fichier nommé .bash_aliasesdans votre répertoire personnel:

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

Exécutez source ~/.bash_aliasesou déconnectez-vous et connectez-vous et cela devrait fonctionner :-)

pseudo
la source
3

La meilleure façon de procéder consiste à modifier (ou créer) un fichier appelé .bash_aliasesdans votre dossier de départ.

La syntaxe est assez simple:

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

Avec cette commande, si vous tapez installun terminal, il sera plutôt interprété comme

sudo apt-get -y install

Cependant, ces commandes ne fonctionneront nulle part en dehors d'un terminal.

Basscal
la source
1

Tout fichier exécutable dans un répertoire de votre chemin peut être une "commande". Il peut s'agir d'un script comme suggéré dans d'autres réponses, mais il peut également s'agir d'un programme compilé dans n'importe quelle langue prise en charge que vous connaissez.

Les alias fonctionneront également, mais ils sont limités car ils sont «à une ligne», de sorte que tout ce qui est complexe avec eux génère rapidement du code très difficile à lire. De plus, comme ils s'exécutent dans la même étendue de variable que le shell dans lequel vous les saisissez, ils peuvent facilement avoir des effets secondaires imprévus, comme vous laisser dans un autre répertoire ou laisser des variables définies qui ne sont nécessaires que par la tâche exécutée par l'alias. (Bien sûr, vous pouvez parfois utiliser un alias précisément parce qu'il a des effets secondaires souhaitables.)

Si vous placez vos nouvelles commandes dans un répertoire de votre chemin, elles peuvent être trouvées par le shell et exécutées. L'endroit le plus courant pour les mettre est dans $ HOME / bin. Si ce répertoire existe, il sera souvent automatiquement ajouté à votre chemin.

Deux choses à garder à l'esprit lors de la configuration: 1) Il est généralement préférable d'utiliser des noms uniques pour vos commandes qui ne correspondent pas à ceux déjà définis sur votre système. Il y a beaucoup de débat à ce sujet, mais le point principal est que les commandes familières ne devraient pas avoir de résultats inattendus si quelqu'un d'autre utilise votre système et que s'habituer à une commande commune en faisant quelque chose de spécial peut vous causer des ennuis lorsque vous travaillez sur un autre système. où il n'est pas défini de cette façon.

2) Vous pouvez ajouter $ HOME / bin au début ou à la fin de votre chemin (ou n'importe où entre les deux, mais cela n'est généralement pas fait).

L'ajouter au début de votre chemin est le choix le plus pratique car votre version d'une commande sera toujours celle qui s'exécute et elle sera trouvée plus rapidement. Il s'agit également d'une vulnérabilité de sécurité car quiconque peut obtenir une autorisation d'écriture sur votre $ HOME / bin (beaucoup plus facile que d'obtenir un accès root) peut remplacer très facilement les commandes courantes par du code potentiellement malveillant. De plus, si jamais vous avez besoin de demander de l'aide à quelqu'un qui ne connaît pas votre système, il est probable qu'il soit gêné par le comportement spécial de vos commandes personnalisées, sauf si vous consacrez beaucoup d'efforts supplémentaires à tout expliquer par-dessus poser votre question.

L'ajouter à la fin de votre instruction path est un peu plus sûr car toute commande portant le même nom que votre commande qui est déjà dans votre chemin sera trouvée en premier et exécutée à la place - et tout autre élément qui repose sur le fait que cette commande fonctionne comme prévu fonctionnera toujours .

Pour éviter tout cela (au détriment d'un peu de frappe supplémentaire), vous pouvez également placer votre commande dans un répertoire qui ne se trouve pas sur votre chemin afin qu'elle ne soit presque jamais exécutée involontairement car vous devrez taper son nom de chemin complet vers exécuter.

Comme la plupart des choses sous Linux, il existe de nombreuses façons de créer et d'utiliser de nouvelles commandes et chacune a ses propres avantages et limites.

Joe
la source