UT5_ Tareas básicas con Linux_GNU

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 13

UT5: Tareas básicas con Linux/GNU

Comandos de ayuda:
help: Información básica sobre un comando.
man: Manual de referencia completo de un comando.
--help: Ayuda integrada en muchos comandos.
info: Información alternativa cuando. man es insuficiente.
apropos: Búsqueda de comandos por palabra clave en las páginas de manual.

FHS: Orden en el Sistema de Archivos:


El Estándar de Jerarquía del Sistema de Archivos (FHS) define la organización de
los sistemas tipo Unix. Garantiza la compatibilidad entre sistemas y la posibilidad de
montar/usar como solo lectura.
Directorios Clave del FHS:
/: Raíz del sistema de archivos.
/bin: Ejecutables del sistema.
/boot: Archivos de arranque.
/etc: Configuración del sistema.
/home: Directorios de usuarios.
/lib: Bibliotecas del sistema.
Otros directorios:
/media: Dispositivos extraíbles.
/opt: Software opcional.
/sbin: Ejecutables del sistema para el administrador.
/tmp: Archivos temporales.
/usr: Programas y archivos compartidos.
/var: Datos variables (logs, bases de datos).

Comandos básicos de gestión de archivos:


ls: Listar archivos y directorios. Muestra el contenido de un directorio.
cd: Cambiar de directorio.
pwd: Mostrar el directorio actual.
cp: Copiar archivos y directorios.
mv: Mover o renombrar archivos y directorios.
rm: Eliminar archivos y directorios.
mkdir:: Crear directorios.
rmdir: Eliminar directorios vacíos.
touch: Crear archivos vacíos.
chmod: Cambiar permisos de archivos y directorios.
Nano: Editar ficheros de texto
ln: Crear enlaces.

1
Permisos de archivo:
Niveles de permisos: Propietario (u), grupo (g), otros (o).
Tipos de permisos: Lectura (r), escritura (w), ejecución (x).
Directorios:
− Lectura: Listar contenido.
− Escritura: Añadir o eliminar archivos.
− Ejecución: Entrar en el directorio.

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


Se pueden usar símbolos =, + y - para agregar o quitar permisos.

Representación de Permisos:
Numérica (octal):
• Lectura: 4
• Escritura: 2
• Ejecución: 1
• Sin permiso: 0
chmod 760 archivo.txt (propietario: rwx, grupo: rw, otros: -)

Simbólica: Usando letras (r, w, x) y símbolos (+, -, =).


Operador Descripción

+ Agregar un permiso

- Quitar un permiso

= Asignar un permiso de forma absoluta

Ejemplos:
1).Agregar permisos de escritura para el grupo:
chmod g+w archivo.txt
2).Quitar permisos de lectura para otros:
chmod o-r archivo.txt
3).Asignar permisos exactos para el propietario:
chmod u=rwx archivo.txt

Modificar Permisos con Notación Octal:


chmod [propietario][grupo][otros]
Ejemplos:
• Permisos completos para el propietario, lectura y ejecución para el grupo y otros:
chmod 755 archivo.txt
• Solo permisos de lectura para todos:
chmod 444 archivo.txt

2
Aplicar Cambios Recursivamente (Directorios)
Para cambiar permisos en un directorio y todo su contenido:
chmod -R 755 directorio/

