GNU/Linux >> Tutoriales Linux >  >> Linux

20 comandos de Linux de una línea para agregar a su caja de herramientas

Muchos usuarios de Linux han experimentado una sensación duradera de logro después de componer un comando particularmente inteligente que logra múltiples acciones en una sola línea o que logra hacer en una línea lo que generalmente toma 10 clics y tantas ventanas en una interfaz gráfica de usuario (GUI). Además de ser parte de la leyenda, las frases ingeniosas son excelentes ejemplos de por qué la terminal se considera una herramienta tan poderosa.

Al final de este artículo, tendrá:

  • Una lista de 20 comandos que facilitarán sus tareas cuando trabaje en Linux
  • Una comprensión de las posibilidades de combinar comandos simples para crear comandos más potentes
  • Ejecutar estos comandos es más divertido de lo que esperas

Sin ningún orden específico de importancia, estas son nuestras 20 frases más ingeniosas para la terminal de Linux. Aunque hemos dividido algunos de los comandos más largos con \ símbolo para facilitar la lectura, puede ingresarlos todos en una sola línea en su terminal porque, después de todo, son frases sencillas.

1. Aplicar un comando en archivos con diferentes nombres

El shell {} operador es ideal para esto. Aquí hay un ejemplo con tres directorios encerrados en {} :

$ mkdir -p -v /home/josevnz/tmp/{dir1,anotherdir,similardir}

2. Editar un archivo en su lugar

¿Quiere reemplazar una cadena en uno o más archivos sin usar un editor? Claro, sed al rescate:

$ sed -i 's#ORIGINAL_VALLUE#NEW_VALUE#g' myfile1 myfile2

Pero espera, los amantes de Perl te dirán que pueden hacer lo mismo:

$ perl -p -i -e 's#ORIGINAL#NEW_VALUE#' myfile1 myfile2

3. Comparta un archivo rápidamente usando un servidor web

Levanta la mano si no has usado esto al menos una vez para compartir un directorio rápidamente:

$ cd $mydir && python3 -m http.server 8888

4. Encuentra fallas con journalctl

A veces las cosas se rompen. Puede encontrar los errores más recientes usando una combinación de journalctl , junto con las herramientas clásicas sort y uniq :

$ journalctl --no-pager --since today \
--grep 'fail|error|fatal' --output json|jq '._EXE' | \
sort | uniq -c | sort --numeric --reverse --key 1

898172 "/usr/bin/dockerd"
    752 "/usr/local/sbin/node_exporter"
     30 "/usr/bin/gnome-shell"
     26 "/usr/bin/cat"
     22 "/usr/libexec/gsd-media-keys"
[...]

En este caso, parece que el demonio Docker no está contento.

[ Descargue este libro electrónico para prepararse para su examen remoto de Red Hat. ]

5. Haz una copia de seguridad a través de la transferencia de archivos encriptados

Usa ssh y tar para hacer copias de seguridad seguras. Van juntos como la mantequilla de maní y la jalea:

$ tar --create --directory /home/josevnz/tmp/ --file - *| \
ssh raspberrypi "tar --directory /home/josevnz \
--verbose --list --file -"

Puede agregar sabor al trabajo de copia de seguridad con compresión y encriptación, al igual que agregar ingredientes a su sándwich.

6. Escribe archivos instantáneos

Este es un gran truco cuando necesitas escribir documentos de varias líneas:

$ cat<<DOC>/my/new/file
Line1
Line2
A $VARIABLE
DOC

También puede simplemente cat > file , y cuando haya terminado de editar, simplemente ingrese el carácter EOF (Ctrl+D ):

[josevnz@dmaf5 temp]$ cat > testfile
This is a test
multiple lines
and here we go
[josevnz@dmaf5 temp]$ 

7. Busque un archivo e incluya algunas extensiones y excluya otras

Este ejemplo usa grep manera de buscar archivos específicos. Es bastante rápido y fácil de recordar:

$ grep -R 'import' --include='*.java' --color MySourceCodeDir

O puedes intentar find manera (use xargs para manejar una gran cantidad de coincidencias correctamente):

$ find MySourceCodeDir/ -name '*.java' -type f -print| xargs \
grep --color 'import

Por qué find , ¿Tu puedes preguntar? Puedes combinar find con -exec para ejecutar acciones en sus archivos primero y luego pasar los resultados al filtro. Las posibilidades de procesamiento son infinitas aquí.

8. Supervise la memoria sin top o htop

Este casi hace trampa. Repite un comando, como free , cada cinco segundos y destaca las diferencias:

$ watch -n 5 -d '/bin/free -m'

9. Mostrar tamaños de partición de disco

Usa lsbk (bloque de lista) y jq (para manipular un JSON en la línea de comando) para mostrar información de la partición:

$ lsblk --json | jq -c '.blockdevices[]|[.name,.size]'
["loop0","55.5M"]
["loop1","156M"]
["loop2","32.3M"]
["zram0","4G"]
["nvme0n1","476.9G"]

10. Mostrar rápidamente un tipo de archivo

El Qué es la función se llama con wi . Te dice rápidamente el tipo de archivo.

Para comprobar un solo archivo:

$ function wi { test -n "$1" && stat --printf "%F\n" "$1"; }

Para comprobar varios archivos:

