GNU/Linux >> Tutoriels Linux >  >> Linux

Commandes d'accès aux fichiers sous Linux - rechercher, trier, tête, queue

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


Linux
  1. Comment trouver des fichiers volumineux Linux avec les commandes find et du

  2. 10 commandes de recherche pour améliorer votre recherche de fichiers sous Linux [Basics]

  3. Surveillance de l'accès aux fichiers Linux ?

  4. Trouver le fichier journal de Firefox ?

  5. Comment vider un fichier journal sous Linux

8 exemples de commandes Head sous Linux

Commande Tail Linux

Commande Linux Tail avec exemples

Commandes tête et queue sous Linux expliquées avec des exemples

Configuration de logrotate sous Linux

accès simultané au fichier linux