Linux para estudiantes — kernel, shell, terminal y el árbol de carpetas antes de IC2 (y el «cd Documentos» que no encontraba nada)

Cuando me dijeron en Ingeniería de Computadores II que íbamos a trabajar con Linux, mi primera reacción fue «¿por qué no usamos Windows como siempre?». La segunda llegó en la primera práctica: abrí la terminal de Fedora, escribí cd Documentos y bash me contestó No such file or directory. La carpeta estaba ahí, la veía en el explorador… pero se llamaba Documents, porque había instalado Fedora en inglés. Linux no adivina: hace exactamente lo que escribes, letra a letra.

Si estás en esa misma situación, este artículo es para ti. Aquí explico todo lo que me habría gustado saber antes de abrir la terminal por primera vez: qué es Linux de verdad, por qué se usa en la carrera, qué son el kernel, la shell y la terminal, cómo se organizan las carpetas y cómo moverte con rutas. Sin tecnicismos innecesarios y con una sesión de terminal real para que lo pruebes tú.

¿Qué es Linux y por qué lo usamos en la carrera?

Linux se suele presentar como un sistema operativo, igual que Windows o macOS. Es verdad a medias: técnicamente, Linux es solo el kernel, el núcleo que habla con el hardware. Lo que instalas en tu ordenador es una distribución: el kernel Linux más un montón de herramientas, bibliotecas, un entorno gráfico y programas empaquetados juntos. Fedora, Ubuntu, Debian o Arch son distribuciones distintas que usan el mismo kernel.

Lo que hace especial a Linux es que es libre y de código abierto: cualquiera puede ver cómo funciona por dentro, modificarlo y distribuir su propia versión. Por eso hay cientos de distribuciones y por eso está en todas partes: servidores, móviles Android, supercomputadores y, en IC2, en tu máquina virtual con Fedora.

¿Por qué Linux para estudiantes de programación y no Windows?

Es la primera pregunta que se hace todo el mundo: estudias datos, no administración de sistemas. ¿Para qué Linux? Hay razones muy concretas:

  • Los servidores del mundo usan Linux. Cuando despliegues una aplicación web, un modelo de machine learning o un análisis de datos en producción, casi seguro que correrá sobre Linux. Aprenderlo en la carrera es aprender el entorno real de trabajo.
  • Las herramientas de datos nacieron en Linux. Python, R, Git, Docker, los compiladores de C: todo está pensado primero para Linux. En Windows funcionan, pero con más fricción (rutas, permisos, instalaciones).
  • La terminal es mucho más potente. Con una línea de órdenes automatizas tareas que en Windows llevarían horas de clics.
  • Es lo que se usa en IC2 para compilar en C, escribir scripts y entender procesos y permisos. Cuanto antes te familiarices, mejor.

La historia en dos minutos — solo lo que importa

No hace falta que te aprendas toda la historia de Unix para aprobar IC2, pero hay tres hitos que explican por qué Linux existe y por qué se llama como se llama:

Línea de tiempo de Unix a Fedora 44 1969: Unix en Bell Labs. 1983: Stallman lanza GNU. 1991: Linus Torvalds escribe el kernel Linux. 2003: Fedora Core 1. 2026: Fedora 44, la que se usa en IC2. GNU más Linux da GNU/Linux. Cómo llegamos a la Fedora de IC21969UnixBell LabsThompson y Ritchie1983GNURichard Stallmanherramientas libres1991LinuxLinus Torvaldsel kernel que faltaba2003FedoraFedora Core 1patrocinada por Red Hat2026Fedora 44la de IC2GNU/LinuxGNU (herramientas) + Linux (kernel) = GNU/Linux
Linux es solo el kernel; con las herramientas de GNU forma el sistema que usas.
  • 1969 — Nace Unix en Bell Labs. Ken Thompson y Dennis Ritchie crean un sistema operativo pensado para ser simple, portable y eficiente. Es el abuelo de casi todos los sistemas modernos (macOS también desciende de él).
  • 1983 — Richard Stallman lanza el proyecto GNU. Quería un sistema operativo completamente libre. Su proyecto creó herramientas esenciales (compilador, editores, utilidades de terminal), pero le faltaba la pieza central: el kernel.
  • 1991 — Linus Torvalds escribe el kernel Linux. Un estudiante finlandés de 21 años publica el kernel que le faltaba a GNU. La combinación de los dos da el primer sistema libre completo para PC; de ahí el nombre técnico GNU/Linux.

