Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
30 juin 2010

htmlpdflatexmanmd




dd

dd

Copie de fichier et conversions

OPTIONS

if=FILE lit FILE au lieu de l'entrée standard
of=FILE Écrit dans FILE au lieu de la sortie standard. par défaut tronque aux octets '0'
ibs=BYTES Définis la taille de block en entrée (défaut 512 octets)
obs=BYTES Définis la taille de block en sortie (défaut 512 octets)
bs=BYTES Définit la taille de block en entrée et en sortie. ça force dd à lire et écrire par block.
cbs=BYTES définit la taille de block de conversion. En convertissant des enregistrements de longueur variable à des longueurs fixes (conv=block) ou inversé (conv=unblock), utilise BYTES comme longueur d'enregistrement.
skip=BLOCKS saute BLOCKS dans le fichier d'entée avant de copier
seek=BLOCKS saute BLOCKS dans le fichier de sortie avant de copier
count=BLOCKS copie BLOCKS dans le fichier d'entrée.
status=noxfer n'affiche pas le taux de transfert et les statistiques de volume quand dd se termine.
conv=CONVERSION[,CONVERSION]... Convertit le fichier comme spécifié par CONVERSION :

        ascii Convertit EBCDIC vers ASCII.
        ebcdic Convertit ASCII vers EBCDIC
        ibm Convertit ASCII vers EBCDIC alternatif
        block pour chaque ligne dans l'entrée, sort cbs octets, remplaçant un newline par un espace et en complétant avec des espaces si nécessaire.
        unblock remplace les espaces à la fin dans chaque block d'entrée de taille cbs par un newline.
        lcase Change les lettres majuscules en minuscules
        ucase Change les lettres minuscules en majuscules
        swab inverse chaque pair d'octets en entrée.
        noerror Continue même en cas d'erreurs
        nocreat ne crée pas de fichier de sorite, il doit déjà exister.
        excl échoue si le fichier de sorite existe déjà.
        notrunc Ne tronque pas le fichier de sortie
        sync complète chaque block d'entrée à la taille de ibs, en complétant avec des '0', ou des espace si block ou unblock est spécifié.
        fdatasync Synchronise les données en sortie juste avant de finir. Cela force une écrite physique.

iflag=FLAG[,FLAG]... Accède au fichier d'entrée en utilisant les flags spécifiés.
oflag=FLAG[,FLAG]... Accède au fichier de sortie en utilisant les flags spécifiés.

        append Écrit en mode ajout.
        cio Utilise le mode I/O courant pour les données. effectue effectue un I/O direct, outrepassant les requis POSIX.
        direct Utilise I/O direct pour les données, annulant le buffer cache.
        directory Échoue à moins que le fichier soit un répertoire. bcp d'OS ne permettent pas I/O sur un répertoire.
        dsync Utilise I/O synchronisé pour les données. Pour le ficheir de sortie, çà force l'écriture physique pour chaque écriture.
        sync Utilise I/O synchronisé pour les données et les métadonnées.
        nonblock Utilise I/O non-blocking
        noatime Ne met pas à jours le atime des fichiers.
        nofollow ne suit pas les liens symboliques
        nolinks échoue si le fichier à de multiples liens dures.
        binary Utilise I/O binaire, pour les plate-formes distinguant les fichier binaire des fichiers texte.
        text Utilise I/O text.
        fullblock accumule les blocks complet en entrée.

   BYTES et BLOCKS peuvent s'exprimer avec un multiplicateur : b vaut 512, c vaut 1, w vaut 2, ou n'importe quel autre multiplicateur.

  Envoyer un signal INFO (ou USR1 pour les système ne supportant pas INFO) à un processus dd en cour le force à afficher des statisques d'I/O sur l'erreur standard, puis reprend la copie.

Exemples

copie en block de 512 octets entre un disque et une cassette, mais saute le label de 4 KiB au début du disque :
disk=/dev/rdsk/c0t1d0s2
tape=/dev/rmt/0
(dd bs=4k skip=1 count=0 && dd bs=512k) ‹$disk ›$tape
(dd bs=4k seek=1 count=0 && dd bs=512k) ‹$tape ›$disk
Copier une partition de disque dur sur un autre disque dur
dd if=/dev/sda2 of=/dev/sdb2 bs=4096 conv=notrunc,noerror
Cloner un disque dur en entier
dd if=/dev/sda of=/dev/sdb conv=notrunc,noerror
Copier un grand disque sur un autre disque plus petit. La seule différence entre une grande partition et une petite partition, hormis la taille, est la table de partition. Si vous copiez sda vers sdb, un disque entier avec une seule partition, sdb étant plus petit que sda, alors vous devez faire :
dd if=/dev/sda skip=2 of=/dev/sdb seek=2 bs=4k conv=noerror
Réaliser l'image ISO d'un CD
dd if=/dev/hdc of=/home/sam/moncd.iso bs=2048 conv=notrunc
Créer une clé USB bootable
dd if=/home/uubu/insert.iso of=/dev/sdb ibs=4b obs=1b conv=notrunc,noerror
Copier seulement le MBR d'un disque dur
dd if=/dev/sda of=/home/sam/MBR.image bs=446 count=1
Ecrire par dessus toute la place libre d'une partition
dd if=/dev/urandom › fichieroccupanttoutlespacelibre

