Diario de aprendizaje de GNU-linux

He decidido crear esta sección aquí, ya que creo que es la más adecuada; si no sabes de qué hablo, mírate… Propuesta de una nueva seccion personal

Pero te lo resumo rápido: básicamente, cada día que pase intentaré aprender al menos un concepto, curiosidad o dato técnico sobre GNU/Linux, y lo publicaré aquí con la finalidad de recibir retroalimentación, consejos o críticas respetuosas.

Día 1: Interfaz de linea de comandos

Día 2: Comandos basicos

Día 3 Inodos:

Día 4 Estandar POSIX:

Día 5 Búfer:

Día 6 Sistema de archivos de Linux (FHS)

Día 7 Sistema de Permisos y Usuarios de Linux:

Día 8 chmod y chown:

Día 9 El comando sudo:

Día 10 Repositorios y Gestores de Paquetes:

Día 11 GNU:

Día 12 Fimware:

Día 13 Sistema de Init:

Día 14 Editores de Texto:

Día 15 SSH:

Día 16 Profundizando en comandos (LS):

Día 17 Profundizando en comandos (PWD):

Día 18 Profundizando en comandos (CD):

Día 19 Profundizando en comandos (TOUCH):

Día 20 El uso de ./:

Día 21 Profundizando en comandos (mkdir):

Día 22 Profundizando en comandos (cp):

Día 23 Profundizando en comandos (mv):

Día 24 Profundizando en comandos (rm):

Día 25 Anotaciones sobre Bash y Linux:

Día 26 Scripts y Shell Scripting

Día 27 Caracteres especiales y palabras reservadas en bash

Día 28 Operadores de control de flujo en bash

Día 29 Operadores de redirección

Día 30 Operadores Aritmeticos

Día 31 Variables Locales y Variables de Entorno

Día 32 Operadores a nivel de bit en bash

Día 33 Expanciones

11 Me gusta

Es una iniciativa muy buena e interesante. Como consejo, ¿por qué no añades cada día nuevo como un comentario a la publicación raíz? Así es más fácil seguir el hilo y las actualizaciones, mejor que editando el contenido, creo. Además, así permites que haya cierta interacción con elementos concretos. ¡Sigue así!

4 Me gusta

Día 1: Interfaz de linea de comandos

La CLI es el acrónimo de Command Line Interface (Interfaz de Línea de Comandos), la linea de comandos en GNU/linux sirve para tener control del sistema desde una terminal con una interfaz de texto, en GNU/linux los comandos hacen uso de la shell (comunmente bash) para interactuar con el sistema operativo y automatizar tareas, la shell sirve como un puente entre el usuario y el kernel

2 Me gusta

¡gracias! muy buen consejo

2 Me gusta

Día 2: Comandos basicos

pwd : me muestra la ubicación donde me encuentro

ls: me da un listado de los archivos y directorios

cd: me permite navegar entre directorios

touch: me permite crear archivos vacios o modificar metadatos de archivos ya existentes

mkdir: me permite crear directorios

cp: me permite copiar archivos y directorios

mv: mueve archivos o directorios

rm: borra archivos o directorios

man: me da informacion sobre comandos

2 Me gusta

Día 3 Inodos:

  • Los inodos son los indices de cada archivo y directorio que almacene en nuestra partición física de almacenamiento, esto para que el kernel pueda acceder a los archivos, los inodos marcan también metadatos como permisos, propietario y fecha.

  • Imaginemos lo como una biblioteca, cada libro seria un bloque de datos la portada del libro seria su nombre pero el inodo seria la ficha de búsqueda de cada libro, su dirección en el estante, su propietario y su fecha de modificación, un hard link seria como otra ficha para encontrar el libro, pero desde otra dirección.

  • Cuando borras un archivo en realidad lo que haces es marcar el inodo como libre si ya no tiene ningun hard link, esto marca ese estante del libro como vacío permitiendo que se puedan colocar otros libros en ese lugar, pero el libro en si permanece allí hasta que su espacio es remplazado

2 Me gusta

Día 4 Estandar POSIX:

POSIX Es acrónimo de Portable Operating System Interface y “X“ viene de UNIX el cual es un sistema operativo, el termino POXIS fue sujerido por Richard Stallman en la década de 1980

POXIS es un estandar creado por la IEEE (Institute of Electrical and Electronics Engineers) el cual busca tener una compatibilidad y portabilidad entre sistemas operativos, porgramas como la shell la interfaz y su entorno, por ejemplo que errores devolver, que opciones son minimas en ciertos comandos etc.

Esto permite que un programa compile y funcione de manera predecible en distintos sistemas operativos

2 Me gusta

Día 5 Búfer:

El búfer es una manera de almacenar datos temporales en la memoria a diferencia de la cache que almacena esos datos temporales para aumentar la velocidad de acceso, el búfer es un dato transitorio.

  • Por ejemplo, nuestra terminal es solo una interfaz para poder usar el búfer (donde escribimos los comandos) que luego esos datos se pasan a la shell.

  • Esto tambien puede generar problemas, por ejemplo si se añaden mas datos de los que el espacio seleccionado del búfer es capaz de almacenar, creando un desbordamiento de memoria lo cual puede ocacionar errores o vulnerabilidades

1 me gusta

