GNU/Linux >> Tutoriales Linux >  >> Linux

Comandos de acceso a archivos en Linux:buscar, ordenar, encabezado, cola

Los siguientes comandos de acceso a archivos son comandos UNIX, no comandos específicos de shell.

Comando Remakr
buscar Encuentra la ubicación de un archivo
ordenar Lee un archivo y ordena la salida
oír o seguir Mira solo el principio o el final de un archivo

El comando de búsqueda

El comando de búsqueda le permite buscar archivos y directorios y ejecutar comandos en esos archivos. La sintaxis del comando de búsqueda tiene tres secciones de argumentos generales. La sección de rutas es una lista de rutas (directorios) para buscar. La sección search_criteria es una lista de opciones que se consideran una expresión booleana (verdadero o falso). Cada opción (condición) se prueba a su vez y si el resultado es verdadero, se toma la acción indicada.

Algunos de los posibles criterios de búsqueda son:

  • -nombre – Si el nombre del archivo coincide
  • -usuario – Si el archivo pertenece a un usuario (nombre de inicio de sesión)
  • -una vez – Si se accedió al archivo hace el número especificado de días
  • -mtime – Si el archivo se modificó por última vez hace el número especificado de días
  • tamaño – Si el archivo tiene el tamaño de bloque específico

Algunas de las acciones posibles son:

  • -imprimir – Muestra el nombre de la ruta del archivo
  • -exec – Ejecuta el comando
  • -bien – Ejecuta el comando solo después de recibir una y de stdin

Ejemplos del uso del comando de búsqueda

No necesita saber el nombre completo del archivo para encontrarlo. Por ejemplo, los archivos de registro tienden a crecer con bastante rapidez. Como administrador del sistema, es posible que desee controlar el tamaño de los archivos de registro. Para buscar los archivos de registro administrativo (archivos en /var/log directorio), use el siguiente 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

Como parte de la limpieza del sistema de archivos, es posible que desee buscar archivos principales y eliminarlos. Los siguientes dos comandos encuentran cualquier archivo llamado core. El primer comando ejecuta el comando rm sin intervención del operador. El segundo comando imprime el comando rm y requiere la intervención del operador.

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

Para encontrar archivos que tengan más de 1000 bloques, use el siguiente comando:

$ find / -size +1000 -print

El comando ordenar

Un archivo, como el archivo de contraseñas, se crea con frecuencia agregando nuevos usuarios al final del archivo. El archivo no está en ningún orden en particular; sin embargo, cuando busque algo o alguien en el archivo, sería útil si el archivo estuviera ordenado en algún orden. El comando ordenar proporciona una forma de ordenar el archivo.

Algunas de las opciones de clasificación más utilizadas son:

  • -r – Ordena en orden inverso (z a a, en lugar de a a z)
  • -n – Ordena los campos numéricamente, en lugar de simplemente como cadenas del Código estándar estadounidense para el intercambio de información (ASCII)
  • -t [ch] – Establece el carácter separador de campo
  • + número – Establece el número de campo a partir del cual comenzar a clasificar (los campos se numeran desde 0 [cero])
  • – número – Establece el número de campo para detener la clasificación antes (este es el primer campo que no se considera para la clasificación)
  • -b – Ignora los espacios en blanco iniciales (normalmente se consideran parte de los campos especificados durante las clasificaciones por teclado)
  • -r – Ordena en orden inverso (z a a, en lugar de a a z)
  • -o – archivo Establece el archivo que se usará para contener la salida del tipo (que podría ser el mismo archivo que contiene la entrada original)
# 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
...

Para ordenar el archivo por el nombre de inicio de sesión, use el siguiente 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
...

Para ordenar el archivo por el quinto campo (el comentario), donde los campos están separados por dos puntos, use el siguiente 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
...

Puede poner la salida de un tipo en un archivo. Incluso puede generar la ordenación en el archivo original; por ejemplo:

# 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

Vuelva a verificar el archivo:

# 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 tiene varios archivos, ya ordenados, que desea fusionar en un solo archivo, use el siguiente comando:

# sort file1 file2 file3 -o file4

Combinar archivos puede generar entradas duplicadas. Para generar solo las líneas únicas del archivo, use el siguiente comando:

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

Lectura de parte de un archivo

Con frecuencia, no desea revisar un archivo completo. Es posible que desee examinar el principio del archivo para determinar si es el correcto o mirar el final de un archivo para revisar lo que se ingresó por última vez en el archivo.

El Jefe de Comando

Para revisar el inicio de un archivo, use el comando principal:

# 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

El comando cola

Al revisar los archivos de registro, probablemente solo le interesen las últimas entradas de ese archivo. Puede usar el comando tail para ver el final del archivo.

# 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. Cómo encontrar archivos grandes de Linux con los comandos find y du

  2. 10 comandos de búsqueda para mejorar la búsqueda de archivos en Linux [Conceptos básicos]

  3. ¿Monitoreo de acceso a archivos de Linux?

  4. Encuentre un archivo con los comandos de búsqueda y localización en Linux

  5. Cómo auditar el acceso a archivos en Linux

8 ejemplos de comandos de cabeza en Linux

Comando de cola de Linux

Comando de cola de Linux con ejemplos

Configurando logrotate en Linux

Comandos de búsqueda de Linux

Ejemplos de comandos head en Linux