Desde 2003 existe Fedora, la distribución patrocinada por Red Hat que usamos en IC2 (hoy, Fedora 44). En la sesión de terminal de más abajo verás que uname -o responde literalmente GNU/Linux.

Qué es el kernel — y por qué importa entenderlo

El kernel es el núcleo del sistema operativo: la capa más profunda del software, la única que habla directamente con el hardware. Decide qué programa usa la CPU en cada momento, cuánta memoria tiene cada uno, quién puede leer cada archivo y cómo se habla con el disco, el teclado o la red. Tú nunca lo usas directamente: siempre hay algo en medio.

Capas de Linux: aplicaciones, shell, kernel y hardware Arriba las aplicaciones (Firefox, VS Code, python3, gcc), debajo la shell bash, que es donde escribes tú, después el kernel Linux, que gestiona memoria, procesos, archivos y dispositivos, y abajo el hardware. Las capas de un sistema LinuxAplicacionesFirefox, VS Code, python3, gccShell (bash)lee lo que escribes y lo convierte en peticionesKernel (Linux)memoria · procesos · archivos · dispositivosHardwareCPU · RAM · disco · redtú«Permission denied» lo dice el kernel; «command not found» lo dice bash.
Tú hablas con bash; bash habla con el kernel; solo el kernel toca el hardware.

Piénsalo como en el dibujo, de abajo arriba:

  1. Hardware: la CPU, la RAM, el disco, la red. El metal.
  2. Kernel (Linux): el intermediario que gestiona memoria, procesos, archivos y dispositivos.
  3. Shell (bash): la capa que tú ves y usas. Recibe tus órdenes en texto y las convierte en peticiones al kernel.
  4. Aplicaciones: Firefox, VS Code, python3, gcc… los programas que corren encima de todo.

¿Por qué importa? Porque cuando en IC2 te salga un error, saber en qué capa nace te dice dónde mirar. command not found lo dice bash: no conoce esa orden (normalmente, una errata). Permission denied lo dice el kernel: la orden existe, pero tu usuario no tiene permiso (lo verás en permisos en Linux).

La diferencia real entre terminal, shell y bash

Esta es la confusión más común al empezar: se usan como sinónimos, pero no son lo mismo.

  • Terminal: la ventana. El programa que te enseña un cursor y te deja escribir. En Fedora se llama Terminal (antes GNOME Terminal); en Windows, el equivalente es la ventana de cmd o PowerShell. La terminal en sí no interpreta nada: solo muestra.
  • Shell: el intérprete de órdenes que vive dentro de la terminal. Lee lo que escribes, lo interpreta y se lo pide al kernel. Hay varias: sh, bash, zsh, fish.
  • bash: la shell más común en Linux y la que usarás en IC2. Al abrir la terminal de Fedora ya estás en bash (en la sesión de abajo, echo $SHELL lo confirma: /bin/bash).
  • Consola: hoy es casi un sinónimo de terminal. Históricamente era el teclado y la pantalla conectados físicamente al ordenador.

La analogía que más me ayudó: la terminal es el teléfono, bash es el idioma que hablas por él y el kernel es la persona al otro lado que hace lo que le pides. Mira el recorrido completo de una orden sencilla:

