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