Día 6 Sistema de archivos de Linux (FHS)

  • En Linux todo es un archivo, es por eso que es muy importante entender su sistema de archivos

  • /: este es el directorio raíz aquí se montan todos los demás directorios principales

  • /bin: este es el lugar donde se almacenan los binarios esenciales del usuario

  • /boot: aquí se guardan los archivos necesarios para que el sistema arranque

  • /dev: este es como un puente entre los programas y el kernel

  • /etc: aquí se guardan los archivos de configuración del sistema

  • /home: aquí se guardan las carpetas de los usuarios

  • /lib: muchas veces varios programas requieren de librerías esenciales, muchas de esas librerías se guardan aquí

  • /media: es donde se muestran los archivos de los dispositivos extraibles, como por ejemplo un pendrive

  • /mnt: si un sistema falla y tiene una copia de seguridad puede montar toda esa copia aquí, y accediendo desde un liveusb o otro sistema puede repararlo

  • /opt: los programas que no confíen en que su sistema tenga las librerías que necesita en /lib almacena sus propias librerías aquí

  • /sbin: como /bin guarda binarios del sistema, pero con la diferencia de que estos binario solo pueden ejecutarse como administrador

  • /srv: es la carpeta donde pongo los archivos y datos que quiero compartir

  • /tmp: para archivos temporales que se guardan en la memoria ram, como un proceso de ejecución o un proceso de conexión SSH por ejemplo

  • /usr: este es el almacén de los programas que los usuarios o el sistema tienen

  • /var: es donde se guarda la cache

  • /root: es el directorio de el usuario root, aquí se guardan archivos de administración profunda del sistema

  • /proc: aquí se puede ver en tiempo real los procesos del sistema

me acabo de dar cuenta que mi publicación de ayer no se envio

Día 7 Sistema de Permisos y Usuarios de Linux:

  • Dado que en Linux todo es un archivo comprender como funcionan los usuarios y los permisos de esos archivos es vital para la seguridad y administración del sitema

  • Usuarios y Grupos: los Usuarios son los que crean los archivos, en Linux pueden a ver diferentes usuarios en una misma maquina, mientras los Grupos son un grupo de usuarios que comparten ciertos permisos

  • Permisos: Existen 3 permisos básicos

    • R(Reader): Permiso de lectura

    • W(Write): Permisos de escritura

    • X(Execute): Permisos de ejecución

Día 8 chmod y chown:

  • si ejecutamos el comando ls -l “archivo” nos dará información sobre permisos usuarios, tamaño en bytes y fecha de modificacion

  • podemos desglosar la sintaxis de los permisos de la siguiente manera

  • primer caracter “-” o “d”, aquí “-” significa que es un archivo normal y “d” significa que es un directorio

  • la primer triada “rwx” o “—” en la primer triada de permisos podemos ver los permisos del usuario. es decir, del dueño del archivo, cada “-” en una posición donde no allá letra significa un permiso denegado

  • la segunda triada representa los permisos de los grupos sobre el archivo

  • y la tercer triada representa los permisos de otros usuarios sobre el archivo.

  • Ejemplo: -rw-r–r-- 1 root usuario 0 mar 20 01:20 archivo.txt

  • aquí se puede ver el tipo de archivo sus permisos seguido de la cantidad de hardlink que tiene luego el dueño, despues el grupo de usuarios del archivo luego la cantidad de bytes del archivo, despues la fecha de modificación y finalmente el nombre dle archivo

  • Podemos cambiar los permisos con chmod, su sintaxis seria así

  • chmod g+w archivo.txt

  • donde g es la referencia del grupo, + significa la agregación de un permiso y w es el permiso en si

  • tambien podemos cambiar el dueño y los grupos a los que pertenece un archivo con chown, su sintaxis es

  • sudo chown dueño:grupo archivo.txt

Día 9 El comando sudo:

  • El comando sudo viene del ingles (super user do) que signifca “super usuario hace” es un comando en loss sistemas Unix que te permite ejecutar programas con los privilegios de seguridad de otros usuario, normalmente el usuario root

Día 10 Repositorios y Gestores de Paquetes:

  • Un Gestor de Paquetes es un software que se encarga de administras las dependencias librerias y binarios de los programas, tambien administra instalación, actualización, configuración y eliminación.

  • Y un Repositorio es un una extructura de almacenamiento que opera en un servidor, almacena esos paquetes para ser accedidos e instalados desde otras computadoras.

3 Me gusta

Día 11 GNU:

GNU es el acronimo recursivo de (GNU no es Unix), GNU es una extensa colección de software libre, que puede utilizarse como sistema operativo, desde el compilador gcc hasta librerias y herramientas, GNU proporciona las bases para un sistema operativo portable, el proyecto GNU fue creado por Richar Stallman, padre del software libre

4 Me gusta

Día 12 Fimware:

Un Fimware es un programa incorporado en el hardware que sirve de controlador para procesadores, tarjetas de red etc, a diferencia de un controlador (driver) que vive en el sistema operativo y se comunica con el kernel que a su vez se comunica con el fimware, el fimware vive en el hardware y desde que se enciende su función es verificar la integridad del harware como teclados mause etc, verifica si hay una secuencia de arranque como el sistema operativo en el disco duro etc, exiten algunos tipos de fimware, como bios, EFI y UEFI

2 Me gusta

Para quien le interese profundizar en el tema:

1 me gusta

Hablamos con el resto de mods y consideramos que este tema debía ser movido a la categoría Cursos debido a que funciona en modo de guía.

Si consideras que esto es un error, comunícate con cualquiera de los mods para revertirlo.

2 Me gusta

Día 13 Sistema de Init

El sistema de Init es el primer sistema que se ejecuta despues del nucleo, sirve para gestionar los procesos del hardware despues de que se inicie el kernel, por ejemplo, es quien decide si mi bluetooth se enciende o se apaga al iniciar mi sistema

1 me gusta

Día 14 Editores de Texto:

En GNU/Linux casi todas las configuraciones son archivos de texto plano, esto significa que con un editor de texto puedes configurar esos archivos, algunos de los mas famosos son nano (simplicidad) vim (eficiencia, curva de aprendizaje alta)

1 me gusta