martes, 24 de junio de 2025

Sistemas Operativos 3.- Operaciones Básicas en Linux

¿Te pierdes entre tantos temas? 📚✨ Descubre todo lo que ofrece este blog en un solo vistazo [👉 Ver índice completo]

Comandos Básicos de Linux: Guía para Principiantes


2.1 Comandos Básicos de Linux

En este capítulo vamos a desarrollar una pequeña chuleta para poder manejarnos básicamente a través de la terminal de Linux.


Manejo de Directorios

pwd - print working directory

Este comando muestra la ruta completa del directorio actual en el que estás trabajando.
Es útil cuando navegas por muchas carpetas y necesitas saber exactamente dónde estás ubicado dentro del sistema de archivos.

comando pwd

cd - change directory

Por defecto, la secuencia de entrada en linux, nos sitúa en nuestro directorio de entrada o de trabajo (un  directorio  llamado  igual que  el  usuario,  dentro  del  directorio  /home).  Pero  al  igual  que  otros  sistemas operativos podemos cambiar de directorio mediante el mandato cd directorio. Si  no  introducimos  ningún  nombre  de  directorio,  el  mandato cd, sin  argumentos  vuelve  a  nuestro directorio de trabajo. Si queremos volver al directorio de nivel superior basta con utilizar cd ..

Comportamientos comunes:

  • Ir al directorio Personal (home):

    cd 

Que es equivalente a:

   cd ~

  • Cambiar a un subdirectorio:

    cd nombre_directorio

  • Volver al directorio anterior (última ubicación)

    cd -

  • Subir un nivel en el árbol de directorios:

    cd ..

  • Ir al directorio raíz del sistema:

    cd /

El nombre de un fichero o de un directorio se puede referenciar de forma relativa o absoluta.

  • Forma relativa: El nombre hace referencia a ficheros o directorios desde el directorio en el que nos encontramos.
  • Forma absoluta: El nombre hace referencia a todo el camino desde la raíz. Ejemplo: si nos encontramos en nuestro directorio de entrada y queremos ir al directorio /etc

Relativa: Referencia desde tu ubicación actual (ej. cd Documentos).

ruta relativa

Absoluta: Referencia desde la raíz (ej. cd /home/usuario/Documentos).

ruta absoluta

mkdir - make directory

Para crear un directorio (carpeta) es necesario utilizar la orden mkdir nombresDeDirectorio

  • Si queremos crear un solo directorio:

crear un directorio

  • Si queremos crear varios directorios:
crear varios directorios

  • Crear una estructura de directorios anidados (incluye carpetas padre sino existen)

crear directorios recursivos si no existe el padre

rmdir - Remove Directory

Para borrar un directorio es necesario utilizar la orden rmdir nombresDeDirectorio, es necesario que ese directorio este vacío. ⚠️ Si el directorio contiene archivos o subdirectorios, rmdir no lo eliminará. En ese caso, se debe usar rm -r, pero recuerda utilizarlo con precaución.

eliminar directorios

Comandos Básicos

date

Permite consultar la fecha y hora del sistema.

comando date

who / whoami

who: este comando muestra los usuarios conectados a la máquina.

comando who

whoami: Muestra tu nombre de usuario.

comando whoami

ls (Listar archivos)

Este comando muestra el contenido de un directorio. Este comando tiene varias opciones:

ls: Muestra contenido del directorio actual.

ls

Opciones útiles:

ls -a: Muestra además los archivos ocultos (aquellos cuyo nombe empieza con un ".")

ls -a

ls -F: para saber que archivos de un directorio son archivos normales, cuales directorios y cuales enlaces. (los que terminan con / = directorio, los que terminan con * = ejecutable -código- y los que terminan con @ son enlaces simbólicos) .

ls -f

ls -t: Ordena por fecha (más reciente primero).

ls -t

ls -t -r: muestra primero la información más antigua.

ls -t -r

ls -R:
muestra toda la información del directorio en el que me encuentro.

ls -R

ls -l: nos muestra más información (el nombre con sus características) sobre el contenido del del directorio donde me encuentro.

ls -l

Por ejemplo, para el fichero anterior llamado “fichero1” muestra una fila con siete columnas:
Columna 1 - está compuesta por dos partes: 
  • El primer carácter que nos informa sobre el tipo de información que es:
                        -    fichero ordinario
                        d   directorio
                        l     enlace simbólico
  • los 9 siguientes caracteres nos indican los permisos, estos caracteres se agrupan de tres en tres. Los tres primeros son los permisos para el propietario (r w -), los tres siguientes los permisos para el grupo (r --) y los tres últimos los permisos para el resto de usuarios (---). Los permisos pueden ser de lectura (r), escritura (w) y ejecución (x)
Columna 2 - número de enlaces duros.
Columna 3 - indica el nombre del propietario del fichero.
Columna 4 - grupo al que pertenece el usuario propietario del fichero.
Columna 5 - muestra el tamaño de fichero en bytes.
Columna 6 - Hace referencia a la hora en que el fichero fue modificado por última vez o creado.
Columna 7 - nombre del fichero

ls -i: Muestra el número de inodo de cada archivo.

ls -i


touch

Sirve para crear fichero en blanco.

Caracteres comodines