Astuces

Pour voir la mémoire vive
dd if=/proc/kcore | hexdump -C | less
Quels systèmes de fichiers sont installés
dd if=/proc/filesystems | hexdump -C | less
Tous les modules chargés
dd if=/proc/kallsyms | hexdump -C | less
Table des interruptions
dd if=/proc/interrupts | hexdump -C | less
Depuis combien de temps fonctionne le système
dd if=/proc/uptime | hexdump -C | less
Partitions et tailles en Ko
dd if=/proc/partitions | hexdump -C | less
Etat de la mémoire
dd if=/proc/meminfo | hexdump -C | less
Créer un disque de sauvegarde (dcfldd est un programme qui ajoute aux fonctionnalités de dd l'affichage d'une barre de progression)
dcfldd if=/dev/sda of=/dev/sdb bs=4096 conv=notrunc,noerror
pour réaliser un backup de root puis :
dd if=/home/sam/root.img of=/dev/sda2 (root) bs=4096 conv=notrunc,noerror
Créer un lecteur virtuel
dd if=/dev/zero of=/dev/ram7 bs=1k count=16384
puis :
mkfs.ext3 -m0 /dev/ram7 4096
Copier la mémoire RAM dans un fichier
dd if=/dev/mem of=/home/sam/mem.bin bs=1024
Lire le BIOS
dd if=/dev/mem bs=1k skip=768 count=256 2›/dev/null | strings -n 8

Utilitaires dérivés

ddrescue permet de récupérer des secteurs défectueux
sdd Utile quand la taille des blocs d'entrée est différente de celle des blocs de sortie, et réussira dans des cas où dd échoue
^
30 juin 2010

htmlpdflatexmanmd




cp

cp

Copie de fichiers

   La copie est complètement indépendante de l'original. Si 2 noms de fichiers sont donnés, copie le premier fichier dans le deuxième. Si -t est spécifié ou que le dernier fichier est un répertoire et que -T n'est pas donné, cp copie chaque fichier dans ce répertoire.

  Généralement, les fichiers sont écris comme ils sont lus, à l'exception de l'option --sparse. Par défaut cp ne copie pas les répertoires si -R, -a ou -r est spécifié, cp copie récursivement.

  En copiant un lien symbolique, cp suit le lien seulement quand il réfère à une fichier régulier existant. Par défaut cp copie le contenus des fichiers spéciaux seulement si la copie n'est pas récursive. Peut être modifié par --copy-contents

  cp refuse généralement de copier un fichier dans lui-même, sauf si --force --backup est spécifié, et réfère à un fichier régulier. cp va créer un fichier backup, soit régulier soit numéroté.

OPTIONS

-a, --archive Préserve autant que possible la structure et les attributs des fichiers originaux dans la copie (mais ne tente pas de préserver la structure interne des répertoires.) essaye de préserver le contexte de sécurité SELinux et les attributs étendus, mais ignore les erreurs. Équivalent à -dR --preserve=all sans les diagnostiques.
-b, --backup[=METHOD] Créer une sauvegarde de chaque fichier qui aurait été écrasé ou supprimé.
--copy-contents En copie récursive, copie le contenu des fichiers spéciaux comme s'ils étaient des fichiers réguliers. A généralement un effet indésirable.
-d copie les liens symbolique au lieu de copier leur référence, et préserve les liens durs entre les fichiers sources dans les copies. Équivalent à --no-dereference --preserve=links
-f, --force Si un fichier de destination ne peut pas être ouvert, force sa suppression et essaye de le réouvrir.
-H si un argument spécifie un lien symbolique, copie sa référence au lieu du lien.
-i, --interactive en copiant un fichier autre qu'un répertoire, demande avant d'écraser un fichier existant.
-l, --link Créer des liens dur au lieu de copies de fichier autre que les répertoires.
-L, --dereference Suit les liens symboliques
-n, --no-clobber N'écrase pas de fichier existant
-P, --no-dereference Copie les liens symboliques au lieu de la référence
-p, --preserve[=ATTRIBUTE_LIST] préserve les attributs spécifiés des fichiers originaux. si spécifiés, ATTRIBUTE_LIST doit être une liste séparé par des ',' :

        mode préserve les bits de mode des fichiers et les acl
        ownership préserve le user:group.
        timestamp préserve le atime et mtime quand c'est possible. généralement pas possible pour les liens symboliques.
        links préserve dans les fichiers de destination les liens entre les fichiers source correspondant.
        context préserve le contexte de sécurité SELinux.
        xattr préserve les attributs étendus
        all Préserve tous les attributs des fichiers

