<div class="page">
<div class="cover text-center">
<img class="mx-auto" src=/itb/images/logo_mislata.png alt="logo">
# Resum comandes de Bash
<div class="text-end fit-content ms-auto my-3 mt-auto pt-3">
<p><strong>Autor:</strong> Joan Puigcerver Ibáñez</p>
<p><strong>Correu electrònic:</strong> j.puigcerveribanez@edu.gva.es</p>
<p><strong>Curs:</strong> 2024/2025</p>
</div>
<div>
<p class="fw-bold mb-0">Llicència: BY-NC-SA</p>
<p class="d-none d-md-block">(Reconeixement - No Comercial - Compartir Igual)</p>
<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.ca" target="_blank">
<img class="mx-auto" src="/itb/images/license.png" alt="Licence"/>
</a>
</div><!--license-->
</div><!--cover-->
</div><!--page-->
{:toc}
## Introducció
En aquest material es recopila un resum de les comandes bàsiques de `bash`.
## Terminal i prompt
La terminal és una interfície en la qual es poden especificar ordres que s'executaran
en el vostre dispositiu. És una manera alternativa a treballar en la interfície d'usuari.
A la terminal, podeu observar que cada línia comença amb una informació,
just abans del cursor, on pots escriure text.
Aquestà informació s'anomenta __prompt__ i inclou informació de l'usuari actual,
la màquina a la qual està connectada i la carpeta actual.
En aquest cas, té el format `<user>@<host>:<dir> (<branch>) $`.
- `user` fa referència a l'usuari actual.
- `host` fa referència al nom de la màquina o dispositiu.
- `dir` fa referència al directori on ens trobem. El símbol `~` representa la teua carpeta d'usuari.
- Pots executar la comanda `echo ~` per veure a quin directori es correspon.
(Normalment `/home/<user>` a sistemes Linux i `C:/Users/<user>` en sistemes Windows.)
- `(branch)`. En Git Bash, a més, es mostra la branca actual en la que estem situats en el repositori de Git.
- `$` fa referència al final del prompt. A partir d'ací, l'usuari pot escriure l'ordre que vol executar.
## Sistema de fitxers
- `pwd`: Mostra la ruta absoluta del directori de treball actual, és a dir, en quin directori estem situats en el sistema.
- `ls <dir>`: Mostra els continguts del directori especificat.
Si no s'especifica cap directori, es mostren els continguts del directori actual.
- Opció `-l`: Mostra els continguts en forma de llista, amb més informació.
- Opció `-a` o `--all`: Mostra tots els elements, també els elements ocults.
- `cd <dir>`: Permet moure'ns al directori especificat.
- Per moure'ns enrere o per eixir de la carpeta actual, podem utilitzar `..`.
- Si no s'especifica cap ruta, ens movem al directori d'usuari `~` o `$HOME`.
- `mkdir <dirname>`: Crea un nou directori amb el nom especificat.
- `touch <file>`: Crea un fitxer en blanc amb el nom especificat.
- `rm <file>`: Esborra el fitxer especificat.
- Opció `-r`: Utilitzada per esborrar directoris de manera recursiva.
- Opció `-f`: Provoca una eliminació forçosa. Útil si volem esborrar fitxers protegits contra escritura, com els directoris `.git/`.
## Contignut de fitxers
- `cat <file>`: Mostra els contingut del fixer per eixida estàndard (terminal).
- `nano <file>`: Editor de text senzill en la terminal que permet modificar el fitxer especificat.
- `^O` (`CTRL + O`): Guardar el fitxer. Has de confirmar la ruta amb `ENTER`.
- `^X` (`CTRL + X`): Eixir.
## Manual i ajuda
- `man <command>`: Mostra l'ajuda de la comanda especificada.
- `<command> --help`: Opció que es pot afegir a una comanda per mostrar un resum de la seua utilització.
## Senyals
- `^C` (`CTRL + C`): Envia la senyal `SIGTERM` (15) al programa que s'està executant.
Aquesta senyal indica que volem terminal o parar l'execució del programa.
- `^Z` (`CTRL + Z`): Envia la senyal `SIGTSTP` al programa, que el para i l'envia a segon plà.
::: danger
No utilitzeu `CTRL + Z` sense tindre coneixements de gestió de processos en el sistema operatiu,
ja que aquests processos en segon pla no es destrueixen i vos poden portar
problemes a l'hora de treballar, com l'accés a recursos compartits.
:::
## Recursos addicionals
- https://linuxopsys.com/topics/linux-commands-cheat-sheet
Aquest lloc web utilitza galetes per millorar l'experiència de l'usuari