Conferencias 4, 5 y 6 Arquitectura y Sistema Operativo

Teóricamente el 22 de mayo es el primer parcial y va todo hasta la conferencia 6

En este documento veremos:

  1. Recapitulación de las conferencias 1, 2 y 3
  2. Instalar guest additions virtualbox
  3. Adición de discos a la máquina virtual
  4. Estructura de directorio de Linux
  5. El comando man
  6. Atajos para moverse dentro de la terminal
  7. Super usuario
  8. Creación de usuarios y grupos
  9. Permisos en los archivos
  10. Comandos de directorio
  11. Comandos de configuraciones básicas
  12. Comandos de paquete
  13. Tuberías

1- Recapitulación de las conferencias 1, 2 y 3. Ver todo el detalle de lo qué hemos aprendido AQUI!!!

Este sería el resumen:
• Definir una arquitectura cualquiera de una PC y explicar las funciones
• Qué es un sistema operativo
• Definir Kernel e interfaces de usuario
• Definir procesos e hilos
• Dentro de un proceso que son los datos, códigos y pilas
• Cómo el sistema operativo organiza los procesos
• Cómo el sistema operativo maneja la memoria RAM
• Qué es la memoria virtual
• Qué es el código abierto
• Qué es la virtualización y cuál es su importancia
• Quiénes son el Host y el Guest
• Qué significa Hipervisor tipo1 y tipo 2
• Diferencia entre ISO y Disco Virtual:
• PowerShell
• WSL
• Chocolatey
• Vagrant
• Crear Máquinas Virtuales con VirtualBox
• Proporcionar recursos a la máquina virtual (Atento a la memoria de video)
• Utilizar la clonación y el Snapshot en VirtualBox
• La asignación de red de la máquina virtual
• Compartir carpetas entre el Host y el Guest

2- Instalar guest additions VirtualBox:
Es una buena práctica ejecutar sudo apt update antes de instalar Guest Additions en una máquina virtual Ubuntu (En Fedora es sudo dnf update). Este comando actualiza la lista de paquetes disponibles en los repositorios de software configurados en tu sistema Ubuntu, asegurando que tengas la información más reciente sobre los paquetes disponibles.
También es una excelente practica compartir bidireccionalmente para que se puede copiar y pegar textos, por ejemplo, entre el host el guest

  1. Selecciona tu máquina virtual en la lista de máquinas virtuales en la ventana principal de VirtualBox.
  2. Haz clic en Configuración (Settings) en la barra de menú superior o haz clic derecho en la máquina virtual y selecciona Configuración.
  3. En la ventana de Configuración de la máquina virtual, ve a la pestaña General.
  4. En la pestaña General, ve a la sección Avanzado.
  5. Dentro de la sección Avanzado, asegúrate de que la opción «Compartir Portapapeles» esté configurada en «Bidireccional».

Las Guest Additions son un conjunto de controladores y herramientas que mejoran la experiencia de usuario dentro de una máquina virtual. Estos proporcionan funcionalidades adicionales, como la integración del ratón, la redimensionabilidad de la pantalla y el intercambio de portapapeles entre el sistema anfitrión y el invitado. Aquí te muestro cómo instalar las Guest Additions en una máquina virtual:
• Iniciar la máquina virtual: Inicia la máquina virtual en la que deseas instalar las Guest Additions.
• Montar la imagen de Guest Additions: En el menú de VirtualBox, haz clic en «Dispositivos» y luego en «Insertar imagen de CD de Guest Additions». Esto montará la imagen de las Guest Additions en la máquina virtual como un CD virtual.
• Acceder al CD virtual: Accede al CD virtual dentro de la máquina virtual. Dependiendo del sistema operativo invitado, es posible que necesites montar el CD manualmente.
• Ejecutar el instalador: Una vez que hayas accedido al CD virtual, busca el archivo de instalación de las Guest Additions (por lo general, se llama «VBoxWindowsAdditions.exe» para Windows o «VBoxLinuxAdditions.run» para Linux) y ejecútalo.
• Seguir el proceso de instalación: Sigue las instrucciones del instalador para completar el proceso de instalación de las Guest Additions. Es posible que necesites reiniciar la máquina virtual después de la instalación. Y es posible que necesites instalar sudo apt install bzip2 (Seguimos introduciendo comandos acá mandamos a instar con privilegios un compactador de archivos)
• Comprobar la instalación: Una vez que se complete la instalación, puedes comprobar si las Guest Additions están instaladas y funcionando correctamente. Por ejemplo, en una máquina virtual de Windows, verás la resolución de la pantalla ajustarse automáticamente al cambiar el tamaño de la ventana de VirtualBox.
Para verificar si tienes las «Guest Additions» instaladas en tu máquina virtual por comando

  1. Inicia tu máquina virtual Ubuntu.
  2. Una vez que Ubuntu haya arrancado, inicia sesión en tu cuenta.
  3. Abre una terminal. Puedes hacerlo buscando «Terminal» en el menú de aplicaciones o presionando Ctrl + Alt + T.
  4. En la terminal, ejecuta el siguiente comando para verificar si las Guest Additions están instaladas:
    lsmod | grep vboxguest