Metacaracteres
Son caracteres especiales con significado particular en la línea de comandos.
Facilitan la manipulación de archivos, redirecciones y otras tareas.
*: Se utiliza para hacer coincidir cualquier cadena de caracteres en la expansión de
nombres de archivo (globbing). Por ejemplo, `*.txt` coincide con todos los archivos
que tienen extensión ".txt" en un directorio
?: Representa un único carácter en la expansión de nombres de archivo. Por
ejemplo, `file?.txt` coincidiría con archivos como "file1.txt", "file2.txt", etc
[]: Define un conjunto de caracteres y coincide con cualquier carácter único dentro
de ese conjunto. Por ejemplo, `[aeiou]` coincidiría con cualquier vocal
{}: Se utiliza para generar combinaciones o expansiones de cadenas. Por ejemplo,
`echo {1,2,3}` mostrará "1 2 3". También puede usarse para rangos como `echo
{1..5}` para mostrar "1 2 3 4 5".
$: Indica el inicio de una variable en la mayoría de los casos. Por ejemplo, `$HOME`
representa el directorio de inicio del usuario.
~: Representa el directorio de inicio del usuario. Por ejemplo, `~/Documents` se
expandirá al directorio "Documents" en el directorio de inicio.
\: Se utiliza para escapar el significado especial de un carácter. Por ejemplo, `\$` se
interpreta como el carácter "$" en lugar de una variable.
Comillas:
Comillas dobles ("): Permiten la expansión de variables y algunos metacaracteres.
Ejemplo:
nombre="Juan"; echo "Hola, $nombre"
Salida: Hola, Juan.
Comillas simples ('): Evitan la expansión, tratan todo como texto literal.
Ejemplo:
nombre="Juan"; echo 'Hola, $nombre'
Salida: Hola, $nombre.

Redireccionamiento
El redireccionamiento permite manipular la entrada y salida de los comandos en la
terminal.
Operadores:
>: Redireccionar salida estándar (sobrescribe).
>>: Redireccionar salida estándar (añade).
<: Redireccionar entrada estándar.
|: Tubería (conectar comandos).
2>: Redireccionar errores estándar.

3
&>: Redireccionar salida y errores.
/dev/null: Descartar la salida o entrada.

Tuberías
Las tuberías conectan la salida de un comando con la entrada de otro. Se utiliza el
operador |.
Permiten realizar tareas complejas combinando comandos simples.

Ejemplos:
Contar archivos: ls -l | wc -l
Filtrar procesos: ps aux | grep "nombre_de_usuario"
Ordenar y mostrar líneas: cat archivo.txt | sort | head
Encontrar archivos grandes: du -h | sort -rh | head

Administración de Discos
Particiones:
Las particiones son divisiones lógicas dentro de una unidad de almacenamiento,
como si dividiéramos un pastel en porciones.
Cada partición funciona como una unidad independiente, lo que permite organizar
los datos de manera eficiente.
Volúmenes:
Los volúmenes son la forma en que el sistema operativo gestiona y accede a las
particiones. Un volumen puede ser una única partición o un conjunto de ellas,
incluso abarcando varios discos. Se formatean con un sistema de archivos
específico (como ext4 o NTFS). El sistema operativo monta los volúmenes al iniciar,
permitiéndonos acceder a los datos.
Beneficios de Particiones y Volúmenes:
Organización: Las particiones y volúmenes facilitan la gestión y organización de los
datos.
Rendimiento: Asignar particiones a tareas específicas puede mejorar el rendimiento
del sistema.
Seguridad: Almacenar datos sensibles en particiones separadas aumenta la
seguridad.

gdisk: Creación de Particiones


Identificar el disco: Utilizar lsblk o gdisk -l para listar los discos disponibles.
Abrir gdisk: sudo gdisk /dev/sdX (reemplazar X con la letra del disco).
Crear una nueva partición:
• Presionar n.
• Seleccionar el tipo de partición (primaria, extendida, lógica).
• Definir el tamaño y la ubicación.
• Escribir los cambios con w.

4
Eliminación de particiones:
Abrir gdisk: sudo gdisk /dev/sdX.
Ver las particiones existentes: Presionar p.
Seleccionar la partición a eliminar:
• Presionar d.
• Elegir el número de la partición.
• Escribir los cambios: Usar w para guardar y salir.
Crear sistemas de archivos
El comando mkfs (abreviatura de Make File System) se utiliza en sistemas
operativos basados en Unix/Linux para crear un sistema de archivos en un
dispositivo de almacenamiento como un disco duro, una partición o una unidad USB
El comando mkfs permite especificar el tipo de sistema de archivos que se desea
crear y el dispositivo donde se aplicará.
Sintaxis General:
mkfs.<tipo_de_sistema_de_archivos> [opciones] <dispositivo>
Ejemplo: Crear un sistema de archivos ext4 en la partición /dev/sda1:
mkfs.ext4 /dev/sda1
Montaje de unidades
El montaje asocia un sistema de archivos de una unidad a un directorio específico,
permitiendo acceder a sus archivos.
Comando mount:
• mount /dev/sdX /mnt/usb
Monta un dispositivo en /mnt/usb.
/etc/fstab: Configura los montajes automáticos al iniciar el sistema
Gestión de software repositorios
Linux utiliza repositorios para centralizar la instalación, desinstalación y
actualización de software.
Los paquetes son los componentes del software.
Un programa suele ser un conjunto de paquetes.

La herramienta de gestión: apt-get


apt-get es una herramienta de línea de comandos para interactuar con APT
(Advanced Package Tool).
Permite gestionar software de manera eficiente.
Requiere privilegios de administrador (sudo).
Comandos Esenciales de apt-get:
Instalar: sudo apt-get install nombre_del_paquete
Eliminar: sudo apt-get remove nombre_del_paquete
Buscar: apt-cache search palabra_clave
Actualizar lista: sudo apt-get update
Actualizar sistema: sudo apt-get dist-upgrade

5
Enlaces en Linux
En Linux, los enlaces son una forma de acceder a archivos o directorios utilizando
un alias o referencia. Existen dos tipos principales de enlaces:
● Enlaces simbólicos (soft links): Son referencias que apuntan al archivo o
directorio original.
● Enlaces duros (hard links): Son otra entrada en el sistema de archivos que
apunta a los mismos datos que el archivo original.
Crear un enlace simbólico:
Usa el comando ln -s para crear un enlace simbólico.
Sintaxis: ln -s archivo_original enlace_simbólico
Ejemplo de uso real: Supongamos que tienes un programa instalado en
/opt/programa/bin/programa y quieres acceder a él fácilmente desde cualquier
directorio:
ln -s /opt/programa/bin/programa /usr/local/bin/programa
Ahora puedes ejecutar el programa directamente escribiendo programa en la
terminal.
Crear un enlace duro
Usa el comando ln para crear un enlace duro.
Sintaxis: ln archivo_original enlace_duro
Ejemplo de uso real: Supongamos que tienes un archivo grande llamado backup.tar
y deseas mantenerlo accesible desde dos ubicaciones diferentes, sin duplicar el
espacio en disco: ln backup.tar /home/usuario/copias/backup.tar
Ahora puedes acceder al archivo desde ambas ubicaciones, y cualquier cambio que
hagas en uno se reflejará en el otro.
Verificar enlaces
Usa el comando ls -l para verificar enlaces.
Sintaxis: ls -l
Ejemplo de salida:
lrwxrwxrwx 1 usuario usuario 12 nov 29 12:00 enlace.txt -> documento.txt
Nota: Los enlaces simbólicos se identifican con una flecha (->). Los enlaces duros
no muestran esta referencia, ya que comparten los mismos datos que el archivo
original.

Diferencia entre un enlace duro y un fichero normal


Un enlace duro no es un archivo independiente. Es otra entrada en el sistema de archivos
que apunta a los mismos datos que un archivo existente. Esto significa que:
● Tanto el archivo original como el enlace duro comparten el mismo contenido.
● Si modificas uno, el otro también refleja esos cambios.
● Si eliminas el archivo original, los datos persisten mientras exista al menos un enlace
duro.
● Un fichero normal tiene una única entrada en el sistema de archivos, mientras que
un enlace duro es simplemente otra referencia al mismo conjunto de datos.

6
Qué ocurre al borrar enlaces o mover archivos
Borrar un enlace simbólico
Al borrar un enlace simbólico, solo se elimina el alias que apunta al archivo o
directorio original. El archivo o directorio original permanece intacto.

Borrar un enlace duro


Al borrar un enlace duro, solo se elimina una referencia al archivo original. Si hay
otros enlaces duros o el archivo original permanece, los datos no se pierden.

Mover o borrar el archivo original al que apunta un enlace simbólico


Si el archivo o directorio original es movido o eliminado, el enlace simbólico se
rompe y apunta a un destino inexistente.

Mover o borrar el archivo original al que apunta un enlace duro


Un enlace duro comparte los mismos datos que el archivo original. Si el archivo
original es borrado, los datos siguen siendo accesibles a través del enlace duro.

Gestión de Paquetes y Repositorios en Ubuntu


Gestión Básica de Paquetes:
Actualizar los repositorios
sudo apt update
Verificar los paquetes que pueden actualizarse
sudo apt update && apt list --upgradable
Actualizar paquetes y manejar dependencias cambiadas
sudo apt full-upgrade
Ver información de un paquete
Ver detalles del paquete Visual Studio Code.
apt show code
Buscar un paquete
Estás buscando una herramienta llamada "Node.js" para desarrollo web.
apt search nodejs
Este comando muestra una lista de paquetes relacionados con "nodejs" disponibles
en los repositorios.
Instalar un paquete
Después de encontrar el paquete "Node.js", decide instalarlo junto con el gestor de
paquetes npm.
sudo apt install nodejs npm
Verificar la instalación
Ahora quieres verificar que Node.js se instaló correctamente.
node -v

7
Limpiar paquetes no utilizados
sudo apt autoremove
Limpiar el caché de paquetes descargados
sudo apt clean
Usar Snap para instalar Visual Studio Code:
Snap es una herramienta que permite instalar aplicaciones fácilmente en Ubuntu,
como si fuera una tienda de aplicaciones. Es una alternativa a usar los comandos
que hemos intentado antes.
Pasos para instalar Visual Studio Code con Snap:
1. Verificar si Snap está instalado (snap --version)
2. Instalar Snap (sudo apt install snapd -y)
3. Instalar Visual Studio Code con Snap (sudo snap install --classic code)
4. Verificar la instalación (code --version)
5. Abrir Visual Studio Code (code)
Gestión de Repositorios:
¿Qué significa PPA?
Un PPA (Personal Package Archive) es un repositorio mantenido por
desarrolladores externos o comunidades que ofrecen versiones de software no
disponibles en los repositorios oficiales. Son útiles para obtener versiones más
recientes de paquetes específicos.
Listar los repositorios
-Lista los repositorios generales configurados.
cat /etc/apt/sources.list
-Lista los archivos específicos de repositorios adicionales.
ls /etc/apt/sources.list.d/

Agregar un repositorio PPA


Agregar un repositorio para Node.js
sudo add-apt-repository ppa:chris-lea/node.js
Eliminar un repositorio
-Eliminar un repositorio PPA agregado manualmente
sudo add-apt-repository --remove ppa:chris-lea/node.js
-Eliminar manualmente un archivo de repositorio
sudo rm /etc/apt/sources.list.d/code.list

Instalar un paquete desde un archivo .deb:


Instalar un paquete .deb descargado
sudo dpkg -i paquete.deb
Resolver dependencias después de instalar
sudo apt install -f

8
Ver el historial de actualizaciones
Ver el historial de actualizaciones
cat /var/log/apt/history.log
Buscar actualizaciones específicas en el historial
grep "upgrade" /var/log/apt/history.log

Ejercicios resueltos
-Usar ls para explorar directorios
Mostrar el contenido del directorio /etc.
ls /etc
-Listar todos los archivos incluyendo ocultos con ls
Mostrar todos los archivos, incluyendo los ocultos, en el directorio actual.
ls -a
-Mostrar el contenido de un directorio en formato largo con ls
Listar los archivos en formato largo y con detalles adicionales en el directorio /var.
ls -l /var
-Cambiar directorios con cd
Moverte al directorio documentos desde tu directorio actual.
cd documentos
-Volver al directorio anterior con cd
Regresar al directorio anterior al que estabas.
cd -
-Ir al directorio raíz con cd
Moverte al directorio raíz del sistema de archivos.
cd /
-Renombrar un archivo con mv
Renombrar el archivo notas.txt a notas_antiguas.txt en el directorio actual.
mv notas.txt notas_antiguas.txt
-Mover un archivo a otro directorio con mv
Mover el archivo resumen.txt al directorio /home/usuario/documentos.
mv resumen.txt /home/usuario/documentos
-Mover varios archivos con mv
Mover los archivos a.txt, b.txt y c.txt al directorio archivos.
mv a.txt b.txt c.txt archivos/
-Eliminar un archivo con rm
Eliminar el archivo temporal.txt en el directorio actual.
rm temporal.txt
-Eliminar un directorio vacío con rm
Eliminar el directorio vacío pruebas.
rm -d pruebas

9
-Eliminar un directorio con contenido con rm
Eliminar el directorio datos y todo su contenido.
rm -r datos
-Copiar un archivo con cp
Copiar el archivo datos.txt al directorio respaldo.
cp datos.txt respaldo/
-Copiar varios archivos con cp
Copiar los archivos a.txt, b.txt y c.txt al directorio copias.
cp a.txt b.txt c.txt copias/
-Copiar un directorio con cp
Copiar el directorio proyectos y todo su contenido al directorio respaldo.
cp -r proyectos respaldo
-Mostrar tu ubicación actual con pwd
Verificar el directorio donde te encuentras trabajando actualmente.
pwd
-Mostrar el directorio de trabajo tras cambiar de directorio
Cambiar al directorio /usr/local y luego verificar tu ubicación con pwd.
cd /usr/local
pwd
Creación de una Estructura de Directorios y Archivos:
Crea un directorio llamado proyecto dentro de tu directorio personal.
mkdir ~/proyecto
Dentro de proyecto, crea tres subdirectorios: docs, src y bin.
mkdir ~/proyecto/docs
mkdir ~/proyecto/src
mkdir ~/proyecto/bin
Crea un archivo vacío llamado README.md dentro del directorio docs.
touch ~/proyecto/docs/README.md
Crea un archivo llamado main.sh dentro del directorio src.
touch ~/proyecto/src/main.sh
Verifica la estructura de directorios y archivos usando el comando tree (si está
disponible) o ls.
tree ~/proyecto
Si tree no está disponible:
ls -R ~/proyecto

Trabajando con Permisos:


Otorga permisos de lectura, escritura y ejecución solo al propietario del archivo
main.sh utilizando notación simbólica.
chmod u+rwx,go-rwx ~/proyecto/src/main.sh

10
Cambia los permisos del archivo README.md para que todos puedan leerlo, pero
solo el propietario pueda escribir en él, utilizando notación octal.
chmod 644 ~/proyecto/docs/README.md
Haz que el directorio bin sea accesible (entrar y listar su contenido) solo para el
propietario, usando notación simbólica.
chmod u+rwx,go-rx ~/proyecto/bin

Misceláneo:
Busca comandos relacionados con la palabra clave "archivo" usando apropos.
apropos archivo
Lista todos los archivos y directorios (incluidos los ocultos) dentro del directorio /etc
ls -a /etc
Crea un archivo vacío llamado notas.txt en el directorio actual.
touch notas.txt
Edita el archivo config.txt con el editor nano. Si no existe, créalo. Incluye el día y tu
nombre de usuario
nano config.txt
Verifica los permisos actuales del archivo notas.txt.
ls -l notas.txt

Metacaracteres:
Lista todos los archivos y directorios en /etc que comiencen con la letra "h".
ls /etc/h*
Muestra todos los archivos en el directorio /var/log con extensiones de archivo de
tres caracteres (por ejemplo, .log, .txt, etc.).
ls /var/log/*.???
Lista todos los archivos en /home que contengan un número en su nombre.
ls /home/*[0-9]*
Lista los archivos en /usr/bin que comiencen con "a" o "b".
s /usr/bin/[ab]*
Lista todos los archivos en /etc cuyo nombre tenga exactamente 5 caracteres.
ls /etc/?????
Lista los archivos ocultos en tu directorio personal.
ls -a ~/.*
Encuentra todos los archivos en /home que comiencen con "test" y terminen con un
número.
ls /home/test*[0-9]
Lista los archivos en /var/log que no tengan una extensión.
ls /var/log/!(*.*)
Lista los archivos y directorios en /usr que contengan un punto en su nombre.
ls /usr/*.*

11
Busca archivos en /opt cuyo nombre comience y termine con la misma letra.
ls /opt/*[a-z]*[a-z]

Direccionamientos y Operadores en Linux:


Direccionamientos en Linux:
Estás en el directorio /home/usuario/proyectos y necesitas copiar el archivo
README.md del subdirectorio documentos al directorio /tmp.
cp documentos/README.md /tmp/

Uso de operadores en Linux:


Uso del operador |(pipe)
Quieres buscar todos los archivos que contengan la palabra "error" dentro de
/var/log/syslog y mostrar solo las primeras 10 líneas del resultado.
grep "error" /var/log/syslog | head -n 10
Uso del operador > (redirección de salida)
Quieres guardar la lista de archivos en el directorio actual en un archivo llamado
archivos.txt. Si el archivo ya existe, debe sobrescribirse.
ls > archivos.txt
Uso del operador >> (redirección de salida con añadido)
Quieres agregar el resultado del comando date al archivo archivos.txt sin
sobrescribir su contenido.
date >> archivos.txt
Uso del operador 2> (redirección de errores)
Intentas listar un directorio inexistente llamado /noexiste y quieres redirigir el
mensaje de error al archivo errores.log.
ls /noexiste 2> errores.log
Uso del operador &> (redirección de salida y errores)
Quieres listar el contenido de un directorio llamado /home/usuario y redirigir tanto la
salida estándar como los errores al archivo resultado.log. Si el directorio no existe,
los mensajes de error también deben guardarse en el archivo.
ls /home/usuario &> resultado.log
Uso del operador < (entrada estándar)
Tienes un archivo llamado entrada.txt y quieres que su contenido sea leído como
entrada por el comando sort para ordenar las líneas.
sort < entrada.txt

12
Otras posibles preguntas de examen:
¿Qué comando se utiliza para cambiar el propietario de un archivo o directorio en
Linux?
chown
Borra los ficheros cuyo nombre termine con una vocal del subdirectorio linux,
solicitando confirmación. Usa rutas absolutas. Los posibles errores deben quedar
registrados en un fichero llamado errores.txt en el directorio /tmp
rm ~/sistemas/linux/*[aeiouAEIOU] -i > /tmp/errores.txt
Visualiza el contenido del subdirectorio /etc con formato largo y recursivo, usando
ruta absoluta.
ls /etc -lR /etc
Copia el subdirectorio /tmp las entradas que empiecen por M a la ruta actual. Usa
ruta absoluta para /tmp y relativa para la actual.
cp /tmp/M*
Indica la orden completa para averiguar cuántas entradas existen en el subdirectorio
sistemas. Usa rutas relativas.
ls -A sistemas | wc -l
Desde tu home. Renombra el fichero iPoco1 por linX20. Usa rutas relativas
mv sistemas/linux/iPoco1 sistemas/linux/linX20
Estando en el directorio /home/userxxx, copia los archivos que empiecen por s y
terminan en h del directorio /urs/include al directorio compi_c
cp /usr/include/s*h compiladores/compi_c
¿Cómo eliminarías el subdirectorio linux usando rutas absolutas?
rm -r ~/sistemas/linux

13

También podría gustarte