Diario de aprendizaje de GNU-linux

(publicación eliminada por su autor/a)

Día 15 SSH:

SSH (Secure Shell) es un protocolo de red que me permite tener acceso remoto desde otra terminal a la shell de una PC, viajando atravez de un canal seguro

Día 16 Profundizando en comandos (LS):

  • A nivel de kernel ls no busca entre archivos, si no que solicita al sistema operativo el contenido del inodo correspondiente al directorio donde se encuentra

  • Banderas (Opciones):

  • -a (all): no ignora las entradas que empiezan con (.)

  • -l (long format): te da los metadatos correspondientes a los archivos o directorios

  • -i (inodo): Muestra el numero de inodo

  • -s (size): Ordena los resultados por tamaño de archivo de mas grande a mas pequeño

  • -t (time): Ordena por tiempo de modificación

  • -u (atime): Ordena por tiempo de acceso

2 Me gusta

Día 17 Profundizando en comandos (PWD):

A diferencia de ls que me devuelve la lista de archivos y directorios donde me encuentro, pwd me devuelve la ruta absoluta donde me encuentro, por ejemplo si estoy en el directorio “Descargas” y ago ls puedo ver sus directorios y archivos, pero si ago pwd me soltaria algo como “/home/usuario/Descargas”

1 me gusta

Día 18 Profundizando en comandos (CD):

Argumentos:

  • cd - : este argumento me hace retroceder

  • cd .. : este argumento me lleva al directorio padre

  • cd / : este argumento me lleva al directorio raíz

1 me gusta

cd - es para el directorio en el que estabas antes:

cd ~/.config/i3/config    # Desde $HOME 
cd -                      # Te lleva devuelta a $HOME
cd /etc/udev/rules.d    # Desde $HOME/.config
cd -                    # Te lleva devuelta a $HOME/.config
1 me gusta

¿Os podéis creer que en todos mis años administrando sistemas GNU-Linux, me acabo de enterar de que existe la funcionalidad cd -? :face_with_peeking_eye:

4 Me gusta

Te juro que estoy tomando nota. Es un comando muy útil.

2 Me gusta

Día 19 Profundizando en comandos (TOUCH):

  • Banderas:

  • -a: Actualiza únicamente el tiempo de alteración de un archivo

  • -m: Actualiza la última vez que los metadatos o el contenido fueron cambiados

  • -c: No crea el archivo si no existe

  • -r: Copia las marcas de tiempo de un archivo a otro

  • -t: permite especificar una fecha y hora exactas

1 me gusta

Día 20 El uso de ./:

  • A pesar de que estuve muy inactivo por una acumulación de problemas personales, no es excusa para no seguir con mi diario de aprendizaje, y justo hoy aprendí algo nuevo.

  • El uso de ./ al ejecutar cualquier archivo, por ejemplo ./script.sh se usa por seguridad, por ejemplo, supongamos que un atacante logra infiltrar un archivo llamado ls en tu sistema, y tu en la terminal escribes ls, si no existiera el ./ tu sistema podria confundirse y ejecutar el archivo malicioso del atacante, el uso de ./ elimina esta posibilidad

3 Me gusta

Día 21 Profundizando en comandos (mkdir):

  • mkdir solicita al kernel la creación de un nuevo inodo de tipo directorio

  • Banderas (Opciones):

  • -p (–parents): este argumento premite crear subdirectorios al directorio que tu cres, por ejemplo si haces:

  •   mkdir -p a/b/c
    
    
  • se crearan los directorios y sub directorios correspondientes

  • -m (–mode): permite definir los permisos del directorio en el momento de creación, evitando así tener que usar chmod cada vez

1 me gusta

Día 22 Profundizando en comandos (cp):

  • cp sirve para copiar archivos o directorios, su sintaxis es

  •   cp archivo carpeta_de_destino
    
    
  • Banderas (Opciones)

  • -r (Recursive): copia no solo el directorio padre si no toda la estrcutura de subdirectorios ya archivos

  • -p (Perserve): Peserva los metadatos del archivo original a la copia

  • -a (Archive): es ideal para respaldos pues perserva enlaces simbolicos, rescursividad de archivos y directorios y todos los metadatos posibles

  • -u (Update): Copia solo cuando el archivo de origen es mas nuevo que el de destino o cuando el de destino no existe

  • -s (Symbolic-Link): En lugar de copiar los datos, crea un enlace simbolico al archivo original