Este comando buscará el módulo del kernel vboxguest, que es parte de las Guest Additions de VirtualBox. Si el comando devuelve alguna salida, significa que las Guest Additions están instaladas y cargadas en el kernel.

Aquí introducimos dos comandos y el concepto de tubería… Dejamos una explicación inicial:
Aquí está el significado de cada parte del comando:
• lsmod: Muestra una lista de todos los módulos del kernel actualmente cargados en el sistema.
• |: El símbolo de tubería (|) se utiliza para redirigir la salida del comando lsmod al siguiente comando en la secuencia.
• grep: Es un comando utilizado para buscar patrones en la entrada proporcionada.
• vboxguest: Es el patrón que estamos buscando. En este caso, queremos encontrar todas las líneas que contienen «vboxguest».

La tubería, representada por el símbolo «|», es un concepto fundamental en los sistemas operativos tipo Unix y Linux que permite enviar la salida de un comando como entrada a otro comando. Esto significa que puedes conectar la salida de un comando con la entrada de otro, creando así una secuencia de procesos en la que la salida de uno se convierte en la entrada del siguiente.

3- Adición de discos a la máquina virtual
La adición de discos a una máquina virtual en VirtualBox es un proceso sencillo que te permite aumentar la capacidad de almacenamiento de la máquina virtual. Aquí están los pasos para hacerlo:
• Abrir VirtualBox: Inicia VirtualBox en tu sistema operativo.
• Seleccionar la máquina virtual: Selecciona la máquina virtual a la que deseas añadir un disco en la lista de máquinas virtuales.
• Acceder a configuración: Haz clic en el botón «Configuración» en la parte superior de la ventana de VirtualBox para abrir la configuración de la máquina virtual seleccionada.
• Agregar disco: En la ventana de configuración de la máquina virtual, selecciona la pestaña «Almacenamiento». Allí podrás ver los dispositivos de almacenamiento actuales de la máquina virtual.
• Agregar controlador de disco: Si deseas añadir un nuevo disco duro, haz clic en el icono de «+» junto al controlador SATA o IDE para añadir un nuevo disco.
• Configurar disco: Se abrirá un asistente para añadir un nuevo disco. Aquí puedes crear un nuevo disco virtual o seleccionar un disco existente en tu sistema. Sigue las instrucciones del asistente para configurar el disco según tus necesidades.
• Finalizar: Una vez que hayas configurado el disco, haz clic en «Aceptar» o «OK» para cerrar la ventana de configuración de la máquina virtual.

Normalmente el disco no se monta en el sistema operativo por lo que ejecutamos el comando (Seguimos introduciendo comandos) lsblk
Vemos como se llama, supon sdb

Creamos donde lo vamos a montar
sudo mkdir /mnt/disco

Lo particionamos
sudo mkfs.ext4 /dev/sdb

Lo montamos
sudo mount /dev/sdb /mnt/disco

4- Estructura de directorio de Linux
Conocer la estructura de directorios de Linux es importante por varias razones:
• Facilita la navegación y la administración del sistema operativo.
• Proporciona un marco organizativo para los archivos y directorios del sistema.
• Permite a los administradores de sistemas y usuarios comprender mejor cómo funciona el sistema operativo y dónde se almacenan los diferentes tipos de archivos.
• Facilita la localización y el acceso a archivos y recursos del sistema.
• Ayuda a comprender la funcionalidad y la integración de aplicaciones y servicios en el sistema operativo.
• Es fundamental para la solución de problemas y el mantenimiento del sistema.
Comprender la estructura de directorios de Linux es esencial para cualquier administrador de sistemas, desarrollador de software o usuario avanzado que trabaje con sistemas Linux, ya que proporciona una base sólida para la administración y el uso eficientes del sistema operativo.

/ (Raíz):
Función: El directorio raíz del sistema de archivos de Linux.
Contenido: Todos los archivos y directorios del sistema.
Importancia: Conocer la estructura de directorios desde la raíz es fundamental para comprender cómo está organizado el sistema operativo Linux y acceder a sus recursos.

/bin (Binarios):
Función: Contiene programas ejecutables esenciales del sistema.
Contenido: Comandos básicos como ls, cp, mv, etc.
Importancia: Estos programas son necesarios para el funcionamiento básico del sistema, y acceder a ellos es crucial para realizar tareas cotidianas en Linux.