$ function wi { test "$#" -gt 0 && stat --printf "%n: %F\n" "$@"; }

NOTA :Las funciones son superiores y pueden hacer el mismo trabajo que un alias.

11. Muestra el tamaño de un RPM instalado

Si tiene un sistema basado en RPM, tarde o temprano formateará sus consultas. He aquí un ejemplo:

$ rpm --queryformat='%12{SIZE} %{NAME}\n' \
-q java-11-openjdk-headless

[ Capacítese y evalúe en nuestros cursos y exámenes más recientes de Capacitación y certificación de Red Hat:ruta de habilidades de Red Hat Enterprise Linux. ]

12. Mostrar el tamaño total de un grupo de archivos

En este caso, find El comando actúa como un filtro, muestra el tamaño de cada archivo en bytes y, finalmente, muestra el tamaño total:

$ t=0; for n in $(find ~/Documents -type f -name '*.py' -print | xargs \
stat --printf "%s "); do ((t+=n)); done; echo $t

O, si desea una función (mejor), intente este enfoque:

$ function size { t=0; test -d "$1" && for n in $(find $1 \
-type f -name '*.py' -print| \
xargs stat --printf "%s "); do ((t+=n)); done; echo $t; }

size $mydir

13. Actualice todos los repositorios de Git en un directorio

Ya sabes lo útil que es Git. Aquí tienes un truco para ser más eficiente con tus actualizaciones:

$ for i in */.git; do cd $(dirname $i); git pull; cd ..; done

14. Exponer un directorio web usando contenedores

Los contenedores son fundamentales hoy en día. Este one-liner expone un directorio a través de Podman:

$ podman run --rm -v .:/usr/share/nginx/html:ro,Z \
-p 30080:80 -d nginx

15. Consulta el tiempo

Utilice esta función para averiguar si necesita una chaqueta hoy:

weather() { curl -s --connect-timeout 3 -m 5 http://wttr.in/$1; }

16. Muestra las 10 principales direcciones IP que acceden a un servidor web

Aquí hay una tarea que los administradores web pueden usar con frecuencia con Nginx (también puede funcionar con Apache) para obtener las 10 principales direcciones de protocolo de Internet que llegan a un servidor web desde el registro de acceso:

$ cat /var/log/nginx/access.log | cut -f 1 -d ' ' | sort | \
uniq -c | sort -hr | head -n 10

17. Flotadores redondos en Bash con la ayuda de Python

Puedes hacer cosas geniales con Python, pero este ejemplo solo redondea números:

$ echo "22.67892" | python3 -c "print(f'{round(float(input()))}')"
23

18. Ejecutar una mini calculadora

Esta función define una calculadora rápida en la línea de comando con precisión variable (el valor predeterminado es 2). Utiliza bc. Crea la función así:

$ function qqbc() { echo "scale=${2:-2}; $1" | bc -l

A continuación, realice un cálculo rápido:

$ qqbc "2/3"
.66

En caso de que necesite precisión adicional, simplemente defina un segundo parámetro:

$ qqbc "2/3" 4
.6666

Esta herramienta se llama qqbc porque es una mejora de la antigua función qbc .

19. Convertir un CSV a JSON

Este truco es una modificación de esta popular receta para convertir archivos CSV al formato JSON:

$ python3 -c \
"import csv,json,sys;print(json.dumps(list(csv.reader(open(sys.argv[1])))))" \
covid19-vaccinations-town-age-grp.csv

20. Instalar y ejecutar comandos con Docker

Si tiene Docker instalado y desea ejecutar un comando sin instalar un montón de dependencias en su sistema (mientras realiza una ejecución rápida), esto puede ser todo lo que necesita:

$ docker run --rm --interactive curlimages/curl curl \
--verbose --location --fail --silent --output - \
https://example.com

El comando ejecuta la última versión de curl de un recipiente y luego lo retira. Observe que el comando termina con un guión (- ), que le dice a curl para enviar a su terminal. Las posibilidades son infinitas aquí.

Resumir

La capacidad de crear poderosas combinaciones de comandos simples es una de las razones por las que Unix y Linux son tan populares.

Afortunadamente. no es difícil aprender estas frases ingeniosas. Concéntrese en recordar lo que hace un comando simple y luego piense en cómo puede combinar muchos comandos simples para hacer una receta poderosa.

Siempre revisa el man página o use la info para averiguar qué más puede hacer la herramienta. Es posible que se sorprenda al saber que una herramienta puede hacer todo sin combinarla con otra utilidad.

Hay muchos sitios en Internet con muchos ejemplos de una línea. Esperamos que estos ejemplos lo lleven a escribir mejores frases ingeniosas propias.


Linux
  1. Comandos de Linux para mostrar la información de su hardware

  2. 5 errores de novato en Linux

  3. Embárcate en una aventura en tu terminal Linux

  4. 10 tutoriales para mejorar tus habilidades de línea de comandos

  5. Comandos Linux de la A a la Z

Usa Linux para hacer tus impuestos

Cómo agregar un usuario a su escritorio Linux

Instale fuentes Nerd para agregar glifos en su código en Linux

Copia avanzada:agregue la barra de progreso a los comandos cp y mv en Linux

Ponga un temporizador en sus comandos en ejecución con el comando de tiempo de espera en Linux

Aprendizaje de los comandos Linux Delete User o Linux Add User