Table des matières
Dernière mise-à-jour : 2020/01/30 03:27
103.2 - Utiliser des filtres sur des textes en entrée (3/60)
La commande cat
La commande cat permet de concaténer les fichiers passés en argument, ou de l'entrée standard ( le clavier ), vers la sortie standard ( l'écran ). Dans le cas où il n'y a qu'un seul fichier passé en argument, le contenu de celui-ci est affiché à l'écran :
[trainee@centos7 tmp]$ cat ~/test fenestros
Options de la commande
A faire : Utilisez l'option –help de la commande cat pour visualiser les options de la commande.
La commande sort
Cette commande trie dans le canal d’entrée et retourne à l’écran une liste triée.
[trainee@centos7 ~]$ touch aac abc bca xyz [trainee@centos7 ~]$ ls aac bca Documents Music Public Videos xyz abc Desktop Downloads Pictures Templates vitext [trainee@centos7 ~]$ ls | sort aac abc bca Desktop Documents Downloads Music Pictures Public Templates Videos vitext xyz [trainee@centos7 ~]$ ls | sort -r xyz vitext Videos Templates Public Pictures Music Downloads Documents Desktop bca abc aac
Important : Notez l'utilisation du caractère spécial |, appelé un tube ou encore un pipe. Un tube est utilisé pour présenter sur l'entrée standard de la commande qui suit, la sortie standard de la commande qui précède.
Options de la commande
A faire : Utilisez l'option –help de la commande sort pour visualiser les options de la commande.
La commande more
Cette commande affiche le contenu d’un fichier texte et l’envoi page par page au canal de sortie à l'aide de la touche Espace :
[trainee@centos7 ~]$ more /etc/services # /etc/services: # $Id: services,v 1.55 2013/04/14 ovasik Exp $ # # Network services, Internet style # IANA services version: last updated 2013-04-10 # # Note that it is presently the policy of IANA to assign a single well-known # port number for both TCP and UDP; hence, most entries here have two entries # even if the protocol doesn't support UDP operations. # Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports # are included, only the more common ones. # # The latest IANA port assignments can be gotten from # http://www.iana.org/assignments/port-numbers # The Well Known Ports are those from 0 through 1023. # The Registered Ports are those from 1024 through 49151 # The Dynamic and/or Private Ports are those from 49152 through 65535 # # Each line describes one service, and is of the form: # # service-name port/protocol [aliases ...] [# comment] tcpmux 1/tcp # TCP port service multiplexer --More--(0%)
Important : L'utilisation de la touche ↵ Entrée permet de défiler le fichier ligne par ligne. L'utilisation de la touche Barre d'espace permet de défiler le fichier écran par écran. L'utilisation de la touche Q permets de revenir au prompt.
Options de la commande
A faire : Utilisez l'option –help de la commande more pour visualiser les options de la commande.
La commande less
La commande less produit un résultat similaire à la commande more. Utilisez la commande less en vous référant à l'aide de la commande avec less - -help. Laquelle des deux commandes vous semble la plus puissante ?
[trainee@centos7 ~]$ less /etc/services # /etc/services: # $Id: services,v 1.55 2013/04/14 ovasik Exp $ # # Network services, Internet style # IANA services version: last updated 2013-04-10 # # Note that it is presently the policy of IANA to assign a single well-known # port number for both TCP and UDP; hence, most entries here have two entries # even if the protocol doesn't support UDP operations. # Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports # are included, only the more common ones. # # The latest IANA port assignments can be gotten from # http://www.iana.org/assignments/port-numbers # The Well Known Ports are those from 0 through 1023. # The Registered Ports are those from 1024 through 49151 # The Dynamic and/or Private Ports are those from 49152 through 65535 # # Each line describes one service, and is of the form: # # service-name port/protocol [aliases ...] [# comment] tcpmux 1/tcp # TCP port service multiplexer /etc/services
Options de la commande
A faire : Utilisez l'option –help de la commande less pour visualiser les options de la commande.
La Commande expand
La commande expand convertit des tabulations dans un fichier en espaces et envoie le résultat à la sortie standard. Sans fichier en argument ou avec le caractère -, la commande prend son entrée de l'entrée standard.
Téléchargez le fichier suivant :
- expand
un deux trois quatre cinq un deux trois quatre cinq un deux trois quatre cinq un deux trois quatre cinq un deux trois quatre cinq un deux trois quatre cinq un deux trois quatre cinq un deux trois quatre cinq un deux trois quatre cinq un deux trois quatre cinq
Déplacez le fichier vers /root :
[root@centos7 ~]# mv /home/trainee/Downloads/expand.txt /root/expand
Visualisez le fichier avec la commande cat :
[root@centos7 ~]# cat expand un deux trois quatre cinq un deux trois quatre cinq un deux trois quatre cinq un deux trois quatre cinq un deux trois quatre cinq un deux trois quatre cinq un deux trois quatre cinq un deux trois quatre cinq un deux trois quatre cinq un deux trois quatre cinq
Utilisez les option -vet de la commande cat pour visualiser les caractères invisibles :
[root@centos7 ~]# cat -vet expand un^Ideux^Itrois^Iquatre^Icinq$ un^Ideux^Itrois^Iquatre^Icinq$ un^Ideux^Itrois^Iquatre^Icinq$ un^Ideux^Itrois^Iquatre^Icinq$ un^Ideux^Itrois^Iquatre^Icinq$ un^Ideux^Itrois^Iquatre^Icinq$ un^Ideux^Itrois^Iquatre^Icinq$ un^Ideux^Itrois^Iquatre^Icinq$ un^Ideux^Itrois^Iquatre^Icinq$ un^Ideux^Itrois^Iquatre^Icinq$
Important : Comme vous pouvez constater, les tabulations sont représentées par ^I et les fins de lignes par $.
Utilisez maintenant la commande expand pour convertir les tabulations en espaces en envoyant le résultat dans le fichier expand1 :
[root@centos7 ~]# expand expand > expand1
Visualisez le fichier avec la commande cat et les options -vet :
[root@centos7 ~]# cat -vet expand1 un deux trois quatre cinq$ un deux trois quatre cinq$ un deux trois quatre cinq$ un deux trois quatre cinq$ un deux trois quatre cinq$ un deux trois quatre cinq$ un deux trois quatre cinq$ un deux trois quatre cinq$ un deux trois quatre cinq$ un deux trois quatre cinq$
Important : Comme vous pouvez constater, les tabulations ont été converties en espaces.
Options de la commande
A faire : Utilisez l'option –help de la commande expand pour visualiser les options de la commande.
La Commande unexpand
La commande unexpand convertit des espaces dans un fichier en tabulations et envoie le résultat à la sortie standard. Sans fichier en argument ou avec le caractère -, la commande prend son entrée de l'entrée standard.
Utilisez la commande unexpand sur le fichier expand1 et envoyez le résultat dans le fichier expand2 :
[root@centos7 ~]# cat -vet expand1 un deux trois quatre cinq$ un deux trois quatre cinq$ un deux trois quatre cinq$ un deux trois quatre cinq$ un deux trois quatre cinq$ un deux trois quatre cinq$ un deux trois quatre cinq$ un deux trois quatre cinq$ un deux trois quatre cinq$ un deux trois quatre cinq$ [root@centos7 ~]# unexpand -a expand1 > expand2 [root@centos7 ~]# cat -vet expand2 un^Ideux^Itrois^Iquatre^Icinq$ un^Ideux^Itrois^Iquatre^Icinq$ un^Ideux^Itrois^Iquatre^Icinq$ un^Ideux^Itrois^Iquatre^Icinq$ un^Ideux^Itrois^Iquatre^Icinq$ un^Ideux^Itrois^Iquatre^Icinq$ un^Ideux^Itrois^Iquatre^Icinq$ un^Ideux^Itrois^Iquatre^Icinq$ un^Ideux^Itrois^Iquatre^Icinq$ un^Ideux^Itrois^Iquatre^Icinq$
Important : Notez que les espaces ont été remplacés par des tabulations.
Options de la commande
A faire : Utilisez l'option –help de la commande unexpand pour visualiser les options de la commande.
La Commande cut
Chaque ligne est divisée en colonnes. Dans une ligne le premier caractère est dans la colonne numéro un, le deuxième dans la colonne deux et ainsi de suite. Dans une ligne il peut y avoir des champs séparés par des tabulations.
La commande cut permet de sélectionner des colonnes et des champs dans un fichier. La commande permet aussi d'utiliser une critère de séparation de champs autre que la tabulation en spécifiant cette critère en utilisant l'option -d.
Par exemple, pour sélectionner les 7 premières colonnes du fichier /etc/passwd la commande est :
[root@centos7 ~]# cut -c1-7 /etc/passwd root:x: bin:x:1 daemon: adm:x:3 lp:x:4: sync:x: shutdow halt:x: mail:x: operato games:x ftp:x:1 nobody: dbus:x: polkitd unbound colord: usbmuxd avahi:x avahi-a saslaut qemu:x: libstor rpc:x:3 rpcuser nfsnobo rtkit:x radvd:x ntp:x:3 chrony: abrt:x: pulse:x gdm:x:4 gnome-i postfix sshd:x: tcpdump trainee vboxadd tss:x:5
Pour sélectionner les colonnes 1 à 5, les colonnes 10 à 15 et les colonnes 30 et après, il convient d’utiliser la commande suivante :
[root@centos7 ~]# cut -c1-5,10-15,30- /etc/passwd root:0:rootsh bin:x:bin:/gin daemo2:2:dain/nologin adm:x:adm:/nologin lp:x:lp:/vabin/nologin sync:0:syncnc shutdx:6:0::/sbin/shutdown halt:0:haltalt mail:12:maiail:/sbin/nologin operax:11:0t:/sbin/nologin games2:100:es:/sbin/nologin ftp:x50:FTP:/sbin/nologin nobod99:99:/nologin dbus::81:Syus:/:/sbin/nologin polki:999:9lkitd:/:/sbin/nologin unbou:998:9 resolver:/etc/unbound:/sbin/nologin color997:99ord:/var/lib/colord:/sbin/nologin usbmu:113:1r:/:/sbin/nologin avahi0:70:ASD Stack:/var/run/avahi-daemon:/sbin/nologin avahioipd:x IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin saslax:996:user":/run/saslauthd:/sbin/nologin qemu:7:107:bin/nologin libstemgmt:on account for libstoragemgmt:/var/run/lsm:/sbin/nologin rpc:x32:Rpcar/lib/rpcbind:/sbin/nologin rpcus:29:29ser:/var/lib/nfs:/sbin/nologin nfsno:x:655mous NFS User:/var/lib/nfs:/sbin/nologin rtkit72:172proc:/sbin/nologin radvd5:75:rbin/nologin ntp:x38::/eologin chron994:99rony:/sbin/nologin abrt:3:173:in/nologin pulse71:171stem Daemon:/var/run/pulse:/sbin/nologin gdm:x42::/vin/nologin gnometial-s::/run/gnome-initial-setup/:/sbin/nologin postf:89:89ostfix:/sbin/nologin sshd::74:Prted SSH:/var/empty/sshd:/sbin/nologin tcpdu:72:72gin train:1000:home/trainee:/bin/bash vboxa:992:1xadd:/bin/false tss:x59:Acche trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
Pour sélectionner les champs 2, 4 et 6 du fichier, il convient d'utiliser la commande suivante :
[root@centos7 ~]# cut -d: -f2,4,6 /etc/passwd x:0:/root x:1:/bin x:2:/sbin x:4:/var/adm x:7:/var/spool/lpd x:0:/sbin x:0:/sbin x:0:/sbin x:12:/var/spool/mail x:0:/root x:100:/usr/games x:50:/var/ftp x:99:/ x:81:/ x:998:/ x:997:/etc/unbound x:996:/var/lib/colord x:113:/ x:70:/var/run/avahi-daemon x:170:/var/lib/avahi-autoipd x:76:/run/saslauthd x:107:/ x:994:/var/run/lsm x:32:/var/lib/rpcbind x:29:/var/lib/nfs x:65534:/var/lib/nfs x:172:/proc x:75:/ x:38:/etc/ntp x:993:/var/lib/chrony x:173:/etc/abrt x:171:/var/run/pulse x:42:/var/lib/gdm x:991:/run/gnome-initial-setup/ x:89:/var/spool/postfix x:74:/var/empty/sshd x:72:/ x:1000:/home/trainee x:1:/var/run/vboxadd x:59:/dev/null
Options de la commande
A faire : Utilisez l'option –help de la commande cut pour visualiser les options de la commande.
La Commande uniq
La commande suivante permet d'extraire du fichier /etc/passwd les GID utilisés en tant que groupes principaux des utilisateurs :
[root@centos7 ~]# cut -d: -f4 /etc/passwd | sort -n | uniq 0 1 2 4 7 12 29 32 38 42 50 59 70 72 74 75 76 81 89 99 100 107 113 170 171 172 173 991 993 994 996 997 998 1000 65534
Important : Notez l'utilisation de la commande uniq qui permet de supprimer les doublons dans la sortie triée.
Options de la commande
A faire : Utilisez l'option –help de la commande uniq pour visualiser les options de la commande.
La Commande tr
La commande tr permet de substituer des caractères pour d'autres. Cette commande n'accepte que des données en provenance de son entrée standard et non en provenance d'un fichier.
[root@centos7 ~]# cat /etc/passwd | tr "[a-z]" "[A-Z]" ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN DAEMON:X:2:2:DAEMON:/SBIN:/SBIN/NOLOGIN ADM:X:3:4:ADM:/VAR/ADM:/SBIN/NOLOGIN LP:X:4:7:LP:/VAR/SPOOL/LPD:/SBIN/NOLOGIN SYNC:X:5:0:SYNC:/SBIN:/BIN/SYNC SHUTDOWN:X:6:0:SHUTDOWN:/SBIN:/SBIN/SHUTDOWN HALT:X:7:0:HALT:/SBIN:/SBIN/HALT MAIL:X:8:12:MAIL:/VAR/SPOOL/MAIL:/SBIN/NOLOGIN OPERATOR:X:11:0:OPERATOR:/ROOT:/SBIN/NOLOGIN GAMES:X:12:100:GAMES:/USR/GAMES:/SBIN/NOLOGIN FTP:X:14:50:FTP USER:/VAR/FTP:/SBIN/NOLOGIN NOBODY:X:99:99:NOBODY:/:/SBIN/NOLOGIN DBUS:X:81:81:SYSTEM MESSAGE BUS:/:/SBIN/NOLOGIN POLKITD:X:999:998:USER FOR POLKITD:/:/SBIN/NOLOGIN UNBOUND:X:998:997:UNBOUND DNS RESOLVER:/ETC/UNBOUND:/SBIN/NOLOGIN COLORD:X:997:996:USER FOR COLORD:/VAR/LIB/COLORD:/SBIN/NOLOGIN USBMUXD:X:113:113:USBMUXD USER:/:/SBIN/NOLOGIN AVAHI:X:70:70:AVAHI MDNS/DNS-SD STACK:/VAR/RUN/AVAHI-DAEMON:/SBIN/NOLOGIN AVAHI-AUTOIPD:X:170:170:AVAHI IPV4LL STACK:/VAR/LIB/AVAHI-AUTOIPD:/SBIN/NOLOGIN SASLAUTH:X:996:76:"SASLAUTHD USER":/RUN/SASLAUTHD:/SBIN/NOLOGIN QEMU:X:107:107:QEMU USER:/:/SBIN/NOLOGIN LIBSTORAGEMGMT:X:995:994:DAEMON ACCOUNT FOR LIBSTORAGEMGMT:/VAR/RUN/LSM:/SBIN/NOLOGIN RPC:X:32:32:RPCBIND DAEMON:/VAR/LIB/RPCBIND:/SBIN/NOLOGIN RPCUSER:X:29:29:RPC SERVICE USER:/VAR/LIB/NFS:/SBIN/NOLOGIN NFSNOBODY:X:65534:65534:ANONYMOUS NFS USER:/VAR/LIB/NFS:/SBIN/NOLOGIN RTKIT:X:172:172:REALTIMEKIT:/PROC:/SBIN/NOLOGIN RADVD:X:75:75:RADVD USER:/:/SBIN/NOLOGIN NTP:X:38:38::/ETC/NTP:/SBIN/NOLOGIN CHRONY:X:994:993::/VAR/LIB/CHRONY:/SBIN/NOLOGIN ABRT:X:173:173::/ETC/ABRT:/SBIN/NOLOGIN PULSE:X:171:171:PULSEAUDIO SYSTEM DAEMON:/VAR/RUN/PULSE:/SBIN/NOLOGIN GDM:X:42:42::/VAR/LIB/GDM:/SBIN/NOLOGIN GNOME-INITIAL-SETUP:X:993:991::/RUN/GNOME-INITIAL-SETUP/:/SBIN/NOLOGIN POSTFIX:X:89:89::/VAR/SPOOL/POSTFIX:/SBIN/NOLOGIN SSHD:X:74:74:PRIVILEGE-SEPARATED SSH:/VAR/EMPTY/SSHD:/SBIN/NOLOGIN TCPDUMP:X:72:72::/:/SBIN/NOLOGIN TRAINEE:X:1000:1000:TRAINEE:/HOME/TRAINEE:/BIN/BASH VBOXADD:X:992:1::/VAR/RUN/VBOXADD:/BIN/FALSE TSS:X:59:59:ACCOUNT USED BY THE TROUSERS PACKAGE TO SANDBOX THE TCSD DAEMON:/DEV/NULL:/SBIN/NOLOGIN
Options de la commande
A faire : Utilisez l'option –help de la commande tr pour visualiser les options de la commande.
La Commande paste
La commande paste concatène les lignes de n fichiers. Par exemple :
[root@centos7 ~]# paste -d: /etc/passwd /etc/shadow root:x:0:0:root:/root:/bin/bash:root:$6$r4px/s9L2uwGSFnI$NkK5mzNF.CMAFFqMcO.i.tnrMZQDkriDLYwICsimsPaDWKFwUHS3NhDwZY5e7P3glIu.gTBtaOE.SOOW/D.AU/:16502:0:99999:7::: bin:x:1:1:bin:/bin:/sbin/nologin:bin:*:16231:0:99999:7::: daemon:x:2:2:daemon:/sbin:/sbin/nologin:daemon:*:16231:0:99999:7::: adm:x:3:4:adm:/var/adm:/sbin/nologin:adm:*:16231:0:99999:7::: lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin:lp:*:16231:0:99999:7::: sync:x:5:0:sync:/sbin:/bin/sync:sync:*:16231:0:99999:7::: shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown:shutdown:*:16231:0:99999:7::: halt:x:7:0:halt:/sbin:/sbin/halt:halt:*:16231:0:99999:7::: mail:x:8:12:mail:/var/spool/mail:/sbin/nologin:mail:*:16231:0:99999:7::: operator:x:11:0:operator:/root:/sbin/nologin:operator:*:16231:0:99999:7::: games:x:12:100:games:/usr/games:/sbin/nologin:games:*:16231:0:99999:7::: ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin:ftp:*:16231:0:99999:7::: nobody:x:99:99:Nobody:/:/sbin/nologin:nobody:*:16231:0:99999:7::: dbus:x:81:81:System message bus:/:/sbin/nologin:dbus:!!:16502:::::: polkitd:x:999:998:User for polkitd:/:/sbin/nologin:polkitd:!!:16502:::::: unbound:x:998:997:Unbound DNS resolver:/etc/unbound:/sbin/nologin:unbound:!!:16502:::::: colord:x:997:996:User for colord:/var/lib/colord:/sbin/nologin:colord:!!:16502:::::: usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin:usbmuxd:!!:16502:::::: avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin:avahi:!!:16502:::::: avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin:avahi-autoipd:!!:16502:::::: saslauth:x:996:76:"Saslauthd user":/run/saslauthd:/sbin/nologin:saslauth:!!:16502:::::: qemu:x:107:107:qemu user:/:/sbin/nologin:qemu:!!:16502:::::: libstoragemgmt:x:995:994:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin:libstoragemgmt:!!:16502:::::: rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin:rpc:!!:16502:0:99999:7::: rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin:rpcuser:!!:16502:::::: nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin:nfsnobody:!!:16502:::::: rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin:rtkit:!!:16502:::::: radvd:x:75:75:radvd user:/:/sbin/nologin:radvd:!!:16502:::::: ntp:x:38:38::/etc/ntp:/sbin/nologin:ntp:!!:16502:::::: chrony:x:994:993::/var/lib/chrony:/sbin/nologin:chrony:!!:16502:::::: abrt:x:173:173::/etc/abrt:/sbin/nologin:abrt:!!:16502:::::: pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin:pulse:!!:16502:::::: gdm:x:42:42::/var/lib/gdm:/sbin/nologin:gdm:!!:16502:::::: gnome-initial-setup:x:993:991::/run/gnome-initial-setup/:/sbin/nologin:gnome-initial-setup:!!:16502:::::: postfix:x:89:89::/var/spool/postfix:/sbin/nologin:postfix:!!:16502:::::: sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin:sshd:!!:16502:::::: tcpdump:x:72:72::/:/sbin/nologin:tcpdump:!!:16502:::::: trainee:x:1000:1000:trainee:/home/trainee:/bin/bash:trainee:$6$tMd44tmmFiitAS7.$sJSua3jhyKm2k0mIifYuTpUO0d6q6/gS3PDyuxbHadHVYLsoVslZ3Pn8m5X93rr64oj.KK8OL6J.gvhxbQBrZ1:16502:0:99999:7::: vboxadd:x:992:1::/var/run/vboxadd:/bin/false:vboxadd:!!:16691:::::: tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin:tss:!!:16723::::::
Options de la commande
A faire : Utilisez l'option –help de la commande paste pour visualiser les options de la commande.
La Commande split
La commande split est utilisée pour découper de grands fichiers en petit morceaux d'une taille fixe ou d'un nombre de lignes fixe.
Créez d'abord un fichier d'une taille de 250Mo :
[root@centos7 ~]# dd if=/dev/zero of=/file bs=1024k count=250 250+0 records in 250+0 records out 262144000 bytes (262 MB) copied, 0.215447 s, 1.2 GB/s
Utilisez maintenant la commande split pour diviser ce fichier en morceaux de 50 Mo :
[root@centos7 ~]# split -b 50m /file filepart [root@centos7 ~]# ls -l | grep filepart -rw-r--r--. 1 root root 52428800 Oct 19 15:31 filepartaa -rw-r--r--. 1 root root 52428800 Oct 19 15:31 filepartab -rw-r--r--. 1 root root 52428800 Oct 19 15:31 filepartac -rw-r--r--. 1 root root 52428800 Oct 19 15:31 filepartad -rw-r--r--. 1 root root 52428800 Oct 19 15:31 filepartae
Important : Notez que cinq morceaux ont été créés dans le répertoire courant. Si aucune taille n'est spécifiée, split devise le fichier en morceaux de 1 000 lignes par défaut.
Reconstruisez simplement le fichier avec la commande cat :
[root@centos7 ~]# cat fileparta* > newfile [root@centos7 ~]# ls -l | grep newf -rw-r--r--. 1 root root 262144000 Oct 19 15:31 newfile
Options de la commande
A faire : Utilisez l'option –help de la commande split pour visualiser les options de la commande.
La Commande diff
La commande diff indique les modifications à apporter à deux fichiers pour que ceux-ci soient identique.
Pour commencer, copiez le fichier /etc/passwd vers le répertoire /root :
[root@centos7 ~]# cp /etc/passwd /root
Modifiez ensuite le fichier la ligne trainee du fichier /root/passwd ainsi :
... trainee10:x:1000:1000:trainee:/home/trainee:/bin/bash ...
Supprimez la ligne tcpdump dans le fichier /root/passwd et ajoutez en fin de fichier la ligne suivante :
... Linux est super!
Comparez maintenant les deux fichiers :
[root@centos7 ~]# diff /etc/passwd /root/passwd 38,39c38 < trainee:x:1000:1000:trainee:/home/trainee:/bin/bash < vboxadd:x:992:1::/var/run/vboxadd:/bin/false --- > trainee10:x:1000:1000:trainee:/home/trainee:/bin/bash 40a40 > Linux est super!
Dans cette sortie on constate le caractère < et le caractère >. Le premier indique le premier fichier qui a suivi la commande diff tandis que le deuxième indique le deuxième fichier.
Le message 38,39c38 indique qu'il faut changer la ligne 39 dans /etc/passwd afin que celle-ci corresponde à la ligne 39 dans /root/passwd.
Le message 40a40 indique qu'à la ligne 40 dans /etc/passwd il faut ajouter la ligne 40 de /root/passwd.
Options de la commande
A faire : Utilisez l'option –help de la commande diff pour visualiser les options de la commande.
La Commande cmp
La commande cmp compare les fichiers caractère par caractère. Par défaut la commande s'arrête à la première différence rencontrée :
[root@centos7 ~]# cmp /root/passwd /etc/passwd /root/passwd /etc/passwd differ: byte 1873, line 38
L'option -l de la commande indique toutes les différences en trois colonnes :
[root@centos7 ~]# cmp -l /root/passwd /etc/passwd | more cmp: EOF on /root/passwd 1873 61 72 1874 60 170 1876 170 61 1877 72 60 1878 61 60 1880 60 72 1881 60 61 1882 72 60 1883 61 60 1885 60 72 1886 60 164 1887 72 162 1888 164 141 1889 162 151 1890 141 156 1891 151 145 1892 156 145 1893 145 72 1894 145 57 1895 72 150 1896 57 157 1897 150 155 1898 157 145 1899 155 57 1900 145 164 1901 57 162 1902 164 141 1903 162 151 --More--
La première colonne représente le numéro de caractère, la deuxième la valeur octale ASCII du caractère dans le fichier /root/passwd et la troisième la valeur octale ASCII du caractère dans le fichier /etc/passwd.
Options de la commande
A faire : Utilisez l'option –help de la commande cmp pour visualiser les options de la commande.
La commande patch
La commande patch est utilisée pour appliquer des modifications à un fichier à partir d'un fichier patch qui contient les différences entre le contenu de l'ancienne version du fichier et la nouvelle version.
La commande patch n'est pas installée par défaut sous RHEL/CentOS 7 :
[root@centos7 ~]# yum install patch Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirror.ibcp.fr * extras: mirrors.atosworldline.com * updates: mirror.ibcp.fr Resolving Dependencies --> Running transaction check ---> Package patch.x86_64 0:2.7.1-8.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ====================================================================================================================================================== Package Arch Version Repository Size ====================================================================================================================================================== Installing: patch x86_64 2.7.1-8.el7 base 110 k Transaction Summary ====================================================================================================================================================== Install 1 Package Total download size: 110 k Installed size: 210 k Is this ok [y/d/N]: y Downloading packages: patch-2.7.1-8.el7.x86_64.rpm | 110 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : patch-2.7.1-8.el7.x86_64 1/1 Verifying : patch-2.7.1-8.el7.x86_64 1/1 Installed: patch.x86_64 0:2.7.1-8.el7 Complete!
Rappelez-vous maintenant des modifications apportées au fichier /tmp/greptest :
[root@centos7 ~]# cat /tmp/greptest # Commentaire du début ^ voici une ligne pour la recherche fgrep fenestrOS fenestros # Un autre commentaire 555-5555 f .fenestros .fe £ # Commentaire de la fin [root@centos ~]# cat /tmp/greptest1 fenestrOS fenestros 555-5555 f .fenestros .fe £
Afin de créer un fichier de patch, il convient d'utiliser la commande diff avec l'option -u
[root@centos7 ~]# cd /tmp [root@centos7 tmp]# diff -u greptest greptest1 > greptest.patch
L'examen du fichier de patch démontre les modifications à apporter au fichier greptest :
[root@centos7 tmp]# cat greptest.patch --- greptest 2012-05-13 15:49:23.143130290 +0200 +++ greptest1 2012-05-13 15:26:12.498027492 +0200 @@ -1,14 +1,7 @@ -# Commentaire du début -^ voici une ligne pour la recherche fgrep fenestrOS fenestros -# Un autre commentaire 555-5555 f - .fenestros - .fe - £ -# Commentaire de la fin
Procédez maintenant à l'application du fichier patch :
[root@centos7 tmp]# patch < greptest.patch patching file greptest
Contrôlez maintenant le contenu du fichier greptest :
[root@centos7 tmp]# cat greptest fenestrOS fenestros 555-5555 f .fenestros .fe £
Options de la commande
A faire : Utilisez l'option –help de la commande patch pour visualiser les options de la commande.
La commande strings
La commande strings est utilisée pour trouver toutes les chaînes de caractères qui peuvent être imprimés dans un ou plusieurs fichiers objets ou exécutables passés en argument. Un fichier objet est un fichier intermédiaire intervenant dans le processus de compilation.
Sous Linux et Unix, le format d'un fichier objet est le format ELF, (Executable and Linkable Format). Ce format est aussi utilisé pour :
- les exécutables,
- les bibliothèques partagés,
- les core dumps.
Sans option, la commande strings trouve toutes les chaînes d'une longueur de 4 caractères ou plus suivies par un caractère non-imprimable :
[root@centos7 ~]# strings /usr/bin/passwd | more /lib64/ld-linux-x86-64.so.2 {1~` libuser.so.1 g_value_get_int64 is_selinux_enabled _ITM_deregisterTMCloneTable g_free g_value_array_get_nth __gmon_start__ g_value_get_string g_type_check_value_holds g_value_get_long _Jv_RegisterClasses freecon _ITM_registerTMCloneTable lu_ent_set_string lu_ent_get_first_value_strdup lu_error_free lu_user_lock _fini _init lu_strerror lu_ent_free lu_ent_new lu_user_modify lu_prompt_console lu_start lu_user_lookup_name --More--
L'option -t de la commande retourne, en plus des chaînes concernées, la position de décalage pour chaque ligne sur laquelle une ou plusieurs chaînes se trouvent :
[root@centos7 ~]# strings -t d /usr/bin/passwd | more 568 /lib64/ld-linux-x86-64.so.2 648 {1~` 2833 libuser.so.1 2846 g_value_get_int64 2864 is_selinux_enabled 2883 _ITM_deregisterTMCloneTable 2911 g_free 2918 g_value_array_get_nth 2940 __gmon_start__ 2955 g_value_get_string 2974 g_type_check_value_holds 2999 g_value_get_long 3016 _Jv_RegisterClasses 3036 freecon 3044 _ITM_registerTMCloneTable 3070 lu_ent_set_string 3088 lu_ent_get_first_value_strdup 3118 lu_error_free 3132 lu_user_lock 3145 _fini 3151 _init 3157 lu_strerror 3169 lu_ent_free 3181 lu_ent_new 3192 lu_user_modify 3207 lu_prompt_console 3225 lu_start 3234 lu_user_lookup_name --More--
L'option -t prend un de trois arguments qui indique le système de numérotation à utiliser :
Argument | Système de Numérotation |
---|---|
d | Décimal |
o | Octal |
x | Héxadécimal |
L'option -n de la commande permet de modifier le nombre de caractères minimales dans les chaînes recherchées :
[root@centos7 ~]# strings -t d -n 15 /usr/bin/passwd | more 568 /lib64/ld-linux-x86-64.so.2 2846 g_value_get_int64 2864 is_selinux_enabled 2883 _ITM_deregisterTMCloneTable 2918 g_value_array_get_nth 2955 g_value_get_string 2974 g_type_check_value_holds 2999 g_value_get_long 3016 _Jv_RegisterClasses 3044 _ITM_registerTMCloneTable 3070 lu_ent_set_string 3088 lu_ent_get_first_value_strdup 3207 lu_prompt_console 3234 lu_user_lookup_name 3261 lu_ent_set_long 3303 lu_user_removepass 3322 libgobject-2.0.so.0 3342 libglib-2.0.so.0 3372 poptSetOtherOptionHelp 3464 poptHelpOptions 3503 audit_log_acct_message 3599 libpam_misc.so.0 3640 audit_log_user_avc_message 3667 audit_log_user_message 3690 libselinux.so.1 3706 selinux_set_callback 3727 selinux_check_access 3759 libpthread.so.0 --More--
Dans le cas de l'utilisation de la commande avec plus d'un fichier, l'option -f devient très utile. Par exemple, imaginons que vous souhaitez connaître les détails disponibles des Copyright des fichiers dans /bin :
[root@centos7 ~]# strings -f /bin/* | grep "(c)" /bin/btrace: # Copyright (c) 2005 Silicon Graphics, Inc. /bin/cdda-player: (c) 1997,98 Gerd Knorr <kraxel@goldbach.in-berlin.de> /bin/cdda-player: (c) 2005, 2006 Rocky Bernstein <rocky@gnu.org> /bin/cd-drive: Copyright (c) 2003-2005, 2007-2008, 2011-2013 R. Bernstein /bin/cd-info: Copyright (c) 2003-2005, 2007-2008, 2011-2013 R. Bernstein /bin/cd-read: Copyright (c) 2003-2005, 2007-2008, 2011-2013 R. Bernstein /bin/chcat: if len(c) > 0 and ( c[0] == "+" or c[0] == "-" ): /bin/chcat: if len(c) > 0 and c[0] == "+": /bin/chcat: if len(c) > 0 and c[0] == "-": /bin/crash: (c) a pointer to the first item pointed to by the start address. /bin/crash: (c) a list_head that is embedded within a data structure that is /bin/crash: switch(c) /bin/csh: @(#) Copyright (c) 1991 The Regents of the University of California. /bin/diffpp: # Copyright (c) 1996-1998 Markku Rossi /bin/drill: Copyright (c) 2004-2008 NLnet Labs. /bin/festival_server: ## Copyright (c) 1996 ## /bin/festival_server_control: ## Copyright (c) 1996 ## /bin/gcm-calibrate: Copyright (c) /bin/gprof: @(#) Copyright (c) 1983 Regents of the University of California. /bin/hpijs: Copyright (c) 2001-2004, Hewlett-Packard Co. /bin/ibus-setup: # Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com> /bin/ibus-setup: # Copyright (c) 2007-2010 Red Hat, Inc. /bin/ibus-table-createdb: # Copyright (c) 2008-2009 Yu Yuwei <acevery@gmail.com> /bin/iso-info: Copyright (c) 2003-2005, 2007-2008, 2011-2013 R. Bernstein /bin/iso-read: Copyright (c) 2003-2005, 2007-2008, 2011-2013 R. Bernstein /bin/lsusb.py: # (c) Kurt Garloff <garloff@suse.de>, 2/2009, GPL v2 or v3. /bin/mmc-tool: Copyright (c) 2003-2005, 2007-2008, 2011-2013 R. Bernstein /bin/orca: __copyright__ = "Copyright (c) 2010-2012 The Orca Team" \ /bin/orca: "Copyright (c) 2012 Igalia, S.L." /bin/pinentry: # Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany. /bin/pinentry: # Copyright (c) 2009 Fedora Project /bin/ping: @(#) Copyright (c) 1989 The Regents of the University of California. /bin/ping6: @(#) Copyright (c) 1989 The Regents of the University of California. /bin/pod2usage: # Copyright (c) 1996-2000 by Bradford Appleton. All rights reserved. /bin/qemu-img: qemu-img version 1.5.3, Copyright (c) 2004-2008 Fabrice Bellard /bin/repoclosure: # seth vidal 2005 (c) etc etc /bin/repodiff: # (c) 2007 Red Hat. Written by skvidal@fedoraproject.org /bin/repo-graph: # (c) 2005 Panu Matilainen <pmatilai@laiskiainen.org> /bin/repomanage: # (c) Copyright Seth Vidal 2004 /bin/repoquery: # (c) pmatilai@laiskiainen.org /bin/repo-rss: # seth vidal 2005 (c) etc etc /bin/repotrack: # (c) 2005 seth vidal skvidal at phy.duke.edu /bin/rngtest: Copyright (c) 2004 by Henrique de Moraes Holschuh /bin/saytime: ;; Copyright (c) 1996,1997 ;; /bin/sbcdec: Copyright (c) 2004-2010 Marcel Holtmann /bin/sbcenc: Copyright (c) 2004-2010 Marcel Holtmann /bin/screen: Copyright (c) 2010 Juergen Weigert, Sadrul Habib Chowdhury /bin/screen: Copyright (c) 2008, 2009 Juergen Weigert, Michael Schroeder, Micah Cowan, Sadrul Habib Chowdhury /bin/screen: Copyright (c) 1993-2002, 2003, 2005, 2006, 2007 Juergen Weigert, Michael Schroeder /bin/screen: Copyright (c) 1987 Oliver Laumann /bin/sliceprint: # Copyright (c) 1996-1999 Markku Rossi /bin/soundstretch: Copyright (c) Olli Parviainen /bin/ssh-copy-id: # Copyright (c) 1999-2013 Philip Hands <phil@hands.com> /bin/tcptraceroute: # Copyright (c) 2007 Dmitry Butskoy /bin/tcsh: @(#) Copyright (c) 1991 The Regents of the University of California. /bin/text2wave: ;; Copyright (c) 1996,1997 ;; /bin/traceroute: Copyright (c) 2008 Dmitry Butskoy, License: GPL v2 or any later /bin/traceroute6: Copyright (c) 2008 Dmitry Butskoy, License: GPL v2 or any later /bin/verifytree: # copyright (c) 2008 Red Hat, Inc - written by Seth Vidal and Will Woods /bin/wavpack: Copyright (c) 1998 - 2009 Conifer Software. All Rights Reserved. /bin/wvdial: Copyright (c) 1997-2005 Net Integration Technologies, Inc. /bin/wvdialconf: Copyright (c) 1997-2005 Net Integration Technologies, Inc. /bin/wvgain: Copyright (c) 2005 - 2009 Conifer Software. All Rights Reserved. /bin/wvunpack: Copyright (c) 1998 - 2009 Conifer Software. All Rights Reserved. /bin/yum-debug-dump: ## (c) 2008 Red Hat. Written by skvidal@fedoraproject.org /bin/yum-debug-restore: ## (c) 2008 Red Hat. Written by skvidal@fedoraproject.org /bin/zip: ight (c)H /bin/zip: Copyright (c) 1990-2008 Info-ZIP. All rights reserved. /bin/zip: Copyright (c) 1990-2008 Info-ZIP - Type '%s "-L"' for software license. /bin/zipcloak: Copyright (c) 1990-2008 Info-ZIP. All rights reserved. /bin/zipcloak: Copyright (c) 1990-2008 Info-ZIP - Type '%s "-L"' for software license. /bin/zipnote: Copyright (c) 1990-2008 Info-ZIP. All rights reserved. /bin/zipnote: Copyright (c) 1990-2008 Info-ZIP - Type '%s "-L"' for software license. /bin/zipsplit: Copyright (c) 1990-2008 Info-ZIP. All rights reserved. /bin/zipsplit: Copyright (c) 1990-2008 Info-ZIP - Type '%s "-L"' for software license.
Important : Notez que l'option -f a pour conséquence d'imprimer le nom du fichier contenant la chaîne au début de chaque ligne.
Options de la commande
A faire : Utilisez l'option –help de la commande strings pour visualiser les options de la commande.
La commande comm
La commande comm est utilisée pour comparer deux fichiers texte. La sortie de la commande sépare les lignes en trois catégories :
- Les lignes présentes seulement dans le premier fichier,
- Les lignes présentes seulement dans le deuxième fichier,
- Les lignes présentes dans la deux fichiers.
Utilisez la commande comm pour comparer les fichiers /etc/passwd et /root/passwd :
[root@centos7 ~]# comm /etc/passwd /root/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:999:998:User for polkitd:/:/sbin/nologin unbound:x:998:997:Unbound DNS resolver:/etc/unbound:/sbin/nologin colord:x:997:996:User for colord:/var/lib/colord:/sbin/nologin usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin saslauth:x:996:76:"Saslauthd user":/run/saslauthd:/sbin/nologin qemu:x:107:107:qemu user:/:/sbin/nologin libstoragemgmt:x:995:994:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin radvd:x:75:75:radvd user:/:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin chrony:x:994:993::/var/lib/chrony:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin gdm:x:42:42::/var/lib/gdm:/sbin/nologin gnome-initial-setup:x:993:991::/run/gnome-initial-setup/:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin trainee10:x:1000:1000:trainee:/home/trainee:/bin/bash trainee:x:1000:1000:trainee:/home/trainee:/bin/bash tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin comm: file 2 is not in sorted order Linux est super! vboxadd:x:992:1::/var/run/vboxadd:/bin/false comm: file 1 is not in sorted order tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
Pour afficher uniquement les lignes présentes dans les deux fichiers, il convient d'utiliser les options -1 et -2 :
[root@centos7 ~]# comm -12 /etc/passwd /root/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:999:998:User for polkitd:/:/sbin/nologin unbound:x:998:997:Unbound DNS resolver:/etc/unbound:/sbin/nologin colord:x:997:996:User for colord:/var/lib/colord:/sbin/nologin usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin saslauth:x:996:76:"Saslauthd user":/run/saslauthd:/sbin/nologin qemu:x:107:107:qemu user:/:/sbin/nologin libstoragemgmt:x:995:994:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin radvd:x:75:75:radvd user:/:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin chrony:x:994:993::/var/lib/chrony:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin gdm:x:42:42::/var/lib/gdm:/sbin/nologin gnome-initial-setup:x:993:991::/run/gnome-initial-setup/:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin comm: file 2 is not in sorted order comm: file 1 is not in sorted order
Options de la commande
A faire : Utilisez l'option –help de la commande comm pour visualiser les options de la commande.
La commande head
La commande head permet d'afficher les x premières lignes d'un fichier. Sans options, la valeur de x est de 10 par défaut :
[root@centos7 ~]# head /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin
Avec l'option -n, la valeur de x peut être spécifiée :
[root@centos7 ~]# head -n 15 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:999:998:User for polkitd:/:/sbin/nologin
La commande head peut également être utilisée pour afficher les premiers y octets en utilisant l'option -c :
[root@centos7 ~]# head -c 150 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7[root@centos7 ~]#
Dans le cas où le y est négatif, la commande head affiche tous les octets du fichier sauf les derniers y octets :
lp:x:4:7[root@centos7 ~]# head -c -150 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:999:998:User for polkitd:/:/sbin/nologin unbound:x:998:997:Unbound DNS resolver:/etc/unbound:/sbin/nologin colord:x:997:996:User for colord:/var/lib/colord:/sbin/nologin usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin saslauth:x:996:76:"Saslauthd user":/run/saslauthd:/sbin/nologin qemu:x:107:107:qemu user:/:/sbin/nologin libstoragemgmt:x:995:994:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin radvd:x:75:75:radvd user:/:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin chrony:x:994:993::/var/lib/chrony:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin gdm:x:42:42::/var/lib/gdm:/sbin/nologin gnome-initial-setup:x:993:991::/run/gnome-initial-setup/:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin trainee:x:1000:1000:trainee:/home/trainee:/bin/[root@centos7 ~]#
Les valeurs x et y acceptent des multiplicateurs :
[root@centos7 ~]# head -c 1b /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin[root@centos7 ~]# [root@centos7 ~]# head -c 512 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin[root@centos7 ~]#
Les multiplicateurs les plus utilisés sont :
Multiplicateur | Valeur en octets |
---|---|
b | 512 |
KB | 1000 |
K | 1024 |
MB | 1000*1000 |
M | 1024*1024 |
GB | 1000*1000*1000 |
G | 1024*1024*1024 |
Options de la commande
A faire : Utilisez l'option –help de la commande head pour visualiser les options de la commande.
La commande tail
La commande tail permet d'afficher les x dernières lignes d'un fichier. Sans options, la valeur de x est de 10 par défaut :
[root@centos7 ~]# tail /etc/passwd abrt:x:173:173::/etc/abrt:/sbin/nologin pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin gdm:x:42:42::/var/lib/gdm:/sbin/nologin gnome-initial-setup:x:993:991::/run/gnome-initial-setup/:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin trainee:x:1000:1000:trainee:/home/trainee:/bin/bash vboxadd:x:992:1::/var/run/vboxadd:/bin/false tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
Avec l'option -n, la valeur de x peut être spécifiée :
[root@centos7 ~]# tail -n 15 /etc/passwd nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin radvd:x:75:75:radvd user:/:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin chrony:x:994:993::/var/lib/chrony:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin gdm:x:42:42::/var/lib/gdm:/sbin/nologin gnome-initial-setup:x:993:991::/run/gnome-initial-setup/:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin trainee:x:1000:1000:trainee:/home/trainee:/bin/bash vboxadd:x:992:1::/var/run/vboxadd:/bin/false tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
La commande tail peut également être utilisée pour afficher les derniers y octets en utilisant l'option -c :
[root@centos7 ~]# tail -c 150 /etc/passwd bash vboxadd:x:992:1::/var/run/vboxadd:/bin/false tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
Dans le cas où le y est positif, la commande tail affiche tous les octets du fichier à partir de la position de yième octet :
[root@centos7 ~]# tail -c +150 /etc/passwd 7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:999:998:User for polkitd:/:/sbin/nologin unbound:x:998:997:Unbound DNS resolver:/etc/unbound:/sbin/nologin colord:x:997:996:User for colord:/var/lib/colord:/sbin/nologin usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin saslauth:x:996:76:"Saslauthd user":/run/saslauthd:/sbin/nologin qemu:x:107:107:qemu user:/:/sbin/nologin libstoragemgmt:x:995:994:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin radvd:x:75:75:radvd user:/:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin chrony:x:994:993::/var/lib/chrony:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin gdm:x:42:42::/var/lib/gdm:/sbin/nologin gnome-initial-setup:x:993:991::/run/gnome-initial-setup/:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin trainee:x:1000:1000:trainee:/home/trainee:/bin/bash vboxadd:x:992:1::/var/run/vboxadd:/bin/false tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
Les valeurs x et y acceptent des multiplicateurs :
[root@centos7 ~]# tail -c 1b /etc/passwd PulseAudio System Daemon:/var/run/pulse:/sbin/nologin gdm:x:42:42::/var/lib/gdm:/sbin/nologin gnome-initial-setup:x:993:991::/run/gnome-initial-setup/:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin trainee:x:1000:1000:trainee:/home/trainee:/bin/bash vboxadd:x:992:1::/var/run/vboxadd:/bin/false tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin [root@centos7 ~]# tail -c 512 /etc/passwd PulseAudio System Daemon:/var/run/pulse:/sbin/nologin gdm:x:42:42::/var/lib/gdm:/sbin/nologin gnome-initial-setup:x:993:991::/run/gnome-initial-setup/:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin trainee:x:1000:1000:trainee:/home/trainee:/bin/bash vboxadd:x:992:1::/var/run/vboxadd:/bin/false tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
Les multiplicateurs les plus utilisés sont :
Multiplicateur | Valeur en octets |
---|---|
b | 512 |
KB | 1000 |
K | 1024 |
MB | 1000*1000 |
M | 1024*1024 |
GB | 1000*1000*1000 |
G | 1024*1024*1024 |
Une option intéressante pour la surveillance des fichiers de journalisation est -f. Cette option met à jour l'affichage au fur et au mesure que le fichier est mis à jour :
[root@centos7 ~]# tail -f /var/log/messages Oct 19 15:58:06 centos7 dbus-daemon: dbus[542]: [system] Activating service name='org.freedesktop.PackageKit' (using servicehelper) Oct 19 15:58:06 centos7 dbus[542]: [system] Activating service name='org.freedesktop.PackageKit' (using servicehelper) Oct 19 15:58:06 centos7 dbus-daemon: dbus[542]: [system] Successfully activated service 'org.freedesktop.PackageKit' Oct 19 15:58:06 centos7 dbus[542]: [system] Successfully activated service 'org.freedesktop.PackageKit' Oct 19 16:00:01 centos7 systemd: Created slice user-0.slice. Oct 19 16:00:01 centos7 systemd: Starting Session 17 of user root. Oct 19 16:00:01 centos7 systemd: Started Session 17 of user root. Oct 19 16:01:01 centos7 systemd: Created slice user-0.slice. Oct 19 16:01:01 centos7 systemd: Starting Session 18 of user root. Oct 19 16:01:01 centos7 systemd: Started Session 18 of user root. ^C
Options de la commande
A faire : Utilisez l'option –help de la commande tail pour visualiser les options de la commande.
LAB #1 - Utiliser les commendes grep, tr et cut pour isoler l'adresse IPv4
[root@centos7 ~]# ifconfig enp0s3 enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255 inet6 fe80::a00:27ff:febd:f523 prefixlen 64 scopeid 0x20<link> ether 08:00:27:bd:f5:23 txqueuelen 1000 (Ethernet) RX packets 7462 bytes 6158140 (5.8 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4130 bytes 555287 (542.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@centos7 ~]# ifconfig enp0s3 | grep "inet" inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255 inet6 fe80::a00:27ff:febd:f523 prefixlen 64 scopeid 0x20<link> [root@centos7 ~]# ifconfig enp0s3 | grep "inet" | grep -v "inet6" inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255 [root@centos7 ~]# ifconfig enp0s3 | grep "inet" | grep -v "inet6" | tr -s " " ":" :inet:10.0.2.15:netmask:255.255.255.0:broadcast:10.0.2.255 [root@centos7 ~]# ifconfig enp0s3 | grep "inet" | grep -v "inet6" | tr -s " " ":" | cut -d: -f3 10.0.2.15
Important : Notez l'utilisation de l'option -s avec la commande tr. Cette option permet de remplacer une suite de x caractères identiques par un seul caractère.
fmt join nl od pr wc
<html>
Copyright © 2004-2017 Hugh Norris.<br><br> <a rel=“license” href=“http://creativecommons.org/licenses/by-nc-nd/3.0/fr/”><img alt=“Licence Creative Commons” style=“border-width:0” src=“http://i.creativecommons.org/l/by-nc-nd/3.0/fr/88x31.png” /></a><br />Ce(tte) oeuvre est mise à disposition selon les termes de la <a rel=“license” href=“http://creativecommons.org/licenses/by-nc-nd/3.0/fr/”>Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 3.0 France</a>.
</html>