# Info y ayuda

Prácticamente todos los comandos tienen sus manuales o ayudas dentro del propio sistema, en algunos casos están traducidos en diferentes idiomas, pero mayormente esta información de ayuda la encontramos en inglés. Los usos más comunes son `man comando`, `info comando` o `comando --help`. Indudablemente en internet podemos encontrar mucha ayuda, pero si quieres consultar una fuente confiable te recomiendo ir a [https://manpages.debian.org](https://manpages.debian.org/) o <https://man.archlinux.org/>.

* [man](https://manpages.debian.org/bookworm/man-db/man.1.es.html) - Interfaz de los manuales de referencia del sistema.

```bash
$ man ls
```

```bash
$ info ls
```

```bash
$ ls --help
```

* type - Muestra información sobre el tipo de orden (comando).

```bash
$ type cd
cd es una orden interna del intérprete de ordenes
```

{% hint style="info" %}
**Intérprete de ordenes** (comandos)

Bash es el intérprete de comandos por defecto en la mayoría de las distribuciones, aunque algunas suelen tener por defecto zsh.

{% endhint %}

[Bash](https://es.wikipedia.org/wiki/Bash) cuenta con una gran variedad de comandos incorporados, para verlos basta con escribir `help`.

```bash
$ help
```

Type es uno de esos comandos internos que nos ayuda a obtener información sobre otros comandos, es muy sencillo pero a la vez muy útil. Con type podemos saber si un programa o comando existe dentro del sistema y estas son sus opciones `type --help`:

| Opciones | Descripción                                                                                                                                                                                                                                              |
| -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| -a       | Muestra todas las ubicaciones que contienen un ejecutable llamado NOMBRE; incluye aliases, órdenes internas y funciones, si y solo si no se utilizó también la opción `-p`.                                                                              |
| -f       | Suprime la búsqueda de funciones de shell.                                                                                                                                                                                                               |
| -P       | Fuerza una búsqueda en PATH por cada nombre, aun si hay un alias, orden interna o función, y devuelve el nombre del fichero en disco que se ejecutaría.                                                                                                  |
| -p       | Devuelve el nombre del fichero en disco que se ejecutaría, o nada si `type -t NOMBRE` no devuelve `fichero`.                                                                                                                                             |
| -t       | Saca una sola palabra, que es una de entre `alias`, `keyword`, `function`, `builtin`, `file` o, si el NOMBRE es un alias, palabra reservada del shell, función del shell, orden interna del shell, fichero de disco, o no se encuentra, respectivamente. |

Cuando ejecutamos `type comando` y éste no hace parte de bash internamente, nos indicara el directorio donde se encuentra, que normalmente es `/usr/bin/`. De esta forma podemos saber si un programa está instalado, ya que si no existe nos dirá `-bash: type: NOMBRE: no encontrado`.

Otro comando útil para este propósito es `which`.

```bash
$ which ls
```

El comando `whereis` localiza los archivos binarios, fuente y página manual para un comando.

```bash
$ whereis ls
```

Así que no hay que temer por aprender a usar GNU/Linux, como vemos, tenemos la suficiente ayuda interna para aprender.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://yejokjanan.gitbook.io/aprendiendo-gnulinux/info-y-ayuda.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
