I seguenti comandi di accesso ai file sono comandi UNIX, non comandi shell specifici.
Comando | Remakr |
---|---|
trova | Trova la posizione di un file |
ordina | Legge un file e ordina l'output |
ascoltare o accodare | Guarda solo all'inizio o alla fine di un file |
Il comando trova
Il comando trova consente di cercare file e directory e di eseguire comandi su tali file. La sintassi del comando find ha tre sezioni di argomenti generali. La sezione dei percorsi è un elenco di nomi di percorsi (directory) da cercare. La sezione criteri_ricerca è un elenco di opzioni considerate espressioni booleane (vere o false). Ogni opzione (condizione) viene verificata a turno e se il risultato è vero, viene eseguita l'azione indicata.
Alcuni dei possibili criteri di ricerca sono:
- -nome – Se il nome del file corrisponde
- -utente – Se il file appartiene a un utente (nome di accesso)
- -tempo – Se è stato eseguito l'accesso al file il numero specificato di giorni fa
- -mtime – Se il file è stato modificato l'ultima volta il numero specificato di giorni fa
- -dimensione – Se il file ha la dimensione del blocco specifica
Alcune delle azioni possibili sono:
- -stampa – Visualizza il nome del percorso del file
- -exec – Esegue il comando
- -ok – Esegue il comando solo dopo aver ricevuto y da stdin
Esempi di utilizzo del comando trova
Non è necessario conoscere l'intero nome del file per trovarlo. Ad esempio, i file di registro tendono a crescere piuttosto rapidamente. In qualità di amministratore di sistema, potresti voler controllare la dimensione dei file di registro. Per cercare i file di registro amministrativi (file in /var/log directory), utilizzare il seguente comando:
# 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
Come parte di una pulizia del file system, potresti voler cercare i file principali ed eliminarli. I due comandi seguenti trovano qualsiasi file denominato core. Il primo comando esegue il comando rm senza l'input dell'operatore. Il secondo comando stampa il comando rm e richiede l'input dell'operatore.
$ find / -name core -exec rm -f {} \; $ find / -name core -ok rm -f {} \;
Per trovare file di dimensioni superiori a 1000 blocchi, utilizzare il comando seguente:
$ find / -size +1000 -print
Il comando di ordinamento
Un file, come il file della password, viene spesso creato aggiungendo nuovi utenti alla fine del file. Il file non è in un ordine particolare; tuttavia, quando stai cercando qualcosa o qualcuno nel file, sarebbe utile se il file fosse ordinato in un certo ordine. Il comando sort fornisce un modo per ordinare il file.
Alcune delle opzioni di ordinamento più comunemente utilizzate sono:
- -r – Ordina in ordine inverso (z in a, invece di a in z)
- -n – Ordina i campi numericamente, invece che solo come stringhe ASCII (American Standard Code for Information Interchange)
- -t [ch] – Imposta il carattere separatore di campo
- + num – Imposta il numero del campo da cui iniziare l'ordinamento (i campi sono numerati da 0 [zero])
- – num – Imposta il numero del campo per interrompere l'ordinamento prima (questo è il primo campo che non viene considerato per l'ordinamento)
- -b – Ignora gli spazi iniziali (normalmente sono considerati parte dei campi specificati durante gli ordinamenti con chiave)
- -r – Ordina in ordine inverso (z in a, invece di a in z)
- -o – file Imposta il file da utilizzare per contenere l'output dell'ordinamento (che potrebbe essere lo stesso file che contiene l'input originale)
# 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 ...
Per ordinare il file in base al nome di accesso, utilizzare il seguente comando:
# 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 ...
Per ordinare il file in base al 5° campo (il commento), dove i campi sono separati dai due punti, usa il seguente comando:
# 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 ...
Puoi inserire l'output di un ordinamento in un file. Puoi anche produrre l'ordinamento nel file originale; ad esempio:
# 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
Verifica di nuovo il file:
# 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
Se hai più file, già ordinati, che vuoi unire in un unico file, usa il seguente comando:
# sort file1 file2 file3 -o file4
L'unione di file potrebbe darti voci duplicate. Per generare solo le righe univoche del file, utilizzare il comando seguente:
# sort -u names Big Ape 415 Doctor Doom 415 Easter Rabbit 408 Jessica Rabbit 510 Peter Rabbit 510 Peter Wolf 510 Roger Rabbit 408
Lettura di parte di un file
Spesso non si desidera rivedere un intero file. Potresti voler sfogliare l'inizio del file per determinare se è quello corretto o guardare alla fine di un file per rivedere ciò che è stato inserito l'ultima volta nel file.
Il comando principale
Per rivedere l'inizio di un file, usa il comando 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
Il comando di coda
Durante la revisione dei file di registro, probabilmente sei interessato solo alle ultime voci di quel file. Puoi usare il comando tail per guardare la fine del file.
# 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