/boot (Arranque):
Función: Contiene archivos necesarios para el proceso de arranque del sistema.
Contenido: Núcleos del sistema y archivos de configuración del gestor de arranque (GRUB).
Importancia: Es esencial para el inicio del sistema y la gestión de múltiples sistemas operativos en una computadora.

/dev (Dispositivos):
Función: Contiene archivos de dispositivo que representan hardware y pseudo-dispositivos del sistema.
Contenido: Representaciones de dispositivos como discos duros, terminales, etc.
Importancia: Permite interactuar con el hardware del sistema a través de archivos en el sistema de archivos.

/etc (Configuración):
Función: Almacena archivos de configuración del sistema y de programas instalados.
Contenido: Archivos como /etc/passwd, /etc/hosts, etc.
Importancia: Configura el comportamiento del sistema y de las aplicaciones instaladas.

/home (Hogares de usuarios):
Función: Directorio base para los directorios de inicio de los usuarios.
Contenido: Directorios de inicio de usuarios individuales.
Importancia: Almacena los datos personales y configuraciones de los usuarios.

/lib (Bibliotecas):
Función: Contiene bibliotecas compartidas necesarias para programas en /bin y /sbin.
Contenido: Bibliotecas compartidas dinámicas (*.so).
Importancia: Proporciona funcionalidad compartida a programas en todo el sistema.

/media (Medios extraíbles):
Función: Punto de montaje para dispositivos extraíbles como USB, DVD, etc.
Contenido: Montajes temporales de dispositivos externos.
Importancia: Facilita el acceso a medios extraíbles y su uso en el sistema.

/mnt (Puntos de montaje):
Función: Directorio comúnmente utilizado para montar sistemas de archivos temporales o de red.
Contenido: Montajes temporales de sistemas de archivos.
Importancia: Facilita la gestión de sistemas de archivos temporales y montajes de red.

/opt (Opcionales):
Función: Contiene paquetes de software adicionales instalados en el sistema.
Contenido: Programas de terceros y aplicaciones.
Importancia: Proporciona un lugar para instalar software que no está disponible en los repositorios predeterminados del sistema.

/proc (Proceso):
Función: Contiene información sobre los procesos en ejecución y configuraciones del kernel.
Contenido: Archivos virtuales que representan procesos y configuraciones del kernel.
Importancia: Proporciona información en tiempo real sobre el estado del sistema y los procesos en ejecución.

/root (Raíz del sistema):
Función: Directorio de inicio del usuario raíz (administrador) del sistema.
Contenido: Directorio de inicio del usuario root.
Importancia: Proporciona acceso a los archivos y configuraciones del usuario raíz.

/run (Ejecutar):
Función: Contiene archivos de estado y archivos de comunicación temporal entre procesos.
Contenido: Archivos temporales necesarios para la ejecución de procesos.
Importancia: Facilita la comunicación y el intercambio de datos entre procesos en ejecución.

/sbin (Binarios del sistema):
Función: Contiene programas ejecutables esenciales para la administración del sistema.
Contenido: Comandos destinados principalmente para el uso del superusuario (root).
Importancia: Proporciona herramientas esenciales para la administración del sistema y la solución de problemas.

/srv (Servicio):
Función: Contiene datos de servicio específicos del sistema que son servidos por el sistema.
Contenido: Datos de servicios web, FTP, etc.
Importancia: Almacena datos relacionados con servicios que son accesibles a través de la red.

/sys (Sistema):
Función: Contiene información sobre el sistema, el hardware y los controladores del kernel.
Contenido: Archivos que representan la configuración y el estado del sistema.
Importancia: Proporciona una interfaz para configurar y manipular parámetros del kernel en tiempo de ejecución.

/tmp (Temporal):
Función: Contiene archivos temporales que se eliminan automáticamente al reiniciar el sistema.
Contenido: Archivos temporales creados por programas.
Importancia: Proporciona un lugar para almacenar datos temporales que no necesitan persistencia entre sesiones de usuario.

/usr (Usuario):
Función: Contiene archivos y directorios no esenciales para el funcionamiento del sistema.
Contenido: Software y archivos del usuario, como programas instalados, bibliotecas y documentación.
Importancia: Almacena la mayor parte del software del sistema y del usuario, facilitando su gestión y actualización.

/var (Variables):
Función: Contiene archivos variables como registros del sistema, archivos de correo, bases de datos, etc.
Contenido: Datos que pueden cambiar de tamaño o contenido con el tiempo.
Importancia: Almacena datos que varían durante la ejecución del sistema, como registros, correos electrónicos, datos de aplicaciones, etc.

