· Tutorial ·

Ús de Pipes en sistemes Unix

Els pipes (canonades) en sistemes Unix-like, com Debian, són una eina poderosa que permeten combinar i redirigir la sortida d'ordres de manera eficient. En utilitzar pipes, podem prendre la sortida d'un ordre i enviar-la directament com a entrada a un altre, la qual cosa ens permet fer tasques més complexes i estalviar temps en evitar l'ús d'arxius temporals. En aquest manual, explorarem detalladament com utilitzar pipes en Debian per a millorar la nostra productivitat en la línia d'ordres.

1. Conceptes Bàsics de Pipes

Els pipes es representen mitjançant el símbol vertical |. Al fer-ho servir en la línia d'ordres, indica que la sortida de l'ordre a l'esquerra del pipe serà l'entrada de l'ordre a la dreta del pipe.

Exemple 1:

ls | grep archivo

En aquest exemple, la sortida de l'ordre ls, que llista els arxius en el directori actual, s'enviarà com a entrada a l'ordre grep que filtrarà només les línies que contenen la paraula "arxivo".

2. Pipes amb Ordres Simples

Els pipes son especialment útils quan es combinen amb ordres simples per realitzar tasques específiques.

Exemple 2:

ls -l | grep "archivo.txt" | wc -l

En aquest exemple, llistem el contingut del directori en format llarg (ls -l), filtrem només les línies que contenen "arxiu.txt" (grep "arxiu.txt"), i finalment, comptem quantes línies coincideixen (wc -l). Això ens donarà el nombre d'arxius anomenats "arxiu.txt" en el directori actual..

3. Pipes amb Ordres més Complexos

Els pipes també són efectius quan es combinen amb ordres més complexos i amb opcions addicionals.

Exemple 3:

ps aux | grep "firefox" | awk '{print $2}' | xargs kill -9

En aquest exemple, fem servir pipes per trobar l'ANEU de procés (PID) de l'execució de Firefox, ho filtrem utilitzant grep, extraiem només el PID utilitzant awk, i després enviem aquest PID com a argument per matar (acabar forçadament) el procés fent servir kill -9.

4. Múltiples Pipes Encadenats

És possible encadenar múltiples pipes per fer tasques encara més complexes.

Exemple 4:

cat access.log | grep "Error" | sort | uniq -c | sort -nr

En aquest exemple, llegim el contingut de l'arxiu access.log, filtrem només les línies que contenen "Error" (grep "Error"), després ordenem les línies alfabèticament (sort), comptem quantes vegades apareix cada línia (uniq -c), i finalment, ordenem el resultat en ordre invers de freqüència (sort -nr). Això ens donarà un resum dels errors més freqüents en l'arxiu de registre.

5. Pipes i Redirecció d' Arxius

Podem combinar pipes amb la redirecció d'arxius per a desar els resultats en un arxiu.

Exemple 5:

ls -l | grep "archivo.txt" > resultado.txt

En aquest exemple, llistem el contingut del directori en format llarg, filtrem només les línies que contenen "arxiu.txt", i redirigim la sortida a un arxiu anomenat resultat.txt.

6. Pipes amb Ordres Personalitzats

A més dels ordres estàndard, podem utilitzar els nostres propis scripts o ordres personalitzats i combinar-los amb pipes.

Exemple 6:

mi_script.py | grep "patrón" | sed 's/foo/bar/g'

En aquest exemple, executem el nostre script personalitzat mi_script.py, filtrem les línies que contenen el patró desitjat, i després utilitzem l'ordre set per a reemplaçar totes les ocurrències de "foo" per "bar".

Conclusió

Els pipes en sistemes Unix-like, com Debian, són una eina poderosa que pot millorar significativament la nostra eficiència en la línia d'ordres. En combinar i redirigir la sortida de diferents ordres, podem fer tasques més complexes de manera ràpida i efectiva. Amb aquest manual, esperem haver-te proporcionat una comprensió sòlida de l'ús de pipes en sistemes Unix, la qual cosa et permetrà aprofitar al màxim aquesta funcionalitat per a les teves tasques diàries d'administració del sistema i anàlisi de dades.

i