--no-preserve=ATTRIBUTE_LIST ne préserve par les attributs spécifiés.
--parents Forme le nom de chaque fichier de destination en ajoutant au dossier cible un '/' et le nom de chaque fichier source. ex : cp --parents a/b/c existing_dir, copie le fichier a/b/c dans existing_dir/a/b/c, créant ainsi les dossiers intermédiaires.
-R, -r, --recursive copie les répertoire récursivement.
--remove-destination supprime chaque fichier existant dans la destination avant de tenter de l'ouvrir.
--sparse=WHEN Les 'sparse files' contiennent des 'trous", une séquence d'octets à 0 qui n'occupent pas d'espace disque. L'appel système read les lit. Cela peut sauver beaucoup d'espace disque et augmenter la vitesse, vu que beaucoup de fichiers binaires contiennent beaucoup d'octets à 0 consécutif. Par défaut, cp détecte des séquences dans les fichiers source et créer le fichier de sortie étendue. WHEN peut être :

        auto Le mode par défaut : si l'entrée est 'sparse', tente de produire un fichier 'sparse', sauf si ce n'est pas un fichier régulier.
        always Pour chaque séquence suffisamment longue d'octets à zéro dans le fichier d'entrée, tente de créer un trou correspondant dans le fichier de sortie, même si le fichiers d'entrée ne semble pas être 'sparse'.
        never ne créer jamais de fichier de sortie 'sparse'. Utile pour créer un fichier à utiliser avec mkswap, vu qu'un tel fichier de doit pas avoir de trou.

--skip-trailing-slashes supprime les '/' de fin de chaque argument source.
-s, --symbolic-link Créer des lien symboliques au lieu de copies des fichier non-répertoire. Les fichiers sources doivent être absolus, à moins que le fichier de destination ne soit dans le répertoire courant.
-S SUFFIX, --suffix=SUFFIX Ajoute SUFFIX à chaque fichier backup crée avec -b
-t DIRECTORY, --target-directory=DIRECTORY Spécifie le répertoire de destination
-T, --no-target-directory ne traite pas le dernier opérande spécialement quand c'est un répertoire ou un lien symbolique.
--update Ne copie pas un fichier autre que répertoire qui a une destination existante avec un mtime identique ou plus récent.
-v, --verbose Affiche le nom de chaque fichier en cour de copie.
-x, --one-file-system Ne copie pas les fichiers qui sont sur un système de fichier différents. Les points de montage sont copiés.
^
30 juin 2010

htmlpdflatexmanmd




install

install

Copie de fichiers tout en définissant les bits de mode et, si possible, le user et group

   Si 2 noms de fichiers sont spécifiés, copie le premier dans le deuxième.

  Si -t est donné, ou le dernier fichier est un répertoire et -T est donné, copie chaque source dans ce répertoire.

  Si -d est spécifié, crée chaque répertoire et les dossiers parents manquant. Les parents sont créer avec le mode u=rwx,gorx.

  install est similaire à cp mais permet de contrôler les attributs des fichiers de destination. install ne préserve jamais les attributs étendus.

OPTIONS

-b, --backup[=METHOD] Créer une sauvegarde de chaque fichier qui aurait été écrasé ou supprimé.
-D crée les répertoires parents manquant de destination, puis copie la source dans la destination.
-d, --directory Crée les répertoires manquant, donnant les attributs par défaut.
-g GROUP, --group=GROUP Définit le groupe des fichiers installés
-m MODE, --mode=MODE Définit les bits de mode pour les fichiers installés. Peut être spécifié en octal, ou un mode symbolique comme avec chmod.
-o OWNER, --owner=OWNER Définit le propriétaire des fichiers installés.
--preserve-context Préserve le contexte de sécurité SELinux des fichiers.
--preserve-timestamp Défini le atime et le mtime de chaque fichier installé pour correspondre aux fichiers originaux.
-S SUFFIX, --suffix=SUFFIX ajoute un suffixe à chaque ficher de backup crée avec -b
-t DIRECTORY, --target-directory=DIRECTORY spécifie le répertoire de destination.
-T, --no-target-directory Ne traite pas la dernière opérande spécialement quand c'est un répertoire ou un lien symbolique.
-v, --verbose Affiche le nom de chaque fichier avant de la copier.
-Z CONTEXT, --context=CONTEXT Définit le contexte de sécurité SELinux à utiliser pour les fichiers crées.
^
30 juin 2010

