Les commandes d'accès aux fichiers suivantes sont des commandes UNIX, et non des commandes shell spécifiques.
Commande | Remakr |
---|---|
trouver | Trouve l'emplacement d'un fichier |
trier | Lit un fichier et trie la sortie |
entendre ou suivre | Regarde uniquement le début ou la fin d'un fichier |
La commande de recherche
La commande find vous permet de rechercher des fichiers et des répertoires et d'exécuter des commandes sur ces fichiers. La syntaxe de la commande find comporte trois sections d'arguments généraux. La section des chemins est une liste de noms de chemin (répertoires) à rechercher. La section search_criteria est une liste d'options considérées comme une expression booléenne (vrai ou faux). Chaque option (condition) est testée à son tour et si le résultat est vrai, l'action indiquée est prise.
Voici quelques-uns des critères de recherche possibles :
- -nom – Si le nom du fichier correspond
- -utilisateur – Si le fichier appartient à un utilisateur (nom de connexion)
- -atime – Si le fichier a été consulté il y a le nombre de jours spécifié
- -mtime – Si le fichier a été modifié pour la dernière fois il y a le nombre de jours spécifié
- -taille – Si le fichier est la taille de bloc spécifique
Voici quelques-unes des actions possibles :
- -imprimer – Affiche le nom du chemin du fichier
- -exec – Exécute la commande
- -d'accord – Exécute la commande uniquement après avoir reçu un y de stdin
Exemples d'utilisation de la commande find
Vous n'avez pas besoin de connaître le nom complet du fichier pour le trouver. Par exemple, les fichiers journaux ont tendance à croître assez rapidement. En tant qu'administrateur système, vous souhaiterez peut-être surveiller la taille des fichiers journaux. Pour rechercher les fichiers journaux administratifs (fichiers dans le répertoire /var/log répertoire), utilisez la commande suivante :
# find /var/log -name "*.log" -print /var/log/audit/audit.log /var/log/tuned/tuned.log /var/log/cloud-init.log /var/log/pm-powersave.log /var/log/awslogs-agent-setup.log /var/log/awslogs.log /var/log/boot.log /var/log/wpa_supplicant.log /var/log/amazon/ssm/amazon-ssm-agent.log /var/log/amazon/ssm/errors.log /var/log/amazon/ssm/hibernate.log /var/log/dpkg.log /var/log/yum.log /var/log/auth.log
Dans le cadre d'un nettoyage du système de fichiers, vous souhaiterez peut-être rechercher des fichiers principaux et les supprimer. Les deux commandes suivantes trouvent n'importe quel fichier nommé core. La première commande exécute la commande rm sans intervention de l'opérateur. La deuxième commande imprime la commande rm et nécessite une intervention de l'opérateur.
$ find / -name core -exec rm -f {} \; $ find / -name core -ok rm -f {} \;
Pour rechercher des fichiers de plus de 1 000 blocs, utilisez la commande suivante :
$ find / -size +1000 -print
La commande de tri
Un fichier, tel que le fichier de mots de passe, est fréquemment créé en ajoutant de nouveaux utilisateurs à la fin du fichier. Le fichier n'est pas dans un ordre particulier; cependant, lorsque vous recherchez quelque chose ou quelqu'un dans le fichier, il serait utile que le fichier soit trié dans un certain ordre. La commande sort permet de trier le fichier.
Certaines des options de tri les plus couramment utilisées sont :
- -r – Trie dans l'ordre inverse (z à a, au lieu de a à z)
- -n - Trie les champs numériquement, au lieu de simplement les chaînes ASCII (American Standard Code for Information Interchange)
- -t [ch] – Définit le caractère séparateur de champ
- + nombre – Définit le numéro de champ à partir duquel commencer le tri (les champs sont numérotés à partir de 0 [zéro])
- – nombre – Définit le numéro de champ pour arrêter le tri avant (c'est le premier champ qui n'est pas pris en compte pour le tri)
- -b – Ignore les blancs de début (ils sont normalement considérés comme faisant partie des champs spécifiés lors des tris à clé)
- -r – Trie dans l'ordre inverse (z à a, au lieu de a à z)
- -o – file Définit le fichier à utiliser pour contenir la sortie du tri (qui peut être le même fichier qui contient l'entrée d'origine)
# cat /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 ...
Pour trier le fichier par nom de connexion, utilisez la commande suivante :
# sort /etc/passwd adm:x:3:4:adm:/var/adm:/sbin/nologin apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin chrony:x:998:996::/var/lib/chrony:/sbin/nologin cloud_user:x:1002:1003::/home/cloud_user:/bin/bash colord:x:997:995:User for colord:/var/lib/colord:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin gdm:x:42:42::/var/lib/gdm:/sbin/nologin geoclue:x:994:990:User for geoclue:/var/lib/geoclue:/sbin/nologin halt:x:7:0:halt:/sbin:/sbin/halt ...
Pour trier le fichier par le 5ème champ (le commentaire), où les champs sont séparés par les deux-points, utilisez la commande suivante :
# sort -t: -k5 /etc/passwd tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin halt:x:7:0:halt:/sbin:/sbin/halt ...
Vous pouvez mettre la sortie d'un tri dans un fichier. Vous pouvez même sortir le tri dans le fichier d'origine; par exemple :
# cat names Big Ape 415 Roger Rabbit 408 Jessica Rabbit 510 Easter Rabbit 408 Doctor Doom 415 Easter Rabbit 408 Peter Wolf 510 Roger Rabbit 408 Peter Rabbit 510
# sort names -o names
Vérifiez à nouveau le fichier :
# cat names Big Ape 415 Doctor Doom 415 Easter Rabbit 408 Easter Rabbit 408 Jessica Rabbit 510 Peter Rabbit 510 Peter Wolf 510 Roger Rabbit 408 Roger Rabbit 408
Si vous avez plusieurs fichiers, déjà triés, que vous souhaitez fusionner en un seul fichier, utilisez la commande suivante :
# sort file1 file2 file3 -o file4
La fusion de fichiers peut vous donner des entrées en double. Pour sortir uniquement les lignes uniques du fichier, utilisez la commande suivante :
# sort -u names Big Ape 415 Doctor Doom 415 Easter Rabbit 408 Jessica Rabbit 510 Peter Rabbit 510 Peter Wolf 510 Roger Rabbit 408
Lire une partie d'un fichier
Souvent, vous ne souhaitez pas revoir un fichier entier. Vous voudrez peut-être parcourir le début du fichier pour déterminer s'il s'agit du bon ou regarder la fin d'un fichier pour revoir ce qui a été entré en dernier dans le fichier.
Le commandement principal
Pour revoir le début d'un fichier, utilisez la commande head :
# head -5 /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
La commande de queue
Lors de l'examen des fichiers journaux, vous n'êtes probablement intéressé que par les dernières entrées de ce fichier. Vous pouvez utiliser la commande tail pour regarder la fin du fichier.
# tail -5 /etc/passwd systemd-network:x:995:991:systemd Network Management:/:/sbin/nologin geoclue:x:994:990:User for geoclue:/var/lib/geoclue:/sbin/nologin cloud_user:x:1002:1003::/home/cloud_user:/bin/bash ssm-user:x:1003:1004::/home/ssm-user:/bin/bash apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin