Introducción a GNU/Linux
@acmupm
¿Qué es GNU/Linux?
@acmupm
- Sistema operativo
- Free source
- Unix-like
- Compatible con POSIX
- Compuesto por los programas de GNU y el Kernel de Linux
- Normalmente se instalan distribuciones construídas sobre éste sistema operativo.
Linux Kernel
@acmupm
- Núcleo de sistema operativo
- Unix-like
- Mayormente free source
- Desarrollado y mantenido por Linus Torvalds
- Tipo monolítico
- Llamadas al sistema compatibles con POSIX/SUS

Arquitectura de un SO
@acmupm
Applications
Kernel interface (syscalls)
Userspace
Kernel space
Memory management
Scheduler
IPC
File System
Device I/O
Network Services
(con núcleo monolítico)
Sistema de archivos
@acmupm
-/
|-home
|\-roberto
| \-code
| \-hello.py
\-run
\-media
\-roberto
|-MIS_DATOS
| |-not_a_xvideos_video.mp4
| \-practica_arqui.docx
\-GTA_IV
|-Autorun.inf
\-Setup.exe
- Los directorios tienen una estructura arborescente. Su raíz es "/".
- No existen unidades (C:, D:) como en Windows: las unidades se "montan" en una carpeta.
- El kernel representa multitud de dispositivos e información del sistema como ficheros especiales.
/home/roberto/code/hello.py
/run/media/roberto/MIS_DATOS/practica_arqui.docx
Sistema de archivos
@acmupm
[roberto@tux ~] $ ls /
boot dev etc home mnt opt proc root run sys tmp usr var
/boot: Almacena los archivos para arrancar el sistema (mejor no tocarlo mucho)
/dev: Contiene archivos que apuntan a dispositivos
/etc: Contiene archivos de configuración
/home: Contiene las carpetas de los usuarios
/mnt: Carpeta vacía, normalmente usada para montar discos duros o pen drives.
/opt: Normalmente se usa para guardar software adicional.
/proc: Proporciona información del kernel a través de ficheros.
/root: Carpeta "home" del usuario root.
/sys: Contiene información sobre dispositivos, y otros componentes del kernel.
/tmp: Carpeta para almacenar archivos temporales.
/usr: Contiene librerías, aplicaciones, entre otros.
/var: Contiene archivos variables del sistema, como logs.
Terminal: Básicos
@acmupm
- En Windows, el entorno de escritorio es parte del Sistema Operativo
- En Linux, el entorno de escritorio es un módulo más del Sistema Operativo, completamente opcional.
- Posibilidad de no instalarlo si no es necesario.

Terminal: Básicos
@acmupm
Estructura de un comando:
root@mypc ~ # apt install nyancat
Prompt
Comando
Parámetros (opcionales)
Intérprete: programa que lee y ejecuta los comandos
- sh
- bash
- zsh
- csh
- ksh
Terminal: Directorios
@acmupm
Current directory:
- El directorio actual: todas las rutas a los archivos serán relativas a éste.
- El comando cd cambia el directorio actual.
- El comando pwd permite ver el directorio actual.
- El directorio '.' indica el directorio actual.
- El directorio '..' indica el directorio superior.
- El directorio '~' indica la carpeta "home" del usuario actual.
[roberto@tux ~] $ pwd /home/roberto [roberto@tux ~] $ cd code [roberto@tux code] $ ls hello.py [roberto@tux code] $ ls /home roberto [roberto@tux code] cat hello.py print("world!")
- Un directorio que empieza por / es una ruta absoluta
Usuarios y Grupos
@acmupm
- Usuarios: Representa una identidad en el sistema.
- Grupo: Puede contener varios usuarios.
- Los archivos pueden a un usuario y a un grupo.
-
El usuario root ("superusuario") es el usuario que tiene todos los permisos en el sistema.
- El comando su permite iniciar sesión como un usuario (normalmente root).
- El comando sudo permite ejecutar un comando como otro usuario (normalmente root).
[roberto@tux ~] $ sudo apt install emacs
[roberto@tux ~] $ su
Password:
[root@tux ~] #
Permisos de archivos
@acmupm
[roberto@tux ~] $ ls -alh -rw-r--r-- roberto roberto 349K Sep 16 00:38 acm.png drwxr-xr-x roberto roberto 4.0K Oct 1 01:33 carpeta
rwxr-xr-x
Permisos de usuario:
r: lectura
w: escritura
x: ejecución
Permisos de grupo
Permisos de cualquiera
Cada archivo pertenece a un usuario y a un grupo, y sus permisos definen quién puede acceder a él.
Permisos de archivos
@acmupm
750
[roberto@tux ~] $ ls -alh -rw-r--r-- roberto roberto 349K Sep 16 00:38 acm.png drwxr-xr-x roberto roberto 4.0K Oct 1 01:33 carpeta
[roberto@tux ~] $ chmod 400 acm.png
[roberto@tux ~] $ ls -alh -r-------- roberto roberto 349K Sep 16 00:38 acm.png drwxr-xr-x roberto roberto 4.0K Oct 1 01:33 carpeta
111
rwx
101
r-x
000
---
Owner
Grupo
Cualquiera
Variables de entorno
@acmupm
[roberto@tux ~] $ export NODE_ENV=production [roberto@tux ~] $ node app.js Current environment: production [roberto@tux ~] $ echo $PATH /home/roberto/.local/bin:/usr/local/bin:/opt/minecraft
Gestor de paquetes
@acmupm
[roberto@tux ~] $ sudo apt update
[roberto@tux ~] $ sudo apt upgrade
[roberto@tux ~] $ sudo apt install nyancat [roberto@tux ~] $ sudo apt remove nyancat
[roberto@tux ~] $ sudo pacman -Sy
[roberto@tux ~] $ sudo pacman -Su
[roberto@tux ~] $ sudo pacman -S nyancat [roberto@tux ~] $ sudo pacman -R nyancat
Introducción a Linux
By devcexx
Introducción a Linux
- 308