Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 03-02-2015 20:11:27

Guizmo
Membre
Lieu : Mello dans l'Oise
Distrib. : Jessie
Noyau : Linux 3.2.0-4-686-pae
Inscription : 03-02-2015

Mon premier script

Salut !

En fait je n'ai pas de problèmes mais plutôt des questions, pas bien sûr d'être au bon endroit du  forum... neutral
Le mieux c'est que je poste un extrait de mon script : (Zut impossible de copier/coller de vim hmm obligé de taper  :'( )


for fichier in /home/laurent/Téléchargements/"*.avi"
do
mv $fichier /home/laurent/Vidéos
done



Il fonctionne.

J'ai essayé d'en faire une version ac "if" mais je n'y arrive pas, je ne sais pas comment lui faire intégrer un chemin (/home/nom/.. etc), si tant est que ce soit possible...

Quelqu'un peut m'éclairer ? (en "B-A ba" svp, vous l'aurez compris, je suis débutants...)

Pour les postes comme celui-ci, je continue comme ça ou je vais dans le coin discussions en tous genres ?   

Merci smile


Je suis débutant, si à la lecture d'un de mes postes vous avez des suggestions, des liens à me donner ou n'importe quoi qui puisse me faire avancer, n'hésitez pas ! !
Merci smile

Hors ligne

#2 03-02-2015 20:56:58

smolski
administrateur quasi...modo
Lieu : AIN
Distrib. : 8 (jessie) 64 bits + backports
Noyau : 4.6.0-0.bpo.1-amd64
(G)UI : gnome 3.14.1
Inscription : 21-10-2008

Re : Mon premier script

Guizmo a écrit :

Zut impossible de copier/coller de vim


Sélectionne avec la souris et clique droit - Copier.
Puis tu fais clique droit dans le fichier où tu veux coller et tu choisis Coller. cool


"Définition d'eric besson : S'il fallait en chier des tonnes pour devenir ministre, il aurait 2 trous du cul." - JP Douillon
"L'utopie ne signifie pas l'irréalisable, mais l'irréalisée." - T Monod (source :  La zone de Siné)
"Je peux rire de tout mais pas avec n'importe qui." - P Desproges
"saque eud dun" (patois chtimi : fonce dedans)

Hors ligne

#3 03-02-2015 21:22:15

Guizmo
Membre
Lieu : Mello dans l'Oise
Distrib. : Jessie
Noyau : Linux 3.2.0-4-686-pae
Inscription : 03-02-2015

Re : Mon premier script

Merci,
Mais ça ne fonctionne pas, dès que je surligne, j'ai "-- VISUEL --" qui s'affiche en bas à gauche du terminal et quand je clique droit, ça ramène le surlignage à l'endroit du clic... !?

Je suis débutant, si à la lecture d'un de mes postes vous avez des suggestions, des liens à me donner ou n'importe quoi qui puisse me faire avancer, n'hésitez pas ! !
Merci smile

Hors ligne

#4 03-02-2015 21:37:20

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : Mon premier script

Salut,
Avec vim tu peux copier vers le buffer de X, en sélectionnant  ce que tu veux copier avec le mode visuel. Puis tu tape "*y.
Ça va copier la sélection dans le buffer de copier de X. Ensuite tu colle avec le bouton du milieu de la souris.

Dernière modification par enicar (03-02-2015 21:52:09)


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#5 03-02-2015 21:44:44

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : Mon premier script

Je n'ai pas compris pourquoi tu veux utiliser un if, ni ce que tu entends par « intégrer un chemin ».
Remarques, si tu veux juste déplacer les fichiers *.avi de /home/laurent/Téléchargements/ vers /home/laurent/Vidéos, il suffiit de faire :


cd /home/laurent/Téléchargements/
mv *.avi /home/laurent/Vidéos
 



Pas besoin d'utiliser une boucle for wink


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#6 03-02-2015 21:48:14

wlourf
Membre
Distrib. : Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : awesome
Inscription : 19-07-2010

Re : Mon premier script

Guizmo a écrit :


J'ai essayé d'en faire une version ac "if" mais je n'y arrive pas, je ne sais pas comment lui faire intégrer un chemin (/home/nom/.. etc), si tant est que ce soit possible...

Quelqu'un peut m'éclairer ? (en "B-A ba" svp, vous l'aurez compris, je suis débutants...)



il y a plein de possibilités avec if, tu veux tester quoi au juste ?

Hors ligne

#7 03-02-2015 22:04:47

sogal
Black Metal Modo
Distrib. : Debian Testing
Noyau : 4.7
(G)UI : Gnome
Inscription : 09-05-2013
Site Web

Re : Mon premier script

Guizmo a écrit :

J'ai essayé d'en faire une version ac "if" mais je n'y arrive pas, je ne sais pas comment lui faire intégrer un chemin (/home/nom/.. etc), si tant est que ce soit possible...


Avec "if" tu peux, par exemple, vérifier qu'un fichier ou qu'un dossier existe (couplé à la commande test):


f="/home/tintin/mon_fichier"
if [ -e "$f" ] ; then
    cp "$f" /home/tintin/videos
fi



Plus d'infos: man test


Machine perso : Thinkpad x230 Debian Stretch | Machine pro : Thinpad T450 openSUSE Leap 42.2

Hors ligne

#8 04-02-2015 20:46:59

Guizmo
Membre
Lieu : Mello dans l'Oise
Distrib. : Jessie
Noyau : Linux 3.2.0-4-686-pae
Inscription : 03-02-2015

Re : Mon premier script

.

Dernière modification par Guizmo (04-02-2015 21:02:36)


Je suis débutant, si à la lecture d'un de mes postes vous avez des suggestions, des liens à me donner ou n'importe quoi qui puisse me faire avancer, n'hésitez pas ! !
Merci smile

Hors ligne

#9 04-02-2015 20:58:39

Guizmo
Membre
Lieu : Mello dans l'Oise
Distrib. : Jessie
Noyau : Linux 3.2.0-4-686-pae
Inscription : 03-02-2015

Re : Mon premier script

Merci pour vos réponses ! smile

@enicar
Le "y" copie, j'ai la confirmation en bas du terminal, mais le clic sur la molette ne le colle  pas...
Sinon le for est ma deuxième version, ma 1ère était comme celle que tu me suggères, c'est juste pour me faire un exercice : je veux savoir si c'est possible d'obtenir le même résultat avec "if".

@wlourf
Je pense avoir répondu à ta question à travers enicar, merci pour le lien en tt cas ! wink

@sogalpunx
Tu est le seul à m'avoir compris du 1er coup !
Je viens d'essayer ce que tu me proposes comme suit:

f="/home/tintin/Téléchargements/*.avi"
if [ -e "$f" ]
then
mv "$f" /home/tintin/Vidéos
fi



Je n'ai pas de message d'erreur, contrairement à mes essais précédents, mais ça ne fonctionne pas !
Je crois que j'ai trouvé le coupable !
En faisant :

f="/home/tintin/Téléchargements/mon_ *"

ça ne fonctionne pas.
par contre en faisant :

f="/home/tintin/Téléchargements/mon_fichier"

, ça fonctionne ! ! smile
Le coupable est donc "*"
Y a t-il moyen de faire accepter "*" dans le script ?

Dans ts les cas merci à tous, avec un petit plus à sogalpunx pour m'avoir compris du 1er coup ! big_smile

Dernière modification par Guizmo (04-02-2015 21:03:48)


Je suis débutant, si à la lecture d'un de mes postes vous avez des suggestions, des liens à me donner ou n'importe quoi qui puisse me faire avancer, n'hésitez pas ! !
Merci smile

Hors ligne

#10 04-02-2015 22:17:54

Severian
Membre
Distrib. : Debian GNU/Linux 8.6 (jessie)
Noyau : Linux 4.6.0-0.bpo.1-amd64
(G)UI : Openbox 3.6.1-2
Inscription : 13-12-2014

Re : Mon premier script

Guizmo a écrit :


Je n'ai pas de message d'erreur, contrairement à mes essais précédents, mais ça ne fonctionne pas !
Je crois que j'ai trouvé le coupable !
En faisant :

f="/home/tintin/Téléchargements/mon_ *"

ça ne fonctionne pas.
par contre en faisant :

f="/home/tintin/Téléchargements/mon_fichier"

, ça fonctionne ! ! smile
Le coupable est donc "*"
Y a t-il moyen de faire accepter "*" dans le script ?

Dans ts les cas merci à tous, avec un petit plus à sogalpunx pour m'avoir compris du 1er coup ! big_smile



heuuu c'est "*" qui ne fonctionne pas ou " *"
parce que dans

f="/home/tintin/Téléchargements/mon_ *"

tu as un espace entre "_" et "*'

bref sur ce je retourne soigner ma grippe
(je peux échanger les pts chocos contre des pts grog ?)


"il est urgent d'attendre" (bendia)
ob3-debian2-150x50.png

Hors ligne

#11 04-02-2015 22:23:03

smolski
administrateur quasi...modo
Lieu : AIN
Distrib. : 8 (jessie) 64 bits + backports
Noyau : 4.6.0-0.bpo.1-amd64
(G)UI : gnome 3.14.1
Inscription : 21-10-2008

Re : Mon premier script

@Severian big_smile

"Définition d'eric besson : S'il fallait en chier des tonnes pour devenir ministre, il aurait 2 trous du cul." - JP Douillon
"L'utopie ne signifie pas l'irréalisable, mais l'irréalisée." - T Monod (source :  La zone de Siné)
"Je peux rire de tout mais pas avec n'importe qui." - P Desproges
"saque eud dun" (patois chtimi : fonce dedans)

Hors ligne

#12 05-02-2015 20:24:15

Guizmo
Membre
Lieu : Mello dans l'Oise
Distrib. : Jessie
Noyau : Linux 3.2.0-4-686-pae
Inscription : 03-02-2015

Re : Mon premier script

salut severian 

En fait c'est ça qui ne fonctionne pas, ce qui change la position du "*"

f="/home/tintin/Téléchargement/*.nawak"



Une solution ?
Soigne toi bien !

Est ce que qu'il y a quelqu'un qui à une solution au sujet de ma molette qui ne colle pas de vim, genre raccourci clavier ou paquets à installer ? tongue


Je suis débutant, si à la lecture d'un de mes postes vous avez des suggestions, des liens à me donner ou n'importe quoi qui puisse me faire avancer, n'hésitez pas ! !
Merci smile

Hors ligne

#13 05-02-2015 20:25:44

smolski
administrateur quasi...modo
Lieu : AIN
Distrib. : 8 (jessie) 64 bits + backports
Noyau : 4.6.0-0.bpo.1-amd64
(G)UI : gnome 3.14.1
Inscription : 21-10-2008

Re : Mon premier script

Pas la molette, le clique  droit et choisir coller. smile

"Définition d'eric besson : S'il fallait en chier des tonnes pour devenir ministre, il aurait 2 trous du cul." - JP Douillon
"L'utopie ne signifie pas l'irréalisable, mais l'irréalisée." - T Monod (source :  La zone de Siné)
"Je peux rire de tout mais pas avec n'importe qui." - P Desproges
"saque eud dun" (patois chtimi : fonce dedans)

Hors ligne

#14 05-02-2015 20:39:18

Guizmo
Membre
Lieu : Mello dans l'Oise
Distrib. : Jessie
Noyau : Linux 3.2.0-4-686-pae
Inscription : 03-02-2015

Re : Mon premier script

Merci:)
mais ça ne fonctionne pas, ça colle le dernier truc que j'ai copier sur cette page... Alors que ça copie avec le "y"!

Dernière modification par Guizmo (05-02-2015 20:41:12)


Je suis débutant, si à la lecture d'un de mes postes vous avez des suggestions, des liens à me donner ou n'importe quoi qui puisse me faire avancer, n'hésitez pas ! !
Merci smile

Hors ligne

#15 05-02-2015 20:43:15

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : Mon premier script

@Guizmo Normalement,, le bouton de milieu (la mollette donc sur les souris actuelles) permet de coller le contenu de la selection primaire de X,
c'est ce que désigne le "*
Tu peux utiliser l'autre buffer de X qui sert à faire du copier coller en utilisant "+y

Je ne sais pas si ce que je te raconte va te paraître bien clair. Fais moi le savoir. Je tenterai une explication au besoin wink

La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#16 05-02-2015 20:43:23

Severian
Membre
Distrib. : Debian GNU/Linux 8.6 (jessie)
Noyau : Linux 4.6.0-0.bpo.1-amd64
(G)UI : Openbox 3.6.1-2
Inscription : 13-12-2014

Re : Mon premier script

je suis pas sur le pc linux (je sais honte sur moi d'être sous du proprio à gros sous), mais de mémoire dans les commandes bash il y a pas une différence entre les fichiers * et les fichiers *.*
je ne sais pas si je suis très clair...
un fichier "montexte.txt" sera bougé avec une commande mv *.* /dossierdedestination/
la commande mv * /dossierdedestination/    ne devrait pas le bouger (enfin c'est ce qu'il m'a semblé)

"il est urgent d'attendre" (bendia)
ob3-debian2-150x50.png

Hors ligne

#17 05-02-2015 20:47:21

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : Mon premier script

@Severian Ce n'est pas exact. La commande mv * /destination/ déplacera tout les fichiers et les dossiers (!) à l'exception
des fichiers et des dossiers dont le nom commence par un point.

La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#18 05-02-2015 20:56:09

Guizmo
Membre
Lieu : Mello dans l'Oise
Distrib. : Jessie
Noyau : Linux 3.2.0-4-686-pae
Inscription : 03-02-2015

Re : Mon premier script

Heu... Je suis debout depuis 4h du mat, je vais aller me coucher ac un aspirine lol

Je vous remercie tous bye à demain ! big_smile

Je suis débutant, si à la lecture d'un de mes postes vous avez des suggestions, des liens à me donner ou n'importe quoi qui puisse me faire avancer, n'hésitez pas ! !
Merci smile

Hors ligne

#19 05-02-2015 21:11:51

Severian
Membre
Distrib. : Debian GNU/Linux 8.6 (jessie)
Noyau : Linux 4.6.0-0.bpo.1-amd64
(G)UI : Openbox 3.6.1-2
Inscription : 13-12-2014

Re : Mon premier script

@enicar  ha désolé alors pour les bêtises que j'ai dites (je note ça dans mon p'tit carnet smile
merci de m'avoir corrigé smile

"il est urgent d'attendre" (bendia)
ob3-debian2-150x50.png

Hors ligne

#20 05-02-2015 21:52:32

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
Inscription : 07-07-2008
Site Web

Re : Mon premier script

(Pour désactiver la souris dans vim, et donc activer le copier/coller par sélection, « :set mouse= » en mode commande (le mode Escape))

captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#21 07-02-2015 09:39:20

Guizmo
Membre
Lieu : Mello dans l'Oise
Distrib. : Jessie
Noyau : Linux 3.2.0-4-686-pae
Inscription : 03-02-2015

Re : Mon premier script

@enicar
Je comprends qu'il y a 2 endroits où les "copié(s)" se stockent et que tu me proposes d'utiliser l'autre smile
par contre je ne comprends pas :

en utilisant "+y


Je crois que des explications complémentaires seraient les bienvenues... big_smile

@Admin-Girafe
J'ai tenté dans vim

:!set mouse=


ça ne m'a rien donné.. c'est probablement que je n'ai pas fait ce qu'il fallait, merci pour ta réponse en tous cas !

Dernière modification par Guizmo (28-03-2015 10:38:00)


Je suis débutant, si à la lecture d'un de mes postes vous avez des suggestions, des liens à me donner ou n'importe quoi qui puisse me faire avancer, n'hésitez pas ! !
Merci smile

Hors ligne

#22 07-02-2015 11:24:22

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : Mon premier script

@Guizmo

Quelques explications complémentaires.

Dans vim il existe plusieurs registre dans lesquels on peut stocker du texte. Certains registres sont utilisés par vim
lorsqu'on copie avec « y  » ou que l'on coupe avec « d ».

D'autres registres désignés par une lettre de a à z sont à la disposition de l'utilisateur.
Ainsi, si on veux garder une copie de la ligne courante dans le registre a, on fera  "ayy
Cela marche également lorsqu'on supprime une ligne complète avec dd : "add copiera la ligne dans le registre a

Viim utilise d'autres registres de manière automatique, notamment les registres de 0 à 9 et d'autres registres désignés par un symbole.
Les registres 0 à 9 sont utilisé lors des opérations de copie (avec y) et de suppression (avec d).

Parmi les registres désignés par un symbole il y a les deux tampons de copie de X (désigné par sélection primaire et sélection  secondaire dans les documentations de X). "* désigne le tampon de copie de sélection primaire, c'est le tampon dans lequel X copie automatiquement toute sélection de texte.
"+ désigne l'autre tampon, celui qui est utilisé par les applications qui imitent le comportement plus connu à la « ctrl-C/ctrl-V »

Voilà pour les registres, il y aurait beaucoup d'autres choses à dire à ce sujet, mais c'est un bon début smile

En ce qui concerne la commande de copie (appeler yank dans la documentation  de vim), il faut bien comprendre comment on l'utilise.
On peut s'y prendre de plusieurs manière. La première façon de l'utiliser est celle que l'on utilisait déjà dans le vi original.
On utilise y suivit d'une commande de mouvement. Par exemple, pour copier deux lignes on utilise : yj
j étant la commande qui permet déplacer le curseur d'une ligne vers le bas. Avec yj on copie la courante et celle d'en dessous. Remarque que le curseur
ne se déplace pas lors d'une copie. Une fois ce texte copier, on peut le coller avec la commande p (paste).
Toutes les commandes de mouvements peut être utilisés pour réaliser des copies, ainsi y$ copiera le texte depuis la position courante jusqu'à la fin de la ligne.

Une seconde méthode peut être utilisé avec vim pour utiliser les commandes de copie (y) et de suppression (d) : le mode visuel (ou visual).
Ce mode est activé par défaut lorsque vim tourne sur un unix en mode graphique (avec gvim) et que la souris est utilisé pour faire une sélection.
Dans un terminal, le mode visual n'est pas utilisé par défaut. On peut utiliser le mode visual sans utiliser la souris avec la commande v.
Donc on tape v et on sélectionne le texte que l'on veut avec des commandes de mouvements (y compris les flèches habituels, ce n'est pas pas la meilleure habitude, mais bon…) et ensuite on utiliser une commande de copie ou de suppression !
Ainsi, pour reprendre l'exemple précédent pour copier les deux lignes à partir de la courante : 0vj$y
Décryptons tout cela : 0 permet de mettre le curseur en début de ligne, v passe en mode visual, j descend d'une ligne, $ déplace le curseur en fin de ligne
et y copie le tout (dans le registre "" et le registre "0)

Enfonçons définitivement le clou ! Donc si je veux copier deux lignes dans le tampon de sélection primaire de X en utilisant le mode visual, cela donnera :
"*0vj$y


Pour plus d'explications, tu peux te référer à la documentation de vim, notamment le manuel de l'utilisateur qui a été traduit en français (à lire absolument !).
La documentation de vim en français est disponible ici : http://cfennajoui.net/vim/index.php?p_menu=presentation

La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#23 07-02-2015 13:02:11

Guizmo
Membre
Lieu : Mello dans l'Oise
Distrib. : Jessie
Noyau : Linux 3.2.0-4-686-pae
Inscription : 03-02-2015

Re : Mon premier script

Aaahhhhh enicar est un des geeks à longue barbe dont on m'avait parlé ! ! lol
Merci pour ta réponse ! smile
C'est assez dense, je reviendrai dessus...
Pour le moment j'ai testé : surligner du texte avec la souri tenté "+y, puis « ctrl-C/ctrl-V » pour coller sur cette page internet, ça ne fonctionne pas.

Là je suis sur la commande "at" qui me fait des caprices me semble.. Je ne comprends pas pourquoi elle n'exécute pas ma commande, alors qu'elle la valide.

$ at 11:43
warning: commands will be executed using /bin/sh
at> ls -l
at> <EOT>
job 29 at Sat Feb  7 11:43:00 2015
 



!?

Dernière modification par Guizmo (07-02-2015 13:05:29)


Je suis débutant, si à la lecture d'un de mes postes vous avez des suggestions, des liens à me donner ou n'importe quoi qui puisse me faire avancer, n'hésitez pas ! !
Merci smile

Hors ligne

#24 07-02-2015 13:12:57

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : Mon premier script

Il faudrait faire 2 nouveaux posts, un pour vim et un pour tes problèmes avec la commande at

Sinon, c'est juste un avertissement de la commande, pas vraiment un problème. Je ne sais pas si c'est normal toutefois.
On doit pouvoir préciser le shell à utiliser pour la commande… Le problème étant que sh n'est pas forcément le shell que tu utilises comme
login shell. Souvent on utilise dash, un shell plus léger que bash, zsh et consort

La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#25 07-02-2015 13:15:30

Guizmo
Membre
Lieu : Mello dans l'Oise
Distrib. : Jessie
Noyau : Linux 3.2.0-4-686-pae
Inscription : 03-02-2015

Re : Mon premier script

à priori j'utilise bash "env" me revoie SHELL=/bin/bash

Dernière modification par Guizmo (07-02-2015 13:23:11)


Je suis débutant, si à la lecture d'un de mes postes vous avez des suggestions, des liens à me donner ou n'importe quoi qui puisse me faire avancer, n'hésitez pas ! !
Merci smile

Hors ligne

Pied de page des forums