/lost+found:
Función: Utilizado por el sistema de archivos para almacenar archivos recuperados durante la verificación del sistema de archivos.
Contenido: Archivos recuperados que no tienen una ubicación clara.
Importancia: Proporciona un lugar para almacenar archivos recuperados en caso de corrupción del sistema de archivos.

5- El comando man
• ¿Qué son los manuales de comandos?
• Los manuales de comandos son documentos que proporcionan información detallada sobre cómo usar y comprender los comandos en un sistema operativo Unix/Linux.
• Comando man: Mostrando el manual del comando
• man: El comando man se utiliza para mostrar el manual de un comando específico.
• Ejemplo: man man muestra el manual del comando man mismo.
• Ejemplo: man passwd muestra el manual del comando passwd.
• Comando apropos: Buscando comandos por palabra clave
• apropos: Este comando se utiliza para buscar comandos relacionados con una palabra clave.
• Ejemplo: apropos network busca comandos relacionados con la palabra clave «network».
Explorando las secciones del manual
• Sección 1: Programas ejecutables u órdenes de la shell
• Ejemplo: man Shell muestra el manual del comando man.
• Sección 2: Llamadas al sistema (funciones proporcionadas por el núcleo)
• Ejemplo: man open muestra el manual de la llamada al sistema open.
• Sección 3: Llamadas a biblioteca (funciones dentro de bibliotecas de programa)
• Ejemplo: man stdio muestra el manual de las funciones de la biblioteca estándar de E/S.
• Sección 4: Archivos especiales (normalmente se encuentran en /dev)
• Ejemplo: man tty muestra el manual del archivo especial tty.
• Sección 5: Formatos de archivo y convenios
• Ejemplo: man 5 passwd muestra el manual del formato de archivo /etc/passwd.
• Sección 6: Juegos
• Ejemplo: man 6 fortune muestra el manual del juego de palabras fortune.
• Sección 7: Miscelánea (incluidos paquetes de macros y convenios)
• Ejemplo: man ascii muestra el manual del estándar ASCII.
• Sección 8: Órdenes de administración del sistema (normalmente solo para root)
• Ejemplo: man sudo muestra el manual del comando sudo.
• Sección 9: Rutinas del núcleo [No estándar]
• Ejemplo: man kmalloc muestra el manual de la rutina del núcleo kmalloc.
Búsqueda y filtrado de comandos
• Buscando comandos relacionados
• Ejemplo: man -k network busca todos los comandos relacionados con la red.
• Ejemplo: apropos «network devices» | grep ip busca comandos relacionados con dispositivos de red que contienen «ip».

6 – Atajos para Moverse Dentro de la Terminal:
• Ctrl + E: Moverse al final de la línea.
• Ctrl + A: Moverse al principio de la línea.
• Ctrl + → y Ctrl + ←: Saltar de palabra en palabra hacia adelante y hacia atrás, respectivamente.
• Ctrl + W: Eliminar la palabra anterior.
• Ctrl + U: Eliminar desde la posición actual hasta el principio de la línea.
• Ctrl + K: Eliminar desde la posición actual hasta el final de la línea.
• Ctrl + T: Intercambiar las dos letras antes del cursor.
• Alt + T: Intercambiar las dos palabras antes del cursor.
• Ctrl + Y: Pegar texto previamente eliminado.
Atajos para Búsqueda en el Historial:
• history: Mostrar el historial completo de comandos.
• Ctrl + R: Realizar una búsqueda inversa en el historial de comandos.
• !número: Ejecutar el comando con el número específico en el historial.
• !!: Ejecutar el último comando.
• sudo !!: Ejecutar el último comando con privilegios de superusuario.
• Facilita la búsqueda de comandos anteriores en la historia de la terminal y agiliza la ejecución con estos atajos específicos.

7 – Super usuario
• Introducción a los privilegios de superusuario
• En el mundo de Linux, el superusuario, también conocido como root, es el usuario con los máximos privilegios en el sistema.
• El superusuario tiene acceso completo a todos los archivos y configuraciones del sistema, lo que le permite realizar cambios críticos y administrativos.
• Comandos útiles
• whoami: Este comando muestra el nombre del usuario actual, lo que es útil para verificar si se está utilizando el superusuario.
• id: Proporciona información detallada sobre el usuario y su grupo, incluidos los privilegios del superusuario.
• w: Muestra información sobre los usuarios conectados al sistema y sus actividades actuales.
• last: Ofrece un historial detallado de los inicios de sesión anteriores en el sistema.
• Utilizando sudo para obtener privilegios de superusuario
• sudo: El comando sudo permite a los usuarios ejecutar comandos con los privilegios del superusuario temporalmente.
• sudo su: Con sudo su, un usuario puede cambiar al superusuario y ejecutar múltiples comandos con esos privilegios sin tener que ingresar la contraseña de nuevo.
• Creación y gestión de usuarios y grupos
• useradd: Este comando se utiliza para agregar un nuevo usuario al sistema.
• groupadd: Permite crear un nuevo grupo de usuarios en el sistema.
• usermod: Proporciona opciones para modificar las propiedades de un usuario existente, como su nombre, directorio principal, etc.
• Archivos de configuración relevantes
• /etc/passwd: Contiene información sobre todas las cuentas de usuario registradas en el sistema, incluidos los nombres de usuario y los identificadores de usuario (UID).
• /etc/shadow: Almacena las contraseñas cifradas de los usuarios del sistema, garantizando su seguridad y confidencialidad.
• /etc/group: Contiene detalles sobre los grupos de usuarios en el sistema, como sus nombres y los identificadores de grupo (GID).

8 – Permisos en los archivos
En el sistema operativo Linux, los permisos de archivos y directorios son fundamentales para controlar quién puede acceder, leer, escribir o ejecutar esos archivos. Estos permisos están diseñados para garantizar la seguridad y la privacidad de los datos almacenados en el sistema.
Los permisos se dividen en tres categorías principales:
Usuario propietario: Se refiere al propietario del archivo o directorio. Este usuario tiene control total sobre el archivo y puede cambiar sus permisos, propietario y grupo.
Grupo: Se refiere al grupo al que pertenece el archivo o directorio. Todos los usuarios que pertenezcan a este grupo tendrán los mismos permisos sobre el archivo o directorio, aunque no sean el propietario.
Otros usuarios: Se refiere a todos los usuarios que no son el propietario ni pertenecen al grupo del archivo o directorio. Estos usuarios tienen los permisos más limitados y solo pueden realizar ciertas acciones según los permisos establecidos.
Comandos útiles para administrar permisos de archivos
• chmod: Este comando se utiliza para cambiar los permisos de archivos y directorios en Linux. Puede cambiar los permisos agregando o quitando permisos para el usuario propietario, el grupo y otros usuarios.
• chown: Permite cambiar el propietario y el grupo de un archivo o directorio. Esto es útil cuando se desea transferir la propiedad de un archivo a otro usuario o grupo.
• chgrp: Se utiliza para cambiar el grupo de un archivo o directorio. Esto puede ser útil para asignar archivos a un grupo específico y controlar el acceso de los usuarios que pertenecen a ese grupo.
Interpretación de permisos en la salida de ls
Cuando se utiliza el comando ls -l para listar archivos y directorios, la salida muestra una serie de caracteres que representan los permisos de archivo. Por ejemplo: -rwxr-xr–.
• El primer carácter indica el tipo de archivo (por ejemplo, – para un archivo regular, d para un directorio, l para un enlace simbólico, etc.).
• Los siguientes nueve caracteres se dividen en tres conjuntos de tres caracteres cada uno. Cada conjunto representa los permisos para el propietario, el grupo y otros usuarios, respectivamente.
Por ejemplo, rwxr-xr– significa que el propietario tiene permisos de lectura, escritura y ejecución, el grupo tiene permisos de lectura y ejecución, y otros usuarios solo tienen permisos de lectura.

En Linux, además de los permisos básicos de lectura, escritura y ejecución, existen permisos especiales que permiten configuraciones más avanzadas de seguridad y acceso. Estos permisos especiales son:

  1. SUID (Set User ID):
    • El bit SUID permite que un programa se ejecute con los permisos del propietario del archivo en lugar de los del usuario que lo está ejecutando.
    • Un ejemplo de su uso sería el comando passwd, que necesita acceder al archivo /etc/shadow para cambiar la contraseña de un usuario. Para que este comando pueda acceder a un archivo protegido como /etc/shadow, se le otorga el bit SUID, lo que permite que se ejecute con los privilegios del usuario root, quien tiene acceso al archivo.
  2. SGID (Set Group ID):
    • Similar al SUID, el bit SGID permite que un programa se ejecute con los permisos del grupo del archivo en lugar de los del usuario que lo está ejecutando.
    • Un ejemplo común de su uso es en los directorios compartidos, donde varios usuarios necesitan acceso a los mismos archivos. Al establecer el SGID en el directorio y asignar un grupo específico, todos los archivos creados dentro de ese directorio heredarán automáticamente el grupo del directorio, asegurando que todos los usuarios tengan acceso al mismo conjunto de archivos.
  3. Sticky Bit:
    • El bit sticky, representado por una ‘t’ al final de los permisos de directorio, garantiza que solo el propietario del archivo o el superusuario puedan eliminar o renombrar los archivos dentro de ese directorio.
    • Un ejemplo de su uso es en los directorios temporales, donde múltiples usuarios pueden crear y modificar archivos. Al establecer el bit sticky en el directorio /tmp, se garantiza que solo el propietario del archivo o el administrador del sistema puedan eliminar o renombrar los archivos dentro de ese directorio, evitando así la eliminación accidental de archivos importantes por parte de otros usuarios.

10 – Comandos de directorio
Los sistemas operativos basados en Linux ofrecen una amplia gama de comandos para la gestión de directorios y archivos. Estos comandos son fundamentales para la navegación, creación, manipulación y búsqueda de archivos en el sistema de archivos.
pwd (Print Working Directory):

  • Descripción: Este comando muestra la ruta completa del directorio actual en el que te encuentras.
  • Uso: pwd
    ls (List Directory Contents):
    Descripción: Lista el contenido del directorio actual.
    Opciones principales:
    -a: Muestra todos los archivos, incluidos los ocultos.
    -l: Muestra detalles largos, incluyendo permisos, propietario, grupo y tamaño.
    -h: Muestra tamaños de archivo legibles para humanos (en kilobytes, megabytes, etc.).
    cd (Change Directory):
  • Descripción: Cambia el directorio actual al especificado.
  • Uso: cd [directorio]
    tree:
    Descripción: Muestra la estructura de directorios en forma de árbol.
    Opciones principales:
    -L [n]: Limita la profundidad del árbol a n niveles.
    -d: Solo muestra directorios.
    mkdir (Make Directory):
  • Descripción: Crea un nuevo directorio.
  • Uso: mkdir [nombre_directorio]
    rm (Remove):
  • Descripción: Elimina archivos o directorios.
  • Uso: rm [archivo/directorio]
    touch:
  • Descripción: Crea archivos vacíos o actualiza las marcas de tiempo de los archivos existentes.
  • Uso: touch [nombre_archivo]
    cp (Copy)
  • Descripción: Copia archivos o directorios.
  • Opciones principales:
  • -r o --recursive: Copia directorios de forma recursiva.
  • -v o --verbose: Muestra información detallada.
  • Ejemplo de copia recursiva del directorio:
    cp -r directorio_origen directorio_destino
    mv (Move):
  • Descripción: Mueve o renombra archivos o directorios.
  • Ejemplo de mover un archivo:
    mv archivo.txt /ruta/nuevo_directorio/
  • Ejemplo de renombrar un archivo:
    mv archivo_antiguo.txt archivo_nuevo.txt

Búsqueda y Localización de Archivos:
locate:

  • Descripción: Busca archivos o directorios en la base de datos del sistema.
  • Ejemplo:
    locate archivo.txt
    updatedb:
  • Descripción: Actualiza la base de datos de locate para reflejar los cambios en el sistema de archivos.
    whereis:
  • Descripción: Muestra ubicaciones de archivos binarios, fuentes y páginas de manuales.
  • Ejemplo:
    whereis nano
    whatis:
  • Descripción: Muestra una descripción breve de un comando.
  • Ejemplo:
    whatis ls
    find:
  • Descripción: Busca archivos y directorios en función de varios criterios.
  • Opciones principales:
  • -name [nombre_archivo]: Especifica el nombre del archivo a buscar.
  • Ejemplo:
    find /home/usuario -name «*.txt»
    dmesg:
  • Descripción: Muestra el buffer de mensajes del kernel, útil para diagnosticar problemas durante el arranque del sistema.
  • Ejemplo:
    dmesg | grep error
    fdisk:
  • Descripción: Herramienta para manipular la tabla de particiones en sistemas Unix y Linux.
  • Ejemplo:
    fdisk /dev/sda
    mkfs.ext4:
  • Descripción: Crea un sistema de archivos ext4 en una partición específica.
  • Ejemplo:
    mkfs.ext4 /dev/sda1
    df (Disk Free):
  • Descripción: Muestra el espacio utilizado y disponible en los sistemas de archivos montados.
  • Opciones principales:
  • -h: Muestra tamaños de archivo legibles para humanos (en kilobytes, megabytes, etc.).
  • Ejemplo:
    df -h
    lsblk (List Block Devices):
  • Descripción: Lista información sobre los dispositivos de bloque, incluidas sus particiones.
  • Opciones principales: No tiene opciones adicionales.
  • Ejemplo:
    lsblk
    mount:
  • Descripción: Monta un sistema de archivos en una ubicación específica del árbol de directorios.
  • Opciones principales: No tiene opciones adicionales.
  • Ejemplo:
    mount /dev/sdb1 /mnt/usb
    umount:
  • Descripción: Desmonta un sistema de archivos previamente montado.
  • Opciones principales: No tiene opciones adicionales.
  • Ejemplo:
    umount /mnt/usb