htmlpdflatexmanmd




mv

mv

Déplace ou renomme des fichiers

   Si 2 noms de fichiers sont spécifiés, déplace le premier fichier dans le second.

  Si -t est donnés ou que le dernier fichier est un répertoire et que -T est donné, déplace chaque fichier source dans le répertoire spécifié.

  mv peut déplacer n'importe quel type de fichier, d'un système de fichier vers un autre. mv essaye toujours de copier les attributs étendus. Si un fichier de destination existe mais n'est pas en écriture, que l'entrée est un terminal, et que -f n'est pas donné, mv demande confirmation pour remplacer le fichier.

OPTIONS

-b, --backup[=METHOD] Créer une sauvegarde de chaque fichier qui aurait été écrasé ou supprimé.
-f, --force Ne demande pas confirmation avant de supprimer un fichier de destination.
-i, --interactive Demande confirmation pour écraser un fichier existant dans la destination.
-n, --no-clobber N'écrase pas un fichier existant
-u, --update Ne déplace pas de fichier autre que répertoire qui a une destionation avec le mtime identique ou plus récent.
-v, --verbose affiche le nom de chaque fichier avant de le déplacer.
--strip-trailing-slashes supprime les '/' de fin de chaque argument de source.
-S SUFFIX, --suffix=SUFFIX ajoute un suffix au fichier de backup crées avec -b
-t DIRECTORY, --target-directory=DIRECTORY Spécifie le répertoire de destination
-T, --no-target-directory ne traite pas le dernier opérande spécialement quand c'est un répertoire ou un lien symbolique.
^
30 juin 2010

htmlpdflatexmanmd




rm

rm

Supprime des fichiers, par défaut ne supprime pas les répertoires.

   Si -I est donnés et qu'il y'a plus de 3 fichiers, ou que -r est donné, rm demande à l'utilisateur avant de traiter l'opération entière. Une tentative de supprimer '.' ou '..' est toujours rejetée.

OPTIONS

-f, --force Ignore les fichiers non-existant.
-i Demande confirmation à l'utilisateur pour supprimer chaque fichier.
-I Demande Confirmation 1 fois pour traiter la commande entière.
--interactive [=WHEN] Spécifie quand demande confirmation. :

        never ne prompt jamais
        once demande une fois
        always demande pour chaque fichier

--one-file-system En supprimant une hiérarchie récursivement, ne supprime pas les répertoire qui ont un système de fichier différent.
--preserve-root Echoue lors d'une tentative de supprimer le répertoire root '/' avec -r. c'est le mode par défaut.
--no-preserve-root Permet de supprimer '/' avec -r
-r, -R, --recursive Supprime Les répertoires listés et leur contenu, récursivement.
-v, --verbose Affiche le nom de chaque fichier avant de le supprimer.

   Une question commune est comment supprimer un fichier commençant par '-'. Il faut utiliser '--', pour indiquer que la suite de la ligne de commande ne sont pas des options : rm -- -f ou encore rm ./-f
^
30 juin 2010

htmlpdflatexmanmd




shred

shred

Écrase des périphériques ou des fichiers, pour éviter la possibilité de récupérer des données.

   Ordinairement, quand on supprime un fichier, les données ne sont pas supprimées, seul l'index est supprimé, et l'espace est déclaré disponible.

OPTIONS

-f, --force modifie les permissions de fichier si nécessaire pour pouvoir écraser.
-NUMBER, -n NUMBER, --iterations=NUMBER par défaut shred utilise 3 passes. après 25 passes, tous les motifs internes seront utilisés au moins une fois.
--random-source=FILE Utilise FILE comme source de données aléatoire
-s BYTES, --size=BYTES efface les premier BYTES octets du fichier. efface le fichier entier par défaut. La taille peut être spécifié avec un multiplicateur
-u, --remove après avoir écrasé un fichier, le tronque si possible puis le supprime. Si le fichier a de multiples liens, seul les liens nommés seront supprimés.
-v, --verbose affiche sur l'erreur standard tous les status du processus.
-x, --exact Par défaut, shred arrondis la taille d'un fichier régulier jusqu'au prochain multiple de taille de block du système de fichier pour écraser complètement le dernier block. Utiliser --exact annule ce mode.
-z, --zero Normalement, la dernière passe est faite de données aléatoires. çà peut être ambigue (peut ressembler à un fichier crypté), cette options permet de remplir le fichier de 0 pour la dernière passe.

Exemples

Effacer toute trace d'un fichier système crée sur une disquette. Cette commande prend environ 20 minutes pour effacer 1.44MB
shred --verbose /dev/fd0
similairement, effacer toutes les données sur une partition d'un disque dur
shred --verbose /dev/sda5