# Comandos básicos

La siguiente tabla contiene los 8 comandos básicos más utilizados de la terminal Linux, esenciales para realizar las prácticas:

<table><thead><tr><th width="135">Comando</th><th>Descripción</th></tr></thead><tbody><tr><td><strong><code>pwd</code></strong></td><td><em><strong>(print working directory):</strong></em> Muestra el directorio de trabajo actual.</td></tr><tr><td><strong><code>cd</code></strong></td><td><em><strong>(change directory):</strong></em> Cambia el directorio de trabajo de la terminal.</td></tr><tr><td><strong><code>ls</code></strong></td><td><em><strong>(list)</strong></em> Lista los contenidos (ficheros y subdirectorios) de un directorio.</td></tr><tr><td><strong><code>cat</code></strong></td><td><em><strong>(concatenate)</strong></em>: muestra por pantalla el contenido de un fichero.</td></tr><tr><td><strong><code>mkdir</code></strong></td><td><em><strong>(make directory)</strong></em>: crea uno o varios directorios.</td></tr><tr><td><strong><code>rm</code></strong></td><td><em><strong>(remove):</strong></em> elimina ficheros o directorios. </td></tr><tr><td><strong><code>cp</code></strong></td><td><em><strong>(copy):</strong></em> copia ficheros o directorios.</td></tr><tr><td><strong><code>mv</code></strong></td><td><em><strong>(move):</strong></em> mueve/renombra ficheros o directorios</td></tr></tbody></table>

Si os interesa, podéis consultar un listado más amplio de comandos básicos [en este enlace.](https://www.unixtutorial.org/basic-unix-commands)

***

A continuación, se describen con un poco más detalle estos comandos, con ejemplos de uso.

**`pwd`** ***(print working directory):*** Muestra el directorio de trabajo actual.

<figure><img src="https://content.gitbook.com/content/3ZSgq6YGxVkhsmWTMrH2/blobs/ihIM5dmwG1ene31fWyD1/Captura%20de%20pantalla%20de%202023-09-05%2017-06-51.png" alt=""><figcaption><p>Uso de <code>pwd</code>.</p></figcaption></figure>

***

**`cd`**`<DIR>` ***(change directory):*** Cambia el directorio de trabajo al directorio `<DIR>`.&#x20;

* En caso de no proporcionar un directorio `<DIR>` como argumento, cambia al directorio home del usuario (sería equivalente a la llamada `cd $HOME`).

<figure><img src="https://content.gitbook.com/content/3ZSgq6YGxVkhsmWTMrH2/blobs/B1wM10ju0r9gAqcUprVJ/Captura%20de%20pantalla%20de%202023-09-05%2017-09-35.png" alt=""><figcaption><p>Uso de <code>cd</code>.</p></figcaption></figure>

***

**`ls`**`<DIR>` ***(list):*** Lista los contenidos (ficheros y subdirectorios) del directorio `<DIR>`.

* En caso de no proporcionar un directorio `<DIR>` como argumento, lista los contenidos del directorio actual (sería equivalente a la llamada `ls .`).
* La opción `-l` nos permite mostrar una lista ampliada con las propiedades de los ficheros y subdirectorios (permisos, propietarios, tamaño, y fecha de modificación).

<figure><img src="https://content.gitbook.com/content/3ZSgq6YGxVkhsmWTMrH2/blobs/67OwSE62k8zKombCkpEz/Captura%20de%20pantalla%20de%202023-09-05%2017-15-52.png" alt=""><figcaption><p>Uso de <code>ls</code>.</p></figcaption></figure>

***

**`cat`**`<FILE>` ***(concatenate)***: muestra por pantalla el contenido del fichero `<FILE>`.

<figure><img src="https://content.gitbook.com/content/3ZSgq6YGxVkhsmWTMrH2/blobs/13jVBfJPVSRilHH8sLpE/Captura%20de%20pantalla%20de%202023-09-05%2017-15-15.png" alt=""><figcaption><p>Uso de <code>cat</code>.</p></figcaption></figure>

***

**`mkdir`**`<DIR>` ***(make directory)***: crea el directorio `<DIR>`.

* La opción `-p` (`--parents`) permite crear todos los directorios predecesores necesarios, en caso de que `<DIR>` sea una ruta de varios niveles de directorios y alguno de ellos no exista.&#x20;

<figure><img src="https://content.gitbook.com/content/3ZSgq6YGxVkhsmWTMrH2/blobs/yUKCrb6hOWSlacG0gxU5/Captura%20de%20pantalla%20de%202023-09-05%2017-19-35.png" alt=""><figcaption><p>Uso de <code>mkdir</code>.</p></figcaption></figure>

***

**`rm`**`<PATH>` ***(remove):*** elimina ficheros o directorios.&#x20;

* Para eliminar directorios, debemos especificar la opción `-r` (`--recursive`).

{% hint style="danger" %}
**Peligro!** No existe una "papelera de reciclaje": cualquier fichero o directorio eliminado con `rm` se "pierde" para siempre. Id con cuidado cuando useis este comando.
{% endhint %}

<figure><img src="https://content.gitbook.com/content/3ZSgq6YGxVkhsmWTMrH2/blobs/aPNJDugQ6QSw04a6zwcX/Captura%20de%20pantalla%20de%202023-09-05%2017-25-33.png" alt=""><figcaption><p>Uso de <code>rm</code>.</p></figcaption></figure>

***

**`cp`**` ``<SRC> <TRG>` ***(copy):*** copia el fichero o directorio `<SRC>` en `<TRG>`.

* Para copiar directorios, debemos especificar la opción `-r` (`--recursive`).

<figure><img src="https://content.gitbook.com/content/3ZSgq6YGxVkhsmWTMrH2/blobs/bR79m3oa5tiNWPmxcDxj/Captura%20de%20pantalla%20de%202023-09-05%2017-36-19.png" alt=""><figcaption></figcaption></figure>

***

**`mv`**` ``<SRC> <DST>` ***(move):*** mueve el fichero o directorio `<SRC>` a `<TRG>`.

* Nos sirve tanto para mover ficheros a otros directorios, como para cambiar el nombre de un fichero.

<figure><img src="https://content.gitbook.com/content/3ZSgq6YGxVkhsmWTMrH2/blobs/z8Bzg2Cs2iLm5tqBbpd1/Captura%20de%20pantalla%20de%202023-09-05%2017-39-28.png" alt=""><figcaption><p>Uso de <code>mv</code>.</p></figcaption></figure>