11- Comandos de configuraciones básicas
En el entorno de Linux, la configuración del sistema y de los usuarios es una parte fundamental para garantizar un funcionamiento óptimo y seguro. Aquí se presentan una serie de comandos y archivos de configuración básicos que son esenciales para personalizar y administrar un sistema Linux:
hostnamectl set-hostname pc-pepe:

  • Descripción: Este comando se utiliza para cambiar el nombre de la PC.
  • Uso: hostnamectl set-hostname [nuevo_nombre]
    localectl set-keymap us:
  • Descripción: Cambia la configuración del teclado a inglés.
  • Uso: localectl set-keymap us
    localectl set-keymap latam:
  • Descripción: Cambia la configuración del teclado a español latino.
  • Uso: localectl set-keymap latam
    /etc/passwd:
  • Descripción: Archivo que almacena información de cuentas de usuario, como nombres de usuario, ID de usuario, ID de grupo, directorio principal y shell.
    /etc/shadow:
  • Descripción: Archivo que almacena las contraseñas encriptadas de los usuarios.
    /etc/hosts:
  • Descripción: Archivo que mapea direcciones IP a nombres de host. Se utiliza para resolver nombres de host localmente.
    /etc/sudoers:
  • Descripción: Archivo que especifica qué usuarios tienen permiso para ejecutar comandos como superusuario mediante sudo.

Configuración del Usuario:
$HOME/.ssh/config:

  • Descripción: Archivo de configuración personalizada para conexiones SSH.
    $HOME/.bashrc:
  • Descripción: Archivo de configuración de inicio de la shell Bash, se ejecuta cada vez que se inicia una nueva instancia de la shell. $HOME/.bash_history:
    • Descripción: Historial de comandos ejecutados en la shell Bash, útil para recordar comandos anteriores.

Logs del Sistema:
/var/log/messages:
– Descripción: Registro de mensajes del sistema, que incluye información sobre eventos del sistema, errores, advertencias y otras actividades.
uname -a:
– Descripción: Muestra información sobre el kernel y el sistema operativo, como el nombre del kernel, la versión y la arquitectura del sistema.
cat /proc/cpuinfo:
– Descripción: Muestra información detallada sobre la CPU del sistema, incluyendo el modelo, velocidad y número de núcleos.
free -m:
– Descripción: Muestra la cantidad de memoria RAM disponible y en uso en el sistema.
df -h:
– Descripción: Muestra el espacio disponible en los sistemas de archivos montados de forma legible para el usuario.

lsb_release -a:
– Descripción: Muestra información sobre la distribución Linux y su versión.
lspci:
– Descripción: Muestra información sobre los dispositivos PCI conectados al sistema.
lsblk:
– Descripción: Lista información sobre los dispositivos de bloque, incluyendo sus particiones.
ifconfig:
– Descripción: Muestra la configuración de red de las interfaces de red en el sistema.
lscpu:
– Descripción: Muestra información detallada sobre la CPU del sistema, incluyendo la arquitectura y las características del procesador.
lsusb:
– Descripción: Lista los dispositivos USB conectados al sistema.
uptime:
– Descripción: Muestra el tiempo que ha estado funcionando el sistema desde su última puesta en marcha.
ps aux:
– Descripción: Muestra una lista detallada de todos los procesos en ejecución en el sistema.
Kill

  • Descripción: Detener un proceso utilizando su ID de proceso (PID): kill PID Por otro lado, killall es un comando similar a kill, pero en lugar de requerir un PID, utiliza el nombre del proceso para detenerlo. Esto puede ser útil cuando se desea detener varios procesos con el mismo nombre. Ejemplo de uso de killall: top:
    • Descripción: Proporciona una visualización en tiempo real de los procesos en ejecución y la carga del sistema.

cat, grep, less, tail, head, more:
– Descripción: Estos comandos se utilizan para explorar archivos de configuración y buscar información en ellos.
Por supuesto, aquí tienes una descripción de cada uno de los comandos junto con ejemplos de su uso:
cat:

  • Descripción: El comando cat se utiliza para concatenar y mostrar el contenido de uno o más archivos en la salida estándar. Es útil para visualizar el contenido completo de un archivo en la terminal.
  • Ejemplo: cat archivo.txt
    grep:
  • Descripción: grep se utiliza para buscar patrones de texto dentro de uno o varios archivos. Puede buscar líneas que coincidan con un patrón específico y mostrarlas en la salida estándar.
  • Ejemplo: grep «palabra» archivo.txt
    less:
  • Descripción: less es un visor de texto que permite desplazarse hacia arriba y hacia abajo a través de archivos grandes de forma más eficiente que cat. Proporciona una visualización más amigable y permite buscar dentro del archivo.
  • Ejemplo: less archivo_grande.log
    tail:
  • Descripción: tail muestra las últimas líneas de un archivo de texto. Es útil para monitorear archivos de registro en tiempo real.
  • Ejemplo: tail archivo.log
    head:
  • Descripción: head muestra las primeras líneas de un archivo de texto. Es útil para ver un resumen inicial de un archivo.
  • Ejemplo: head archivo.txt
    more:
  • Descripción: more es similar a less, pero muestra el contenido del archivo de forma paginada, permitiendo al usuario navegar por él de forma más controlada. Es menos flexible que less pero está disponible en sistemas Unix más antiguos.
  • Ejemplo: more archivo_grande.log