Día 23 Profundizando en comandos (mv):

  • mv sirve para mover o renombrar archivoss o directorios.

  • Si el destino esta en el mismo disco o partición solo cambiara el inodo exitente a uno que apunte a esa nueva ubicación.

  • Si esta en otro disco o partición ara copiado y borrado, es decir, copiara el archivo en la nueva partición o disco y luego lo eliminara del original

  • Banderas (Opciones):

  • -i (Interactive): Solicicta confirmación antes de sobrescribir un archivo con el mismo nombre en el destino

  • -n (no-clobber): Evita que se sobrescriba cualquier archivo existente. Si el destino ya existe, el comando simplemente no hace nada.

  • -u (update): Mueve el archivo solo si el origen es más reciente que el destino o si el destino no existe.

  • -v (verbose): Explica qué se está haciendo (ej. archivo.txt → documentos/archivo.txt).

  • -f (force): Sobrescribe archivos en el destino sin preguntar, incluso si los permisos del destino sugerirían lo contrario.

2 Me gusta

Día 24 Profundizando en comandos (rm):

  • El comando rm no elimina como tal al archivo o directorio, mas bien elimina el inodo correspondiente marcando como libre ese espacio en el almacenamiento hasta que otros datos lo sobre escriben

  • Banderas (Opciones):

  • -i (interactive): Solicita confirmación antes de cada eliminación

  • -f (force): Ignora archivos inexistentes y no solicita confirmación

  • -r (recursive): Necesaria para eliminar directorios y todo su contenido, procesa toda la estructura de manera desendente

  • -v (verbose): informa que archivo o directorio esta siendo procesesado

  • El peligro de rm -rf /

    Este comando intenta eliminar de forma recursiva y forzada todos los archivos desde la raíz.

  • En sistemas modernos, GNU rm incluye una protección llamada --preserve-root que impide la ejecución accidental de este comando sobre /.

  • Para ejecutarlo realmente, se requiere la bandera opcional --no-preserve-root.

1 me gusta

Día 25 Anotaciones sobre Bash y Linux:

  • Para obtener una lista de los comandos incorporados en Bash, ejecutamos

    help o compgen -b “El argumento -b filtra la lista para mostrar solo los nombres de los comandos incorporados a bash”

  • estos comandos son built-in un built-in es una funcion/comando o tipo de dato que viene incorporado en el lenguaje, por ejemplo estructuras basicas como float, int, char, etc. Podemos imaginarlos como los ladrillos incorporados en una casa, o como una casa de piezas de lego.

  • Para consultar la descripción mas detallada de un comando usamo help comando.

  • No debemos confundir los comandos incorporados a Bash con los comandos que también están disponibles a partir de los binarios del sistema operativo, si un comando no esta incorporado a bash no sera un built-in.

  • ld-linux: ld-linux.so es una libreria que se encarga de gestionar las dependencias o librerias compartidas entre programas, por ejemplo si mi programa usa una libreria estandar del sistema el kernel llama a ld-linux.so y el se encarga de darle acceso a mi programa de esa libreria

Día 26 Scripts y Shell Scripting

  • Un Script es utilizado para personalizar automatizar o gestionar procesos de un programa o sistema de manera rapida y eficiente, a diferencia de un programa que necesita ser compilado y convertido en binario para ser ejecutado, un script tambien puede ser interpretado por otro programa.

  • La Shell Scripting nos permiten ejecutar los comandos de manera no interactiva, es decir, no requieren la interacción del usuario, opcionalmente, un script puede contener en su inicio lo que se denomina

    shebang.

  • la shebang son un par de caracteres que indicarn al interprete que se va a utilizar para ejecutar el script, por ejemplo en bash el mas comun es #!/bin/bash esa linea se pone al inicio de un script en bash de esta forma si el sistema utiliza de forma predeterminada otra shell se podra ejecutar con bash, otro modo de escribirlo es #!/bin/env bash esto lo hace mas portable.

  • Con source puedo ejecutar un script dentro de otro script

1 me gusta