Table des matières (masquer)

  1. 1. Les commandes indispensables
  2. 2. Raccourcis clavier
  3. 3. Le système de fichiers
    1. 3.1 /bin
    2. 3.2 /boot
    3. 3.3 /dev
    4. 3.4 /etc
    5. 3.5 /home
    6. 3.6 /lib
    7. 3.7 /lost+found
    8. 3.8 /media et /mnt
    9. 3.9 /opt
    10. 3.10 /proc
    11. 3.11 /root
    12. 3.12 /sbin
    13. 3.13 /srv
    14. 3.14 /sys
    15. 3.15 /tmp
    16. 3.16 /usr
    17. 3.17 /var
  4. 4. Informations sur le système
  5. 5. Quelques exemples de commandes en ligne
    1. 5.1 Transformer tous les ogg en wav dans le répertoire courant
    2. 5.2 Transformer tous les wav en mp3 dans le répertoire courant
    3. 5.3 Remplacer tous les espaces dans tous les fichiers du répertoire courant par des _ :
    4. 5.4 Renommer tous les fichiers mp3 en 001.mp3, 002.mp3 etc… :
    5. 5.5 Mettre les noms de fichiers en minuscules :
    6. 5.6 Changer les extensions jpeg de tous les fichiers d’un réperoire en jpg
    7. 5.7 Remplacer une expression par une autre dans tous les fichiers .mp3 du répertoire courant
    8. 5.8 Renommer tous les fichiers de la forme *titi* par *toto*
    9. 5.9 Imprimer 4 pages de input.pdf sur chaque feuille ici : la 12, la 10 et de 20 à 30 dans out.pdf
    10. 5.10 Concaténer tous les pdf du dossier en un seul nommé out.pdf
    11. 5.11 Remplacer les esapces par des _ dans tous les noms des fichiers du répertoire courant
    12. 5.12 Couper film.avi en film1.avi(la première heure) + film2.avi(le reste)
    13. 5.13 Encoder une vidéo pour un palm
    14. 5.14 Encoder une vidéo pour un téléphone portable
    15. 5.15 Encoder une vidéo pour le web (format flv)
    16. 5.16 Convertir les ogg en mp3 avec un petit exécutable bash
    17. 5.17 Trouver un fichier avec locate
    18. 5.18 Trouver un fichier avcec find





1.  Les commandes indispensables