12 – Comandos de paquete
Los sistemas Linux utilizan gestores de paquetes para administrar el software instalado. Estos comandos permiten actualizar, instalar, eliminar y mantener los paquetes del sistema de manera eficiente. A continuación, se presentan los comandos más comunes para la gestión de paquetes en Linux:
apt-get update:

  • Descripción: Este comando actualiza la lista de paquetes disponibles, descargando información sobre las últimas versiones de los paquetes desde los repositorios configurados en el sistema.
  • Uso: sudo apt-get update
    apt-get install [paquete]:
  • Descripción: Permite instalar un paquete específico en el sistema.
  • Uso: sudo apt-get install [nombre_paquete]
    apt-get remove [paquete]:
  • Descripción: Desinstala un paquete del sistema, eliminando todos sus archivos y configuraciones asociadas.
  • Uso: sudo apt-get remove [nombre_paquete]
    apt-get upgrade:
  • Descripción: Actualiza todos los paquetes instalados en el sistema a la última versión disponible.
  • Uso: sudo apt-get upgrade
    apt-get autoremove:
  • Descripción: Elimina automáticamente los paquetes que no son necesarios, es decir, aquellos que fueron instalados como dependencias de otros paquetes y que ya no son requeridos por ningún otro.
  • Uso: sudo apt-get autoremove

Estos comandos son fundamentales para mantener el sistema actualizado y seguro, garantizando que se utilicen las últimas versiones de software disponibles y que se eliminen los paquetes innecesarios para liberar espacio en el disco. Es importante ejecutarlos con privilegios de superusuario utilizando sudo para realizar cambios en el sistema.

13- Tuberías que son y ejemplos
En Linux, las tuberías son una característica fundamental que permite la comunicación entre procesos, facilitando el flujo de datos de la salida estándar (stdout) de un proceso a la entrada estándar (stdin) de otro proceso. Esto se logra mediante el uso del operador de tubería |, que conecta la salida de un comando con la entrada de otro.

Concepto:

  • Las tuberías permiten la transferencia de datos entre procesos de manera eficiente, sin necesidad de guardar temporalmente la salida en archivos intermedios.
  • Se utilizan para encadenar múltiples comandos y realizar operaciones complejas en una sola línea de comando.

Ejemplos:
Contar las líneas de un archivo:
cat archivo.txt | wc -l

  • cat archivo.txt muestra el contenido del archivo.
  • wc -l cuenta las líneas de entrada. Buscar un archivo y mostrar solo el nombre del archivo:
    find /ruta -name «archivo*» | xargs basename
  • find /ruta -name "archivo*" busca archivos que coincidan con el patrón en la ruta especificada.
  • xargs basename muestra solo el nombre de archivo de la salida de find. Ordenar y mostrar el contenido único de un archivo:
    sort archivo.txt | uniq
  • sort archivo.txt ordena las líneas del archivo.
  • uniq muestra solo las líneas únicas consecutivas. Filtrar la salida de un comando:
    ps aux | grep «proceso»
  • ps aux muestra todos los procesos en ejecución.
  • grep "proceso" filtra las líneas que contienen la palabra «proceso».

Contar la cantidad de archivos en un directorio:
ls -l | grep «^-» | wc -l

  • ls -l lista el contenido del directorio en formato detallado.
  • grep "^-" filtra las líneas que comienzan con «-«, que indica archivos (no directorios).
  • wc -l cuenta las líneas filtradas, es decir, la cantidad de archivos.

Los comandos utilizados en las tuberías pueden incluir cualquier comando de la línea de comandos de Linux, incluidos aquellos relacionados con la gestión de paquetes, configuraciones básicas, administración de archivos y directorios, entre otros.

  • Es importante comprender los permisos de ejecución de los comandos involucrados y utilizar sudo cuando sea necesario para obtener privilegios de superusuario.
  • Las tuberías ofrecen una forma poderosa y versátil de realizar tareas complejas mediante la combinación de múltiples comandos en una única secuencia de ejecución.

LISTO PARA EJERCITAR!!!

No, deseo ir al resumen de la primera parte

Deja un comentario