Recorrido de ls GCID por terminal, bash, kernel y disco La terminal muestra lo que tecleas, bash interpreta ls GCID, el kernel lee la carpeta /home/sergio/GCID del disco y la respuesta, FP1 e IC2, vuelve hasta la terminal. El viaje de «ls GCID»Terminalla ventanaenseña lo que tecleasbashshellentiende «ls GCID»KernelLinuxlee la carpeta del discoDisco~/GCIDFP1 e IC2la respuesta vuelve por el mismo camino$ ls GCIDFP1 IC2
Terminal, shell y kernel no son sinónimos: son tres piezas distintas de la misma cadena.

Tecleas ls GCID en la terminal; bash entiende que quieres listar esa carpeta; el kernel la lee del disco; y la respuesta (FP1 e IC2) vuelve por el mismo camino hasta la ventana. Tres piezas distintas, una sola cadena.

¿Por qué la terminal y no el ratón?

Fedora tiene un explorador de archivos estupendo. Podrías hacer clic en las carpetas en lugar de escribir ls. ¿Para qué aprender la terminal?

  • Velocidad: mover, buscar o renombrar cien archivos es una línea, no cien clics.
  • Automatización: las órdenes se pueden guardar en un script y repetir cuando quieras. Los clics no.
  • Acceso remoto: cuando te conectes a un servidor por red solo tendrás terminal, sin entorno gráfico. Así se administran casi todos los servidores del mundo.
  • Precisión: una orden hace exactamente lo que dice. Sin menús escondidos.

El árbol de directorios — cómo se organiza Linux

En Windows estás acostumbrado a C:\Users\Sergio\Documents. En Linux no hay letras de unidad: todo cuelga de una raíz única llamada / (barra). Es un árbol que empieza en / y se ramifica hacia abajo; un USB o la carpeta compartida de VirtualBox no son una «D:», sino una carpeta más dentro del árbol (en /media o /mnt).

CarpetaQué guarda
/La raíz: todo empieza aquí
/bin y /usr/binLas órdenes y programas (ls, cp, python3)
/etcArchivos de configuración del sistema
/homeLas carpetas personales de los usuarios (/home/sergio)
/tmpArchivos temporales (se borran al reiniciar)
/usrProgramas instalados y sus bibliotecas
/varDatos que cambian: registros (logs), cachés
/media y /mntDiscos externos, USB, carpetas compartidas
/devLos dispositivos vistos como archivos (discos, terminales)

Lo más importante que debes recordar: tu carpeta personal está en /home/tu_usuario y se abrevia con ~. Todo lo que crees y guardes debería estar ahí. Al abrir la terminal, empiezas siempre en ella.

Guardar trabajo en /tmp «para probar». Se borra al reiniciar la máquina virtual. Lo tuyo, siempre dentro de ~.

Rutas absolutas y relativas

Este concepto confunde al principio, pero es imprescindible para moverte con cd:

  • Una ruta absoluta empieza en la raíz / y funciona estés donde estés: /home/sergio/GCID/IC2.
  • Una ruta relativa se cuenta desde la carpeta en la que estás: si estás en /home/sergio, la carpeta de antes es simplemente GCID/IC2.

Dos atajos aparecen en todas partes: . es «la carpeta actual» y .. es «la carpeta de arriba». Y ~ es tu carpeta personal.

Árbol de directorios de Linux con rutas absolutas y relativas Desde la raíz / cuelgan bin, etc, home, tmp, usr y var. Dentro de home está sergio (la carpeta ~) con GCID, que contiene FP1 (con tema_variables) e IC2. La ruta absoluta /home/sergio/GCID/IC2 empieza en /; la relativa GCID/FP1 se cuenta desde ~. Un solo árbol que empieza en //bin/órdenesetc/configuraciónhome/tmp/temporalesusr/programasvar/registrossergio/= ~GCID/FP1/tema_variables/IC2/Ruta absoluta/home/sergio/GCID/IC2empieza en /: valedesde cualquier sitioRuta relativaGCID/FP1desde ~ (donde estás).. = carpeta de arriba
Las mismas carpetas que crea la sesión de «Pruébalo en tu terminal»: violeta, la ruta absoluta; coral, la relativa.