A veces es interesante referenciar ficheros que tengan en su nombre características comunes. “Todos los ficheros que empiezan por la letra c...”. En Linux esto se consigue utilizando caracteres especiales (llamados metacaracteres o comodines) que representan otras cosas:

  • El carácter asterisco '*' representa a cualquier cadena de caracteres arbitraria incluyendo la cadena vacía. (para buscar)
  • La interrogación '?' representa a cualquier carácter simple. (para buscar)
  • Los corchetes '[' ']' pueden contener un grupo o rango de caracteres y corresponden a un carácter simple. (para buscar)
  • Las llaves ‘{‘,’}’ deben contener diferentes alternativas, constituidas por un carácter o un grupo de caracteres, separadas todas ellas por comas. (para buscar / crear). Los dos puntos '..' entre {} en expansión de secuencias se usa para generar rangos automáticamente bien sean números o letras. Por ejemplo, vamos a crear varios ficheros:
touch

Visualización de Archivos

cat

La orden cat se utiliza para visualizar sobre la salida estándar el contenido de un fichero. Lógicamente el tipo de ficheros a visualizar debe ser de texto, ya que si utilizamos la orden con un fichero ejecutable la salida sería ilegible. Para visualizar el fichero de texto llamado prueba:

cat1

La orden cat permite listar varios ficheros secuencialmente. Si tenemos dos ficheros llamados prueba1 y prueba2, el siguiente comando nos permite hacerlo:

cat 2

Una aplicación muy útil de cat, es concatenar ficheros. Por ejemplo, si queremos concatenar los dos ficheros anteriores en un nuevo fichero llamado prueba3 bastaría con ejecutar lo siguiente:

cat2

Si queremos añadir al final de un fichero el contenido de otro:

cat3

En Linux, los caracteres > y >> se utilizan para redirigir la salida de un comando a un archivo, pero con una diferencia clave en su comportamiento:

1. > (Redirección estándar)
Sobrescribe el contenido del archivo.
Si el archivo no existe, lo crea.
Si el archivo existe, lo borra y escribe el nuevo contenido.

⚠️ ¡Cuidado!
Si usas > sobre un archivo existente, pierdes su contenido anterior.

2. >> (Redirección con anexado)
Añade el contenido al final del archivo (sin borrar lo anterior).
Si el archivo no existe, lo crea.

more

Una orden alternativa a cat es la orden more que da más control que la anterior, ya que automáticamente lista un fichero y cuando llena la terminal (lista tantas líneas como el tamaño de la terminal) se para, esperando que pulsemos una tecla (intro para continuar mostrando el contenido del fichero línea a línea o el espacio mostrar el contenido hasta que se vuelva a llenar de nuevo la terminal).

more   [ opciones]    nombre_del_fichero

La orden more tiene varias opciones interesantes:

• Con la opción -n, lista el fichero presentando de n en n líneas y no con el número de líneas que posee nuestra pantalla.

• Con el modificador +n, lista el fichero a partir de la línea n

more

more -n

more +

tail

La orden tail permite visualizar el final de un fichero (por defecto 10 líneas). El formato de este comando es:   

tail  [-numlineas]   nombrefichero

tail

La opción -f del comando tail es increíblemente útil porque te permite seguir los cambios en los archivos en tiempo real. Imagina que tienes un archivo que se está actualizando constantemente, como un archivo de registro (log) de un sistema o una aplicación; con tail -f, no solo verás las últimas líneas existentes, sino que el comando permanecerá activo y mostrará automáticamente cualquier nueva línea que se añada al archivo a medida que suceda. Esto es especialmente práctico para monitorizar la actividad en vivo, diagnosticar problemas o simplemente ver cómo crece un archivo sin tener que abrirlo y cerrarlo repetidamente.

Gestión de Archivos: copia, movimiento y renombrado de ficheros.

cp (Copiar)

Si queremos copiar un fichero utilizamos el mandato cp. Por ejemplo, para copiar el fichero llamado “fichero” al directorio dir1, con el mismo nombre:

Archivos: cp origen destino.

CP

Para copiar el fichero llamado “fichero” al directorio dir1 y llamarlo fich, en vez del nombre que tiene actualmente:
cp cambiando el nombre

La orden cp también copia directorios. Para esto utilizamos el modificador recursivo –R . Por ejemplo,si queremos copia el directorio dir1 (y todo su contenido) al directorio2

Directorios: cp -R dir1 dir2 (copia recursiva)

cp -R


mv (Mover/Renombrar)

El cometido de la orden mv es mover ficheros entre diferentes directorios. Si se usa sobre el mismo directorio el efecto obtenido consiste en cambiar el nombre al fichero. Por ejemplo, cambiamos el nombre del fichero “prueba” por “pruebilla”:

mv

Para mover el fichero “pruebilla” al directorio dir1:

mover archivo

Los permisos del fichero copiado o movido son los mismos que los del fichero original

rm (Eliminar) ⚠️ ¡Mucho cuidado con este comando!

La orden rm suprime un fichero de un directorio o un directorio completo. Con la opción –R borra un directorio con todo su contenido. ¡Ojo! Esta orden es muy peligrosa, utilízala con precaución. Para borrar un fichero:

rm archivo

Para borrar un directorio este tiene que estar vacío o utilizamos la opción -R si queremos borrar el directorio y todo lo que tiene dentro:

rm -r

Otras Órdenes Útiles para trabajar con ficheros.

sort

