En aquest tema, aprendrem sobre dues funcionalitats essencials en Bash: la redirecció i el piping. Aquestes eines ens permeten manipular l'entrada i sortida de comandes de manera eficient, facilitant la creació de fluxos de treball més complexos.
- Redirecció
La redirecció ens permet enviar la sortida d'una comanda a un fitxer o utilitzar un fitxer com a entrada per a una comanda. Hi ha diversos tipus de redirecció:
1.1 Redirecció de Sortida
La redirecció de sortida s'utilitza per enviar la sortida d'una comanda a un fitxer en lloc de mostrar-la a la pantalla.
>
: Redirigeix la sortida estàndard a un fitxer (sobreescriu el fitxer si ja existeix).>>
: Redirigeix la sortida estàndard a un fitxer (afegeix al fitxer si ja existeix).
Exemple:
# Sobreescriu el fitxer output.txt amb la sortida de la comanda ls ls > output.txt # Afegeix la sortida de la comanda ls al fitxer output.txt ls >> output.txt
1.2 Redirecció d'Entrada
La redirecció d'entrada s'utilitza per llegir l'entrada d'un fitxer en lloc del teclat.
<
: Redirigeix l'entrada estàndard des d'un fitxer.
Exemple:
1.3 Redirecció d'Errors
La redirecció d'errors s'utilitza per enviar la sortida d'error d'una comanda a un fitxer.
2>
: Redirigeix la sortida d'error estàndard a un fitxer (sobreescriu el fitxer si ja existeix).2>>
: Redirigeix la sortida d'error estàndard a un fitxer (afegeix al fitxer si ja existeix).
Exemple:
# Sobreescriu el fitxer errors.txt amb els errors de la comanda ls ls non_existent_file 2> errors.txt # Afegeix els errors de la comanda ls al fitxer errors.txt ls non_existent_file 2>> errors.txt
1.4 Redirecció Combinada
Podem redirigir tant la sortida estàndard com la sortida d'error al mateix fitxer.
&>
: Redirigeix tant la sortida estàndard com la sortida d'error a un fitxer (sobreescriu el fitxer si ja existeix).&>>
: Redirigeix tant la sortida estàndard com la sortida d'error a un fitxer (afegeix al fitxer si ja existeix).
Exemple:
# Sobreescriu el fitxer all_output.txt amb la sortida i els errors de la comanda ls ls non_existent_file &> all_output.txt # Afegeix la sortida i els errors de la comanda ls al fitxer all_output.txt ls non_existent_file &>> all_output.txt
- Piping
El piping ens permet enviar la sortida d'una comanda com a entrada per a una altra comanda. Això es fa utilitzant el caràcter |
.
Exemple:
2.1 Exemple Pràctic
Suposem que volem trobar tots els fitxers en un directori que contenen una paraula específica i comptar quants n'hi ha.
Exemple:
# Troba tots els fitxers que contenen la paraula "error" i compta quants n'hi ha grep -r "error" /path/to/directory | wc -l
En aquest exemple:
grep -r "error" /path/to/directory
busca recursivament la paraula "error" en tots els fitxers del directori especificat.wc -l
compta el nombre de línies de la sortida de la comandagrep
.
Exercicis Pràctics
Exercici 1
Redirigeix la sortida de la comanda ls
a un fitxer anomenat files.txt
.
Solució:
Exercici 2
Utilitza el piping per trobar tots els fitxers en el directori /var/log
que contenen la paraula "error" i redirigeix la sortida a un fitxer anomenat error_logs.txt
.
Solució:
Exercici 3
Redirigeix tant la sortida estàndard com la sortida d'error de la comanda find / -name "*.conf"
a un fitxer anomenat find_output.txt
.
Solució:
Conclusió
La redirecció i el piping són eines poderoses en Bash que ens permeten manipular l'entrada i sortida de comandes de manera flexible i eficient. Amb aquestes tècniques, podem crear fluxos de treball més complexos i automatitzar tasques de manera efectiva. Practica aquests conceptes amb els exercicis proporcionats per consolidar el teu coneixement.
Curs de Programació en Bash
Mòdul 1: Introducció a Bash
- Què és Bash?
- Configuració del teu Entorn
- Navegació Bàsica per la Línia de Comandes
- Entenent la Shell
Mòdul 2: Comandes Bàsiques de Bash
- Operacions amb Fitxers i Directoris
- Comandes de Processament de Text
- Permisos i Propietat de Fitxers
- Redirecció i Piping
Mòdul 3: Conceptes Bàsics de Scripting
Mòdul 4: Scripting Intermedi
Mòdul 5: Tècniques Avançades de Scripting
- Operacions Avançades amb Fitxers
- Gestió de Processos
- Gestió d'Errors i Depuració
- Expressions Regulars
Mòdul 6: Treballant amb Eines Externes
Mòdul 7: Automatització i Programació
- Treballs Cron
- Automatització de Tasques
- Scripts de Còpia de Seguretat i Restauració
- Monitorització i Registre
Mòdul 8: Millors Pràctiques i Optimització
- Escriure Codi Llegible
- Optimització de Scripts en Bash
- Consideracions de Seguretat
- Control de Versions amb Git