Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/06/2015, à 12:26

pierrot10

Comment simplifier mes commandes

Bonjour à tous,
Il me semble que ceci se fait dans le fichier .bashrc de l'utilisateur, mais j'ai un doute.

Je veux me simlifier ma tâche pour des commandes basics.

Par exemple, j'ai cette commande

$sudo lvcreate -n snap`date +%Y%m%d` -L 10G -s /dev/vg00/home

Es-ce possible de créé un racourci? Par exemple,
si je tape : 'crsnap' il m'execute la commande ci-dessus,
ou encore mieux si je tape 'crsnap 10', il m'exécute la commande ci-dessus avec une taille de 10G.

Is je tale 'disnap', il m'exécute la commen 'sudo lvdisplay'

Auriez-vous un exemple pour modifier le fichier .bashrc


Merci!!

Modération : déplacé dans la section Terminal, scripts et ligne de commande. Prière de signaler si vous désirez le remettre où il était.

Dernière modification par Ayral (Le 10/06/2015, à 16:21)

Hors ligne

#2 Le 10/06/2015, à 12:54

Qid

Re : Comment simplifier mes commandes

pierrot10 a écrit :

Es-ce possible de créé un racourci? Par exemple,
si je tape : 'crsnap' il m'execute la commande ci-dessus,
ou encore mieux si je tape 'crsnap 10', il m'exécute la commande ci-dessus avec une taille de 10G.

oui et ça s'appel un alias (regarde dans la doc) et non un raccourci ...
et accessoirement vu la structure de ta commande même si je ne le comprend pas
tes 2 demandes semble effectivement réalisable ... reviens par ici en cas de doute wink


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#3 Le 10/06/2015, à 13:52

credenhill

Re : Comment simplifier mes commandes

hello
passer par une fonction, essayer

crsnap() { sudo lvcreate -n snap$(date +%Y%m%d) -L $1G -s /dev/vg00/home ; }

si c'est ok, ajouter la ligne dans ~/.bashrc

Hors ligne

#4 Le 10/06/2015, à 14:01

Qid

Re : Comment simplifier mes commandes

credenhill a écrit :

passer par une fonction

j'ai déjà dû poser la question à l'époque ou moi j'avais commencé à jouer avec ces possibilités des commandes
mais bon je la repose quand même étant donné qu'elle est à propos : quelles différences il y a entre alias et fonction ?


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#5 Le 10/06/2015, à 14:14

credenhill

Re : Comment simplifier mes commandes

pour passer des paramètres $1 $2 ... il faut une fonction, alias ne les reconnait pas
ce qu'on tape après le nom de l'alias est ajouté en fin de ligne
pour un code simple, alias va très bien, une fonction peut contenir un long code

Dernière modification par credenhill (Le 10/06/2015, à 14:16)

Hors ligne

#6 Le 10/06/2015, à 14:25

Qid

Re : Comment simplifier mes commandes

wai mais justement là en l’occurrence il n'a besoin que d'un seul paramètre donc ce dernier peut être passé dans un alias
sans compter que les alias c'est clair et simple à construire et utiliser mais les fonctions ?
si je comprends bien : nomfonction() {cequellefait} avec possibilité de passer plus d'un attribut dans un ordre numéroté
mais quel serait son comportement en cas d'erreur/oubli de renseignement des attributs ?
parce que pour les alias ça r'envoi en général le --help ou le même message d'erreur de la commande
mais dans un fonction ça se comporte comment ?


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#7 Le 10/06/2015, à 14:32

credenhill

Re : Comment simplifier mes commandes

c'est pas ce qu'on veut

$ alias aa='echo aa $1 bb $2'
$ aa 11 22
aa bb 11 22

a moins de faire

$ set -- 11 22
$ aa 
aa 11 bb 22

Hors ligne

#8 Le 10/06/2015, à 14:43

Qid

Re : Comment simplifier mes commandes

credenhill a écrit :

c'est pas ce qu'on veut

$ alias aa='echo aa $1 bb $2'
$ aa 11 22
aa bb 11 22

ah mais donc si on peut avoir 2 attributs sur un alias ...
par contre ils sont gérés à la chaîne en bout de commande contrairement à dans une fonction
mais cette démo ne répond pas à mon précédent post wink


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#9 Le 10/06/2015, à 15:11

credenhill

Re : Comment simplifier mes commandes

les champs sont vides

$ xx() { echo \$1=$1 \$2=$2 ; }
$ xx aa bb
$1=aa $2=bb
$ xx
$1= $2=

Hors ligne

#10 Le 10/06/2015, à 15:28

Qid

Re : Comment simplifier mes commandes

credenhill a écrit :

les champs sont vides

Malgré l'exemple je ne suis pas sûr de bien comprendre puisque sur un alias c'est pareil non ?


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#11 Le 10/06/2015, à 16:12

credenhill

Re : Comment simplifier mes commandes

avec un alias, ce n'est pas ce qu'on veut

$ alias xx='echo \$1=$1 \$2=$2'
$ xx aa bb
$1= $2= aa bb

alias ou fonction, un champ vide est vide

Hors ligne

#12 Le 11/06/2015, à 10:44

pierrot10

Re : Comment simplifier mes commandes

Hello
Donc si je résume, si je veux créer un snap et taper une commande simple, comme par exemple

crsnap 10

(Crée un snap de 10M)
je devrais avoir une fonction du genre, dans mon .bashrc:

crsnap($s){ 
        sudo lvcreate -n snap_(date +%Y%m%d) -L $s+M -s /dev/vg00/home ; 
}

???

Hors ligne

#13 Le 11/06/2015, à 11:59

pierrot10

Re : Comment simplifier mes commandes

Voilà comment

crsnap () {
        sudo lvcreate -n snap_`date +%Y%m%d_%H%M%S` -L $1 -s /dev/vg00/home;
}

Hors ligne