Antes de que Python se convirtiera en la omnipresente herramienta todo en uno para la programación de computadoras, Perl era la primera opción de programadores aficionados y administradores de sistemas perezosos. Muchas de las utilidades de Linux que se utilizan hoy en día están escritas en Perl, por lo que, tanto si utiliza Perl como lenguaje de secuencias de comandos como si no, es probable que siga utilizando programas Perl.
[ Want to test your sysadmin skills? Take a skills assessment today. ]
Perl es fácil de pasar por alto porque rara vez piensa en los comandos en términos del lenguaje en el que están escritos. A veces encuentro cosas valiosas mientras navego por CPAN (PyPI de Perl), y estas son cinco de mis utilidades favoritas de Perl.
Tabla de Contenidos
imitación
Los tipos MIME son una forma estándar de identificar entidades del sistema de archivos. En Internet, los tipos MIME ayudan a los navegadores a conocer el ícono genérico para asignar un archivo y ayudan al escritorio a saber qué aplicación usar al abrir un archivo.
A menos que los use mucho, puede ser difícil recordar los nombres de tipo MIME oficiales para los tipos de archivo. secuencia de comandos Perl mimetype
en el interior perl-file-mimeinfo
paquete, proporciona la solución más rápida y sencilla:
$ mimetype example.txt
example.txt: text/plain
$ mimetype html/example.webp
html/example.webp: image/webp
$ mimetype mydir
mydir: inode/directory
Innovación y Tecnología
sabes top
, htop
tal vez powertop
Pero si ejecuta la base de datos, entonces necesita saber innotop
.
Esto innotop
El comando supervisa una base de datos MySQL o MariaDB y proporciona estadísticas de rendimiento y E/S (incluido el uso de la memoria y las consultas procesadas por segundo), el estado de la replicación, una lista de consultas y más.
Puedes obtener innotop
Del paquete MariaDB.
[ Get the MariaDB and MySQL cheat sheet. ]
Renxi
Linux tiene muchos comandos para obtener los archivos de configuración del sistema.Tener lsblk
Para dispositivos de bloque, free
Para memoria, ip link
Para interfaces de red, etc.Pero si está buscando un comando unificado que le brinde la información que desea, debe intentarlo. inxi
.
Esto inxi
Cuando desee obtener las especificaciones de una computadora, el comando le brindará la información que necesita:
CPU: 6-core AMD Ryzen 5 5600X (-MT MCP-)
speed/min/max: 2248/2200/4650 MHz
Kernel: 5.15.38 x86_64
Up: 9h 32m
Mem: 7684.2/32104.6 MiB (23.9%)
Storage: 7.28 TiB (48.1% used)
Procs: 517 Shell: Bash inxi: 3.3.12
Nueve de cada diez veces, esta es la información que realmente desea obtener, y inxi
Proporcionarlo de una manera que sea fácil de leer y fácil de copiar y pegar.
eso no es todo inxi
En efecto. Tiene muchas opciones adicionales en su página de manual. Por ejemplo, hago todo el trabajo de audio posible, por lo que es bueno ver la lista completa de dispositivos de audio:
$ inxi --audio
Audio:
Device-1: NVIDIA GP107GL High Definition Audio driver: snd_hda_intel
Device-2: AMD Starship/Matisse HD Audio driver: snd_hda_intel
Device-3: Logitech StreamCam type: USB
driver: hid-generic,snd-usb-audio,usbhid,uvcvideo
Device-4: Cooler Master CH321 type: USB
driver: hid-generic,snd-usb-audio,usbhid
Device-5: Logitech HD Pro Webcam C920 type: USB
driver: snd-usb-audio,uvcvideo
Device-6: ZOOM Handy Recorder stereo mix type: USB
driver: snd-usb-audio
Sound Server-1: ALSA v: k5.15.38 running: yes
Sound Server-2: PulseAudio v: 15.0 running: yes
Es una gran herramienta para cualquier sistema, así que descargar inxi Ahora.
[ Get the guide to installing applications on Linux. ]
lineas paralelas
escribí mi amor GNU paralelo Antes, pero vale la pena mencionar.Esto parallel
Los comandos literalmente significan que puede hacer más, más rápido y con menos comandos.
Tiene dos puntos de entrada separados: puede usarlo como destinatario de la salida enviada a través de conductos de Unix o como un comando independiente.
Como comando de tubería, un inicio típico es find
Ordenar:
$ find ~/public_html/images -type f -name "*jpg" | \
parallel convert {} {.}.webp
Este comando encuentra todas las imágenes JPEG en un directorio public_html/images/
carpetas y convertirlas a WEBP en paralelo (y cambiar la extensión .jpg
por .webp
En progreso).
Si no está acostumbrado, la versión independiente del comando parece un poco más críptica:
$ parallel ffmpeg ~/Audio/file.flac -vn ~/Audio/file.{} ::: ogg m4a opus
El comando utiliza ffmpeg
Convierte audio a tres formatos diferentes.
Parallel es imprescindible en cualquier sistema y está disponible en su repositorio de software.
[ Learn how to get more done at the Linux command line with GNU Parallel. ]
Pasa todo el tiempo. Las fotos subidas por los usuarios contienen una variedad de información potencialmente confidencial en sus metadatos. Nadie pensó en ello hasta que alguien pensó en volcar datos EXIF en una foto, que proporciona longitud, latitud, fecha y, a veces, incluso más información sobre quién tomó la foto. Puede ayudar a proteger a sus usuarios (y a usted mismo) borrando los metadatos EXIF de las fotos antes de que se hagan públicas.La herramienta clásica es el script Perl. exiftool
.
Este comando elimina todos los metadatos de todas las fotos. ~/public_html/images
Tabla de contenido:
$ exiftool -overwrite_original \
-all:all= \
-r ~/public_html/images/
seguramente, exiftool
No solo para eliminar todos los metadatos. Puede usarlo para escribir nuevos metadatos o para corregir metadatos incorrectos. Por ejemplo, a veces los datos EXIF en una foto requieren un visor de fotos para rotar la imagen.Si esto no es lo que desea, puede establecer Orientation
propiedad. La dirección tiene ocho valores posibles:
- nivel (normal)
- nivel del espejo
- Girar 180
- espejo verticales
- Refleje horizontalmente y gire 270 grados en el sentido de las agujas del reloj
- Girar 90 grados en el sentido de las agujas del reloj
- Refleje horizontalmente y gire 90 grados en el sentido de las agujas del reloj
- Girar en el sentido de las agujas del reloj 270
Por ejemplo:
$ exiftool -Orientation=1 ~/public_html/image/foo.jpg
Hay tantos atributos potenciales en EXIF que puede ser difícil saber cuál es el valor esperado.Esto exiftool
proyecto mantente amigable tabla de conversión Para referencia rápida.
Perl es una joya
Puede que no escuche hablar de Perl con tanta frecuencia como antes, pero eso no significa que el proyecto sea irrelevante. Para mí, Perl es un gran lenguaje «Bash ++», en comparación con Python, que tiene muchas convenciones que se sienten similares a un lenguaje de secuencias de comandos tipo C o Shell. Incluso si no planea escribir secuencias de comandos de Perl usted mismo, estas cinco secuencias de comandos son solo el comienzo de una serie de utilidades sorprendentes que debe tener en su sistema. ¡intentalo!
[ Download now: A sysadmin’s guide to Bash scripting. ]