Commandes linuxéquivalent MsDosà quoi ça sertExemples :
cdcdchange le répertoire courant.cd ..
→ va dans le répertoire parent du répertoire courant
cd /home/gaston/.firefox
→ va dans le répertoire désigné
lsdiraffiche le contenu d’un répertoirels
→ affiche le contenu du répertoire courant
ls -l
→ affiche le contenu du répertoire courant de manière détaillée
ls -alh /home/user
→ affiche le contenu du répertoire, ainsi que les fichiers cachés avec la taille en Ko ou Mo
touchpas
d’équivalent
Crée un fichier videtouch monFichier
→ Crée le fichier monFichier
cpcopy
xcopy
copie un ou plusieurs fichierscp toto /tmp
→ copie le fichier toto dans le répertoire /tmp
cp toto titi
→ copie le fichier toto sur le fichier titi
cp -R /home/user /tmp/bak
→ copie le répertoire /home/user ainsi que tout ce qu’il contient dans /tmp/bak
rmdelefface un ou plusieurs fichiersrm toto titi
→ efface les fichiers toto et titi sans demander confirmation
rm -rfdeltreeefface un répertoire et son contenurm -rf /tmp/*
→ efface (sans demander de confirmation) tous les fichiers et répertoire de /tmp
mkdirmdcrée un répertoiremkdir /home/user/mesDocuments
→ crée le répertoire “mesDocuments” dans le sous répertoire /home/user
Attention! la commande mkdir /home/user/mes documents pourrait vous surprendre !
rmdirrmefface un répertoire s’il est vidermdir /home/user/rep
→ efface le répertoire rep de /home/user/ si celui-ci est vide
mvren
move
déplace ou renomme un ou des fichiersmv tata titi
→ renomme tata en titi
mv * *.bak
→ ne fonctionne pas !!!!
mv * /tmp/bak
- déplace tous les fichiers du répertoire courant vers le répertoire /tmp/bak
finddir -strouve un fichier répondant à certains critèresfind /home -name “*bash*”
→ trouve tous les fichiers contenant le mot bash dans leur nom se trouvant dans le répertoire /home
locatedir -strouve un fichier d’après son nomlocate bash
→ trouve tous les fichiers contenant le mot bash dans leur nom complet (avec le répertoire) : à la différence de find, locate trouve ses informations dans une base de donnée créée par updatedb ce qui est plus rapide
manhelpaffiche l’aide concernant une commande particulièreman ls
→ affiche l’aide (page de manuel) de la commnade ls.
On quitte man en appuyant sur la touche ‘q’
chmodpas
d’équivalent
modifie les permissions d’un fichierchmod o+r /home/user
→ autorise les autres (o=other) (ie: ceux qui ne sont ni le propriétaire, ni membre du groupe propriétaire) à lire (r=read) le répertoire /home/user
chmod a+rw /home/user/unfichier
→ autorise tout le monde (a=all) à lire et écrire (w=write) dans le fichier /home/user/unfichier
chownpas
d’équivalent
modifie le propriétaire d’un fichierchown user unfichier
→ rend user propriétaire de unfichier.
chgrppas
d’équivalent
modifie le groupe proprétaire d’un fichierchgrp -R nobody /home/httpd
→ rend le groupe : nobody (un groupe ayant très peu de droit sur un système linux) propriétaire de /home/httpd ainsi que tout les fichiers qu’il contient (-R)
ln -spas
d’équivalent
crée un lien vers un fichierln -s .Trash Corbeille
→ crée un lien de Corbeille vers .Trash
greppas
d’équivalent
recherche une chaine dans un fichier (en fait recherche une expression régulière dans plusieurs fichiers)grep chaine *.txt
→ recherche la chaine ‘chaine’ dans tous les fichier se terminant par .txt.
whichpas
d’équivalent
trouve le répertoire dans lequel se trouve une commandewhich firefox
→ retourne le nom du répertoire dans lequel se trouve le lanceur du programme Firefox.
cattypeaffiche un fichier à l’écrancat .mozilla/firefox/profiles.ini
→ affiche le contenu du fichier profiles.ini du répertoire caché .mozilla/firefox/
less?lire un fichier à l’écranless /etc/apt/sources.list
→ permet de lire le contenu du fichier sources.list
On quitte less en appuyant sur la touche ‘q’
En tapant /monMot puis [Entrée] on recherche la chaîne “monMot” et on passe en revue les résultats en tapant n

2.  Raccourcis clavier

  • Tab
    Taper une fois la touche [Tab] permet de compléter automatiquement un nom de fichier/répertoire s’il est unique :
    $ cd /et  [Tab]
    $ cd /etc
  • Tab Tab
    Si lors du premier appui sur [Tab], le nom n’a pas été complété, un deuxième appui vous donne la liste de toues les possibilités :
    $ cd /usr/fi  [Tab][Tab]
    file            file-roller     find            finger          firefox
  • Flèche vers le haut (ou Ctrl-P) / bas (ou Ctrl-N)
    La flèche vers le haut permet de remonter dans l’historique des commandes, la flèche vers le bas permet de revenir.
  • Shift - flèche vers le haut/bas
    Permet de scroller le contenu du terminal texte vers le haut ou le bas, d’une ligne. En effet, les lignes qui ont défilé vers le haut restent en mémoire et restent accessibles.
  • Shift - Page up/down
    La même chose, mais page par page.
  • Ctrl-C
    Arrête le processus en cours, celui qui a été lancé par la dernière commande.
  • Ctrl-Z
    Stoppe le processus en cours, celui qui a été lancé par la dernière commande, mais ne le détruit pas : il reste en attente. Pour le mettre en tâche de fond (il continue à s’exécuter, mais vous pouvez continuer à taper des commandes), tapez bg. Pour le faire revenir en avant, taper fg.
  • Ctrl-D
    Ferme le terminal en cours (similaire aux commandes exit ou logout).
  • Ctrl-Alt-Fn
    Se place sur la console virtuelle numéro n. Par défaut, il y a en général 6 consoles texte virtuelles, de F1 à F6, pour revenir à l’interface graphique : Alt-F7
  • Ctrl-Alt-Backspace
    Cela permet de tuer l’interface graphique et de revenir à l’interface de login. A n’utiliser qu’en cas d’urgence quand plus rien ne fonctionne.
  • Ctrl-Alt - Flèche droite/Flèche gauche
    Permet de passer d’un bureau à l’autre

3.  Le système de fichiers

Si vous lancez le navigateur et que vous cliquez sur système de fichiers, l’ensemble des répertoires situés à la racine du système Linux apparaissent. EN ligne de commande, on peut lister l’ensemble de ces répertoires en tapant :

$ ls -l

Nous allons voir comment est organisée l’arborescence de ce système Linux, répertoire par répertoire.

3.1  /bin

Il contient de nombreuses commandes de base (en binaire) accessibles à tout utilisateur :

$ ls /bin
bash                      echo            mkdir       sleep
bunzip2                   ed              mknod       stty
................
bzip2recover              gzexe           ntfs-3g     umount
bzless                    gzip            pidof       uname
bzmore                    hostname        ping        uncompress
cat                       ip              ping6       vdir
check-foreground-console  kbd_mode        ps          which
chgrp                     kill            pwd         zcat

On retrouve kill qu’on utilise pour tuer un programme, ping qui permet de tester les connexions réseau, ou encore mkdir avec lequel on peut créer un répertoire, etc…
D’autres programmes se trouvent dans /sbin ou /usr/bin

3.2  /boot

Il contient ce qui concerne le démarrage de Linux:

  • le nécessaire pour le gestionnaire de démarrage GRUB; notamment les infos affichées au démarrage de l’ordinateur dans /boot/grub/menu.lst voir Modifier le gestionnaire de démarrage?.
  • le noyau Linux

3.3  /dev

Il contient les fichiers premettant de communiquer avec les périphériques (devices en anglais). On y trouve /dev/sda1, /dev/sda2,… qui sont les points d’accès aux partitions du disque dur (SCSI, S-ATA ou USB pour les disques dur IDE ce sera /dev/hda1,…) pour les parcourir, s’ils ne sont pas déjà montés (ce qu’on vérifie par la commande mount), on fait appel à la commande :

$ sudo mkdir /media/mondisque
$ sudo mount /dev/sda2 /media/mondisque

On y trouve aussi /dev/fd qui est le lien vers le lecteur de disquette, /dev/tty* qui correspondent aux terminaux, /dev/input/mice et /dev/psaux correspondant généralement à la souris et au touchpad des ordinateurs portables…
La liste est encore longue, comme vous le voyez vous même :

$ ls /dev
2-2        ptyd4  ptysc  ptyy4       tty24  ttyc9  ttyS0  ttyx5
agpgart    ptyd5  ptysd  ptyy5       tty25  ttyca  ttys1  ttyx6
audio      ptyd6  ptyse  ptyy6       tty26  ttycb  ttyS1  ttyx7
bus        ptyd7  ptysf  ptyy7       tty27  ttycc  ttys2  ttyx8
cdrom      ptyd8  ptyt0  ptyy8       tty28  ttycd  ttyS2  ttyx9
cdrw       ptyd9  ptyt1  ptyy9       tty29  ttyce  ttys3  ttyxa
console    ptyda  ptyt2  ptyya       tty3   ttycf  ttyS3  ttyxb
core       ptydb  ptyt3  ptyyb       tty30  ttyd0  ttys4  ttyxc
disk       ptydc  ptyt4  ptyyc       tty31  ttyd1  ttys5  ttyxd
dri        ptydd  ptyt5  ptyyd       tty32  ttyd2  ttys6  ttyxe
dsp        ptyde  ptyt6  ptyye       tty33  ttyd3  ttys7  ttyxf
dvd        ptydf  ptyt7  ptyyf       tty34  ttyd4  ttys8  ttyy0
.............

3.4  /etc

C’est un répertoire très important puisqu’il contient (presque) tous les fichiers de configuration éditables par l’utilisateur ( editing text config en anglais ). Par exemple :

  • /etc/apt/ contient les informations relatives aux paquets installés sur votre Linux Ubuntu (ou Debian) notamment le fichier sources.list dont nous avons parlé dans configuration du sources.list?
  • /etc/X11 contient les informations relatives au gestionnaire graphique. Notamment le fichier xorg.conf
  • /etc/cups contient les informations relatives au gestionnaire d’impression cups (common unix printing system)
  • /etc/rc*.d et /etc/init.d/ contiennent les scripts de démarrage du système Linux ainsi que des services essentiels.

3.5  /home

C’est le répertoire qui contient les répertoires des utilisateurs possédant un compte sur la machine. L’administrateur root possède aussi un répertoire personnel mais il se situe ailleurs : /root.

3.6  /lib

C’est le répertoire où se trouvent les bibliothèques logicielles (librairies en anglais) nécessaires pour les exécutables de /bin et /sbin. On y trouve aussi les modules utiles pour le noyau (dans /lib/modules/2.6.*)

3.7  /lost+found

C’est un répertoire qui, comme son nom l’indique permet de retrouver des fichiers récupérés après un incident ou un arrêt brutal ayant entraîné des dégâts. Ce répertoire est nomalement vide.

3.8  /media et /mnt

Ces répertoires contiennent les points de montage des différents périphériques de stockage. Dans les fait, sous Ubuntu, /mnt est vide et c’est /media qui est utilisé. On y retrouve les disques durs, lecteurs de cd, de dvd, le lecteur de disquette et les périphériques USB qui s’y montent automatiquement.

3.9  /opt

On y trouve les logiciels optionnels : ceux qui sont installés mais ne font pas normalement partie de la distribution; autrement dit, sous Ubuntu, ceux qui ont été installés sans faire appel au gestionnaire apt ou synaptic.

3.10  /proc

Système de fichiers virtuel renseigant le noyau sur les différents processus en cours d’exécution et la machine. Par exemple la commande suivante vous renseignera sur vos disques durs et lecteurs cdrom :

$ cat /proc/scsi/scsi 
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: HTS421210H9AT00  Rev: HABO
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi0 Channel: 00 Id: 01 Lun: 00
  Vendor: HL-DT-ST Model: DVDRAM GSA-4082N Rev: HR02
  Type:   CD-ROM                           ANSI  SCSI revision: 05

Essayez aussi la commande suivante pour obtenir des infos sur votre processeur :

$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 13
model name      : Intel(R) Pentium(R) M processor 1.70GHz
.....

3.11  /root

C’est le répertoire personnel de l’administrateur. Les répertoires personnles des autres utilisateurs se situent dans /home.

3.12  /sbin

Il contient de nombreuses commandes de base (en binaire) réservées à l’administrateur root, par exemple fdisk l’outil de partitionnement ou ifdown qui permet de désactiver un périphérique réseau.

3.13  /srv

Ce répertoire peut contenir des données concernant les services proposés par la machine.

3.14  /sys

Avec /proc, l’autre système de fichiers virtuel renseigant le noyau sur l’état des périphériques, des module, firmwares etc…

3.15  /tmp

C’est le répertoire contenant les fichiers temporaires. C’est là que les programmes stockent les données temporaires pour les effacer ensuite.

3.16  /usr

Ce dossier (unix system resources) contient des éléments non indispensables au fonctionnement minimal du système. On y trouve par exemple :

  • /usr/bin le dossier contenant une (très longue) liste de programmes installés sur la machine (firefox, gimp, openoffice…)
  • /usr/sbin le dossier contenant des commandes d’administration système non indispensables au démarrage de Linux
  • /usr/lib le dossier des bibliothèques logicielles nécessaires pour les pogrammes de /usr/bin
  • /usr/share le dossier des ressources partagées par les programmes de /usr/bin :
    • /usr/share/wallpapers contient… devinez ;-)
    • /usr/share/pixmaps contient de nombreuses icônes
    • /usr/share/man contient les pages de manuel qu’on appelle par la commande man
  • /usr/src contient le code source du noyau et de différents logiciels

3.17  /var

Ce dossier contient les informations variables liées à la machine comme

  • les journaux (fichiers recensant les évènements survenus sur la machine) par exemple /var/crash/
  • /var/cache/apt/archives/ une sauvegarde des paquets téléchargés avant leur installation par apt ou synaptic
  • /var/log/ fichiers de log (traces des activités des processus)
  • /var/spool les files d’attente des services :
    • /var/spool/cups en attente d’impression
    • /var/spool/cron gérées par le planificateur de tâches

4.  Informations sur le système

Quel est le système ?lsb_release -idc
→ affiche le nom de la distribution linux
uname -a
→ affiche diverses informations système
cat /proc/cpuinfo
→ affiche des informations sur le microprocesseur (type, fréquence, cache …)
Depuis l’ordinateur est-il actif ?uptime
→ affiche l’heure, la durée d’activité du système, le nombre d’utilisateurs …
Qu’en est-il des disques, de la mémoire, du microprocesseur ?mount
→ affiche la liste des disques montés.
df -ah (df : disk free)
→ affiche au format humain l’espace total, occupé, libre sur tous les disques.
du -ah (du: directory use)
→ affiche au format humain la taille du répertoire courant
du -h
→ affiche la taille du répertoire courant et de ses sous-répertoires
free ou cat /proc/meminfo
→ affiche des informations sur la mémoire (totale, libre, swap …).
ps aux
→ permet de lister les processus actifs et la harge mémoire et cpu qu’ils représentent
Qui suis-je, où suis-je et qui est ou était connecté au système ?whoami
→ affiche vos coordonnées dans le système.
pwd
→ affiche le nom du répertoire où vous vous trouvez
last
→ affiche la liste des dernières connexions.
Quelles sont la date et l’heure ?date
→ affiche la date et l’heure.
cal
→ affiche un calendrier du mois en cours.
cal 1789
→ affiche le calendrier de l’an 1789
date MMDDHHmmAA
→ Règle la date (MM=mois, DD=jour, HH=heure, mm=minutes, AA=année)
→ Exemple : 1224235907 = une minute avant noël 2007
Quels sont les composants dans mon ordinateurlspci
→ liste les cotrôleurs usb, cartes réseau, cartes graphiques contenues dans votre ordinateur
lsusb
→ liste les périphériques usb branchés sur la machine

5.  Quelques exemples de commandes en ligne

5.1  Transformer tous les ogg en wav dans le répertoire courant

$ for i in *.wav ; do oggdec $i; done

5.2  Transformer tous les wav en mp3 dans le répertoire courant

$ for i in *.wav ; do lame $i; done

5.3  Remplacer tous les espaces dans tous les fichiers du répertoire courant par des _ :

$ for i in *\ *; do mv "$i" `echo $i | tr " " "_"`; done

5.4  Renommer tous les fichiers mp3 en 001.mp3, 002.mp3 etc… :

$ SEQ="000"; i=0; for f in *.mp3; do filename="${SEQ:${#i}}$i.mp3"; mv $f $filename; ((i++)); done

5.5  Mettre les noms de fichiers en minuscules :

$ for i in *; do mv "$i" `echo $i | tr [:upper:] [:lower:]`

5.6  Changer les extensions jpeg de tous les fichiers d’un réperoire en jpg

$ for i in *.jpeg; do mv $i `basename $i jpeg`jpg; done

5.7  Remplacer une expression par une autre dans tous les fichiers .mp3 du répertoire courant

Dans cet exemple, on remplace bach par J-S_Bach

$ perl -i.bak -pe 's/bach/J-S_Bach/g *.mp3

5.8  Renommer tous les fichiers de la forme *titi* par *toto*

$ for i in *; do mv $i `echo $i | sed -e "s/titi/toto/g"`; done

5.9  Imprimer 4 pages de input.pdf sur chaque feuille ici : la 12, la 10 et de 20 à 30 dans out.pdf

$ pdfnup input.pdf --pages 12,10,20-30 --nup 2x2 --outfile out.pdf

l’utilitaire pdfnup est présent dans le paquet pdfjam.

5.10  Concaténer tous les pdf du dossier en un seul nommé out.pdf

$ pdfjoin --outfile out.pdf *.pdf

5.11  Remplacer les esapces par des _ dans tous les noms des fichiers du répertoire courant

$ for i in *\ *; do mv "$i" `echo $i | tr " " "_"`; done

Explication :
for i in *\ *, fait que la variable i prend succesivement comme valeur chacun des noms des fichiers du répertoire courant contenant un espace (notez bien l’espace après le \, c’est ainsi que l’on déclare un espace dans un nom sous linux). Pour chaque valeur de i on exécute une commande étrange…

  • mv pas de problème c’est la commande pour renommer un fichier (oui, déplacer ou renommer un fichier sont deux actions équivalentes).
  • C’est avec “Dollar i” que l’on récupère la valeur qui est dans i et qu’elle est passée comme premier argument de mv.
  • Donc la dernière commande, la plus bizarre, est chargée de transformer le nom de fichier Dollar i en un nom dont les espaces ont étés remplacés par des _. Elle fonctionne de manière très simple car tr est une commande unix conçue pour effectuer des remplacements… La subtilité réside dans l’utilisation des ` (anti-quote). Ils sont là pour “protéger” la commande (qui est en réalité un enchainnement de commandes comportant une redirection - symbole |) et ainsi indiquer que c’est l’ensemble de la commande qui doit être passé comme second argument à mv.

5.12  Couper film.avi en film1.avi(la première heure) + film2.avi(le reste)

$ mencoder -endpos 1:00:00 film.avi -oac copy -ovc copy -o film1.avi
$ mencoder -ss     1:00:00 film.avi -oac copy -ovc copy -o film2.avi

5.13  Encoder une vidéo pour un palm

Après avoir installé mencoder tapez la commande suivante (en une seule ligne)

$ mencoder input.avi -oac mp3lame -lameopts abr:br=25 
    -ovc lavc -lavcopts vcodec=mpeg4:vhq:v4mv:vqmin=2:vbitrate=250 -vf pp=de,scale=320:131 -ofps 12 -o output.avi

Explication :

  • abr:br=25 : bitrate audio=25kB/s
  • lavc -lavcopts : utilisation de la bibliothèque logicielle libavcodec avec les options qui suivent :
  • vcodec=mpeg4:vhq:v4mv:vqmin=2:vbitrate=250 : codec mpeg4(DivX) bitrate vidéo=250kB/s
  • scale=180:131 : largeur=180, hauteur=131
  • -ofps 12 : 12 images par secondes

Avec ces réglages, j’obtiens un fichier de qualité acceptable parfaitement lisible sur mon Zaurus.

D’autres infos sur http://www.hyjoo.com/sujet-24236.html

5.14  Encoder une vidéo pour un téléphone portable

Source :http://slist.lilotux.net/linux/3gp/
D’abord, retailler la vidéo sans le son

  • pour une vidéo au format de base 4/3, la commande suivante fonctionne bien :
$ mencoder input.mpg -nosound -ovc lavc -lavcopts vcodec=mpeg4 -vop expand=176:144,scale=176:-2 -o output.avi -ofps 12
  • pour une vidéo 16/9, il serait peut être utile de couper un peu à gauche et à droite pour gagner en hauteur. Essayez plutôt cette commande : :
$ mencoder input.mpg -nosound -ovc lavc -lavcopts vcodec=mpeg4 -vop crop=176:144,expand=250:144,scale=250:-2 -o output.avi -ofps 12
  • pour une vidéo au format de base 4/3, dans laquelle vous voulez incruster les sous-titres (au format srt récupérés) que vous décalez de deux secondes. Essayez la commande suivante (en une seule ligne) :
$ mencoder input.mpg -nosound -ovc lavc -lavcopts vcodec=mpeg4 -sub sousTitres.srt -subdelay -2 -vop
         crop=176:144,expand=250:144,scale=250:-2 -o output.avi -ofps 12

Ensuite extraire le son et enfin réinclure le son au bon format dans la vidéo 3gp :

$ mplayer -vo null -ao pcm -af resample=8000,volume=+4db:sc input.mpg
$ ffmpeg -i output.avi -i audiodump.wav -b 128k -ac 1 -ab 16k -map 0.0 -map 1.0 output.3gp

Testé sur un Samsung-E840 avec une vidéo de 25 minutes. Résultat : un fichier de 25Mo tout à fait convenable pour l’écran du téléphone.

5.15  Encoder une vidéo pour le web (format flv)

Source : http://www.billyboylindien.com/blog/tutos/convertir-videos-avi-wmv-flv/

$ mencoder video.avi -forceidx -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -of lavf  -oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc -lavcopts vcodec=flv:vbitrate=250:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -vf scale=360:240 -o video2.flv

5.16  Convertir les ogg en mp3 avec un petit exécutable bash

#!/bin/bash

find_tag() {
 TAG=`ogginfo "$1" | grep -i "$2" | awk -F"=" '{print $2}'`
}

echo "-----------------------------------------------------"
echo "[1] ogg -> mp3"
echo "[2] ogg -> mp3 + effacer ogg"
echo "Que souhaitez-vous ? [1]"
read choice
if (test -z $choice); then
  compt=1
fi
echo "-----------------------------------------------------"
echo "Numero du premier fichier mp3 ? [1]"
read compt
if (test -z $compt); then
  compt=1
fi
echo "-----------------------------------------------------"
echo "Nom de l'album"
read album
echo "Nom de l'artiste"
read artiste
echo "-----------------------------------------------------"
echo ""
for fichier in *.ogg
do
 mv "$fichier" `echo $fichier | tr " " "_"`
done
echo ""
mkdir -p mp3
SEQ="000"
for fichier in *.ogg
do
 filenumber="${SEQ:${#compt}}$compt"
 find_tag $fichier title && titre=`echo $TAG | tr "/" " "`
 echo "-----------------------------------------------------"
 echo "Conversion de $titre"
 echo "-----------------------------------------------------"
 oggdec $fichier -o `echo "$fichier.wav"`
 lame -h `echo "$fichier.wav"` -tt "`echo "mp3/$filenumber $titre.mp3"`"
 lltag --yes -t "$titre" -n "$filenumber" -A "$album" -a "$artiste" "`echo "mp3/$filenumber $titre.mp3"`"
 ((compt++))
done
rm *.wav

if (test $choice -eq 2); then
 mv mp3/* .
 rm *.ogg
 rm -rf mp3/
fi
echo "-----------------------------------------------------"
echo "Travail terminé. A+ ;-)"

5.17  Trouver un fichier avec locate

$ locate nom_du_fichier

Cette commande affichera toutes les occurrences trouvées. Que ce soit une partie du nom d’un répertoire ou d’un fichier. Il se peut donc qu’il y ait beaucoup d’occurrences !

Pour que la commande locate fonctionne, il faut préalablement créer sa base de données utile. Il faut pour cela éxecuter la commande updatedb en tant que root.

$ sudo updatedb 

Cette commande permet également de mettre à jour la base de données (sinon les modifications du système de fichier ne seront pas prises en compte). Sous Ubuntu, updatedb est exécutée régulièrement et automatiquement.

5.18  Trouver un fichier avcec find

$ find / -name "fichier.txt"

Cette commande affichera tous les fichiers se nommant fichier.txt à partir du répertoire racine. Il est possible d’utiliser les expressions régulières :

$ find / -name "toto*"

Le résultat sera tous les fichiers et répertoires commençant par toto, suivi de n’importe quelle occurrence. Pour éviter d’avoir les “permission denied” sur des répertoires :

$ find / -type f -name "le_fichier_a_chercher" 2>/dev/null

find est très puissant, et permet aussi d’employer les expressions régulières, comme le montre l’exemple suivant qui permet de trouver tous les fichiers contenant une chaine ou une regexp dans une arborescence :

$ find <repertoire_depart> -type f -exec grep -H "<chaine_ou_regexp>" {} ;

Lorsqu’il s’agit de gros volumes de fichiers :

$ find <repertoire_depart> -type f | xargs grep -H "<chaine_ou_regexp>"

Renommer tous les fichiers contenant chaine en str :

$ for i in `ls *chaine*` ; do mv $i `echo $i | sed 's/chaine/str'` ; done

En récursif sur une arborescence :

$ for i in `find . -type f -name "*chaine*" ; do mv $i `echo $i | sed 's/chaine/chene'` ;done

Il y a même moyen d’effectuer des opérations sur fichier en appelant des scripts externes; par exemple : changer toutes les option=true en option=false dans tous les fichiers *.conf en recursif en gardant une copie de sauvegarde :

$ find . -type f -name "*.conf" | xargs perl -pi.save -e 's/option\=true/option\=false/'