En el dibujo, la ruta violeta (/home/sergio/GCID/IC2) parte de /; la coral (GCID/FP1) parte de ~. Son las mismas carpetas que vas a crear ahora mismo en la terminal.

Pruébalo en tu terminal

Abre la terminal de tu Fedora y escribe estas órdenes una a una. Esta es la sesión que ejecuté (con el usuario sergio); en tu ordenador saldrá tu nombre de usuario:

$ whoami
sergio
$ cd ~
$ pwd
/home/sergio
$ echo $SHELL
/bin/bash
$ uname -o
GNU/Linux

whoami te dice qué usuario eres; cd ~ te lleva a tu carpeta personal y pwd (print working directory) confirma dónde estás: /home/sergio. echo $SHELL enseña la shell que usas (bash) y uname -o el sistema: GNU/Linux, el nombre completo del que hablábamos en la historia.

Ahora crea la estructura de carpetas de la carrera y míralas:

$ mkdir -p GCID/FP1/tema_variables GCID/IC2
$ ls
GCID
$ ls GCID
FP1
IC2

mkdir -p crea de una vez la cadena entera de carpetas (la -p crea también las intermedias y no se queja si ya existen). En tu terminal, ls pondrá los nombres en una sola línea (FP1 IC2); aquí salen uno por línea porque la salida se guardó en un archivo en lugar de mostrarse en una ventana.

Y ahora, a moverse con los dos tipos de ruta:

$ cd GCID/FP1
$ pwd
/home/sergio/GCID/FP1
$ cd /home/sergio/GCID/IC2
$ pwd
/home/sergio/GCID/IC2
$ cd ..
$ pwd
/home/sergio/GCID
$ cd ~
$ ls -d /bin /etc /home /tmp /usr /var
/bin
/etc
/home
/tmp
/usr
/var

Fíjate en cada pwd: con la ruta relativa GCID/FP1 llegamos a /home/sergio/GCID/FP1 porque partíamos de ~; con la absoluta /home/sergio/GCID/IC2 da igual dónde estuviéramos; cd .. sube un nivel y deja /home/sergio/GCID. La última orden comprueba que las carpetas principales del árbol existen de verdad (ls -d las enseña sin entrar en ellas).

Qué observar:

  1. pwd es tu brújula: si te pierdes, pregúntale dónde estás antes de seguir.
  2. Las relativas dependen de dónde estés; las absolutas, no (empiezan por /).
  3. .. siempre sube un nivel y ~ siempre te devuelve a casa.
  4. Las órdenes que no dicen nada han ido bien: cd y mkdir solo hablan cuando hay un error.

Los errores que vas a ver (y qué significan)

Ahora a propósito, los tropiezos típicos de la primera semana:

$ cd ~
$ Ls
bash: Ls: command not found
$ cd tema_variables
bash: cd: tema_variables: No such file or directory
$ cd GCID/FP1/tema_variables
$ pwd
/home/sergio/GCID/FP1/tema_variables
$ cd Documentos
bash: cd: Documentos: No such file or directory
$ mkdir Mis apuntes
$ ls
Mis
apuntes
  • Ls: command not found: Linux distingue mayúsculas de minúsculas. ls existe; Ls, no. Lo dice bash, porque no encuentra ninguna orden con ese nombre.
  • cd tema_variables falla desde ~ porque esa carpeta no está ahí, sino dentro de GCID/FP1. Con la ruta relativa completa, funciona.
  • cd Documentos: mi anécdota. Si la carpeta no existe con ese nombre exacto, no hay nada que hacer. Usa ls antes para ver cómo se llama de verdad (y Tab para completarla).
  • mkdir Mis apuntes crea dos carpetas, Mis y apuntes, porque el espacio separa argumentos. Si de verdad quieres un espacio, escribe mkdir "Mis apuntes"; mejor aún, mis_apuntes.

Pulsa Tab para completar nombres y la flecha ↑ para recuperar la orden anterior. Con esos dos atajos escribirás la mitad y te equivocarás mucho menos.

Distribuciones — por qué hay tantos «Linux»