Ordena la información de un fichero. Esta orden la podemos utilizar con diferentes formatos:

sort nombre_fichero   - muestra el contenido del fichero ordenado

sort


sort -o fich1 fich2 - mete en fich1 el contenido del fich2 ordenado

sort -o

wc (Contar)

Sirve para contar líneas, palabras y bytes de un fichero. 

Muestra esta información de la siguiente forma:

numero de líneas     numero de palabras   numero de bytes       nombre del fichero

wc  [opciones]  nombrefichero

Opciones de esta orden:

-c - solo muestra el número de bytes

-l - solo muestra el número de líneas

-w - solo muestra el número de palabras

wc

split 

El mandato split divide un fichero de texto en partes. La sintaxis es de la forma:

    split   [-líneas]   nombre    [prefijo]

División por defecto: el prefijo por defecto es x, y el número de líneas 1000 (crea ficheros xaa, xab, xac, xad... con 1000 líneas cada uno).

Si dividimos nuestro fichero llamado “fichero” en ficheros de 3 líneas, se crean 7 ficheros

split

cut (recortar)

El mandato cut recorta columnas o campos de un fichero. 

La sintaxis en este caso es como sigue:

cut [opciones] nombre 

Las opciones pueden ser:

  • Cortando columnas. Opción -c 
  • Cortando campos (por defecto, cut asume que los campos se encuentran separados por tabuladores). Opción –f 
  • Indicar de forma explícita el carácter usado como separador entre campos. Opción –d

cut -c
En este ejemplo vemos como se cogen de cada línea del fichero los caracteres que están en la columna 2 y en la 7.
cut -f

En el ejemplo anterior los datos han sido separados por tabuladores. Al usar la orden cut -f le hemos dicho que recorte de cada fila los datos que estén antes de la primera, segunda y cuarta tabulación.


En este último ejemplo le he pedido que utilizando como separador el espacio en blanco " " que recorte lo que este antes del primer y tercer separador.


grep (Buscar)

El mandato grep permite realizar búsquedas de líneas que contengan texto que identifique a un objetivo o patrón que se especifica. Se pueden utilizar para extraer información de los archivos, buscar líneas que se relacionen con un elemento particular y para localizar archivos que contengan una palabra clave particular. La forma general del mandato es la siguiente:

grep [opciones] expresión [fichero]

Si se quiere buscar más de una palabra (una frase) separadas por espacios en blanco, o se utilizan caracteres comodín, es necesario encerrar la expresión entre comillas. 

Algunas de las opciones de este mandato son:

  • -i   La búsqueda no es sensible a mayúsculas/minúsculas
  • -n  Muestra el número de línea donde se ha encontrado la coincidencia y también la línea.
  • -l   Muestra los nombres de los ficheros, pero no las líneas.
  • -v   Muestran las líneas donde no se produce la coincidencia.
grep

Enlaces.

Aunque los enlaces duros y blandos los vimos en el post anterior merece la pena volver a repasarlos. 

El comando ln sirve para crear enlaces.

ln  -s  f1  simbo1f1 crea un enlace bando (simbólico) llamado simbo1f1 al fichero f1.

Recuerda que los enlaces simbólicos son como los accesos directos en Windows.

ln  f1  enla1f1 crea un enlace duro llamado enla1f1 al fichero f1. Los enlaces duros son como diferentes nombres para un mismo archivo. (no valen para directorios)

enlaces


Conclusión

Estos comandos son esenciales para trabajar en Ubuntu o cualquier distribución Linux. Practícalos en la terminal para familiarizarte con ellos.

miércoles, 18 de junio de 2025

Sistemas Operativos 2.- Sistemas de Archivos en Windows y Linux

¿Te pierdes entre tantos temas? 📚✨ Descubre todo lo que ofrece este blog en un solo vistazo [👉 Ver índice completo]

Sistemas de Archivos en Windows y Linux

Los sistemas de archivos son fundamentales para organizar y gestionar datos en dispositivos de almacenamiento. Cada sistema operativo utiliza su propio sistema de archivos, pero todos buscan facilitar el manejo de archivos y directorios de manera lógica y eficiente.

Sistemas Operativos Windows


1.1 Los Archivos


Definición: Unidad básica para almacenar información en disco.

Estructura del nombre: nombrearchivo.extensión.

¿Alguna vez te has preguntado qué información "esconde" un archivo además de su nombre y extensión? Pues bien, cada archivo en tu ordenador viene con una serie de atributos y datos importantes que te dan pistas sobre cómo se comporta, si es un archivo crucial del sistema o si necesita una copia de seguridad. Entender estos detalles te puede ayudar a gestionar mejor tus archivos y solucionar problemas comunes.

¿Cómo Ver los Atributos de un Archivo?

Tienes dos formas principales de echar un vistazo a estos atributos:
  • De forma gráfica (la más sencilla): Simplemente navega con el Explorador de Archivos hasta el archivo que te interese. Haz clic derecho sobre él, selecciona Propiedades y luego ve a la pestaña General. ¡Ahí estarán! Verás casillas que te indicarán si es de solo lectura, si está oculto, etc.
atributos gráficos


  • Desde la línea de comandos (para los más curiosos): Si te gusta usar CMD o PowerShell, puedes obtener esta información rápidamente. Abre cualquiera de estas herramientas y usa el comando attrib seguido del nombre del archivo. Por ejemplo, si tu archivo se llama documento.txt, escribirías: attrib documento.txt y verías sus atributos representados por letras.
atributos en terminal


¿Qué Significan Esos Atributos?
Cada letra representa una característica específica del archivo:
  • S (Archivo del sistema): ¡Cuidado con estos! Son archivos vitales para el funcionamiento de tu sistema operativo o programas. Generalmente, es mejor no tocarlos a menos que sepas muy bien lo que haces, ya que modificarlos o eliminarlos podría causar inestabilidad.
  • H (Archivo oculto): Estos archivos no se muestran por defecto en el Explorador de Archivos. Se suelen usar para ocultar configuraciones o archivos que no necesitas ver constantemente. Puedes configurar tu Explorador para que te los muestre si necesitas acceder a ellos.
  • R (Solo lectura): Un archivo marcado como "solo lectura" significa que puedes abrirlo y verlo, pero no puedes modificarlo ni guardarlo con el mismo nombre en la misma ubicación. Es útil para proteger documentos importantes de cambios accidentales.
  • A (Modificado - Requiere copia de seguridad): Este es un atributo muy práctico para las copias de seguridad. Cuando modificas un archivo, este atributo se activa automáticamente. Los programas de copia de seguridad lo utilizan para identificar qué archivos han cambiado desde la última copia y así hacer una copia incremental, guardando solo lo nuevo. Una vez que se hace la copia de seguridad, este atributo suele desactivarse.
Más Allá de los Atributos: Fecha, Hora y Tamaño
Además de los atributos, cada archivo también almacena información crucial sobre:
Fecha y hora de creación: Cuándo fue creado el archivo por primera vez.
Fecha y hora de modificación: Cuándo se guardó la última vez con cambios.
Fecha y hora de acceso: Cuándo se abrió o accedió al archivo por última vez.
Tamaño: El espacio que ocupa el archivo en tu disco duro, generalmente medido en bytes, KB, MB o GB.


1.1.1 Comodines

¿Alguna vez te has encontrado buscando un archivo y solo recuerdas una parte de su nombre? ¡No te preocupes! Las herramientas de línea de comandos como CMD o PowerShell, y también algunas funciones de búsqueda en el Explorador de Archivos, tienen un as bajo la manga: los comodines. Estas pequeñas herramientas te permiten realizar búsquedas flexibles, encontrando archivos incluso si no sabes su nombre exacto.
Piensa en los comodines como los jokers en una baraja de cartas, capaces de representar diferentes valores. Hay dos comodines principales que te facilitarán la vida:
  • El Comodín Asterisco (*): Para Cualquier Cadena de Caracteres
El asterisco es el comodín más potente. Representa cualquier secuencia de caracteres,  sin importar cuántos sean o cuáles sean.
¿Cuándo usarlo? Cuando recuerdes una parte del nombre del archivo, pero no el  principio, el final o incluso el medio.
Ejemplo práctico: Si buscas documentos de Word, puedes usar *.doc (o *.docx). Esto  buscará cualquier archivo que termine con la extensión "doc" o "docx", sin importar cómo  se llame el archivo antes del punto. Así, encontrarás "informe.doc", "proyecto_final.docx",  "carta.doc", etc.
Otro ejemplo: Si buscas todos los archivos que contengan la palabra "informe" en su  nombre, puedes usar *informe*. Esto encontrará "informe_ventas.xlsx",  "analisis_informe.pdf", "mi_informe.txt", y un largo etcétera.
  • El Comodín Interrogación (?): Para un Solo Carácter
El signo de interrogación es más específico. Representa un único carácter en una  posición determinada.
¿Cuándo usarlo? Cuando sepas la longitud de una parte del nombre o cuando solo falte  una letra.
Ejemplo práctico: Imagina que tienes una serie de archivos llamados "foto1.jpg",  "foto2.jpg", "foto3.jpg", pero también "fotoA.jpg", "fotoB.jpg". Si buscas todos los archivos  "foto" seguidos de un solo carácter y la extensión JPG, usarías foto?.jpg. Esto te mostrará  "foto1.jpg", "fotoA.jpg", pero no "foto10.jpg" (porque el "10" son dos caracteres).
Otro caso: docume?to.txt podría encontrar "documento.txt", "documeto.txt" (si por algún  error se le fue una letra), o cualquier otra variante donde solo cambie un carácter en esa  posición.

1.2 Los Directorios


La Estructura de Árbol: El Directorio Raíz

La forma en que tu ordenador organiza sus directorios es como un árbol invertido. En la cima de todo está el directorio raíz, que se representa con una barra invertida (\). Este es el punto de partida de toda la estructura de carpetas de tu sistema. Debajo del directorio raíz, se ramifican otras carpetas, y dentro de esas, más carpetas, y así sucesivamente, creando una jerarquía. Cada carpeta puede contener tanto archivos como otras subcarpetas.

Rutas: Cómo Llegar a tus Archivos

Para encontrar un archivo o una carpeta específica dentro de esta estructura de árbol, usamos lo que llamamos rutas. Hay dos tipos principales de rutas:
  • Rutas Absolutas: Estas rutas son como dar una dirección completa y detallada, empezando siempre desde el directorio raíz (\). Imagínate que es la dirección postal exacta de una casa, incluyendo la ciudad, la calle y el número. Por ejemplo, una ruta absoluta podría ser C:\Usuarios\TuNombre\Documentos\MiArchivo.txt. No importa dónde estés actualmente en tu sistema, si usas una ruta absoluta, siempre llegarás al mismo lugar.
  • Rutas Relativas: A diferencia de las rutas absolutas, las relativas son como dar indicaciones a partir de tu ubicación actual. Empiezan desde el directorio actual en el que te encuentras. Si estás en la carpeta C:\Usuarios\TuNombre, y quieres acceder a un archivo dentro de la carpeta Documentos que está justo dentro, la ruta relativa sería simplemente Documentos\MiArchivo.txt. Son muy útiles para navegar rápidamente cuando ya estás cerca del destino.

Entradas Especiales: Atajos de Navegación

Dentro de los directorios, existen un par de "entradas especiales" que actúan como atajos para moverte con más facilidad, especialmente cuando usas la línea de comandos:
Punto (.): Representa el directorio actual. Es útil cuando quieres referirte a un archivo que está en la misma carpeta en la que ya te encuentras. Por ejemplo, si estás en la carpeta C:\MisProyectos y quieres ejecutar un programa llamado programa.exe que está ahí mismo, podrías escribir . \programa.exe (aunque en muchos casos, solo programa.exe funcionaría).
Doble Punto (..): Representa el directorio padre (la carpeta inmediatamente superior a la actual). Es como decir "subir un nivel". Si estás en C:\Usuarios\TuNombre\Documentos y quieres ir a C:\Usuarios\TuNombre, simplemente usarías cd .. (el comando cd es para cambiar de directorio en la línea de comandos).

Los atributos de los directorios son los siguientes:
  • H -> atributo de oculto. Indica si el directorio está oculto. En este caso no se visualizará al hacer un listado del directorio.
  • R -> atributo de sólo lectura. Indica que los archivos que están dentro de directorio son de solo lectura o se permite también su escritura.
  • A -> atributo de archivo. Este atributo suele cambiar cuando se modifica un directorio. Se utiliza para las copias de seguridad (si este atributo aparece hay que realizar una copia de seguridad de ese directorio, ya que este se ha modificado).
Fecha -> Indica la fecha de la creación o última modificación.
Hora -> Indica la hora de la creación o última modificación.

1.3 Tipos de Sistemas de Archivos

Existen varios tipos de sistemas de archivos, y cada uno tiene sus propias características, ventajas y limitaciones. Conocer los más comunes te ayudará a entender mejor cómo funciona tu almacenamiento y por qué es importante elegir el adecuado para cada necesidad.
Los Pioneros de Windows: FAT16 y FAT32
  • FAT16: Este es uno de los sistemas de archivos más antiguos y básicos.
Capacidad: Soporta particiones de hasta 2 GB. Esto lo hace inviable para los discos duros modernos.
Sensibilidad a mayúsculas/minúsculas: No distingue entre mayúsculas y minúsculas en los nombres de archivo (es decir, "MiArchivo.txt" y "miarchivo.txt" se consideran el mismo archivo).
Uso: Hoy en día, es raro verlo en discos principales, pero aún puede aparecer en dispositivos USB muy antiguos o en sistemas muy específicos por su alta compatibilidad.
  • FAT32: Una evolución de FAT16, mejoró significativamente sus limitaciones.
Capacidad: Puede manejar particiones de hasta 2 TB (terabytes).
Unidades de asignación (clústeres): Utiliza unidades de asignación de 4 KB. Esto puede llevar a un uso ineficiente del espacio si tienes muchísimos archivos muy pequeños, ya que cada uno ocupará al menos 4 KB, aunque su tamaño real sea menor.
Sensibilidad a mayúsculas/minúsculas: Al igual que FAT16, no distingue entre mayúsculas y minúsculas.
Uso: Es muy común en unidades USB, tarjetas SD y otros dispositivos de almacenamiento externos debido a su amplia compatibilidad con diferentes sistemas operativos (Windows, macOS, Linux, consolas de videojuegos, etc.).
  • El Estándar Moderno de Windows: NTFS
NTFS (New Technology File System) es el sistema de archivos predeterminado para las instalaciones modernas de Windows. Es mucho más avanzado y robusto que sus predecesores FAT.
Capacidad: Soporta volúmenes y archivos de tamaños extremadamente grandes, muy por encima de lo que cualquier usuario doméstico podría necesitar hoy en día (hasta 8 PB, o petabytes, teóricamente).
Seguridad y Fiabilidad: Ofrece características avanzadas para la seguridad (permisos de archivo detallados), cifrado (EFS), y compresión de archivos y carpetas para ahorrar espacio. También es más robusto ante errores del sistema o apagones inesperados.
Cuotas de Disco: Permite establecer cuotas de disco, lo que significa que puedes limitar la cantidad de espacio que un usuario puede ocupar en una partición específica. Esto es muy útil en entornos multiusuario o empresariales.
Sensibilidad a mayúsculas/minúsculas: Generalmente no distingue mayúsculas y minúsculas en los nombres de archivo por defecto en Windows, aunque internamente tiene la capacidad de hacerlo.
Uso: Es el sistema de archivos estándar para discos duros internos y unidades SSD en sistemas Windows.
  • El Corazón de Linux: ext4
ext4 (fourth extended filesystem) es el sistema de archivos más utilizado y recomendado en la mayoría de las distribuciones de Linux. Es el resultado de años de desarrollo y optimización.
Robustez y Rendimiento: Es conocido por su fiabilidad y buen rendimiento.
Capacidad: Soporta volúmenes de hasta 1 EB (exabyte) y archivos de hasta 16 TB.
Sensibilidad a mayúsculas/minúsculas: A diferencia de FAT y NTFS (en su uso común), distingue entre mayúsculas y minúsculas en los nombres de archivo. Para ext4, "MiArchivo.txt" y "miarchivo.txt" son dos archivos completamente diferentes.
Características: Incluye mejoras en la asignación de espacio, reducción de la fragmentación y soporte para un mayor número de inodos (la estructura que almacena metadatos sobre los archivos).
Uso: Es el sistema de archivos por defecto para la mayoría de las instalaciones de Linux.
  • El Puente entre Sistemas: exFAT
exFAT (Extended File Allocation Table) fue creado por Microsoft para solucionar las limitaciones de FAT32, especialmente en el tamaño máximo de archivo.
Capacidad: Soporta archivos de más de 4 GB (a diferencia de FAT32) y volúmenes de hasta 128 PB.
Compatibilidad: Es la gran ventaja de exFAT. Es compatible con Windows, macOS y la mayoría de las distribuciones de Linux, lo que lo convierte en una excelente opción para compartir archivos grandes entre diferentes sistemas operativos.
Rendimiento: Ofrece un rendimiento decente, aunque no tan avanzado como NTFS o ext4 en cuanto a características de seguridad o recuperación.
Uso: Ideal para unidades USB, tarjetas SD de gran capacidad, y otros dispositivos de almacenamiento externo que necesitan ser utilizados en múltiples sistemas operativos.

Sistemas Operativos Linux


2.1 Estructura Básica, los sistemas de archivos

Al igual que otros sistemas operativos la información se almacena en archivos y los archivos se agrupan en directorios. En Linux existe un solo árbol de directorios (y no uno para cada partición o disco del sistema).
La operación por la cual un dispositivo de almacenamiento entra a formar parte del árbol de
directorios de sistema se denomina montaje del dispositivo.
Existe un directorio que contiene el resto de archivos y directorios del sistema, se le llama directorio raíz (/).
En los actuales sistemas Linux el usuario administrador (root) esta deshabilitado (existe un usuario especial que puede ser root mediante el comando “sudo su”).
Todo usuario por defecto entra al sistema en su directorio de entrada que será
/home/nombreUsuario (por ejemplo, directorio de entrada de antonio será /home/antonio).
Cuando un usuario entra en el sistema y abre una terminal en el prompt se mostrará:
        nombreDelUsuario@nombre_equipo:directorioDondeEstas$
Por ejemplo, si está el usuario alumno en el ordenador rapsberry, se mostraría:

bash usuario


Si está el root en la terminal se muestra: 

bash root



2.2 Jerarquía de Directorios

Explorando el Corazón de Linux: Un Vistazo a sus Directorios Esenciales
Si ya entendiste que Linux organiza todo en un gran árbol que nace de la raíz (/), el siguiente paso es conocer sus ramas principales. Estos directorios no son solo carpetas; son lugares con propósitos muy específicos, vitales para el funcionamiento del sistema. Familiarizarte con ellos es como aprender el mapa de una ciudad compleja: te ayuda a saber dónde buscar las cosas y dónde no debes tocar.
Aquí te presentamos algunos de los directorios más importantes que encontrarás en cualquier instalación de Linux:
  • /bin contiene la mayoría de los ficheros ejecutables y comandos que puede utilizar cualquier usuario.
  • /boot contiene los ficheros necesarios para el arranque del sistema.
  • /dev contiene los controladores de los dispositivos.
  • /etc contiene los ficheros de configuración del sistema.
  • /home contiene los directorios de inicio de los usuarios.
  • /lib contiene librerías compartidas del sistema.
  • /media contiene los puntos de montaje de los dispositivos.
  • /root es el directorio de inicio del root
  • /sbin contiene la mayoría de los ficheros ejecutables y comandos que solo puede utilizar el root.
  • /usr contiene las aplicaciones que se instalan en el sistema.
directorios linux


2.3 Enlaces


Desentrañando los Enlaces en Linux: Duro vs. Simbólico
En Linux, no siempre hay una relación uno a uno entre el nombre de un archivo y los datos que contiene en el disco. Existen dos tipos de "enlaces" que te permiten crear referencias adicionales a archivos o directorios, cada uno con sus propias características y usos: los enlaces duros y los enlaces simbólicos. Entender la diferencia entre ellos es fundamental para manejar eficientemente tus archivos en Linux.
  • Enlace Duro (Hard Link): Múltiples Nombres para el Mismo Archivo
Imagina que tienes un documento importante. Un enlace duro es como darle a ese mismo documento múltiples nombres o "direcciones" para acceder a él. Técnicamente, un enlace duro es una entrada de directorio que apunta al mismo inodo que el archivo original.
¿Qué es un inodo? Piensa en el inodo como una ficha de biblioteca que contiene toda la información sobre un archivo: quién es su propietario, qué permisos tiene, cuándo fue modificado, y dónde se encuentran sus datos físicos en el disco. Lo que NO contiene el inodo es el nombre del archivo. El nombre del archivo está en el directorio que apunta a ese inodo.
Características Clave del Enlace Duro:
  • Mismo Inodo, Misma Ubicación Física: Todos los enlaces duros a un archivo comparten el mismo inodo. Esto significa que están apuntando exactamente a los mismos datos en el disco.
  • Indistinguibles para el Sistema: Para el sistema operativo, todos los enlaces duros son el "archivo original". No hay un "original" y una "copia" en términos de enlace duro; todos los nombres son igualmente válidos.
Contador de Enlaces: El inodo mantiene un contador que indica cuántos enlaces duros apuntan a él. El archivo real solo se elimina del disco cuando este contador llega a cero (es decir, cuando se borran todos sus enlaces duros).

Restricciones: Los enlaces duros:
  • No pueden cruzar sistemas de archivos: Un enlace duro solo puede existir en la misma partición o sistema de archivos que el archivo original.
  • No pueden enlazar directorios: Solo puedes crear enlaces duros a archivos, no a carpetas.
Creación: Se crea con el comando ln en el terminal:

ln archivo_original nuevo_enlace_duro

¿Cuándo usarlo? Son útiles para tener el mismo archivo accesible desde diferentes ubicaciones sin duplicar el espacio en disco, o para asegurar que un archivo no se borre completamente hasta que todas sus referencias se eliminen.

enlace duro

  • Enlace Simbólico (Soft Link o Symlink): El Acceso Directo de Linux
Un enlace simbólico (o "symlink") es mucho más intuitivo para los usuarios de Windows, ya que es muy similar a un acceso directo. A diferencia del enlace duro, un enlace simbólico es un pequeño archivo nuevo y separado que simplemente contiene la ruta al archivo o directorio original.
Características Clave del Enlace Simbólico:
  • Inodo Propio: Un enlace simbólico tiene su propio inodo y es un archivo independiente.
  • Apunta a una Ruta: No apunta a los datos directamente, sino a la ruta (nombre y ubicación) del archivo o directorio al que enlaza.
  • Puede Cruzar Sistemas de Archivos: Puedes crear enlaces simbólicos a archivos o directorios en diferentes particiones o incluso en sistemas de archivos de red.
  • Puede Enlazar Directorios: Los enlaces simbólicos son la forma estándar de crear "accesos directos" a directorios.
  • Dependencia del Original: Si el archivo o directorio original se mueve o se borra, el enlace simbólico se "rompe" y dejará de funcionar (se convierte en un "enlace roto" o "dangling symlink").
Creación: Se crea con el comando ln -s:

ln -s archivo_o_directorio_original nuevo_enlace_simbólico

¿Cuándo usarlo? Son la opción más común y versátil para crear accesos directos, para organizar el acceso a archivos dispersos, o para facilitar el despliegue de aplicaciones (por ejemplo, para apuntar a la última versión de una biblioteca).

enlace blando


2.4 Ficheros de Dispositivos

Desentrañando los Ficheros de Dispositivos en Linux: Cómo se Nombra tu Hardware
Ya sabes que en Linux todo es parte de un gran árbol de directorios que nace en la raíz (/), y que los dispositivos de hardware se representan como archivos especiales dentro del directorio /dev. Pero, ¿cómo sabe Linux qué nombre darle a cada disco duro o unidad SSD que conectas? Aquí te lo explicamos, enfocándonos en las nomenclaturas más comunes para dispositivos de almacenamiento.
Es importante entender que estos "ficheros de dispositivos" no son archivos que contienen datos como un documento de texto o una imagen. Son interfaces que el sistema operativo utiliza para interactuar directamente con el hardware físico.
  • Discos IDE: La Antigua Escuela (/dev/hda, /dev/hda1)
Hace algunos años, la interfaz principal para conectar discos duros en ordenadores era IDE (Integrated Drive Electronics), también conocida como PATA. En Linux, los discos IDE seguían un patrón de nomenclatura muy específico:
/dev/hda: Representaba el primer disco duro IDE maestro en el primer controlador IDE.
/dev/hdb: Sería el segundo disco IDE maestro (o el esclavo en el primer controlador).
Y así sucesivamente (/dev/hdc, /dev/hdd, etc.) dependiendo de cuántos controladores IDE y dispositivos estuvieran presentes.
Las particiones dentro de estos discos se numeraban añadiendo un número al final del nombre del dispositivo:
/dev/hda1: La primera partición del primer disco IDE.
/dev/hda2: La segunda partición del primer disco IDE.
Aunque los discos IDE son menos comunes hoy en día en equipos modernos, aún puedes encontrarlos en sistemas antiguos o si trabajas con hardware retro.
  • Discos SCSI/SATA/USB: El Estándar Moderno (/dev/sda, /dev/sda1)
Con la evolución de la tecnología, las interfaces SCSI (Small Computer System Interface) y, más tarde, SATA (Serial ATA) se convirtieron en el estándar para discos duros, SSDs y unidades ópticas. También los dispositivos USB suelen ser manejados por el subsistema SCSI/SATA en el kernel de Linux. La nomenclatura para estos dispositivos es más uniforme y flexible:
/dev/sda: Representa el primer disco detectado por el sistema que utiliza el controlador SCSI/SATA. Podría ser tu disco duro principal, un SSD, o incluso una unidad USB que se detecte primero.
/dev/sdb: Sería el segundo disco SCSI/SATA/USB detectado.
/dev/sdc: El tercero, y así sucesivamente (/dev/sdd, etc.), asignándose las letras alfabéticamente a medida que se detectan los dispositivos.
Al igual que con los discos IDE, las particiones se identifican añadiendo un número al nombre del dispositivo:
/dev/sda1: La primera partición del primer disco SCSI/SATA/USB.
/dev/sda2: La segunda partición del primer disco SCSI/SATA/USB.
Si un disco (/dev/sdb) tiene una partición, será /dev/sdb1, y así sucesivamente.
¿Por qué es importante esto?
Conocer estos nombres es crucial cuando trabajas con la línea de comandos en Linux para tareas como:
· Formatear unidades: Necesitarás especificar la partición correcta, por ejemplo, sudo mkfs.ext4 /dev/sdb1.
· Montar dispositivos: Cuando conectas un USB y quieres acceder a sus archivos, necesitas saber su nombre de dispositivo para montarlo correctamente.
· Gestión de particiones: Herramientas como fdisk o parted requieren que especifiques el disco (/dev/sda) o la partición (/dev/sda1) con la que deseas trabajar.
Un consejo clave: Siempre usa comandos como lsblk -f o sudo fdisk -l para verificar la lista actual de dispositivos y sus nombres antes de realizar cualquier operación. Los nombres como /dev/sda pueden cambiar entre reinicios si el orden de detección de tus dispositivos varía, especialmente con unidades USB.

2.5 Permisos

Controlando el Acceso en Linux: Entendiendo los Permisos de Archivos y Directorios
En Linux, la seguridad y el control son fundamentales. No cualquier usuario puede hacer lo que quiera con cualquier archivo o carpeta. El sistema utiliza un robusto modelo de permisos que determina quién puede leer, escribir o ejecutar un archivo, o quién puede acceder a un directorio. Entender estos permisos es esencial para la administración del sistema y para mantener tus datos seguros.
Cada archivo y directorio en Linux tiene tres tipos básicos de permisos, que se aplican a tres categorías diferentes de usuarios:
  • Usuario (u): El propietario del archivo o directorio.
  • Grupo (g): Los usuarios que pertenecen al grupo propietario del archivo o directorio.
  • Otros (o): Todos los demás usuarios del sistema.
Para cada una de estas categorías, se pueden asignar o denegar los siguientes tres permisos:
  • Lectura (r): Ver Contenido
El permiso de lectura (r por "read") permite a un usuario:
· En archivos: Ver el contenido de un archivo. Esto significa que pueden abrirlo y leer lo que hay dentro (por ejemplo, ver el texto de un documento o una imagen).
· En directorios: Listar el contenido de un directorio. Esto significa que pueden ver qué archivos y subdirectorios hay dentro de esa carpeta.
  • Escritura (w): Modificar y Crear
El permiso de escritura (w por "write") otorga la capacidad de modificar:
· En archivos: Modificar el contenido de un archivo, guardar cambios, o incluso eliminar el archivo (si el directorio contenedor también permite escritura).
· En directorios: Crear nuevos archivos o subdirectorios dentro de ese directorio, eliminar archivos o subdirectorios existentes (incluso si no son los propietarios de esos archivos/subdirectorios), o renombrar elementos. Es un permiso muy poderoso para los directorios.
  • Ejecución (x): Activar y Acceder
El permiso de ejecución (x por "execute") es un poco diferente para archivos y directorios:
· En archivos: Ejecutar el archivo como un programa o script. Sin este permiso, aunque tengas permiso de lectura, no podrás correr un script.
· En directorios: Entrar o "acceder" al directorio. Si un usuario tiene el permiso de lectura para un directorio pero no el de ejecución, podrá ver la lista de lo que hay dentro, pero no podrá navegar o entrar en él (usar cd). Es como ver el letrero de una tienda, pero no poder abrir la puerta.
¿Cómo se Ven los Permisos?
Cuando usas el comando ls -l en la terminal de Linux, verás los permisos listados al principio de cada línea. Se muestran como una secuencia de 10 caracteres:
Ejemplo: -rwxr-xr--
El primer carácter (- o d) indica el tipo de archivo ( - para un archivo regular, d para un directorio, l para un enlace simbólico, etc.).
Los siguientes 9 caracteres se dividen en tres grupos de tres:
rwx: Permisos del usuario propietario.
r-x: Permisos del grupo.
r--: Permisos de otros.
En este ejemplo:
El propietario tiene permisos de lectura, escritura y ejecución (rwx).
El grupo tiene permisos de lectura y ejecución (r-x).
Otros solo tienen permiso de lectura (r--).
¿Cómo se Cambian los Permisos?
Los permisos se cambian con el comando chmod (change mode). Puedes usar notación simbólica (como u+x para añadir ejecución al usuario) o notación octal (un número de tres dígitos que representa los permisos).
Ejemplo:
chmod u+x mi_script.sh: Añade permiso de ejecución al propietario de mi_script.sh.
chmod 755 mi_archivo.txt: Otorga rwx al propietario, r-x al grupo y r-x a otros.
Dominar los permisos es una habilidad fundamental en Linux, ya sea que estés configurando un servidor, compartiendo archivos en un equipo o simplemente asegurando tus propios documentos. Te da el poder de controlar quién accede a qué en tu sistema.