Dominando la Terminal Linux: Scripts Bash, Comandos de Archivos y Permisos

Clasificado en Informática

Escrito el en español con un tamaño de 8,65 KB

Script Bash: Verificar y Copiar Ficheros a un Directorio

Este script solicita al usuario un directorio y tres nombres de fichero. Verifica la existencia del directorio y de cada fichero. Si existen, copia los ficheros al directorio; de lo contrario, muestra un mensaje informativo.


clear
echo "Introduce un directorio: "
read dire
echo "Introduce el primer fichero: "
read fich1
echo "Introduce el segundo fichero: "
read fich2
echo "Introduce el tercer fichero: "
read fich3

if [ -d "$dire" ]; then
  echo "El directorio '$dire' existe."
  
  # Verificar y copiar el primer fichero
  if [ -f "$fich1" ]; then
    echo "El fichero '$fich1' existe. Copiando a '$dire'..."
    cp "$fich1" "$dire"
  else
    echo "El fichero '$fich1' no existe."
  fi
  
  # Verificar y copiar el segundo fichero
  if [ -f "$fich2" ]; then
    echo "El fichero '$fich2' existe. Copiando a '$dire'..."
    cp "$fich2" "$dire"
  else
    echo "El fichero '$fich2' no existe."
  fi
  
  # Verificar y copiar el tercer fichero
  if [ -f "$fich3" ]; then
    echo "El fichero '$fich3' existe. Copiando a '$dire'..."
    cp "$fich3" "$dire"
  else
    echo "El fichero '$fich3' no existe."
  fi
else
  echo "El directorio '$dire' no existe."
fi

Comandos Fundamentales de la Terminal Linux

Gestión de Directorios y Archivos

  • mkdir: Crear directorios.
  • rmdir: Borrar directorios vacíos.
  • tree: Mostrar la estructura de directorios en forma de árbol.
  • cp: Copiar archivos y directorios.
  • mv: Mover o renombrar archivos y directorios.
  • rm: Borrar archivos o directorios (recursivamente con la opción -r).

Ejemplos Prácticos de Comandos

Copiar Archivos (cp)

Copia el fichero motd que está en el directorio /etc al directorio PRUEBA (por ejemplo, dentro del directorio personal del usuario), asignándole a la copia el nombre MENSAJE.

Sintaxis general: cp /ruta/del/origen /ruta/del/destino


cp /etc/motd /home/usuario/PRUEBA/MENSAJE

Nota: Asegúrate de que el directorio /home/usuario/PRUEBA exista o ajústalo a tu ruta deseada. Reemplaza usuario con tu nombre de usuario.

Crear Enlaces (ln)

Crea un enlace físico del archivo MENSAJE2 (ubicado, por ejemplo, en /home/usuario/prueba/MENSAJE2) en el directorio IMAGENES (por ejemplo, /home/usuario/prueba/IMAGENES/), con el nombre de ENLACEMENSAJE2.

Sintaxis general (enlace físico): ln /ruta/archivo_existente /ruta/nuevo_enlace


ln /home/usuario/prueba/MENSAJE2 /home/usuario/prueba/IMAGENES/ENLACEMENSAJE2

Nota: Las rutas son ejemplos. Asegúrate de que los directorios y el archivo de origen existan.

Mostrar Contenido de Archivos (cat)

Muestra el contenido de los archivos rc.sysinit y rc.local que están en el directorio copia-conf (por ejemplo, dentro de /etc/copia-conf/).

Sintaxis: cat /ruta/al/archivo1 /ruta/al/archivo2 ...


cat /etc/copia-conf/rc.sysinit /etc/copia-conf/rc.local

Nota: Ajusta las rutas según la ubicación real de tus archivos.

Mostrar Tipo de Archivo (file)

Muestra el tipo de todos los ficheros contenidos en el directorio copia-conf.

Sintaxis: file /ruta/a/los/archivos/*


file /etc/copia-conf/*

Nota: Reemplaza /etc/copia-conf/ con la ruta real al directorio.

Gestión de Usuarios y Grupos

Crear Usuarios (useradd)

Comando para añadir un nuevo usuario al sistema.


useradd [opciones] nombre_de_usuario

Ejemplo básico: sudo useradd nuevo_usuario (se requiere sudo para crear usuarios).

Crear Grupos (groupadd)

Comando para añadir un nuevo grupo al sistema.


groupadd [opciones] nombre_de_grupo

Ejemplo creando un grupo llamado gequipo08 y especificando un GID (Group ID) de 504:


sudo groupadd -g 504 gequipo08

Nota: El GID es opcional; si no se especifica, el sistema asignará el siguiente disponible. Se requiere sudo.

Gestión de Permisos en Linux

Los permisos en Linux determinan quién puede leer, escribir o ejecutar un archivo, o acceder a un directorio. El comando ls -l muestra los permisos.

Representación Numérica (Octal) y Simbólica de Permisos

Cada conjunto de tres permisos (para el propietario, el grupo y otros) se puede representar con un número octal:

  • 7 (111 en binario): rwx (lectura, escritura y ejecución)
  • 6 (110 en binario): rw- (lectura y escritura)
  • 5 (101 en binario): r-x (lectura y ejecución)
  • 4 (100 en binario): r-- (solo lectura)
  • 3 (011 en binario): -wx (escritura y ejecución)
  • 2 (010 en binario): -w- (solo escritura)
  • 1 (001 en binario): --x (solo ejecución)
  • 0 (000 en binario): --- (sin permisos)

Modificar Permisos (chmod)

El comando chmod se utiliza para cambiar los permisos de archivos y directorios.

Sintaxis general simbólica: chmod [referencia][operador][modo] fichero/s

Sintaxis general octal: chmod [modo_octal] fichero/s (Ej: chmod 755 mi_script.sh)

Componentes de la Sintaxis Simbólica:

  • Referencia (Usuarios):
    • u: Propietario (user)
    • g: Grupo propietario (group)
    • o: Otros usuarios (others)
    • a: Todos los usuarios (all - u, g, y o)
  • Operador (Operación):
    • +: Añade el permiso.
    • -: Elimina el permiso.
    • =: Asigna el permiso exacto (sobrescribe los anteriores para la referencia dada).
  • Modo (Permisos):
    • r: Lectura (read)
    • w: Escritura (write)
    • x: Ejecución (execute) o acceso para directorios.

Ejemplos:

  • chmod u+x mi_archivo: Añade permiso de ejecución para el propietario.
  • chmod go-w mi_archivo: Elimina permiso de escritura para el grupo y otros.
  • chmod a=r mi_archivo: Asigna solo permiso de lectura para todos.
  • chmod 644 mi_archivo.txt: Asigna permisos rw-r--r--.
  • chmod 755 mi_directorio: Asigna permisos rwxr-xr-x.

Conceptos Clave y Preguntas Frecuentes sobre Linux

¿Cómo se denomina correctamente al sistema operativo?
Generalmente se le llama Linux, pero una denominación más completa es GNU/Linux, reconociendo tanto el kernel Linux como las herramientas y utilidades del proyecto GNU que lo acompañan.
¿Quién inventó el kernel de Linux?
Linus Torvalds.
¿Cuántas "unidades" principales tiene el sistema de archivos de Linux?
Linux presenta un único árbol de directorios jerárquico que comienza desde la raíz (/). A diferencia de sistemas como Windows con múltiples unidades (C:, D:), todos los dispositivos de almacenamiento montados se integran bajo esta única jerarquía. Por lo tanto, se considera que tiene una "unidad" lógica principal: el sistema de archivos raíz.
¿Cuántas formas principales existen para referenciar rutas de archivos y directorios?
Dos formas principales: rutas absolutas (que comienzan desde el directorio raíz /, por ejemplo, /home/usuario/documentos) y rutas relativas (que comienzan desde el directorio actual de trabajo, por ejemplo, ./documentos o ../imagenes).
¿Cuál es el directorio raíz en Linux?
El directorio raíz es /.

Entradas relacionadas: