Comandos en Linux que quizás no conocías

Comandos en Linux que quizás no conocías
Photo by hannah joshua / Unsplash

Seas un DevOps, sysadmin, desarrollador o simplemente un fanático de sistemas basados en GNU/Linux, a veces no utilizamos o simplemente no conocemos todos los comandos existentes que vienen integrados dentreo del sistema operativo. Así que hoy te traigo algunos comandos que no son tan comunes y que también te pueden ayudar en tu día a día dentro de tu terminal.👨‍💻👩‍💻

💡
Cabe mencionar que muchos de estos comandos también aplican para los sistemas de Apple con OS X, en sus computadoras.

mkpasswd 🤯

Este comando te permite generar una contraseña segura directamente en tu terminal. Sin argumentos, por defecto te genera una contraseña de longitud 9, pero si lo deseas, agregamos el argumento -l y especificamos la longitud.

Sin argumentos:

$ mkpasswd
#> 5zc3kP*eg

Con una longitud específica:

$ mkpasswd -l 12
#> YmH!Aip36FV^

cmp

Compara dos archivos byte por byte y señala donde difieren entre sí, si no difieren en nada, no muestra nada, de lo contrario, específica la posición y el número de  byte.

# sintáxis
# $ cmp [OPTIONS] ... FILE1 FILE2

$ cmp go.mod go.sum
#> go.mod go.sum differ: char 1, line 1

Y si deseas sacarle más provecho y necesitas más información, puedes utilizar algunas de sus opciones:

-b --print-bytes Imprime los bytes en los que difieren
-l Imprime TODOS los bytes en los que difieren
-n Compara hasta un límite de bytes.
-s --quiet --silent No imprime nada

top 📈

Este comando tal vez algunos lo conozcan, Table of Process por sus siglas en inglés. Muestra un listado en tiempo real de los procesos que se están ejecutando en el sistema, especifica el % de uso en CPU, memoria, ID del proceso y mucha información útil.

$ top
Imágen ilustrativa

nl

El comando nl enumera tiene como salida una enumeración de líneas, teniendo como entrada un archivo. Es decir, pinta en la terminal las lineas que tiene un determinado archivo que se le pase.

$ nl test1.txt

     1	North Memphis
     2	Pharmacist
     3	-
     4	Live Another Day
     5	Kordhell
     6	-
     7	kitty phonk
     8	soviss
     9	-
    10	UPGRADE
    11	OFFL1NX

grep

Uno de los comandos que más ampliamente uitlizo en mi día a día es sin duda alguna grep, permite buscar un patrón de texto específico dentro de un archivo o un grupo de archivos, es decir, dado un archivo/s busca dentro de ellos lo que tú le proporciones.

Quiero buscar si dentro del archivo test1.txt existe algo que coincida con el texto kitty

$ grep "kitty" test1.txt
#> kitty phonk

Y como pueden observar, si existe y me trae la línea completa del lugar donde encontró lo que estaba buscando.

man

Abreviado de manual es un comando que nos permite, tal cual como dice su nombre, tener un manual de cada comando que tienen los sistemas basados en GNU/Linux. Es decir, nos permite acceder a la documentación de los comandos (como los que ya estuvimos viendo arriba).

Sintáxis

$ man [COMMAND]
$ man grep

GREP(1)                                    General Commands Manual                                    GREP(1)

NAME
     grep, egrep, fgrep, rgrep, bzgrep, bzegrep, bzfgrep, zgrep, zegrep, zfgrep – file pattern searcher

SYNOPSIS
     grep [-abcdDEFGHhIiJLlMmnOopqRSsUVvwXxZz] [-A num] [-B num] [-C[num]] [-e pattern] [-f file]
          [--binary-files=value] [--color[=when]] [--colour[=when]] [--context[=num]] [--label]
          [--line-buffered] [--null] [pattern] [file ...]

DESCRIPTION
     The grep utility searches any given input files, selecting lines that match one or more patterns.  By
     default, a pattern matches an input line if the regular expression (RE) in the pattern matches the input
     line without its trailing newline.  An empty expression matches every line.  Each input line that
     matches at least one of the patterns is written to the standard output.

     grep is used for simple patterns and basic regular expressions (BREs); egrep can handle extended regular
     expressions (EREs).  See re_format(7) for more information on regular expressions.  fgrep is quicker
     than both grep and egrep, but can only handle fixed patterns (i.e., it does not interpret regular
     expressions).  Patterns may consist of one or more lines, allowing any of the pattern lines to match a
     portion of the input.

     zgrep, zegrep, and zfgrep act like grep, egrep, and fgrep, respectively, but accept input files
     compressed with the compress(1) or gzip(1) compression utilities.  bzgrep, bzegrep, and bzfgrep act like

Y por último, tenemos a un comando peculiar...

yes

Este comando lo único que hace es imprimir en pantalla una cadena de texto, la cual le pasas y la imprime hasta que detengas el proceso y eso es todo, sin duda alguna algo raro pero divertido.

$ yes codingtaco.com

codingtaco.com
codingtaco.com
codingtaco.com
codingtaco.com
codingtaco.com
codingtaco.com
codingtaco.com
codingtaco.com
codingtaco.com
codingtaco.com
codingtaco.com
codingtaco.com
codingtaco.com
codingtaco.com
codingtaco.com
codingtaco.com
codingtaco.com
codingtaco.com
codingtaco.com
codingtaco.com
codingtaco.com
^C

Conclusión

Como pudimos observar, existen una gran cantidad de comandos que podemos uitlizar y que nos pueden ayudar a agilizar algunas tareas, en especial cuando trabajamos o utilizamos más la terminal que entornos gráficos.

¿Cónocemos algún otro comando que no sea tan conocido?, comentalo para la segunda parte.