Cuando alguien dice «voy a instalar Linux» quiere decir «voy a instalar una distribución de Linux»: el kernel más un conjunto de software empaquetado. Cada una toma decisiones distintas (qué programas trae, cada cuánto se actualiza, cómo se instalan paquetes):

DistribuciónPara qué destacaInstalar paquetes
FedoraModerna y estable; la de IC2, patrocinada por Red Hatsudo dnf install
UbuntuLa más popular en escritorio; muchísima ayuda en forossudo apt install
DebianMuy estable; base de Ubuntusudo apt install
Arch LinuxPara quien quiere montarlo todo a manosudo pacman -S
Red Hat Enterprise LinuxServidores de empresa (hermana mayor de Fedora)sudo dnf install

La buena noticia: las órdenes de terminal que aprenderás en IC2 funcionan igual en todas. Cambia, sobre todo, cómo se instalan los programas.

Código abierto — qué significa para ti

Código abierto significa que el código fuente es público: cualquiera puede leerlo, estudiarlo, modificarlo y publicar su propia versión. Para ti, como estudiante, tiene consecuencias muy prácticas:

  • Todas las herramientas de IC2 son gratis, sin licencias.
  • Puedes mirar cómo está hecha cualquier herramienta y aprender de ella.
  • Si algo falla, casi seguro que alguien ya lo ha preguntado y resuelto en un foro.
  • Lo que aprendes es transferible: funciona igual en tu portátil, en un servidor de la universidad y en una máquina en la nube.

«libre» en GNU se refiere a libertad (poder estudiar y modificar), no solo a precio. Stallman lo resumía como «libre como en libertad de expresión, no como en cerveza gratis».

Ponte cómodo con la terminal — la actitud correcta

La terminal impone al principio porque hay que saber qué escribir: no hay menús para curiosear. Pero esa es justo su fuerza: cuando conoces las órdenes, vas más rápido que nadie con el ratón. La curva es real pero corta: tras dos semanas de IC2 te moverás por las carpetas sin pensar.

Lo más importante al empezar: con tu usuario normal no puedes romper el sistema. Las órdenes peligrosas necesitan sudo (permisos de administrador) y te pedirán la contraseña. Así que explora, prueba y equivócate. Eso sí, ten respeto a dos cosas: sudo y rm (borrar), que en Linux no tiene papelera.

Copiar de un foro una orden con sudo rm -rf sin entender qué hace. Si una orden lleva sudo, léela entera antes de pulsar Enter.

Resumen

ConceptoEn una frase
LinuxEl kernel; con las herramientas GNU forma GNU/Linux
DistribuciónKernel + programas empaquetados (Fedora en IC2)
KernelGestiona memoria, procesos, archivos y dispositivos
Shell / bashInterpreta lo que escribes y se lo pide al kernel
TerminalLa ventana donde escribes
/La raíz del árbol: no hay letras de unidad
~Tu carpeta personal (/home/tu_usuario)
Ruta absoluta / relativaDesde / / desde donde estás
. y ..La carpeta actual / la de arriba

Tres ideas para llevarte:

  1. Terminal, shell y kernel son tres piezas distintas: el error te dice cuál ha protestado.
  2. Todo es un único árbol que empieza en /; tu sitio es ~.
  3. Linux hace exactamente lo que escribes: mayúsculas, espacios y nombres exactos importan (y pwd, ls y Tab te salvan).

Lo que viene ahora

Con esto claro ya tienes el contexto para empezar a trabajar en la terminal. Si todavía no tienes Fedora, antes de seguir necesitas instalarla: aquí tienes la guía completa de instalar Fedora en VirtualBox. Y el siguiente artículo es donde empieza la acción de verdad: los comandos básicos de Linux que usarás cada día en IC2 para navegar, crear, copiar y mover archivos.

Sigue aprendiendoTodos los artículos de Fundamentos

¿Te ha servido este artículo? Así puedes apoyar SergioLearns →

Sigue aprendiendo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *