La línea de comandos de Linux

Aprende a trabajar con confianza en el intérprete de comandos de Linux. Lee el indicador de comandos, escribe comandos con las opciones y los argumentos adecuados y busca ayuda en las páginas de manual y en la ayuda integrada. Desplázate por el árbol de directorios mediante rutas absolutas y relativas, lista el contenido de cada directorio y crea, copia, mueve, renombra y elimina archivos y directorios sin perder datos por accidente. Selecciona varios archivos a la vez con comodines, reutiliza comandos anteriores del historial y utiliza variables y PATH para controlar el funcionamiento del intérprete.

PrincipianteUnidad 2 de 7 del curso Curso de Introducción a Linux

Lo que aprenderás

  1. Identifica el intérprete de comandos y su indicador, escribe comandos con el formato correcto, con opciones y argumentos, y utiliza las teclas que hacen que el trabajo en la línea de comandos sea más rápido y seguro.
    • Identifica el intérprete de comandos, el terminal y el indicador de comandos
      Distingue el intérprete de comandos de la ventana del terminal, interpreta lo que indica el indicador sobre tu identidad y ubicación, y utiliza las teclas básicas para ejecutar, detener y repetir comandos.
    • Escribe comandos con opciones y argumentos
      Construye un comando a partir de su nombre, opciones y argumentos, combina opciones cortas, utiliza opciones largas y valores de opciones, y maneja correctamente los espacios y los nombres poco habituales.
  2. Utiliza las páginas de manual y la ayuda rápida integrada en los comandos y en el intérprete para averiguar qué hace un comando y qué opciones tiene, sin salir del terminal.
    • Lee las páginas de manual y busca información en ellas
      Abre una página de manual, comprende sus secciones y la notación SYNOPSIS, desplázate y busca en ella, elige una sección del manual y encuentra la página adecuada cuando no sepas el nombre del comando.
    • Utiliza la ayuda rápida y otras fuentes de documentación
      Obtén un resumen rápido de opciones con --help, lee la ayuda de los comandos integrados del intérprete, encuentra documentación adicional en /usr/share/doc y en las páginas Info, y utiliza los mensajes de error como pistas.
  3. Comprende cómo organiza Linux los archivos en un solo árbol de directorios, desplázate por él mediante rutas absolutas y relativas, y lista e inspecciona el contenido de cada directorio.
    • Comprende el árbol de directorios
      Describe el árbol único que comienza en el directorio raíz, identifica los principales directorios del sistema y el directorio personal, y sigue las reglas de los nombres de archivo y los archivos ocultos.
    • Desplázate mediante rutas absolutas y relativas
      Identifica dónde estás, cambia de directorio y escribe rutas desde la raíz, desde el directorio actual, con .. y con ~, eligiendo el tipo de ruta adecuado para cada tarea.
    • Lista e inspecciona el contenido de los directorios
      Lista archivos con ls y sus opciones habituales, interpreta cada columna de un listado en formato largo y muestra archivos ocultos, tamaños, órdenes de clasificación y contenido de los subdirectorios.
  4. Gestiona archivos y directorios desde el intérprete: créalos, cópialos, muévelos o cámbiales el nombre y elimínalos de forma segura, sabiendo exactamente qué hace cada comando cuando los nombres ya existen.
    • Crea archivos y directorios
      Crea directorios, incluidos los anidados, crea archivos vacíos o actualiza sus marcas de tiempo con touch y elimina directorios vacíos.
    • Copia, mueve y cambia nombres
      Copia archivos y directorios completos con cp, mueve y cambia nombres con mv, prevé dónde quedará el resultado y evita sobrescribir archivos por accidente.
    • Elimina archivos y directorios de forma segura
      Elimina archivos y árboles de directorios con rm, utiliza las opciones que preguntan o fuerzan la eliminación y sigue una rutina que evite eliminar elementos equivocados.
  5. Utiliza los patrones con comodines del intérprete para indicar varios archivos a la vez, prevé exactamente con qué nombres coincide un patrón y utiliza patrones de forma segura con comandos que copian, mueven y eliminan.
    • Busca coincidencias en nombres de archivo con *, ? y [ ]
      Escribe patrones con *, ? y expresiones entre corchetes, incluidos rangos y negaciones, y prevé con qué nombres existentes coinciden, teniendo en cuenta las mayúsculas, las minúsculas y los archivos ocultos.
    • Utiliza comodines de forma segura en los comandos
      Prevé qué pasa el intérprete a un comando tras la expansión, previsualiza patrones antes de usarlos, impide la expansión con comillas y utiliza llaves para generar nombres.
  6. Recupera y repite comandos anteriores del historial, almacena valores en variables del intérprete y de entorno, y controla cómo encuentra el intérprete los programas mediante PATH.
    • Recupera y reutiliza comandos del historial
      Recorre, busca y vuelve a ejecutar comandos anteriores, usa con cuidado la expansión del historial y conoce dónde guarda Bash el historial y qué registra.
    • Define y utiliza variables del intérprete de comandos y de entorno
      Crea, lee y elimina variables, expórtalas al entorno, utiliza las variables de entorno habituales, protege los valores correctamente con comillas y conserva los ajustes.
    • Controla cómo encuentra comandos el intérprete mediante PATH
      Explica cómo convierte el intérprete un nombre de comando en un programa, consulta y amplía PATH, ejecuta un programa que no esté en PATH y comprueba qué programa ejecuta un nombre.

Guía de estudio de Línea de comandos de Linux

6 capítulos

1

Trabaja en el indicador de comandos

Una sesión de terminal te ofrece un lugar donde escribir instrucciones y ver sus resultados. El intérprete lee cada instrucción, mientras que el indicador te ayuda a identificar tu cuenta de usuario y tu ubicación. Aprenderás las teclas para completar nombres y corregir una línea, y después construirás comandos a partir de nombres, opciones y argumentos. Es importante escribir bien los espacios y las comillas: el intérprete actúa sobre las palabras que recibe y un pequeño cambio al escribir puede indicar un archivo diferente.

1.1 Identifica el intérprete de comandos, el terminal y el indicador de comandos

Un intérprete de comandos lee comandos e inicia el trabajo que solicitan. Un terminal es la ventana a través de la cual escribes y ves la salida. Abrir otro terminal normalmente inicia otra sesión del intérprete. Una consola proporciona una pantalla de texto conectada directamente; un inicio de sesión SSH puede proporcionar un intérprete en otra computadora.

Lee el indicador de comandos

En el indicador de ejemplo sam@laptop:~$, sam es el usuario, laptop es el equipo y ~ representa el directorio personal. El $ final suele indicar un usuario normal. El formato de los indicadores puede cambiar, así que usa comandos para confirmar los detalles cuando sea necesario. whoami muestra el nombre de la cuenta y pwd muestra el directorio actual.

Por convención, un indicador # señala al superusuario, la cuenta de administración. Trabaja como usuario normal y utiliza derechos de administración solo cuando una tarea los necesite. El símbolo del indicador que aparece delante de un comando de ejemplo no forma parte del comando que escribes.

Ejecuta una primera sesión

Escribe cada línea por separado y pulsa Enter:

whoami
pwd
date
echo Hello

Para la cuenta de ejemplo, los dos primeros resultados son sam y /home/sam. date muestra la fecha y la hora actuales; echo Hello muestra Hello. La salida de un comando aparece debajo de la entrada, seguida de un nuevo indicador. Algunos comandos ejecutados correctamente no muestran nada: mkdir reports crea un directorio en silencio. Inspecciona el resultado con ls cuando necesites confirmarlo.

Bash, Bourne Again Shell, se utiliza ampliamente en Linux. Otros intérpretes son zsh y fish. echo $0 muestra cómo se invocó el intérprete actual; echo $SHELL muestra el intérprete de inicio de sesión configurado para la cuenta. Iniciar otro intérprete puede hacer que esas respuestas sean diferentes. Una ventana de terminal no determina por sí misma qué intérprete se ejecuta dentro de ella.

Edita y recupera
TeclaAcción
TabCompleta un comando o nombre de archivo; pulsa dos veces para ver las posibilidades cuando haya más de una
Arriba / AbajoRecorre los comandos escritos anteriormente
Ctrl+CCancela la línea de entrada actual o interrumpe un programa en ejecución en primer plano
Ctrl+LLimpia la pantalla; clear también lo hace
Ctrl+D en una línea vacíaFinaliza el intérprete, igual que exit

Supón que escribes ls Doc y pulsas Tab. Si Documents es el único nombre coincidente, el autocompletado lo completa. Si varios nombres comienzan por Doc, Bash necesita más caracteres o una elección. El autocompletado ayuda con la escritura y el uso de mayúsculas y minúsculas: Documents y documents son nombres diferentes.

Un programa a pantalla completa puede estar esperando su propia tecla en lugar de mostrar el indicador del intérprete. Pulsa q para salir de man o less. Un comando cat sin archivo espera que escribas una entrada; Ctrl+C te devuelve al intérprete. Por tanto, Ctrl+C no es el atajo habitual para copiar en el terminal. Muchos emuladores de terminal usan Ctrl+Shift+C y Ctrl+Shift+V para copiar y pegar.

La distribución del teclado también afecta a cómo introduces símbolos como ~, [ y {. Algunas distribuciones usan AltGr y una tecla muerta ~ puede necesitar la barra espaciadora para aparecer. Escribe los comandos respetando las mayúsculas y minúsculas: LS y ls son nombres de comando diferentes.

Puntos clave

  • El intérprete interpreta los comandos; el terminal muestra la sesión.
  • Un indicador ayuda a identificar la cuenta, el equipo y el directorio actual.
  • Usa Tab para completar nombres y Ctrl+C para interrumpir o cancelar.
  • Ctrl+D en una línea vacía cierra el intérprete; q cierra un paginador de manual.

1.2 Escribe comandos con opciones y argumentos

Una línea de comandos se compone de palabras. La primera palabra indica qué ejecutar, las opciones cambian su comportamiento y los argumentos proporcionan los objetos o valores sobre los que actúa. Los espacios separan esas palabras.

Identifica las partes

En ls -l /etc, ls es el comando, -l solicita un listado en formato largo y /etc es el argumento que indica el directorio. La forma de uso command [options] [arguments] describe esta disposición; no escribas esos corchetes.

Las opciones cortas usan un guion y una letra. ls -a -l, ls -al y ls -la solicitan el mismo listado. Las opciones largas usan dos guiones, como en ls --all. Mantén separadas las opciones largas; unir palabras detrás de un guion no crea una opción larga. Por ejemplo, ls -all se interpreta como las opciones cortas -a -l -l.

Una opción también puede necesitar un valor. En touch -d 2025-01-31 old.txt, la fecha corresponde a -d; old.txt es el argumento que indica el archivo. La forma larga es touch --date=2025-01-31 old.txt. Lee la descripción de uso para saber si una opción necesita un valor y cómo proporcionarlo.

Mantén unido cada nombre

El intérprete trata los espacios sin proteger como límites entre palabras. Cada una de estas tres líneas indica un solo archivo:

ls "Annual Report.pdf"
ls 'Annual Report.pdf'
ls Annual\ Report.pdf

Las comillas o la barra inversa protegen el espacio; no forman parte del nombre del archivo. Sin esa protección, ls Annual Report.pdf solicita dos archivos. Un efecto similar aparece con echo: echo Hello world recibe dos palabras y muestra un espacio de separación, mientras que echo "Hello world" conserva los tres espacios dentro de un solo argumento.

Evita ambigüedades en las opciones

Pon las opciones antes de los argumentos de archivo. Los comandos GNU suelen aceptarlas también después, pero ponerlas primero facilita la lectura de la línea y funciona en más casos. En los comandos que lo admiten, -- termina el procesamiento de opciones. Por tanto, rm -- -draft.txt trata -draft.txt como un nombre de archivo. La ruta ./-draft.txt también comienza con un punto, por lo que rm ./-draft.txt evita que el primer carácter parezca una opción.

Las letras de las opciones pertenecen a cada comando. cp -r copia directorios de forma recursiva, pero ls -r invierte el orden; ls -R lista directorios de forma recursiva. ls -h cambia la presentación de los tamaños y no solicita ayuda. Una raya media copiada, –, también es diferente del guion normal - que requieren las opciones.

Averigua qué ejecuta un nombre

Un comando puede ser un archivo de programa, un comando integrado en el intérprete o un alias que se expande a otra línea de comandos. cd está integrado en Bash porque cambia el directorio de ese intérprete. ls suele ser un programa, a menudo con un alias que añade color. type cd y type ls indican su significado activo.

Si ls-l falla con command not found, Bash buscó ese nombre completo. Inserta el espacio que falta: ls -l. Si un comando informa de una opción desconocida, comprueba cómo está escrita y consulta su documentación; cambiar la ruta del archivo no corregirá un error de opción.

Puntos clave

  • Los espacios separan el comando, las opciones y los argumentos.
  • Protege con comillas o con un carácter de escape un espacio que forme parte de un nombre.
  • Las opciones cortas pueden combinarse; las largas usan dos guiones.
  • Una opción puede requerir un valor propio.
  • -- o una ruta con ./ permiten tratar un nombre de archivo que comienza con un guion.
  • type distingue entre un comando integrado, un alias y un archivo de programa.
2

Busca ayuda en la línea de comandos

La ayuda de la línea de comandos te permite responder a una pregunta concreta sin memorizar todas las opciones. Una página de manual ofrece una referencia completa; la ayuda rápida de un comando ofrece un recordatorio más breve. Bash también tiene un sistema de ayuda independiente para los comandos integrados en el intérprete. Aprenderás a elegir la fuente adecuada, interpretar la notación abreviada de una línea de uso, buscar en una página larga y utilizar un mensaje de error para decidir qué comprobar después.

2.1 Lee las páginas de manual y busca información en ellas

Una página de manual es una referencia detallada de un comando o una función del sistema. Abre una con man ls. La página suele aparecer en less, un paginador que muestra una pantalla cada vez y permite buscar sin salir del terminal.

Lee la estructura de la página

El encabezado NAME identifica el comando y su propósito. SYNOPSIS presenta su patrón de invocación. DESCRIPTION y OPTIONS explican el comportamiento y las opciones. EXAMPLES puede mostrar usos reales, mientras que FILES y ENVIRONMENT describen archivos y variables relacionados. SEE ALSO indica páginas relacionadas. Los encabezados varían porque algunos comandos necesitan información que otros no.

Una línea de uso como ls [OPTION]... [FILE]... es una notación abreviada:

  • El texto literal, a menudo en negrita, se escribe tal como aparece.
  • El texto que actúa como marcador, a menudo en cursiva o subrayado, se sustituye por tu valor.
  • Los corchetes encierran partes opcionales.
  • ... significa que la parte anterior puede repetirse.
  • Una barra vertical separa alternativas.

Tanto el grupo de opciones como el de archivos son opcionales en esta forma de ls, por lo que ls por sí solo es válido. En mkdir [OPTION]... DIRECTORY..., el grupo de directorios no tiene corchetes: se requiere al menos un nombre de directorio. No escribas DIRECTORY solo porque aparece en el manual.

Busca mientras lees

La barra espaciadora o Page Down avanza una pantalla; b retrocede. Las flechas desplazan por líneas. La g minúscula va al principio y la G mayúscula va al final. Escribe /human y pulsa Enter para buscar «human». Usa n para el siguiente resultado y N para el anterior. Pulsa q para salir de la página; h abre la ayuda del paginador.

Para una búsqueda práctica, abre man ls, busca /human y lee la entrada de -h, --human-readable. Funciona con un listado que muestra tamaños, como -l. Sal del manual y ejecuta ls -lh. Un archivo de 2048 bytes aparece como 2.0K. Usar ls -h por sí solo sigue dando un listado simple de nombres porque no se solicitó ninguna columna de tamaño.

Elige la sección adecuada del manual
SecciónTema
1Comandos de usuario
2Llamadas al sistema
3Funciones de biblioteca
4Archivos especiales de dispositivo
5Formatos de archivo
6Juegos
7Descripciones generales y convenciones
8Comandos de administración del sistema

La referencia passwd(5) indica la explicación del formato del archivo de contraseñas en la sección 5. Ejecuta man 5 passwd para seleccionarla. man passwd sin más suele abrir la página del comando de la sección 1.

Si conoces el propósito pero no el comando, ejecuta apropos directory o man -k directory. Buscan en nombres y descripciones breves indexados. Si ya conoces un nombre y quieres saber su propósito en una línea, usa whatis ls o man -f ls. Un sistema nuevo puede tener un índice vacío, así que una búsqueda fallida de una palabra clave no demuestra que el comando esté ausente.

Algunas instalaciones mínimas omiten los manuales. La ausencia de una página para man cd también suele deberse a que cd es un comando integrado del intérprete. Usa help cd para consultar la descripción propia de Bash.

Puntos clave

  • Usa man command como referencia y /word para buscar dentro de ella.
  • Los corchetes de SYNOPSIS indican partes opcionales; los puntos suspensivos indican repetición.
  • Un número de sección permite elegir entre páginas que comparten un nombre.
  • apropos busca propósitos; whatis consulta un nombre conocido.
  • Usa help para los comandos integrados de Bash, como cd.

2.2 Utiliza la ayuda rápida y otras fuentes de documentación

No siempre necesitas una página de manual completa. Una lista rápida de opciones, la ayuda de un comando integrado o un mensaje de error pueden responder a la pregunta inmediata. Elige una fuente que describa el comando que realmente estás ejecutando.

Elige la ayuda según el comando

type cp normalmente identifica un archivo de programa, por lo que cp --help proporciona su uso y sus opciones. type cd identifica un comando integrado del intérprete, por lo que help cd describe la versión de Bash. help por sí solo lista los comandos integrados de Bash; no proporciona una página de ayuda para el programa externo ls.

La mayoría de los comandos GNU admiten --help, pero los significados de las opciones cortas varían. Para ls, -h indica tamaños legibles, no ayuda. Leer ls --help es la forma fiable de comprobar las opciones de ls sin adivinarlas a partir de otro programa.

Supón que quieres crear reports/2026/q1, pero los directorios padre no existen. Resuelve la cuestión paso a paso:

  1. apropos directory sugiere mkdir para crear directorios.
  2. mkdir --help muestra -p, --parents y explica la creación de los directorios padre que faltan.
  3. mkdir -p reports/2026/q1 crea toda la ruta.

La búsqueda de ayuda proporciona la función que faltaba, no solo el nombre del comando. Esto importa cuando ya conoces mkdir, pero su forma habitual informa de que falta un directorio padre.

Busca más allá de la lista de opciones

Los manuales Info de GNU son documentos enlazados más extensos. info coreutils abre la documentación de las utilidades básicas de archivos. Dentro de Info, n va al nodo siguiente, p al anterior, u sube un nivel, Enter sigue un enlace seleccionado y q sale. Un nodo es una parte del manual enlazado.

Los paquetes instalados también pueden proporcionar documentación en /usr/share/doc/. Por ejemplo, ls /usr/share/doc/bash lista la documentación del paquete Bash. Estos directorios pueden contener archivos README, registros de cambios, textos de licencia y ejemplos. El sufijo .gz indica un archivo comprimido; zless puede mostrar texto comprimido.

Lee un error como una pista

Un error suele indicar el comando, el objeto y el motivo. En ls: cannot access 'note.txt': No such file or directory, ls se ejecutó, pero no pudo encontrar esa ruta. Comprueba pwd, la escritura y las mayúsculas y minúsculas, y el directorio que contiene el archivo. Volver a escribir ls en mayúsculas crearía otro problema con el nombre del comando.

rmdir: failed to remove 'photos': Directory not empty significa que el destino existe, pero aún tiene entradas. Listarlo, incluidas las entradas ocultas, explica por qué falló la eliminación. Una opción desconocida es diferente: un mensaje sobre --bogus te remite a ls --help porque la propia opción no es válida.

La ayuda local se corresponde más con el programa instalado que un ejemplo cualquiera de la web. ls --version identifica la versión de GNU cuando necesitas comparar la documentación. Antes de usar un comando copiado que no conozcas, identifica cada opción en su propia ayuda, especialmente en comandos que eliminan archivos o se ejecutan con derechos de administración.

Puntos clave

  • Elige command --help para las opciones de un programa y help name para los comandos integrados de Bash.
  • info y /usr/share/doc/ pueden proporcionar explicaciones más extensas y ejemplos.
  • Usa el comando, la ruta y el motivo de un error para decidir qué comprobar después.
3

Navega por el sistema de archivos de Linux

Los archivos y directorios se encuentran en un solo árbol y cada comando trabaja desde un lugar concreto de ese árbol. Una ruta le indica dónde ir o qué inspeccionar. Recorrerás rutas desde la raíz y desde tu directorio actual, usarás atajos para los directorios personales y padre, y leerás listados que muestran más que nombres. Estas habilidades te permiten comprobar tu ubicación y los objetos con los que trabajas antes de modificar nada.

3.1 Comprende el árbol de directorios

Linux organiza archivos y directorios en un solo árbol. Un archivo contiene datos; un directorio, llamado carpeta en un gestor de archivos gráfico, contiene entradas con nombre para archivos y otros directorios. El árbol comienza en el directorio raíz, /.

Recorre el árbol

Una barra inclinada separa los componentes de una ruta: /home/sam/photos lleva desde / a home, después a sam y después a photos. Otros discos aparecen dentro del mismo árbol, a menudo bajo /media o /mnt; no necesitan letras de unidad. Una barra inversa no es un separador de rutas de Linux. Bash la usa para proteger el carácter siguiente, como en Annual\ Report.pdf.

Las ubicaciones importantes tienen funciones diferentes:

UbicaciónPropósito principal
/homeDirectorios personales de usuarios normales
/rootDirectorio personal del superusuario
/etcConfiguración del sistema
/bin, /usr/binArchivos de programas de uso cotidiano
/sbin, /usr/sbinProgramas de administración del sistema
/tmpDatos temporales que pueden borrarse automáticamente
/varDatos que cambian, incluidos los registros de /var/log
/devArchivos de dispositivo

Muchas distribuciones actuales enlazan /bin con /usr/bin y /sbin con /usr/sbin. Por ello, puedes ver dos nombres de directorio que llevan a los mismos programas instalados. El directorio raíz / y el directorio /root siguen siendo lugares diferentes: uno inicia el árbol y el otro es el directorio personal de una cuenta.

Identifica tus propios archivos

Para el usuario de ejemplo sam, el directorio personal es /home/sam, abreviado por el intérprete como ~. /home es su directorio padre, no el directorio personal de sam. Los documentos y ajustes personales suelen estar en el directorio personal; /tmp no es adecuado para algo que necesites conservar porque los datos temporales pueden eliminarse automáticamente.

Considera esta estructura:

/home/sam/
  .bashrc
  Documents/
    cv.pdf
    letter.txt
  photos/
  projects/
    notes.txt
    website/
      index.html
      style.css

La ruta completa de la hoja de estilos es /home/sam/projects/website/style.css. El archivo notes.txt está junto a website, no dentro de él. Las entradas de cada directorio determinan el siguiente paso posible al bajar por el árbol.

Lee los nombres con exactitud

Los nombres distinguen entre mayúsculas y minúsculas: notes.txt, Notes.txt y NOTES.TXT pueden designar tres archivos. Los nombres no pueden contener / ni un byte nulo. Las letras simples, los dígitos, los puntos, los guiones y los guiones bajos hacen que los nombres cotidianos sean fáciles de escribir; los sistemas de archivos habituales de Linux limitan cada nombre a 255 bytes.

Un sufijo como .txt forma parte de un nombre, pero no demuestra su contenido. file report examina los datos y podría identificar un PDF aunque el nombre no termine en .pdf.

Un punto inicial oculta una entrada de la salida normal de ls. .bashrc, .profile y .config suelen contener ajustes. Oculto significa que se omite en el listado predeterminado, no que esté protegido frente al acceso; ls -a revela estos nombres. La entrada especial . representa el propio directorio y .. representa su directorio padre. En la raíz, .. sigue llevando a /.

Puntos clave

  • Las rutas de Linux pertenecen a un solo árbol que comienza en /.
  • /home/sam, /home y /root son directorios diferentes.
  • Los nombres de archivo distinguen entre mayúsculas y minúsculas; las extensiones no determinan el contenido.
  • Un punto inicial oculta un nombre de un listado normal, pero no del acceso autorizado.
  • . representa el directorio actual y .. representa su directorio padre.

3.2 Desplázate mediante rutas absolutas y relativas

Una ruta indica a un comando dónde encontrar un objeto. Para leer una ruta correctamente, determina primero dónde comienza. Una ruta absoluta comienza en /; una ruta relativa comienza en el directorio de trabajo actual del intérprete.

Establece tu punto de partida

pwd muestra tu directorio actual. Desde /home/sam, la ruta projects/website llega a /home/sam/projects/website. Desde /etc, esa misma ruta relativa significaría /etc/projects/website. La ruta absoluta /home/sam/projects/website identifica la misma ubicación desde cualquiera de los dos puntos de partida.

cd cambia el directorio actual. No lista el contenido del destino ni abre un archivo. cd projects entra en un directorio hijo llamado projects; cd /etc va a la ubicación absoluta /etc. Sin argumento, cd vuelve al directorio personal. cd - vuelve al directorio de trabajo anterior y muestra esa ubicación.

Recorre una ruta por partes

Empieza en /home/sam/projects/website y considera cd ../../photos:

  1. El primer .. llega a /home/sam/projects.
  2. El segundo .. llega a /home/sam.
  3. photos baja hasta /home/sam/photos.

El comando completo realiza un solo cambio hasta el destino final. Desde el directorio website, cd .. se detiene en projects, mientras que cd ../.. se detiene en el directorio personal. El directorio de partida importa cada vez: después de desplazarte, un segundo comando relativo comienza desde tu nueva ubicación.

Un ./ inicial indica explícitamente el directorio actual. ./notes.txt y notes.txt se refieren al mismo archivo local. ls ../photos lista un directorio cercano sin desplazar allí el intérprete; solo un comando que cambia el directorio de trabajo, como cd, cambia la base de las rutas relativas posteriores.

Usa el atajo del directorio personal

Al principio de una palabra sin comillas, Bash expande ~ a tu directorio personal. Por tanto, cd ~/Documents funciona desde cualquier lugar para sam. ~alex se refiere al directorio personal de alex.

Poner la virgulilla entre comillas impide esa expansión: cd "~/Documents" solicita un directorio llamado literalmente ~ bajo el directorio actual. Si la parte posterior contiene un espacio, deja la virgulilla fuera de las comillas:

cd ~/"My Files"

También puedes escribir cd "$HOME/My Files"; las comillas dobles conservan el espacio y permiten expandir el valor de la variable.

Diagnostica una ruta que falla

cd /projects solicita projects inmediatamente debajo de /, no debajo de tu directorio personal. cd.. es un único nombre de comando; escribe cd ... Un documents en minúsculas falla cuando el nombre real es Documents. Comprueba el inicio, cada componente y sus mayúsculas y minúsculas exactas. El autocompletado con Tab puede completar un nombre existente y evitar un error de escritura.

Las rutas absolutas son adecuadas para instrucciones que deben funcionar desde distintas ubicaciones. Las rutas relativas son cómodas para trabajar cerca. Ambas formas también funcionan como argumentos de archivo para cp, mv, ls y otros comandos; la interpretación de una ruta no depende de que se use con cd.

Puntos clave

  • Usa pwd para establecer la base de una ruta relativa.
  • Las rutas absolutas comienzan con /; las relativas comienzan en el directorio actual.
  • Interpreta cada .. como un paso al directorio padre.
  • cd, cd - y cd .. tienen destinos diferentes.
  • Deja ~ sin comillas cuando quieras expandir el directorio personal.

3.3 Lista e inspecciona el contenido de los directorios

ls muestra el contenido del directorio actual o los archivos y directorios que indiques. Un listado puede responder a más preguntas que «¿Qué hay aquí?»: las opciones revelan entradas ocultas, detalles, tamaños, orden y subdirectorios.

Elige qué mostrar

ls y ls -l sin más omiten las entradas ocultas. -a las incluye junto con . y ..; -A incluye las entradas ocultas sin esos dos nombres especiales. -F añade una barra después de los nombres de directorio. Los colores de la salida son otra ayuda visual, pero los colores exactos dependen del sistema.

ls projects lista lo que hay dentro de projects. En cambio, ls -ld projects muestra un listado en formato largo de la propia entrada del directorio. La opción -d cambia el objeto mostrado, no la cantidad de detalles.

Lee un listado en formato largo

Considera esta línea de ls -l:

-rw-r--r-- 1 sam sam 2048 Mar  3 14:20 notes.txt

Lee de izquierda a derecha:

  1. - indica un archivo normal; d indicaría un directorio y l un enlace simbólico.
  2. Los nueve caracteres siguientes describen los permisos del propietario, del grupo y de los demás usuarios.
  3. 1 es el número de enlaces.
  4. Los dos campos sam identifican al propietario y al grupo.
  5. 2048 es el tamaño del archivo en bytes.
  6. La fecha y la hora describen la última modificación del contenido.
  7. notes.txt es el nombre.

ls -lh muestra ese tamaño como 2.0K. La opción -h cambia el formato del tamaño, mientras que -l proporciona la columna de tamaño. ls -h por sí solo sigue mostrando nombres sin tamaños.

El tamaño de un directorio es el espacio utilizado para sus entradas; no es la suma de todos los datos que contiene. El encabezado total 12 describe los bloques de disco de las entradas listadas, no doce archivos. Usa las líneas de nombres de archivo para ver las propias entradas.

Ordena el resultado
OpcionesQué aparece primero
Sin opción de ordenaciónNombres en el orden de la configuración regional
-tEntradas modificadas más recientemente
-SEntradas más grandes
-r con otro ordenEl inverso de ese orden

Por ejemplo, ls -lt coloca primero los cambios más recientes, mientras que ls -ltr los coloca al final. ls -lhS muestra tamaños legibles con los más grandes primero. Las mayúsculas, minúsculas y la puntuación pueden ordenarse de forma diferente según la configuración regional, así que no deduzcas que falta un archivo solo por el lugar donde esperabas que apareciera su nombre.

Inspecciona por debajo del primer nivel

ls -R projects lista el contenido de projects y después sus subdirectorios. Con notes.txt junto a un directorio website, el primer encabezado es projects: y sus entradas incluyen esos dos nombres. Un encabezado posterior, projects/website:, identifica el listado que contiene index.html y style.css.

La -R mayúscula es recursiva. La -r minúscula solo invierte el orden. Combinar -a con un listado recursivo también muestra las entradas ocultas, lo que puede hacer que el resultado sea mucho más largo. Para los metadatos de un directorio, ls -ld suele ser la forma más clara de inspeccionarlos.

Puntos clave

  • -l añade detalles y -h facilita la lectura de los tamaños mostrados.
  • -a incluye entradas ocultas; -A solo omite . y ...
  • -d lista el propio directorio; -R lista sus subdirectorios.
  • -t, -S y -r controlan el orden.
  • El tamaño de un directorio y la línea total no indican cantidades ni tamaños totales de todos los archivos que contiene.
  • Un listado en formato largo identifica el tipo, los permisos, los enlaces, el propietario, el grupo, el tamaño, la fecha y hora de modificación y el nombre.
4

Crea, copia, mueve y elimina archivos y directorios

Crear un directorio, copiar un archivo y cambiar el nombre de un archivo modifican el árbol de distintas maneras. El resultado también depende de si ya existe un destino. Crearás una pequeña estructura de directorios, preverás dónde terminan las copias y los movimientos, y distinguirás entre eliminar un directorio vacío y eliminar un árbol completo. Interpretar el comando como una acción sobre rutas concretas de origen y destino ayuda a evitar sobrescrituras y eliminaciones accidentales.

4.1 Crea archivos y directorios

mkdir crea directorios y touch crea archivos vacíos o actualiza las marcas de tiempo existentes. Son acciones distintas: un directorio proporciona un lugar para las entradas, mientras que un archivo vacío ya es un archivo, aunque no contenga datos.

Crea primero el directorio

mkdir drafts crea un directorio bajo tu ubicación actual. mkdir drafts final crea dos directorios al mismo nivel. Si un nombre solicitado ya existe, mkdir sin opciones informa File exists.

Normalmente, los directorios padre de una ruta deben existir. Si falta reports, mkdir reports/2026/q1 no puede llegar a la ubicación solicitada. Añade -p para crear los directorios padre que faltan:

mkdir -p reports/2026/q1

Esto crea cada nivel que falte y acepta los niveles que ya existan como directorios. Repetir el comando resulta útil para preparar una estructura cuyas partes existentes deben mantenerse. No convierte un archivo normal existente en un directorio.

Añade archivos vacíos

touch todo.txt crea un archivo de cero bytes si ese nombre no existe. Si el archivo existe, touch conserva su contenido y actualiza sus fechas y horas de acceso y modificación. No es un comando para vaciar un archivo. Puedes indicar varios archivos, como en touch a.txt b.txt, o elegir una marca de tiempo con touch -d 2025-01-31 old.txt.

Los archivos con contenido suelen proceder de un programa que guarda datos, como un editor. Crear un archivo con touch le da un nombre y un contenido vacío; no añade texto por ti.

Crea un pequeño proyecto

Desde tu directorio personal, ejecuta:

mkdir -p website/css website/images
touch website/index.html website/css/style.css
ls -R website

La primera línea crea website y sus dos directorios hijos. La segunda coloca index.html dentro de website y style.css dentro de website/css. No coloca ninguno de los dos archivos en images. En el listado recursivo, website: contiene css, images e index.html; website/css: contiene style.css; website/images: no tiene entradas normales.

Observa que el comando touch depende de los directorios padre creados por mkdir. Invertir esos dos pasos fallaría si website aún no existiera.

Elimina un directorio vacío

rmdir website/images elimina ese directorio vacío. rmdir website/css falla mientras style.css siga dentro. Una entrada oculta también hace que un directorio no esté vacío, así que inspecciónalo con ls -A si el listado normal parece vacío.

rmdir -p reports/2026/q1 elimina q1, después intenta eliminar 2026 y luego reports. Se detiene cuando un directorio padre no está vacío. Esa opción actúa hacia arriba, mientras que mkdir -p crea los directorios padre que faltan hacia abajo.

Los espacios siguen separando argumentos. mkdir My Project solicita dos directorios; mkdir "My Project" solicita uno. Un nombre sencillo como my-project evita el espacio. Los nombres Reports y reports son distintos, así que utiliza las mismas mayúsculas y minúsculas en el comando de creación y en las rutas posteriores.

Puntos clave

  • mkdir crea directorios; -p también crea los directorios padre que faltan.
  • touch crea un archivo vacío que no existe o actualiza uno existente sin borrarlo.
  • Crea los directorios padre antes de crear archivos dentro de ellos.
  • rmdir solo elimina directorios vacíos, es decir, sin entradas ocultas tampoco.

4.2 Copia, mueve y cambia nombres

Una copia deja el origen en su lugar. Un movimiento cambia su nombre o ubicación. Para prever el resultado de cualquiera de las dos acciones, examina la ruta de origen, la ruta de destino y si el destino ya existe.

Prevé el destino de una copia

cp notes.txt notes-backup.txt crea un segundo archivo llamado notes-backup.txt. Si Documents es un directorio existente, cp notes.txt Documents/ crea Documents/notes.txt. La barra final expresa la intención de copiar dentro de un directorio.

Cuando hay varios orígenes, el último argumento debe ser un directorio existente. cp cv.pdf letter.txt backup/ coloca ambos archivos indicados en backup. Este comando no crea automáticamente un directorio de destino que falte.

Los directorios requieren una copia recursiva. cp website website-old omite el directorio porque no se indicó ninguna opción recursiva. cp -r website website-old copia el árbol, pero el resultado depende del destino:

Antes de copiarUbicación del árbol copiado
website-old no existewebsite-old/index.html, etc.
website-old existe como directoriowebsite-old/website/index.html, etc.

Un directorio de destino existente recibe el directorio de origen con su nombre. No se sustituye automáticamente por el contenido del origen.

Mueve o cambia el nombre

mv draft.txt final.txt cambia el nombre de un archivo. mv final.txt Documents/ lo mueve a un directorio existente. mv website site cambia el nombre de un directorio cuando site no existe y no necesita ninguna opción recursiva.

Dentro de un mismo sistema de archivos, un movimiento suele cambiar las entradas de directorio sin copiar todos los datos. Mover entre sistemas de archivos puede requerir copiar y eliminar datos, por lo que un movimiento grande no tiene por qué terminar al instante.

Si archive no existe, mv notes.txt archive cambia el nombre del archivo a archive. En cambio, mv notes.txt archive/ requiere un directorio y falla si ese directorio no existe. Usa la barra cuando un nombre de archivo nuevo no sea el resultado deseado.

Controla la sustitución y los metadatos

cp y mv sin opciones pueden sobrescribir un archivo de destino existente sin preguntar. -i pregunta antes de sustituirlo; -n omite los destinos existentes; -v muestra las acciones. Los alias pueden añadir opciones, así que usa type cp o type mv si el comportamiento observado es diferente.

Una copia normal recién creada recibe una nueva fecha y hora de modificación. cp -p conserva las marcas de tiempo y los permisos, mientras que cp -a conserva de forma recursiva los atributos de un árbol de directorios y resulta útil para las copias de seguridad. No supongas que una copia normal conserva la fecha y hora de su origen solo porque el contenido coincida.

Sigue una operación completa

Desde /home/sam, crea primero backup. cp projects/notes.txt backup/ crea backup/notes.txt. Después, mv backup/notes.txt backup/notes-2026.txt cambia solo el nombre de la copia. Por último, cp -r projects/website backup/ crea backup/website, incluidos sus archivos. Los originales projects/notes.txt y projects/website permanecen donde estaban porque ninguno fue origen de un movimiento.

Puntos clave

  • cp conserva el origen; mv cambia su nombre o ubicación.
  • Un directorio de destino existente recibe el origen con su nombre.
  • Varios orígenes requieren un directorio como último argumento.
  • cp -r copia un árbol; mv no necesita una opción recursiva.
  • -i pregunta antes de sobrescribir y -n omite un destino existente.
  • cp -p conserva marcas de tiempo y permisos; cp -a conserva un árbol de forma recursiva.

4.3 Elimina archivos y directorios de forma segura

rm elimina los archivos indicados en sus argumentos. A diferencia de la acción de enviar a la papelera de un gestor de archivos gráfico, no los coloca en una papelera de reciclaje. Normalmente, una copia de seguridad permite recuperarlos después de eliminarlos.

Selecciona el comando de eliminación adecuado

rm old.txt elimina un archivo y rm a.txt b.txt elimina varios archivos indicados. rm old sin opciones se niega si old es un directorio. rmdir old o rm -d old de GNU elimina un directorio solo si está vacío. rm -r old elimina su contenido de forma recursiva y después el propio directorio.

La distinción es útil cuando esperas que un directorio esté vacío. Si rmdir falla con Directory not empty, tienes la oportunidad de inspeccionar el contenido inesperado. La eliminación recursiva también eliminaría ese contenido.

Controla las preguntas de forma consciente
OpciónEfecto
-iPregunta antes de cada eliminación
-IPregunta una vez antes de eliminar más de tres archivos o de una eliminación recursiva
-fNo pregunta; ignora los nombres que no existen
-vMuestra las acciones de eliminación

Con una entrada interactiva normal, rm también puede preguntar por un archivo protegido contra escritura. -f suprime esa pregunta. No hace que la eliminación sea recuperable ni elimina todas las posibles causas de fallo de un comando.

Comprueba los destinos exactos

Usa esta rutina antes de una eliminación que pueda afectar a varios nombres:

  1. Ejecuta pwd para confirmar tu ubicación.
  2. Lista los nombres exactos o el patrón que pretendes eliminar.
  3. Inspecciona la lista y comprueba, entre otras cosas, si se ha seleccionado algún directorio.
  4. Usa la misma expresión de destino con rm y añade -i cuando sea útil confirmar.

Supón que el directorio contiene draft1.tmp, draft2.tmp, final.txt y notes.tmp. ls *.tmp muestra los tres archivos temporales. rm -i *.tmp pregunta por esos tres nombres; final.txt no coincide. Responder n omite un archivo, mientras que y confirma su eliminación.

Conserva la escritura de las rutas

Un espacio separa palabras incluso en un comando peligroso. Añadir un espacio entre ~/ y el nombre de un elemento hijo convierte una ruta relativa al directorio personal en dos destinos separados. Comprueba toda la línea antes de pulsar Enter. Evita la eliminación recursiva forzada para la limpieza habitual cuando baste un comando más limitado. Por defecto, rm de GNU protege / en sí, pero esa protección no protege todas las rutas bajo / frente a un patrón equivocado.

Un guion inicial puede confundirse con una opción. rm -- -draft.txt termina la interpretación de opciones antes del nombre del archivo. rm ./-draft.txt también lo indica sin ambigüedad. Para un espacio dentro de un nombre, usa rm "old notes.txt"; la versión sin comillas indica old y notes.txt por separado.

Un error requiere diagnóstico, no más privilegios por defecto. Si falla una eliminación, comprueba si el destino es un directorio, si su ruta es correcta y qué dice el mensaje. Repetir un comando mal escrito con derechos de administración amplía aquello a lo que puede afectar el error.

Puntos clave

  • rm elimina directamente; no envía archivos a una papelera.
  • Usa rmdir para un directorio vacío y rm -r para un árbol.
  • Comprueba el directorio de trabajo y los destinos exactos antes de eliminar.
  • -i pregunta por cada destino; -f suprime las preguntas e ignora nombres que no existen.
  • Los espacios, las comillas y los guiones iniciales cambian cómo se interpretan los argumentos de eliminación.
5

Selecciona archivos con comodines

Un comodín puede convertir un patrón corto en muchos nombres de archivo. Bash busca esas coincidencias antes de iniciar el comando, por lo que el mismo patrón puede servir para listar, copiar o eliminar. Determinarás exactamente qué nombres coinciden, tendrás en cuenta las mayúsculas, las minúsculas y las entradas ocultas, y verás cómo las comillas cambian lo que recibe un programa. La expansión de llaves añade otra herramienta útil: genera nombres nuevos aunque no existan archivos con esos nombres.

5.1 Busca coincidencias en nombres de archivo con *, ? y [ ]

Un patrón de nombres de archivo es un patrón que selecciona nombres de archivo. Bash sustituye un patrón sin comillas por los nombres existentes que coinciden antes de iniciar el comando. Puedes usar el mismo patrón con ls, cp, mv u otro comando que acepte esos nombres.

Busca coincidencias por partes
Parte del patrónCon qué coincide
*Cualquier secuencia de caracteres, incluida una vacía
?Exactamente un carácter
[12]Un carácter: 1 o 2
[0-9]Un dígito del rango
[!0-9]Un carácter fuera del rango de dígitos

Un patrón coincide con el nombre completo. report* coincide con report porque el asterisco puede coincidir con cero caracteres. beach?.jpg coincide con beach1.jpg, pero no con beach10.jpg: dos dígitos no caben en un signo de interrogación. beach[12].jpg limita esa posición a 1 o 2.

Para un ejemplo resuelto de selección, supón que photos contiene beach1.jpg, beach2.jpg, beach10.jpg, city1.jpg, city2.png, IMG_01.JPG, notes.txt y .index. El patrón *.jpg coincide con las tres fotos de playa y city1.jpg. city* también coincide con city2.png porque limita el comienzo, no el sufijo. [!b]* coincide con nombres cuyo primer carácter no es b y omite tanto los nombres de playa como el archivo oculto .index.

Ten en cuenta las mayúsculas, las minúsculas y los puntos iniciales

Por defecto, la búsqueda de coincidencias distingue entre mayúsculas y minúsculas. *.jpg no selecciona IMG_01.JPG. El patrón *.[jJ][pP][gG] acepta ambas formas en cada posición del sufijo, por lo que incluye los dos tipos.

En la búsqueda normal de coincidencias de Bash, un punto inicial requiere un punto explícito al comienzo de ese componente de ruta. * omite .index; .i* lo selecciona. Esta regla también se aplica dentro de un directorio: photos/* omite los nombres ocultos de photos. El patrón no incluye archivos ocultos solo porque el comando que lo recibe sea ls -a; la expansión ya se produjo antes de que se iniciara ls.

Un comodín no atraviesa /. photos/*.jpg selecciona coincidencias directamente dentro de photos. */notes.txt selecciona un archivo coincidente exactamente un nivel de directorio por debajo del directorio actual. No busca en todos los directorios más profundos.

Lee con cuidado los conjuntos de caracteres

[abc] ofrece una posición para un carácter, no una elección entre nombres de archivo completos. Un ! o ^ inicial niega el conjunto. Un rango como [a-f] sigue las reglas de la configuración regional, que pueden afectar al orden y a las coincidencias. Las clases con nombre usan otro par de corchetes: [[:digit:]], [[:upper:]] y [[:lower:]]. Su clasificación de caracteres sigue la configuración regional; los caracteres en minúscula no se limitan a las letras ASCII de a a z.

Los patrones de nombres de archivo y las expresiones regulares usan reglas diferentes. En un patrón de nombres de archivo, un punto es un punto literal y * ya es una instrucción completa de «cualquier secuencia». No tomes el significado de . o * de un patrón de búsqueda de texto para prever coincidencias en nombres de archivo.

Puntos clave

  • Bash expande los patrones de nombres de archivo en nombres existentes coincidentes antes de ejecutar un comando.
  • * coincide con cero o más caracteres; ? y un conjunto entre corchetes coinciden cada uno con uno.
  • Las mayúsculas, las minúsculas y un punto inicial afectan a las coincidencias.
  • Los comodines coinciden dentro de un componente de ruta y no atraviesan /.
  • Los rangos y las clases de caracteres dependen de la configuración regional.
  • Los patrones de nombres de archivo y las expresiones regulares interpretan los símbolos de forma diferente.

5.2 Utiliza comodines de forma segura en los comandos

Un programa recibe los nombres que produce Bash, no la expresión con comodines que los seleccionó. Por eso resulta útil previsualizar: puedes inspeccionar los argumentos seleccionados antes de que un comando modifique archivos.

Expande y después ejecuta

Si notes.txt y todo.txt son los únicos nombres .txt, ls *.txt recibe esos dos nombres. El intérprete busca las coincidencias; después, ls puede listar cada argumento según sus propias reglas. Los directorios coincidentes también cuentan como nombres, por lo que un patrón no garantiza que cada destino sea un archivo normal.

echo *.tmp muestra las palabras expandidas sin modificar archivos. ls -d -- *.tmp lista las propias entradas coincidentes, incluidas las de directorio, en lugar de mostrar su contenido. Para nombres de archivo sencillos, estas vistas previas facilitan la comprobación de la selección antes de copiar, mover o eliminar.

En la configuración predeterminada de Bash, un patrón sin coincidencias permanece sin cambios. Si no existe ningún nombre .pdf, echo *.pdf muestra *.pdf; ls *.pdf intenta acceder a ese nombre literal e informa de que no existe. Por tanto, un asterisco mostrado puede indicar que no hay coincidencias, en lugar de ser una lista real de archivos seleccionados.

Decide quién debe recibir el patrón

Las comillas impiden la expansión de comodines. echo '*.txt', echo "*.txt" y echo \*.txt muestran el patrón literal. En cambio, echo *.txt pide a Bash que seleccione nombres existentes coincidentes. Las comillas son adecuadas cuando el propio programa debe recibir caracteres especiales o cuando un archivo real tiene un asterisco en su nombre.

Distingue esa decisión de proteger espacios con comillas. Un nombre de archivo seleccionado mediante la expansión de nombres de archivo sigue siendo un solo argumento aunque contenga un espacio. Sin embargo, una variable que contiene una ruta normalmente debe ponerse entre comillas dobles al utilizarla, porque su expansión sin comillas puede dividirse en palabras.

Comprueba el destino del comando

cp *.jpg ~/backup/ copia los nombres coincidentes en un directorio de copia de seguridad existente. mv draft* archive/ mueve los nombres coincidentes a un directorio de archivo existente. Una barra final requiere un directorio de destino y ayuda a detectar que falta, en lugar de cambiar silenciosamente el nombre de un solo origen.

Un * amplio incluye directorios. cp * backup/ copia archivos normales, pero omite directorios sin copia recursiva. Añadir -r incluye directorios, incluido el propio backup cuando está dentro del directorio actual; entonces cp se niega a copiar ese directorio dentro de sí mismo. Coloca la copia de seguridad fuera del conjunto de orígenes seleccionado o elige un patrón más limitado.

Los espacios cambian la selección. *.tmp es un patrón; * .tmp es un patrón amplio más un argumento independiente cuyo nombre empieza por un punto. Previsualiza la expresión real que vas a usar.

Genera nombres nuevos con llaves

La expansión de llaves genera palabras existan o no:

mkdir -p project/{src,docs,tests}
touch file{1..3}.txt
cp notes.txt{,.bak}

La primera línea crea tres directorios hijos con nombre. La segunda genera file1.txt, file2.txt y file3.txt. La última se expande a cp notes.txt notes.txt.bak; su primera opción entre llaves está vacía. Usa llaves para generar nombres y patrones de nombres de archivo para seleccionar los existentes.

Puntos clave

  • Previsualiza el patrón real antes de usar un comando que modifique archivos.
  • En Bash, por defecto, un patrón sin coincidencias permanece literal.
  • Las comillas o una barra inversa mantienen literales los caracteres comodín.
  • Los patrones de nombres de archivo seleccionan tanto directorios como archivos normales.
  • La expansión de llaves crea palabras aunque no existan archivos coincidentes.
6

Reutiliza comandos y trabaja con variables

Un intérprete puede recordar tus comandos y guardar valores que vuelves a utilizar. El historial ahorra escritura, las variables dan nombre a valores útiles y el entorno pasa los valores seleccionados a los programas que se inician. PATH es una variable de entorno que indica a Bash dónde buscar archivos de programa. Relacionarás estas funciones con las comillas, la resolución de comandos y los archivos de inicio para explicar tanto lo que funciona ahora como lo que heredará una sesión de terminal posterior.

6.1 Recupera y reutiliza comandos del historial

Bash mantiene una lista de historial de los comandos introducidos en el intérprete. Puedes recuperar una línea, inspeccionarla, cambiar una parte y ejecutar la versión editada. Esto es especialmente útil para una ruta larga o una combinación de opciones que hayas usado recientemente.

Recupera una línea antes de ejecutarla

Las flechas Arriba y Abajo recorren los comandos anteriores. La línea recuperada se convierte en una entrada editable; no se ejecuta hasta que pulsas Enter. history muestra la lista numerada y history 5 limita la salida a las entradas recientes.

Ctrl+R busca hacia atrás. Escribe parte de un comando, como mkdir, para encontrar la línea coincidente más reciente. Pulsa Ctrl+R de nuevo para una coincidencia anterior. Enter ejecuta el comando mostrado, mientras que Ctrl+G cancela la búsqueda. Lee todo el resultado, ya que el fragmento coincidente puede aparecer en varios comandos con rutas diferentes.

Comprende los atajos con signo de exclamación

La expansión del historial reescribe expresiones antes de la ejecución:

ExpresiónTexto reutilizado
!!El comando anterior
!42La entrada 42 del historial
!lsEl comando más reciente que comienza por ls
!$El último argumento del comando anterior

Por ejemplo, inmediatamente después de mkdir -p reports/2026, cd !$ se expande a cd reports/2026. El atajo se refiere al comando anterior, por lo que otro comando introducido entre esas líneas cambiaría lo que selecciona !$. Para repetir un comando numerado, usa su número de entrada; para reutilizar su último argumento, usa un atajo de palabra en el contexto adecuado.

Normalmente, la expansión muestra el comando expandido y lo ejecuta de inmediato. La presentación no es una solicitud de confirmación. Un modificador :p, como !rm:p, muestra la expansión sin ejecutarla. Recuperar con las flechas o Ctrl+R suele ser más fácil cuando quieres inspeccionar y editar una línea potencialmente destructiva. Puedes encontrar sudo !! para repetir el último comando con derechos de administración; inspecciona la acción prevista antes de decidir si son adecuados los derechos adicionales.

Conoce lo que se guarda

El intérprete activo mantiene el historial en memoria. Al salir, normalmente lo escribe en el archivo indicado por HISTFILE, por lo general ~/.bash_history. Cada terminal tiene su propia lista en memoria, por lo que dos terminales abiertos no tienen por qué mostrar el mismo historial en ese momento.

HISTSIZE limita el número de comandos guardados en memoria. El valor predeterminado integrado de Bash es 500, aunque las distribuciones suelen cambiarlo. HISTFILESIZE limita las líneas del archivo de historial guardado. Estos ajustes controlan lugares diferentes, por lo que cambiar uno no significa que hayas cambiado ambos límites.

HISTCONTROL=ignorespace omite las líneas que comienzan con un espacio; ignoredups omite una línea idéntica a la anterior; ignoreboth combina ambos comportamientos. Son opciones de configuración, no motivos para suponer que un terminal cualquiera dejará un comando sin registrar. history -d 42 elimina una entrada y history -c borra la lista actual de la memoria.

Las contraseñas incluidas en argumentos de comandos pueden almacenarse en el historial. Deja que un programa solicite una contraseña mediante su propio indicador en lugar de ponerla en la línea de comandos.

Puntos clave

  • La recuperación con flechas y Ctrl+R permiten inspeccionar un comando antes de pulsar Enter.
  • !!, las entradas numeradas, los prefijos y !$ se refieren a textos anteriores diferentes.
  • La expansión del historial suele ejecutarse de inmediato; :p muestra el resultado sin ejecutarlo.
  • La lista de historial activa y el archivo de historial guardado tienen límites independientes.
  • Mantén las contraseñas fuera de los argumentos de comandos.

6.2 Define y utiliza variables del intérprete de comandos y de entorno

Una variable da un nombre a un valor. Bash puede sustituir ese valor en líneas de comandos posteriores. Una variable de entorno también se pasa a los programas iniciados desde ese intérprete, lo que les permite leer ajustes como el idioma o la ubicación del directorio personal.

Asigna y lee un valor

Escribe una asignación sin espacios alrededor de =:

city=Lisbon
echo "$city"
echo "${city}_trip"

La primera línea almacena Lisbon; las siguientes muestran Lisbon y Lisbon_trip. Las llaves indican dónde termina el nombre de la variable. Sin ellas, $city_trip representa otra variable llamada city_trip.

city = Lisbon no es una asignación: Bash intenta ejecutar un comando llamado city con dos argumentos. Los nombres distinguen entre mayúsculas y minúsculas y pueden contener letras, dígitos y guiones bajos, pero no pueden comenzar con un dígito. Leer una variable sin definir produce un valor vacío en el uso normal de Bash. unset city elimina el valor.

Elige las comillas según la tarea
EntradaQué hace Bash
echo "$HOME"Expande HOME y mantiene unido el resultado
echo '$HOME'Pasa el texto literal $HOME
echo \$HOMEProtege el signo de dólar y también muestra $HOME

Después de greeting="Good morning", echo "$greeting, $USER" muestra el saludo y el nombre de la cuenta como un solo argumento. Pon entre comillas dobles una variable utilizada como ruta cuando su valor pueda contener espacios. Las comillas simples protegen todo lo que hay dentro, incluido el signo de dólar, por lo que no pueden cumplir la misma función que las comillas dobles cuando quieres expandir una variable.

Pasa ajustes a los programas hijos

Una asignación normal crea una variable del intérprete. export city la marca para el entorno; export city=Lisbon combina ambas acciones. Compara:

city=Lisbon
bash -c 'echo $city'
export city
bash -c 'echo $city'

Si city no se había exportado antes, el primer intérprete hijo muestra una línea vacía. Después de la exportación, un nuevo proceso hijo recibe Lisbon. La exportación pasa una copia al iniciarse; no actualiza los programas que ya están en ejecución.

env y printenv listan las entradas del entorno, mientras que printenv HOME muestra una. set también lista las variables y funciones del intérprete. Los ajustes habituales incluyen HOME para el directorio personal, USER para el usuario, PWD para el directorio de trabajo, SHELL para el intérprete de inicio de sesión, LANG para el idioma y los formatos regionales, y PATH para la búsqueda de programas. Los nombres en minúsculas para tus propios valores evitan conflictos con estos nombres que, por convención, se escriben en mayúsculas.

Controla la duración y el inicio

Una asignación delante de un comando proporciona un ajuste solo a ese comando: TZ=Asia/Tokyo date muestra la hora de Tokio sin sustituir el ajuste de zona horaria del intérprete. LC_ALL=C ls --help solicita los mensajes originales.

Un ajuste del indicador que no se guarda pertenece a ese intérprete; abrir otro terminal no lo hace permanente. Pon un ajuste que uses repetidamente, como export EDITOR=nano, en ~/.bashrc para los intérpretes Bash interactivos que no sean de inicio de sesión. Los intérpretes de inicio de sesión leen archivos de perfil, que a menudo cargan ese archivo. Un nuevo intérprete que no sea de inicio de sesión lee el ajuste guardado; source ~/.bashrc aplica el archivo en el intérprete actual.

Puntos clave

  • Las asignaciones no tienen espacios alrededor de =; $name lee el valor.
  • Las comillas dobles permiten la expansión y conservan los espacios; las simples mantienen el texto literal.
  • export pasa una variable a los programas hijos que se inicien después.
  • env muestra el entorno; set también incluye variables y funciones del intérprete.
  • Una asignación inicial puede afectar a un solo comando.
  • Los archivos de inicio permiten que los ajustes guardados estén disponibles en intérpretes posteriores.

6.3 Controla cómo encuentra comandos el intérprete mediante PATH

Cuando introduces un nombre de comando, Bash necesita decidir qué significa. Puede ser un alias, una función, un comando integrado o un archivo de programa. PATH controla la búsqueda de archivos de programa para un nombre que no contiene una barra.

Lee la lista de búsqueda

PATH contiene nombres de directorio separados por dos puntos, por ejemplo /usr/local/bin:/usr/bin:/bin. echo "$PATH" muestra la lista. Bash considera primero los significados definidos en el intérprete; para el nombre de un programa externo, busca en los directorios de la lista de izquierda a derecha y usa la primera coincidencia ejecutable.

Importan los nombres de directorio, no el hecho de que un programa esté instalado en algún lugar. Un archivo fuera de la lista de búsqueda no se encuentra solo por su nombre. Los programas de uso cotidiano suelen estar en /usr/bin o /bin; los programas de administración usan /usr/sbin o /sbin; las instalaciones locales suelen usar /usr/local/bin. Los programas personales pueden estar en ~/bin o ~/.local/bin.

Si dos directorios de PATH contienen un programa con el mismo nombre, el directorio anterior tiene prioridad en una búsqueda nueva.

Inspecciona el comando activo

type cd identifica un comando integrado del intérprete. type ls puede identificar /usr/bin/ls o indicar un alias de color. type -a echo lista las coincidencias del comando integrado y del externo. which ls suele indicar una ruta de programa de PATH, pero puede pasar por alto funciones del intérprete que type sí conoce. Usa type cuando quieras entender qué hará realmente Bash.

Ejecuta una ruta explícita

El PATH habitual omite el directorio actual. Por eso, un archivo ejecutable llamado backup en el directorio actual necesita ./backup, salvo que su directorio esté en PATH. Un nombre de comando que contiene / indica directamente una ubicación:

./backup
/home/sam/bin/backup

Ambas formas omiten la búsqueda en PATH. La primera es relativa a tu directorio de trabajo; la segunda comienza en /. El archivo debe seguir siendo ejecutable. Poder listarlo o leerlo no basta para poder ejecutarlo.

Amplía sin sustituir

Para añadir un directorio personal al final, conserva el valor existente:

export PATH="$PATH:$HOME/bin"

Los dos puntos separan la lista anterior del directorio añadido. Si hay un ejecutable backup en /home/sam/bin, ahora un comando posterior backup puede encontrarlo. Añadirlo al final mantiene cualquier programa coincidente anterior por delante del nuevo directorio. Colocar el nuevo directorio primero cambiaría cuál de los nombres duplicados tiene prioridad.

En cambio, PATH=$HOME/bin descarta todos los directorios existentes en el valor. Los comandos externos como ls pueden dejar de funcionar solo por su nombre. Abrir un terminal nuevo con la configuración de inicio normal restaura su PATH habitual; para el intérprete actual, export PATH=/usr/local/bin:/usr/bin:/bin proporciona una lista básica de reparación. Los comandos integrados pueden seguir funcionando porque no se encuentran mediante PATH.

Para conservar una adición prevista en los nuevos intérpretes interactivos que no sean de inicio de sesión, guarda su línea de exportación en ~/.bashrc.

Puntos clave

  • PATH es una lista separada por dos puntos que se recorre de izquierda a derecha para buscar comandos externos.
  • type también informa de alias, funciones y comandos integrados.
  • Un comando que contiene / indica directamente una ruta y omite PATH.
  • Conserva $PATH al ampliar la lista.
  • El orden de búsqueda determina qué programa externo tiene prioridad cuando hay nombres duplicados.

Ejemplos de Línea de comandos de Linux

6 Lecciones Interactivas

1

Construye e interpreta un comando

11 pasos
Lee un indicador de comandos, utiliza las teclas básicas y construye líneas de comandos sin ambigüedades.
  1. 1
    IntroducciónLee una sesión de terminal

    Un terminal muestra una interacción: escribes un comando, el intérprete lo interpreta y cualquier resultado aparece debajo. El indicador marca el punto donde puede comenzar otra línea.

    Leeremos ese indicador, usaremos algunas teclas y construiremos un comando cuyos espacios y opciones signifiquen exactamente lo que pretendemos. El objetivo es comprender la línea antes de pulsar Enter.

  2. 2
    ExplicaciónIdentifica el intérprete y la ventana

    El intérprete de comandos interpreta las órdenes. El terminal es la ventana que muestra su entrada y salida. Bash es un intérprete de Linux de uso habitual; otra ventana de terminal también puede ejecutar Bash.

    En sam@laptop:~$, el indicador identifica a sam en laptop, trabajando en su directorio personal. El signo de dólar final indica por convención un usuario normal. No escribas ese símbolo del indicador al introducir un comando de ejemplo.

  3. 3
    EjemploAverigua quién eres y dónde estás

    Introduce whoami y lee el resultado: para nuestra cuenta de ejemplo, es sam. Después introduce pwd; desde el directorio personal muestra /home/sam. Cada comando es una línea de entrada independiente.

    La salida es información devuelta por el comando, no texto que debas volver a escribir. Un nuevo indicador significa que el intérprete está listo. Un comando ejecutado correctamente también puede permanecer en silencio, por lo que la longitud de la salida no mide el éxito.

  4. 4
    ConsejoCompleta, cancela o sal

    Empieza a escribir un nombre de directorio y pulsa Tab para completarlo. Cuando coincida más de un nombre, añade más caracteres o pulsa Tab dos veces para ver las posibilidades. El autocompletado sigue la escritura real y las mayúsculas y minúsculas de los nombres existentes.

    Ctrl+C cancela la entrada o interrumpe un programa en primer plano. Ctrl+D en una línea vacía finaliza el intérprete. En un paginador de manual, q cierra la página; la misma pulsación tiene un significado diferente del de un comando escrito en el indicador.

  5. 5
    DesafíoElige la tecla para recuperarte

    Has escrito ls-l, has observado que falta el espacio y quieres descartar toda la línea de entrada antes de que se ejecute. ¿Qué tecla te devuelve a una línea de entrada nueva?

    ---reveal---

    Pulsa Ctrl+C. Cancela la entrada pendiente sin ejecutarla. Ctrl+L limpia la pantalla; no es lo mismo que descartar lo que has escrito. También podrías editar la línea a ls -l, pero la acción solicitada aquí es cancelarla.

  6. 6
    ExplicaciónAsigna una función a cada palabra

    Interpreta ls -l /etc como tres palabras con tres funciones. ls identifica el comando, -l cambia su comportamiento y /etc indica qué se debe listar. Los espacios de separación permiten que Bash pase esas partes por separado.

    Las opciones cortas tienen un guion; las largas tienen dos. ls -la combina -l y -a, mientras que ls --all es una sola opción larga. Algunas opciones también necesitan valores, que se indican en su texto de ayuda.

  7. 7
    EjemploMantén unido un nombre con espacios

    Supón que un archivo se llama «Annual Report.pdf». Escribir ls Annual Report.pdf proporciona dos argumentos de archivo porque el espacio sin proteger separa las palabras.

    Escribe ls "Annual Report.pdf" para mantener unido el nombre. Las comillas simples también funcionan para este nombre literal, o puedes proteger su espacio con una barra inversa como en Annual\ Report.pdf. Los caracteres de protección guían al intérprete; no se convierten en caracteres del nombre del archivo.

  8. 8
    Idea claveLas opciones pertenecen a su comando

    Una letra conocida puede tener significados diferentes en distintos programas. cp -r copia directorios de forma recursiva, pero ls -r solo invierte el orden. La opción de listado recursivo es la -R mayúscula.

    Del mismo modo, ls -h formatea tamaños; no pide ayuda. Lee el comando y la opción como una pareja. Adivinar a partir de una opción usada con otro comando puede producir un comando válido que haga lo que no deseas.

  9. 9
    DesafíoConstruye un listado claro

    Un archivo se llama «Course Plan.txt». ¿Cómo puedes solicitar su listado en formato largo sin pedir dos archivos separados?

    ---reveal---

    Usa ls -l "Course Plan.txt". El primer espacio separa el comando de la opción y el siguiente separa la opción del argumento entre comillas. El espacio interior permanece dentro de un solo nombre. ls-l sería, en cambio, un nombre de comando diferente y Course Plan.txt sin comillas sería dos argumentos de destino.

  10. 10
    DesafíoManeja dos tipos de texto especial

    El archivo que necesitas listar se llama «-old notes.txt». Quieres ver sus detalles y debes manejar tanto el guion inicial como el espacio interior. Escribe un comando ls de GNU para ello.

    ---reveal---

    Usa ls -l -- "-old notes.txt". Las comillas mantienen unido el nombre, mientras que -- indica a ls que deje de interpretar opciones. Las comillas por sí solas no eliminan el guion inicial, por lo que resuelven el problema del espacio, pero no el de la opción. ls -l "./-old notes.txt" también funciona.

  11. 11
    RepasoLee la línea antes de pulsar Enter

    Identifica el indicador y después lee la línea introducida como un comando con opciones y argumentos separados. Protege los espacios dentro de los nombres, comprueba el significado de las opciones para el comando utilizado y usa el autocompletado para reducir los errores de escritura.

    Cuando la entrada sea incorrecta, cancélala o edítala antes de ejecutarla; cuando un programa ocupe la pantalla, usa su propia acción de salida o interrupción.

2

Encuentra la función del comando que necesitas

10 pasos
Utiliza la notación del manual, las búsquedas, la ayuda de comandos integrados y los mensajes de error para resolver una tarea.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónEncuentra una respuesta en la ayuda
  2. 2
    ExplicaciónAbre el manual del comando
  3. 3
    EjemploInterpreta las partes opcionales y repetidas
  4. 4
    ConsejoBusca y vuelve al indicador
  5. 5
    DesafíoSelecciona la página que necesitas
  6. 6
    ConexiónUsa el tipo de comando para elegir la ayuda
  7. 7
    EjemploLee el motivo de un fallo
  8. 8
    DesafíoElige una referencia para un comando integrado
  9. 9
    DesafíoPasa del propósito a un comando que funcione
  10. 10
    RepasoRelaciona la pregunta con la referencia
3

Navega e inspecciona un árbol de directorios

13 pasos
Recorre rutas absolutas y relativas y después selecciona listados que respondan a una pregunta concreta.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónSigue una ruta por el árbol
  2. 2
    ExplicaciónComienza desde la raíz
  3. 3
    EjemploInterpreta una estructura pequeña
  4. 4
    DesafíoIdentifica una entrada hija oculta
  5. 5
    ExplicaciónEstablece la base de la ruta
  6. 6
    EjemploSigue dos directorios padre
  7. 7
    ConsejoUsa los atajos del directorio personal y de la ubicación anterior
  8. 8
    DesafíoEncuentra un directorio al mismo nivel que el padre
  9. 9
    ExplicaciónAñade los detalles que necesitas
  10. 10
    EjemploDistingue el tamaño del orden
  11. 11
    DesafíoElige el listado para la pregunta
  12. 12
    DesafíoSigue un cambio y una inspección
  13. 13
    RepasoDistingue la ubicación de la vista
4

Crea, copia, cambia nombres y limpia

14 pasos
Sigue una estructura de directorios durante su creación, copia, movimiento y eliminación de directorios vacíos.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónPrevé la estructura final
  2. 2
    EjemploCrea los directorios padre
  3. 3
    EjemploAñade archivos a la estructura
  4. 4
    DesafíoComprueba qué debe existir primero
  5. 5
    ExplicaciónCopia un archivo a un directorio
  6. 6
    EjemploCopia el árbol
  7. 7
    EjemploCambia un nombre dentro de la copia
  8. 8
    ConsejoExige un directorio cuando eso es lo que quieres
  9. 9
    DesafíoLocaliza un elemento hijo copiado
  10. 10
    ExplicaciónElimina un directorio hijo vacío
  11. 11
    ConsejoComprueba el destino antes de eliminar
  12. 12
    DesafíoElige una acción solo para directorios vacíos
  13. 13
    DesafíoSigue toda la limpieza
  14. 14
    RepasoInterpreta las acciones como cambios en las rutas
5

Analiza un patrón antes de usarlo

12 pasos
Prevé la expansión de nombres de archivo, los patrones literales y las palabras generadas con llaves.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónPrevé una selección con comodines
  2. 2
    ExplicaciónDetermina cuántos caracteres abarca cada símbolo
  3. 3
    EjemploLimita una posición
  4. 4
    Idea claveLas mayúsculas, las minúsculas y los puntos siguen importando
  5. 5
    DesafíoSelecciona las coincidencias exactas
  6. 6
    ExplicaciónDeja que el intérprete expanda primero
  7. 7
    EjemploInterpreta un patrón literal
  8. 8
    DesafíoDecide qué recibe el programa
  9. 9
    ConsejoMantén el destino fuera de la selección
  10. 10
    EjemploGenera nombres antes de que existan los archivos
  11. 11
    DesafíoGenera, mueve y después selecciona
  12. 12
    RepasoDistingue la selección de la generación
6

Reutiliza comandos y sigue los ajustes heredados

15 pasos
Sigue las referencias al historial, la protección de variables con comillas, los entornos de procesos hijos y la búsqueda mediante PATH.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónReutiliza una línea y un valor
  2. 2
    ExplicaciónRecupera con posibilidad de editar
  3. 3
    EjemploComprende qué reutiliza el atajo
  4. 4
    DesafíoIdentifica bien el comando anterior
  5. 5
    ExplicaciónAsigna un valor sin dividirlo
  6. 6
    EjemploElige qué permiten las comillas
  7. 7
    EjemploComparte una copia con un proceso hijo
  8. 8
    DesafíoPrevé la herencia y el cambio local
  9. 9
    ConexiónElige cuánto dura un ajuste
  10. 10
    ExplicaciónBusca un comando externo
  11. 11
    EjemploAñade un directorio personal al final
  12. 12
    Idea claveUna barra selecciona una ubicación directamente
  13. 13
    DesafíoConserva la prioridad anterior
  14. 14
    DesafíoRelaciona la recuperación, las comillas y la búsqueda
  15. 15
    RepasoSigue el texto, los valores y el alcance

Ejercicios de Línea de comandos de Linux

50 Preguntas de Práctica en 5 sets

Set 1: Prevé cambios en archivos y directorios10 Preguntas de Práctica

Pregunta 1 de 10

El directorio lab no existe. ¿Cómo puedes crear lab/week2/input y los directorios padre que faltan con un solo comando?
  1. mkdir -p lab/week2/input
  2. touch lab/week2/input
  3. mkdir lab/week2/input
  4. mkdir -r lab/week2/input
Mostrar respuestaOcultar respuesta
Respuesta: A
mkdir -p crea cada directorio que falte en la ruta. mkdir sin opciones necesita que exista la ruta padre, por lo que aquí no puede crear solo el componente final. touch crea archivos en lugar de construir directorios padre y -r no es la opción de mkdir para crearlos.

Pregunta 2 de 10

records contiene jan.csv y stored ya existe como directorio vacío. ¿Qué ruta contiene el archivo copiado después de cp -r records stored?
  1. stored/records/records.csv
  2. stored/jan.csv
  3. records/stored/jan.csv
  4. stored/records/jan.csv
Mostrar respuestaOcultar respuesta
Respuesta: D
El directorio de destino existente recibe una copia del directorio de origen con su propio nombre. Por tanto, el archivo está dentro de stored/records. Un resultado directo stored/jan.csv correspondería a una estructura diferente, como copiar a un nombre de destino que aún no existiera.

Pregunta 3 de 10

agenda.txt contiene notas de una reunión. ¿Qué ocurre cuando ejecutas touch agenda.txt?
  1. Su contenido queda vacío y su nombre sigue igual.
  2. Su contenido se mueve a un archivo nuevo llamado agenda.txt.bak.
  3. Su contenido permanece intacto y sus marcas de tiempo se actualizan.
  4. Su contenido permanece intacto y sus marcas de tiempo no cambian.
Mostrar respuestaOcultar respuesta
Respuesta: C
Para un archivo existente, touch actualiza las fechas y horas de acceso y modificación mientras conserva el contenido. Su función de creación de archivos vacíos se aplica cuando el archivo indicado no existe. Tratar cada uso de touch como una creación de archivo lleva a prever incorrectamente que se borran las notas existentes.

Pregunta 4 de 10

rough.txt existe y archive no. ¿Qué hace mv rough.txt archive sin alias?
  1. Crea archive y coloca rough.txt dentro.
  2. Copia el archivo como archive y conserva rough.txt.
  3. Se niega porque mover un archivo necesita una opción recursiva.
  4. Cambia el nombre de rough.txt al nombre de archivo archive.
Mostrar respuestaOcultar respuesta
Respuesta: D
Un nombre de destino inexistente se convierte en el nuevo nombre del origen, por lo que el archivo pasa a llamarse archive. mv no deduce que un nombre que no existe deba ser un directorio. Una barra final, archive/, expresaría un destino de directorio y haría que el comando fallara mientras no existiera.

Pregunta 5 de 10

old-cache es un directorio que debería estar vacío. ¿Qué comando lo elimina solo si esa expectativa es correcta?
  1. rm -r old-cache
  2. rmdir old-cache
  3. rm -rf old-cache
  4. rm -rv old-cache
Mostrar respuestaOcultar respuesta
Respuesta: B
rmdir solo acepta un directorio vacío, por lo que un contenido inesperado impide su eliminación. rm recursivo elimina un directorio junto con su contenido y no conserva esta comprobación. Una entrada oculta también cuenta como contenido aunque un listado normal parezca vacío.

Pregunta 6 de 10

Un archivo normal se llama literalmente -scratch.log. ¿Cómo puede recibir ese nombre rm de GNU sin alias sin interpretarlo como opciones?
  1. rm -- -scratch.log
  2. rm -i -scratch.log
  3. rm "-scratch.log"
  4. rm --scratch.log
Mostrar respuestaOcultar respuesta
Respuesta: A
-- termina la interpretación de opciones, por lo que la palabra siguiente que comienza con un guion se trata como un nombre de archivo. Las comillas por sí solas no resuelven este problema: conservan el nombre como una palabra, pero dejan intacto el guion inicial para que rm lo interprete. ./-scratch.log también sería una ruta sin ambigüedades.

Pregunta 7 de 10

Necesitas que un archivo recién copiado conserve las marcas de tiempo y los permisos del origen. ¿Qué forma de comando de GNU lo solicita?
  1. cp -v source.txt saved.txt
  2. cp -p source.txt saved.txt
  3. cp -i source.txt saved.txt
  4. cp -r source.txt saved.txt
Mostrar respuestaOcultar respuesta
Respuesta: B
-p solicita conservar las marcas de tiempo y los permisos en la copia. Una copia normal recién creada recibe una nueva fecha y hora de modificación, aunque su contenido sea idéntico. -v solo informa de una acción; verla mostrada no significa que se hayan conservado los metadatos originales.

Pregunta 8 de 10

unit/part solo contiene .prefs. ¿Por qué falla rmdir unit/part aunque ls unit/part sin opciones parezca vacío?
  1. rmdir requiere una opción recursiva para rutas anidadas.
  2. rmdir no puede eliminar un directorio situado bajo otro.
  3. La entrada oculta hace que el directorio no esté vacío.
  4. Un archivo con punto inicial convierte la ruta en absoluta.
Mostrar respuestaOcultar respuesta
Respuesta: C
Un directorio vacío no tiene entradas de archivo normales, incluidas las ocultas, por lo que .prefs impide que rmdir lo elimine. ls sin opciones omite ese nombre; ls -A lo mostraría. Estar anidado dentro de unit no es en sí un obstáculo para eliminar un directorio hijo vacío.

Pregunta 9 de 10

Desde /home/sam, existe source/item.txt y saved es un directorio vacío. Ejecutas cp -r source saved y después mv saved/source saved/session. ¿Dónde están ahora el archivo original y la copia?
  1. Original: saved/source/item.txt; copia: saved/session/item.txt.
  2. Original: source/item.txt; copia: saved/item.txt.
  3. Original: source/item.txt; copia: saved/session/item.txt.
  4. Original: source/session/item.txt; copia: saved/source/item.txt.
Mostrar respuestaOcultar respuesta
Respuesta: C
La copia crea primero saved/source/item.txt porque saved ya existe como directorio. Después, el movimiento cambia el nombre de ese directorio copiado a session dentro de saved. El original permanece en source/item.txt; mover el directorio copiado no mueve ni cambia el nombre de su origen.

Pregunta 10 de 10

Desde /home/sam/work, ../safe es un directorio vacío y part solo contiene keep.txt. Ejecutas cp part/keep.txt ../safe/, mv part/keep.txt keep.txt y después rmdir part. ¿Qué queda?
  1. Ambas copias están en work/part; part permanece.
  2. safe/part/keep.txt y work/keep.txt; part se elimina.
  3. Solo safe/keep.txt; se eliminan part y el archivo movido.
  4. safe/keep.txt y work/keep.txt; part se elimina.
Mostrar respuestaOcultar respuesta
Respuesta: D
La copia coloca un archivo en /home/sam/safe. El movimiento coloca el original directamente en /home/sam/work y deja part vacío, por lo que rmdir part se ejecuta correctamente. Eliminar ese directorio ya vacío no elimina un archivo que se ha movido fuera de él.
Set 2: Interpreta comandos, ayuda y rutas10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

Un terminal muestra sam@laptop:~/training$ y está listo para recibir una entrada. ¿Qué ubicación indica el indicador?
  1. El directorio raíz /
  2. El directorio personal /home/sam
  3. El directorio /home/training
  4. El directorio /home/sam/training
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

¿Cómo puedes solicitar un listado en formato largo del único archivo llamado «Team Schedule.pdf»?
  1. ls-l "Team Schedule.pdf"
  2. ls -l Team Schedule.pdf
  3. ls -l /Team/Schedule.pdf
  4. ls -l "Team Schedule.pdf"
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Has escrito una línea de comandos, pero aún no has pulsado Enter. ¿Cómo puedes descartarla y volver a un indicador nuevo?
  1. Pulsa Ctrl+C.
  2. Pulsa Ctrl+D.
  3. Pulsa Ctrl+L.
  4. Pulsa la flecha Arriba.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Necesitas documentación sobre el formato de /etc/passwd, pero man passwd abre el comando para cambiar contraseñas. ¿Qué comando abre la página necesaria?
  1. man -k passwd
  2. man 1 passwd
  3. man 5 passwd
  4. whatis passwd
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

type export informa de que export es un comando integrado del intérprete. ¿Cómo puedes leer la ayuda de Bash para él?
  1. help export
  2. export --help
  3. whatis export
  4. info coreutils
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

La sinopsis indica mkdir [OPTION]... DIRECTORY.... ¿Qué se requiere para una invocación básica válida?
  1. Una opción y exactamente un nombre de directorio.
  2. Al menos un nombre de directorio; las opciones son opcionales.
  3. Al menos una opción; los nombres de directorio son opcionales.
  4. Exactamente un nombre de directorio entre corchetes.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Tu directorio de trabajo es /home/sam/labs/module. ¿Qué directorio absoluto selecciona cd ../../downloads?
  1. /home/sam/downloads
  2. /home/downloads
  3. /downloads
  4. /home/sam/labs/downloads
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Quieres ver los detalles de la propia entrada de directorio assets, sin listar los archivos que contiene. ¿Qué comando lo hace?
  1. ls -l assets
  2. ls -ld assets
  3. ls -lR assets
  4. ls -lA assets
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

ls sin opciones no muestra nada en settings, pero ls -A settings muestra .localrc. ¿Por qué difieren los resultados?
  1. El archivo pertenece al superusuario y solo aparece con -A.
  2. El punto inicial oculta la entrada en el listado normal.
  3. El directorio está vacío hasta que el listado oculto crea un archivo.
  4. El sufijo permite leer la entrada solo a comandos especiales.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Desde /home/sam, ejecutas cd projects, después ls ../downloads y luego cd ../photos. Todos los directorios indicados existen. ¿En qué directorio estás y qué selecciona cd - después?
  1. Ahora /home/photos; después /home/sam/projects.
  2. Ahora /home/sam/photos; después /home/sam/downloads.
  3. Ahora /home/sam/photos; después /home/sam/projects.
  4. Ahora /home/sam/projects/photos; después /home/sam/projects.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 3: Busca coincidencias de nombres y usa valores del intérprete10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

En la configuración predeterminada de Bash no hay entradas .zip coincidentes en el directorio de trabajo. ¿Qué muestra echo *.zip?
  1. Los nombres de todas las entradas visibles
  2. Una línea vacía
  3. No such file or directory
  4. *.zip
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Un directorio contiene task.txt, task4.txt y task42.txt. ¿Qué nombre coincide con task?.txt?
  1. Solo task4.txt
  2. task.txt y task4.txt
  3. task4.txt y task42.txt
  4. Solo task.txt
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Quieres encontrar un comando anterior que contenga upload, inspeccionarlo y editarlo antes de ejecutarlo. ¿Qué función sirve para encontrarlo?
  1. La limpieza de pantalla con Ctrl+L
  2. La búsqueda hacia atrás con Ctrl+R
  3. La expansión inmediata con !upload
  4. El borrado de la lista con history -c
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Después de folder="Project Plans", ¿qué argumento de ruta recibe ls "$folder"?
  1. Dos nombres: Project y Plans
  2. Un nombre literal: "Project Plans"
  3. Un nombre literal: $folder
  4. Un nombre: Project Plans
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Los nombres visibles son rec1.csv, rec2.csv, rec3.csv y rec12.csv. ¿Qué nombres coinciden con rec[!2].csv?
  1. rec1.csv y rec3.csv
  2. rec1.csv y rec12.csv
  3. rec2.csv y rec3.csv
  4. rec3.csv y rec12.csv
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Para una búsqueda nueva de un comando externo, PATH es /opt/team/bin:/usr/bin:/bin. Los dos primeros directorios contienen un ejecutable llamado report. Ningún alias, función o comando integrado tiene ese nombre. ¿Qué se ejecuta?
  1. El ejecutable /usr/bin/report
  2. Ambos ejecutables, en el orden de PATH
  3. El ejecutable /opt/team/bin/report
  4. El ejecutable ./report
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Un directorio contiene pic1.png y pic2.png. ¿Qué muestra echo "pic*.png"?
  1. pic1.png pic2.png
  2. pic*.png
  3. Solo pic1.png
  4. Una línea vacía
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

region no está definida. Ejecutas region=west y después bash -c 'echo $region'. ¿Por qué el intérprete hijo muestra una línea vacía?
  1. Las comillas simples impiden toda expansión dentro del intérprete hijo.
  2. Otro intérprete Bash no puede leer nombres en minúsculas.
  3. La variable no se exportó al entorno del proceso hijo.
  4. Un intérprete hijo solo puede leer nombres incluidos en PATH.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

En la configuración predeterminada de Bash hay solo los archivos normales item1.dat, item2.dat, item12.dat y .item3.dat, además de un directorio vacío out. Ejecutas cp item?.dat out/ y después mv out/item2.dat out/chosen.dat. ¿Qué archivos hay en out?
  1. item1.dat, item2.dat y chosen.dat
  2. item1.dat, item12.dat y chosen.dat
  3. item1.dat y chosen.dat
  4. item1.dat, .item3.dat y chosen.dat
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Inicialmente, PATH es /usr/bin:/bin. Existen los archivos ejecutables /usr/bin/scan y /home/sam/bin/scan, sin ningún scan definido en el intérprete. Ejecutas export PATH="$PATH:$HOME/bin" con HOME /home/sam. ¿Qué se ejecuta para scan y para ./scan desde /home/sam/bin?
  1. Nombre solo: /usr/bin/scan; ruta explícita: /home/sam/bin/scan.
  2. Ambos ejecutan /usr/bin/scan.
  3. Nombre solo: /home/sam/bin/scan; ruta explícita: /usr/bin/scan.
  4. Ambos ejecutan /home/sam/bin/scan.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 4: Relaciona rutas, patrones y comportamiento de comandos10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

ls informa unrecognized option '--time-sort'. ¿Cuál es la comprobación siguiente más directa para el programa GNU instalado?
  1. Ejecutar pwd para cambiar la regla de ordenación.
  2. Ejecutar help ls para un comando integrado de Bash.
  3. Cambiar el nombre del directorio que se lista.
  4. Leer ls --help para consultar las opciones aceptadas.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Necesitas un listado en formato largo con tamaños legibles, primero las entradas más grandes, incluidas las ocultas pero excluidas . y ... ¿Qué comando de GNU lo proporciona?
  1. ls -lhS
  2. ls -lhAS
  3. ls -lhAt
  4. ls -lhAr
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Un resumen de uso indica -d, --date=STRING. En touch --date=2026-02-18 checkpoint, ¿qué función tiene 2026-02-18?
  1. Indica el directorio de destino.
  2. Selecciona la sección 2026 del manual.
  3. Proporciona un segundo argumento de archivo.
  4. Proporciona el valor de la opción de fecha.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Los nombres son clip.jpg, clip.JPG, clip.Jpg y clip.jpeg. ¿Qué nombres coinciden con clip.[jJ][pP][gG]?
  1. clip.jpg y clip.jpeg
  2. clip.JPG y clip.Jpg
  3. Los cuatro nombres de archivo
  4. Los tres nombres con un sufijo jpg de tres letras
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Necesitas inspeccionar el comando seleccionado por !cp sin ejecutarlo. ¿Qué expresión del historial muestra solo la expansión?
  1. !cp:p
  2. !!cp
  3. !cp$
  4. history -c
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Desde /home/sam/jobs/run, ../data contiene a.txt y /home/sam/store ya existe. Ejecutas cp -r ../data ../../store/ y después mv ../../store/data/a.txt ../../store/data/b.txt. ¿Qué nueva ruta contiene la copia y dónde está el origen?
  1. Copia /home/sam/store/b.txt; origen /home/sam/jobs/data/a.txt.
  2. Copia /home/sam/store/data/b.txt; origen /home/sam/jobs/data/a.txt.
  3. Copia /home/sam/store/data/b.txt; origen /home/sam/jobs/run/data/a.txt.
  4. Copia /home/sam/jobs/store/data/b.txt; origen /home/sam/store/data/a.txt.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

area no estaba definida. Ejecutas area=north, export area, bash y después, dentro del proceso hijo, area=south y exit. ¿Qué muestra echo "$area" al volver al proceso padre y por qué?
  1. south, porque la exportación vincula los valores de ambos intérpretes.
  2. north, porque el proceso hijo recibió su propia copia.
  3. Nada, porque el proceso hijo borró la variable del padre.
  4. north south, porque la exportación combina sus valores.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

En la configuración predeterminada de Bash solo hay red1.tmp, red2.tmp, red10.tmp y un directorio vacío save. Después de cp red[12].tmp save/ y mv save/red1.tmp save/final.txt, ¿qué muestra echo save/*.tmp?
  1. save/red2.tmp
  2. save/red2.tmp save/red10.tmp
  3. save/final.txt save/red2.tmp
  4. save/red1.tmp save/red2.tmp
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Un ejecutable checkup está en tu directorio actual, que no figura en PATH. No hay otro comando con ese nombre. ¿Cómo puedes ejecutar este archivo?
  1. export checkup
  2. PATH checkup
  3. ./checkup
  4. type checkup
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Desde /home/sam/team/drafts, ejecutas cd ../final, después cd - y luego ls ../../photos. Todos los directorios existen. ¿Dónde estás y qué directorio inspeccionó el listado?
  1. En /home/sam/team/final; inspeccionó /home/sam/photos.
  2. En /home/sam/photos; inspeccionó /home/sam/team/drafts.
  3. En /home/sam/team/drafts; inspeccionó /home/sam/photos.
  4. En /home/sam/team/drafts; inspeccionó /home/photos.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 5: Resuelve varias decisiones en la línea de comandos10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

Sabes que el propósito de un comando tiene que ver con directorios, pero has olvidado su nombre. ¿Cómo puedes buscar la palabra «directory» en las descripciones de los manuales instalados?
  1. whatis directory
  2. apropos directory
  3. help directory
  4. man directory
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Después de tag=blue, ¿qué muestra echo '$tag'?
  1. $tag
  2. tag=blue
  3. blue
  4. Una línea vacía
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Al principio, bundle no existe. Ejecutas mkdir -p bundle/raw bundle/log, touch bundle/raw/x, mv bundle/raw/x bundle/log/ y después rmdir -p bundle/raw. ¿Qué queda dentro de bundle?
  1. Solo raw, con x; bundle permanece.
  2. Solo log, con x; bundle permanece.
  3. Ambos directorios hijos vacíos; x se ha eliminado.
  4. Nada; bundle y ambos directorios hijos se eliminan.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Bash comienza con su configuración predeterminada en un directorio vacío. Ejecutas touch note{2..4}.txt, mkdir bin, mv note[24].txt bin/ y después echo note?.txt. ¿Qué se muestra?
  1. note2.txt note3.txt note4.txt
  2. note2.txt note4.txt
  3. note?.txt
  4. note3.txt
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

PATH es /usr/bin:/bin, HOME es /home/sam y existen archivos ejecutables render en /usr/bin y /home/sam/bin. Ningún alias, función o comando integrado se llama render. Después de export PATH="$HOME/bin:$PATH", ¿qué archivo externo selecciona render por sí solo y cuál es el PATH completo resultante?
  1. /usr/bin/render; /usr/bin:/bin:/home/sam/bin
  2. /home/sam/bin/render; /usr/bin:/bin:/home/sam/bin
  3. /usr/bin/render; /home/sam/bin:/usr/bin:/bin
  4. /home/sam/bin/render; /home/sam/bin:/usr/bin:/bin
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Un archivo se llama -review notes.txt. ¿Qué único comando ls de GNU solicita sus detalles y maneja tanto el guion inicial como el espacio?
  1. ls -l "-review notes.txt"
  2. ls -l -- -review notes.txt
  3. ls -l -- "-review notes.txt"
  4. ls-l ./-review\ notes.txt
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

En la configuración predeterminada de Bash, un directorio contiene solo unit1.tmp, unit2.tmp, unit10.tmp, .unit3.tmp y final.txt, todos archivos normales. Después de previsualizar, ejecutas rm -i unit?.tmp sin alias y respondes y a todas las preguntas. ¿Qué archivos normales quedan?
  1. unit10.tmp y final.txt
  2. .unit3.tmp y final.txt
  3. unit1.tmp, unit2.tmp y final.txt
  4. unit10.tmp, .unit3.tmp y final.txt
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Inmediatamente después de mkdir -p samples/day7, ejecutas pwd y después echo !$. ¿Qué selecciona el atajo del historial?
  1. El directorio samples/day7
  2. La ruta mostrada por pwd
  3. La palabra pwd
  4. La palabra mkdir
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Desde /home/sam, projects contiene solo .prefs y un directorio src; src contiene main.c. El directorio archive existe y está vacío. Ejecutas ls projects, cp -r projects/src archive/, mv projects/src archive/live y después rmdir projects. ¿Qué queda en projects y archive?
  1. Projects contiene .prefs; archive contiene src/main.c y live/main.c.
  2. Projects contiene .prefs y src/main.c; archive contiene live/main.c.
  3. Projects contiene .prefs; archive contiene main.c y live/main.c.
  4. projects se elimina; archive contiene src/main.c y live/main.c.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Con HOME /home/sam, estableces dest="$HOME/Field Notes" y ejecutas export dest. Un Bash hijo ejecuta cd "$dest", después cambia dest=elsewhere y sale. El directorio existe. ¿En qué ruta entró el proceso hijo y cuál es después el valor de dest en el padre?
  1. Hijo /home/sam/Field Notes; padre /home/sam/Field Notes.
  2. Hijo /home/sam/Field; padre elsewhere.
  3. Hijo literal $HOME/Field Notes; padre elsewhere.
  4. Hijo /home/sam/Field Notes; padre un valor vacío.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

¿Te atascas con una pregunta tuya? Ayuda con Tareas

Términos Clave

79 Términos Clave, cada uno con su definición

A

Alias
Un alias es un nombre corto definido en el intérprete que se expande a texto de comando y que a menudo añade opciones predeterminadas a un comando existente.
Una distribución puede definir ls como ls --color=auto; type ls revela ese texto adicional del comando.
apropos
apropos es un comando de búsqueda en el índice del manual que encuentra nombres de páginas y descripciones breves coincidentes con una palabra clave sobre el propósito de un comando.
apropos directory ayuda a identificar mkdir o rmdir cuando recuerdas la tarea, pero no el nombre del comando.
Archivo de historial
Un archivo de historial almacena el historial de comandos entre sesiones, normalmente en ~/.bash_history, y su ruta se guarda en HISTFILE.
Dos terminales abiertos pueden mostrar listas activas diferentes aunque normalmente las guarden en el mismo archivo de historial.
Archivo de inicio
Un archivo de inicio contiene ajustes que se leen cuando se inicia un intérprete; Bash usa archivos diferentes para los intérpretes de inicio de sesión y los interactivos que no son de inicio de sesión.
Una exportación en ~/.bashrc es leída por un nuevo Bash interactivo que no sea de inicio de sesión; un perfil de inicio de sesión también puede cargar ese archivo.
Archivo o fichero
Un archivo es un objeto con nombre que contiene datos, como texto, una imagen o instrucciones de programa, dentro del árbol de directorios de Linux.
Un programa puede identificar un PDF por su contenido aunque su nombre de archivo no termine en .pdf.
Argumento
Un argumento es un valor que se pasa a un comando, como una ruta sobre la que trabajar, texto que mostrar o un valor necesario para una opción.
En cp report.txt saved/, los dos argumentos de ruta identifican el archivo de origen y el directorio de destino.
Ayuda de Bash
La ayuda de Bash es la interfaz de documentación integrada para los comandos de Bash, a la que se accede con help seguido del nombre de un comando integrado.
help export explica la exportación de variables, mientras que help por sí solo lista los comandos integrados disponibles.
Ayuda rápida
La ayuda rápida es un resumen breve de uso y opciones proporcionado por un programa, normalmente mediante la opción larga de GNU --help.
Usa mkdir --help para encontrar la opción que crea directorios padre sin recorrer toda la página de manual.

B

Bash
Bash es Bourne Again Shell, un intérprete de comandos de Linux muy utilizado que dispone de comandos integrados, autocompletado, variables e historial de comandos.
Bash proporciona help cd directamente porque cd es uno de sus comandos integrados, no un archivo de programa independiente.
Búsqueda inversa
Una búsqueda inversa busca texto hacia atrás en el historial de comandos mediante Ctrl+R en Bash; pulsar de nuevo la combinación permite llegar a coincidencias anteriores.
Escribir un fragmento de ruta después de Ctrl+R puede encontrar un comando largo aunque no recuerdes su primera palabra.

C

Clase de caracteres
Una clase de caracteres designa un grupo de caracteres según las reglas de la configuración regional, como [[:digit:]] para dígitos o [[:lower:]] para caracteres en minúscula.
Una clase de minúsculas puede incluir letras más allá de la a a la z de ASCII, según la configuración regional actual.
Comando integrado
Un comando integrado es un comando implementado dentro del propio intérprete, por lo que ejecutarlo no requiere encontrar un archivo de programa independiente.
type cd informa de que es un comando integrado y help cd proporciona la documentación del comando de Bash para cambiar de directorio.
Comando u orden
Un comando es una instrucción cuya primera palabra identifica una función del intérprete o un programa, seguida de las opciones y los argumentos correspondientes.
En ls -l /var, el nombre del comando es ls; las palabras restantes controlan el listado e indican su destino.
Comodín
Un comodín es un carácter de patrón que coincide con una clase o secuencia de caracteres, como * para una secuencia o ? para un carácter.
El patrón part?.txt acepta part4.txt, pero excluye un nombre con dos dígitos en la posición del signo de interrogación.
Componente de ruta
Un componente de ruta es un nombre situado entre barras separadoras en una ruta; los comodines habituales de nombres de archivo coinciden dentro de un componente sin atravesar /.
data/*.csv selecciona directamente dentro de data; no selecciona también los nombres coincidentes bajo data/old.
Configuración regional
Una configuración regional es un conjunto de ajustes de idioma y región que puede afectar a los mensajes de los programas, el formato de fechas, el orden de clasificación y las clases de caracteres.
Dos sistemas pueden ordenar de forma diferente los nombres de archivo en mayúsculas y minúsculas porque sus configuraciones regionales son distintas.
Copia
Una copia crea otra instancia de los datos de un archivo en un destino y deja el origen en su lugar, como se solicita con cp.
cp memo.txt stored/ crea stored/memo.txt cuando stored existe y deja el archivo original donde estaba.
Copia con conservación de atributos
Una copia con conservación de atributos es una copia recursiva solicitada con cp -a que conserva los atributos de los archivos, lo que resulta útil para copiar un árbol de directorios.
cp -a site site-backup conserva los atributos del árbol en lugar de tratarlo como una copia normal de un archivo nuevo.
Cuenta de superusuario
La cuenta de superusuario es la cuenta de administración del sistema, con amplias facultades para modificar los archivos y ajustes del sistema.
Por convención, un indicador que termina en # señala al superusuario; para el trabajo habitual debe usarse una cuenta normal.

D

Destino
Un destino es la ubicación o el nuevo nombre de una operación; su tipo existente ayuda a determinar el resultado de copiar o mover.
Si archive no existe, mv notes.txt archive usa archive como nuevo nombre de archivo en lugar de crear un directorio.
Directorio
Un directorio es un objeto que contiene entradas con nombre para archivos y otros directorios; un gestor de archivos gráfico suele llamarlo carpeta.
El directorio /home/sam/projects puede contener tanto notes.txt como un directorio hijo llamado website.
Directorio de trabajo
El directorio de trabajo es la ubicación actual del intérprete en el árbol y el punto de partida para interpretar rutas relativas.
Después de cd projects, el nombre relativo notes.txt se refiere a un archivo dentro del directorio recién seleccionado.
Directorio padre
Un directorio padre es el directorio situado un nivel por encima de otro en una ruta; el nombre especial .. se refiere a ese directorio padre.
Desde /home/sam/projects/website, un .. llega a projects, mientras que dos llegan al directorio personal de sam.
Directorio personal
Un directorio personal es la ubicación propia de una cuenta para archivos y ajustes, normalmente /home/username para un usuario normal de Linux.
Para sam, ~ se expande a /home/sam; /home por sí solo es el directorio que contiene los directorios personales de los usuarios.
Directorio raíz
El directorio raíz, escrito /, es el punto de partida del árbol único del sistema de archivos de Linux, por encima de cualquier otra ruta absoluta.
La ruta /etc comienza en el directorio raíz; no indica un elemento hijo de tu directorio de trabajo actual.
Distinción entre mayúsculas y minúsculas
La distinción entre mayúsculas y minúsculas significa que ambas formas se consideran diferentes al buscar coincidencias de nombres, por lo que cambiarlas puede seleccionar otro objeto.
Los nombres Plans y plans pueden identificar directorios diferentes; el autocompletado ayuda a conservar las mayúsculas y minúsculas correctas.
Documentación del paquete
La documentación del paquete es información adicional instalada con el software, que suele guardarse bajo /usr/share/doc/ en un directorio para ese paquete.
Listar /usr/share/doc/bash puede mostrar archivos README, registros de cambios, texto de licencia y ejemplos.

E

Ejecutable
Un ejecutable es un archivo que puede ejecutarse como programa y que requiere permiso de ejecución además de una ubicación adecuada.
Un ejecutable llamado backup en el directorio actual puede ejecutarse con ./backup cuando su directorio no está en PATH.
Eliminación interactiva
Una eliminación interactiva solicita confirmación antes de continuar; rm -i de GNU pregunta por separado para cada destino.
Para una selección revisada de archivos temporales, rm -i *.tmp pregunta por los nombres coincidentes antes de eliminarlos.
Eliminación recursiva
Una eliminación recursiva elimina un directorio y su contenido, incluidos los directorios anidados, como se solicita con rm -r de GNU.
Usa rmdir old-cache cuando un elemento hijo inesperado deba detener la limpieza en lugar de eliminarse junto con su directorio padre.
Entorno
El entorno es el conjunto de valores con nombre que un proceso pasa a los programas que inicia, lo que les permite recibir ajustes al arrancar.
Un programa recién iniciado puede leer HOME de su entorno para localizar el directorio personal de la cuenta.
Entrada oculta
Una entrada oculta es un archivo o directorio cuyo nombre comienza con un punto, lo que hace que la salida normal de ls lo omita por defecto.
El archivo de configuración .bashrc aparece con ls -a, aunque un listado normal del directorio personal lo omita.
Expansión de la virgulilla
La expansión de la virgulilla sustituye una ~ sin comillas al principio de una palabra del intérprete por una ruta de directorio personal, lo que facilita escribir rutas basadas en él.
cd ~/Documents llega a tus documentos desde cualquier lugar, pero poner la virgulilla entre comillas impide esa sustitución.
Expansión de llaves
La expansión de llaves genera palabras a partir de opciones indicadas o de una secuencia sin comprobar si existen archivos, como en file{1..3}.txt.
mkdir work/{src,docs} recibe dos nombres de directorio generados, aunque ninguno de los dos directorios hijos exista todavía.
Expansión de nombres de archivo
La expansión de nombres de archivo es una función del intérprete que sustituye un patrón sin comillas por nombres existentes coincidentes antes de ejecutar el comando.
Si hay dos archivos de registro coincidentes, ls *.log recibe dos nombres de archivo en lugar de recibir el patrón literal con asterisco.
Expansión de variables
La expansión de variables sustituye un nombre precedido por un signo de dólar por su valor; las llaves pueden delimitar el nombre y las comillas dobles pueden conservar los espacios interiores.
echo "${city}_trip" añade texto al valor de city, mientras que $city_trip leería un nombre de variable diferente.
Expansión del historial
La expansión del historial reescribe expresiones con signos de exclamación como texto de comandos anteriores antes de ejecutarlos, por ejemplo, !! para el comando anterior.
Inmediatamente después de mkdir drafts, cd !$ reutiliza el último argumento, pero otro comando intermedio lo cambia.
export
export es el comando integrado de Bash que marca una variable para incluirla en el entorno de los programas hijos que se inicien después.
Cambiar una variable exportada en un proceso hijo no cambia la copia del padre; cada proceso mantiene su propio valor.
Expresión entre corchetes
Una expresión entre corchetes coincide con un carácter de un conjunto o rango indicado; un ! o ^ inicial niega ese conjunto.
part[13].txt coincide con los nombres que terminan en 1 o 3 en esa posición, pero no con la terminación de dos dígitos 13.

F

Fecha y hora de modificación
La fecha y hora de modificación registran cuándo se cambió por última vez el contenido de un archivo, y ls -t las usa para ordenar las entradas de más recientes a más antiguas.
Ejecutar touch actualiza esta marca de tiempo sin cambiar los datos del archivo, por lo que puede cambiar el orden basado en el tiempo.

H

HISTCONTROL
HISTCONTROL es un ajuste de Bash que determina qué líneas de entrada se excluyen del historial, como los comandos repetidos o los que comienzan con un espacio.
El valor ignoreboth combina ignorespace e ignoredups; un intérprete cualquiera puede usar un ajuste diferente.
Historial de comandos
El historial de comandos es el registro de las líneas de entrada anteriores del intérprete, que se pueden listar, buscar, recuperar, editar y volver a ejecutar.
Pulsa Arriba para recuperar un comando de copia anterior, cambia su destino e inspecciona la línea editada antes de pulsar Enter.

I

Indicador de comandos
Un indicador de comandos es un texto que muestra que un intérprete está listo para recibir una entrada; su formato puede identificar la cuenta, el equipo y el directorio actual.
En sam@laptop:~$, la virgulilla indica el directorio personal y el signo de dólar final suele indicar un usuario normal.
Intérprete de comandos
Un intérprete de comandos es un programa que interpreta los comandos escritos e inicia el trabajo solicitado, mediante sus propias funciones o mediante otros programas.
Bash interpreta pwd en una sesión de terminal y muestra el directorio en el que trabaja el intérprete.

L

Listado en formato largo
Un listado en formato largo es la salida detallada solicitada con ls -l, que muestra metadatos como tipo, propiedad, tamaño y fecha y hora de modificación.
ls -l notes.txt muestra los detalles de un solo archivo; añadir -h cambia un tamaño en bytes como 2048 a 2.0K.
Listado recursivo
Un listado recursivo recorre un directorio y sus subdirectorios y muestra las entradas de cada ubicación bajo un encabezado de ruta separado.
ls -R projects muestra projects: y después encabezados para directorios hijos como projects/website:.

M

Manual Info
Un manual Info es un documento de referencia enlazado que utilizan los proyectos GNU, organizado en nodos por los que se puede navegar desde un terminal.
info coreutils abre un manual más extenso; n, p y u permiten desplazarse entre sus nodos enlazados.
Marca de tiempo
Una marca de tiempo registra una fecha y hora asociadas a un evento de archivo, como la modificación del contenido o el acceso; los comandos pueden inspeccionar o actualizar estos valores.
touch -d 2025-01-31 old.txt solicita una fecha elegida en lugar de usar la fecha y hora actuales para la actualización.
Mensaje de error
Un mensaje de error informa de una operación fallida y suele indicar el comando, el objeto afectado y el motivo por el que no pudo continuar.
Un mensaje No such file or directory de ls sugiere comprobar la ruta, las mayúsculas y minúsculas y el directorio de trabajo.
Metadatos
Los metadatos son información sobre un archivo o directorio, como su tipo, propiedad, permisos, tamaño y marcas de tiempo, en lugar de su contenido.
Un listado en formato largo puede mostrar cuándo cambió un informe sin mostrar nada del texto del informe.
mkdir
mkdir es el comando de creación de directorios; su opción -p crea los directorios padre que faltan y acepta los componentes de ruta que ya existen como directorios.
mkdir -p app/css prepara ambos directorios cuando falta app, de modo que después se puede crear un archivo dentro de css.
Movimiento
Un movimiento cambia el nombre o la ubicación de un archivo o directorio mediante mv, sin la opción recursiva necesaria para copiar un árbol.
mv memo.txt stored/ coloca el archivo existente en stored, por lo que su ruta anterior ya no identifica ese archivo movido.

O

Opción
Una opción es un argumento que cambia el comportamiento de un comando y que suele escribirse como un guion y una letra o como un nombre con dos guiones.
La opción -l indica a ls que muestre un listado en formato largo con detalles en lugar de mostrar solo nombres.
Opción de forzado
La opción de forzado, -f en rm de GNU, suprime la confirmación e ignora los nombres que no existen, lo que aumenta la necesidad de verificar la expresión de destino.
Añadir -f no proporciona una forma de recuperación; solo cambia cómo gestiona la eliminación las preguntas y los nombres que no existen.
Orden de prioridad de búsqueda
El orden de prioridad de búsqueda determina qué archivo de programa coincidente se selecciona; en una búsqueda nueva tienen prioridad los directorios que aparecen antes en PATH.
Colocar primero tu directorio bin personal puede seleccionar tu programa antes que un archivo con el mismo nombre en /usr/bin.
Origen
Un origen es el archivo o directorio del que una operación toma datos o un objeto y que precede al destino en las formas básicas de cp y mv.
En cp notes.txt archive/, notes.txt proporciona los datos y archive/ indica dónde debe colocarse su copia.

P

Página de manual
Una página de manual es un documento de referencia para un comando o una función del sistema, normalmente organizado en secciones con nombres como SYNOPSIS y DESCRIPTION.
man ls abre la referencia del comando de listado, donde puedes buscar una opción que necesites.
Paginador
Un paginador muestra texto una pantalla cada vez y ofrece teclas de desplazamiento y búsqueda para leer documentos más largos que la ventana del terminal.
El paginador habitual de man permite buscar con /size, recorrer las coincidencias con n y salir con q.
PATH
PATH es una variable de entorno que lista directorios separados por dos puntos, en los que se busca de izquierda a derecha un comando externo indicado sin /.
Añadir :$HOME/bin al final conserva los directorios anteriores y su prioridad cuando un nombre de programa aparece dos veces.
Patrón de nombres de archivo sin coincidencias
Un patrón de nombres de archivo sin coincidencias es un patrón para el que no hay entradas coincidentes y que Bash deja por defecto sin cambios como argumento del comando.
Si no hay archivos PDF, echo *.pdf muestra el patrón, mientras que ls *.pdf informa de que esa ruta literal no existe.
Patrón literal
Un patrón literal es texto de patrón que se pasa sin cambios a un comando, por ejemplo, porque las comillas protegieron sus caracteres comodín.
echo "*.txt" muestra el asterisco y el sufijo aunque el directorio contenga archivos que coincidirían con ellos.
Protección mediante comillas
La protección mediante comillas protege caracteres frente a determinadas interpretaciones del intérprete, lo que permite que espacios o caracteres especiales permanezcan dentro de un solo argumento.
Las comillas de ls "Work Plan.txt" mantienen el espacio dentro del nombre de archivo en lugar de dividirlo en dos palabras.

R

Resolución de comandos
La resolución de comandos es el proceso por el que el intérprete determina si un nombre corresponde a una función del intérprete o a un ejecutable externo en su ruta de búsqueda.
type echo puede informar del comando integrado de Bash antes que de un archivo echo externo que también existe en un directorio de PATH.
rm
rm es el comando de eliminación de archivos, con una opción recursiva para árboles de directorios; no mueve los destinos a una papelera.
rm -i old.txt solicita confirmación antes de eliminar ese archivo, lo que te permite rechazar la acción.
rmdir
rmdir es un comando para eliminar directorios vacíos que rechaza un destino si contiene entradas de archivo normales u ocultas.
Si rmdir cache informa de que el contenido no está vacío pero ls sin opciones parece no mostrar nada, usa ls -A cache para comprobar las entradas ocultas.
Ruta absoluta
Una ruta absoluta comienza con / y describe una ubicación desde el directorio raíz, por lo que su significado no depende de tu ubicación actual.
/home/sam/photos identifica el mismo directorio tanto si el intérprete está en /etc como en el directorio personal de sam.
Ruta explícita del comando
Una ruta explícita del comando contiene una barra e indica directamente la ubicación de un programa, omitiendo la búsqueda de directorios que se realiza mediante PATH.
Desde /home/sam/bin, ./backup y /home/sam/bin/backup identifican el mismo ejecutable local.
Ruta relativa
Una ruta relativa describe una ubicación desde el directorio de trabajo y no comienza con la barra que fija el inicio de una ruta absoluta.
Desde /home/sam/projects, ../photos llega al directorio de fotos de sam subiendo y después bajando.

S

Sección del manual
Una sección del manual es un grupo numerado de páginas que separa temas como comandos de usuario, formatos de archivo y comandos de administración.
Un mismo nombre puede tener varias páginas; man 5 passwd selecciona la página de formato de archivo en lugar de la del comando.
Sinopsis (SYNOPSIS)
Una sinopsis es el patrón abreviado de invocación de una página de manual, que muestra el texto literal del comando, los valores sustituibles, las partes opcionales y la repetición.
La forma mkdir [OPTION]... DIRECTORY... permite opciones facultativas, pero requiere al menos un nombre de directorio.
Sobrescritura
Una sobrescritura sustituye el contenido de un archivo de destino existente durante una operación, algo que cp o mv sin opciones pueden hacer sin preguntar.
Usa cp -i notes.txt saved.txt para que pregunte antes de sustituir saved.txt cuando ya exista un archivo con ese nombre.

T

Tamaño en formato legible
Un tamaño en formato legible usa unidades abreviadas como K, M y G en lugar de una cantidad larga de bytes, según solicita ls -h de GNU.
Combina -h con -l: la primera opción formatea los tamaños, mientras que la segunda proporciona la columna que los muestra.
Terminal
Un terminal es la interfaz que muestra una sesión de texto y acepta entradas del teclado, a menudo como una ventana en la que se ejecuta un intérprete de comandos.
Abrir un segundo terminal puede iniciar un intérprete independiente con su propio directorio de trabajo e historial.
touch
touch es un comando que actualiza las marcas de tiempo de archivos existentes o crea archivos vacíos cuando los nombres solicitados no existen.
touch checklist.txt conserva el texto de una lista existente; no vacía el archivo antes de actualizar sus fechas y horas.

V

Variable
Una variable es un valor con nombre utilizado por el intérprete, que se asigna con name=value y se lee mediante una expansión como $name.
Después de topic=linux, echo "$topic" muestra el valor almacenado, mientras que unset topic elimina la variable.
Variable de entorno
Una variable de entorno es un valor con nombre disponible para los programas hijos recién iniciados, a menudo al marcar una variable del intérprete con export.
export city permite que un Bash hijo posterior lea el valor de city que antes solo se mantenía en el proceso padre.
Variable del intérprete de comandos
Una variable del intérprete de comandos es un valor con nombre que mantiene un intérprete; una asignación normal sin exportar no pasa ese valor a los programas recién iniciados.
Establecer solo city=Lisbon no proporciona ese valor a un nuevo Bash hijo, salvo que city ya esté exportada.
Vista previa de la expansión
Una vista previa de la expansión muestra los nombres seleccionados por un patrón antes de que una operación los modifique, lo que ayuda a detectar destinos inesperadamente amplios.
ls -d -- draft* muestra las propias entradas coincidentes, de modo que los directorios coincidentes son visibles como destinos.

W

whatis
whatis es un comando de consulta que muestra la descripción indexada de una línea para un nombre conocido de página de manual, en lugar de abrir su texto completo.
whatis ls ofrece una breve descripción del propósito; man ls proporciona la referencia más extensa cuando se necesitan más detalles.

Sobre esta unidad

Por StudeliInformar de un error

Crea tus propios Materiales de Estudio

Convierte tus notas, diapositivas y documentos en Guías de Estudio, Preguntas de Práctica, Flashcards y 6 herramientas más.

Comenzar