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 permisosrw-r--r--
.chmod 755 mi_directorio
: Asigna permisosrwxr-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
/
.