GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Dateizugriffsbefehle in Linux – finden, sortieren, Kopf, Schwanz

Die folgenden Dateizugriffsbefehle sind UNIX-Befehle, keine spezifischen Shell-Befehle.

Befehl Remakr
finden Findet den Speicherort einer Datei
sortieren Liest eine Datei und sortiert die Ausgabe
hören oder verfolgen Betrachtet nur den Anfang oder das Ende einer Datei

Der Suchbefehl

Mit dem Befehl find können Sie nach Dateien und Verzeichnissen suchen und Befehle für diese Dateien ausführen. Die Syntax des Find-Befehls hat drei allgemeine Argumentabschnitte. Der Abschnitt Pfade ist eine Liste mit Pfadnamen (Verzeichnissen), die durchsucht werden sollen. Der Abschnitt search_criteria ist eine Liste von Optionen, die als boolescher Ausdruck (wahr oder falsch) betrachtet werden. Jede Option (Bedingung) wird der Reihe nach getestet und wenn das Ergebnis wahr ist, wird die angegebene Aktion ausgeführt.

Einige der möglichen Suchkriterien sind:

  • -name – Wenn der Dateiname übereinstimmt
  • -Benutzer – Wenn die Datei einem Benutzer gehört (Anmeldename)
  • -atime – Wenn vor der angegebenen Anzahl von Tagen auf die Datei zugegriffen wurde
  • -mtime – Wenn die Datei zuletzt vor der angegebenen Anzahl von Tagen geändert wurde
  • -Größe – Wenn die Datei die spezifische Blockgröße hat

Einige der möglichen Aktionen sind:

  • -drucken – Zeigt den Pfadnamen der Datei an
  • -exec – Führt den Befehl aus
  • -ok – Führt den Befehl erst aus, nachdem er ein y von stdin erhalten hat

Beispiele für die Verwendung des Find-Befehls

Sie müssen nicht den vollständigen Namen der Datei kennen, um sie zu finden. Beispielsweise neigen Protokolldateien dazu, ziemlich schnell zu wachsen. Als Systemadministrator möchten Sie vielleicht die Größe der Protokolldateien überwachen. Um nach den Verwaltungsprotokolldateien zu suchen (Dateien im Verzeichnis /var/log Verzeichnis), verwenden Sie den folgenden Befehl:

# 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

Im Rahmen einer Dateisystembereinigung möchten Sie möglicherweise nach Kerndateien suchen und diese löschen. Die folgenden beiden Befehle finden jede Datei mit dem Namen core. Der erste Befehl führt den rm-Befehl ohne Bedienereingabe aus. Der zweite Befehl gibt den rm-Befehl aus und erfordert Bedienereingaben.

$ find / -name core -exec rm -f {} \;
$ find / -name core -ok rm -f {} \;

Verwenden Sie den folgenden Befehl, um Dateien zu finden, die größer als 1000 Blöcke sind:

$ find / -size +1000 -print

Der Sortierbefehl

Eine Datei, wie z. B. die Kennwortdatei, wird häufig erstellt, indem neue Benutzer am Ende der Datei hinzugefügt werden. Die Datei hat keine bestimmte Reihenfolge; Wenn Sie jedoch nach etwas oder jemandem in der Datei suchen, wäre es hilfreich, wenn die Datei in einer bestimmten Reihenfolge sortiert wäre. Der Sortierbefehl bietet eine Möglichkeit, die Datei zu sortieren.

Einige der häufiger verwendeten Sortieroptionen sind:

  • -r – Sortiert in umgekehrter Reihenfolge (z nach a, statt a nach z)
  • -n – Sortiert die Felder numerisch statt nur als American Standard Code for Information Interchange (ASCII)-Strings
  • -t [ch] – Setzt das Feldtrennzeichen
  • + Zahl – Legt die Feldnummer fest, ab der die Sortierung beginnen soll (Felder werden ab 0 [Null] nummeriert)
  • – Zahl – Legt die Feldnummer fest, vor der die Sortierung beendet werden soll (dies ist das erste Feld, das nicht für die Sortierung berücksichtigt wird)
  • -b – Ignoriert führende Leerzeichen (sie werden normalerweise als Teil der Felder betrachtet, die während der Schlüsselsortierung angegeben werden)
  • -r – Sortiert in umgekehrter Reihenfolge (z nach a, statt a nach z)
  • -o – file Legt die Datei fest, die verwendet werden soll, um die Ausgabe der Sortierung zu speichern (die dieselbe Datei sein kann, die die ursprüngliche Eingabe enthält)
# 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
...

Verwenden Sie den folgenden Befehl, um die Datei nach dem Anmeldenamen zu sortieren:

# 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
...

Verwenden Sie den folgenden Befehl, um die Datei nach dem 5. Feld (dem Kommentar) zu sortieren, wobei die Felder durch den Doppelpunkt getrennt sind:

# 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
...

Sie können die Ausgabe einer Sortierung in eine Datei schreiben. Sie können die Sortierung sogar in die Originaldatei ausgeben; zum Beispiel:

# 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

Überprüfen Sie die Datei erneut:

# 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

Wenn Sie mehrere bereits sortierte Dateien zu einer einzigen Datei zusammenführen möchten, verwenden Sie den folgenden Befehl:

# sort file1 file2 file3 -o file4

Das Zusammenführen von Dateien kann zu doppelten Einträgen führen. Um nur die eindeutigen Zeilen der Datei auszugeben, verwenden Sie den folgenden Befehl:

# sort -u names
Big Ape 415
Doctor Doom 415
Easter Rabbit 408
Jessica Rabbit 510
Peter Rabbit 510
Peter Wolf 510
Roger Rabbit 408

Teil einer Datei lesen

Häufig möchten Sie nicht eine ganze Datei überprüfen. Sie können den Anfang der Datei durchsuchen, um festzustellen, ob es der richtige ist, oder am Ende einer Datei nachsehen, was zuletzt in die Datei eingegeben wurde.

Das Hauptkommando

Um den Anfang einer Datei zu überprüfen, verwenden Sie den Head-Befehl:

# 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

Der Schweifbefehl

Wenn Sie Protokolldateien überprüfen, interessieren Sie sich wahrscheinlich nur für die letzten paar Einträge dieser Datei. Mit dem tail-Befehl können Sie sich das Ende der Datei ansehen.

# 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. So finden Sie große Dateien unter Linux mit den Befehlen find und du

  2. 10 Suchbefehle zur Verbesserung Ihrer Dateisuche in Linux [Grundlagen]

  3. Überwachung des Linux-Dateizugriffs?

  4. So leeren Sie eine Protokolldatei unter Linux

  5. Linux-Suchbefehle

8 Head-Befehlsbeispiele in Linux

Linux-Tail-Befehl

Linux-Tail-Befehl mit Beispielen

Logrotate unter Linux einrichten

So prüfen Sie den Dateizugriff unter Linux

Unix - Kopf UND Ende der Datei