Mostrando entradas con la etiqueta bash. Mostrar todas las entradas
Mostrando entradas con la etiqueta bash. Mostrar todas las entradas

jueves, 8 de agosto de 2024

Termux (bash en el movil)

Termux

Emula tu terminal de bash en android

Archivo: Termux.properties

Para Los atajos de teclado entre terminales de Termux

Para activar los atajos de teclado para crear, renombrar o moverse entre las distintas sesiones de terminal.
En el directorio:
$/data/data/com.termux/files/home/.termux
archivo: termux.properties
seccion:

   *****************
   * HW Keyboard shortcuts
   *****************
   -elimina comentarios en las lineas para comandos rapidos
   ctrl + t = nueva terminal
   ctrl + 2 = bajar una terminal
   ctrl + 1 = subir una terminal
   ctrl + n = renombrar terminal
   

Termux-backup

Comprime en un archivo 'tar' el contenido de la variable PREFIX que es todo el árbol de directorio que usa Termux, cuyo contenido está en:

/data/data/com.termux/files/usr

.../files/usr $ ls -al
    total 77
    drwx------ 10 u0_a362 u0_a362  3488 Feb  4 16:43 .
    drwxrwx--x  4 u0_a362 u0_a362  3488 Jun 27 11:59 ..
    drwx------  2 u0_a362 u0_a362 53248 Jul 16 18:08 bin
    drwx------ 11 u0_a362 u0_a362  3488 Jul 16 19:22 etc
    drwx------ 28 u0_a362 u0_a362  8192 Jul 16 16:34 include
    drwx------ 12 u0_a362 u0_a362 20480 Jul 16 16:34 lib
    drwx------  8 u0_a362 u0_a362  3488 Jul 16 16:34 libexec
    drwx------ 29 u0_a362 u0_a362  3488 Jul 16 18:08 share
    drwx------  2 u0_a362 u0_a362  3488 Jul 17 18:25 tmp
    drwx------  8 u0_a362 u0_a362  3488 Jul  3 22:48 var
    

Se realiza una copia con el comando:

termux-backup -f <nombrearchivo>

en el directorio ~/storage/downloads/termux-archivos/termux-backup

/data/data/com.termux/files/home/storage/downloads/termux-archivos/termux-backup

Ejemplo:

Desde la ruta anterior:

$ termux-backup -f termux-backup_21-07-2024

miércoles, 10 de julio de 2024

Expresiones Regulares en SED

Expresiones Regulares en sed

El comando sed o editor de secuencias se usa para sustitucion de texto.

texto bash shell

Ejemplos de `sed` y Expresiones Regulares

1. Reemplazo simple con referencia

Ejemplo 1:

echo "hello 123" | sed 's/\([0-9]\+\)/[\1]/'
# Salida: hello [123]

Reemplaza cualquier secuencia de dígitos con los mismos dígitos entre corchetes.

Ejemplo 2:

echo "foo bar baz" | sed 's/\(bar\)/[\1]/'
# Salida: foo [bar] baz

Reemplaza la palabra "bar" con "[bar]".

2. Uso de clases de caracteres

Ejemplo 1:

echo "hello" | sed 's/[aeiou]/X/g'
# Salida: hXllX

Reemplaza todas las vocales con "X".

Ejemplo 2:

echo "sed script" | sed 's/[sS]/Z/g'
# Salida: Zed Zcript

Reemplaza todas las ocurrencias de "s" o "S" con "Z".

3. Alternancia

Ejemplo 1:

echo "cat bat rat" | sed 's/cat\|bat/dog/g'
# Salida: dog dog rat

Reemplaza "cat" o "bat" con "dog".

Ejemplo 2:

echo "one two three" | sed 's/one\|three/four/g'
# Salida: four two four

Reemplaza "one" o "three" con "four".

4. Anclas de línea

Ejemplo 1:

echo -e "foo\nbar" | sed 's/^foo/baz/'
# Salida: baz
#         bar

Reemplaza "foo" solo al inicio de la línea con "baz".

Ejemplo 2:

echo -e "foo\nbar" | sed 's/bar$/baz/'
# Salida: foo
#         baz

Reemplaza "bar" solo al final de la línea con "baz".

5. Reemplazo con repetición

Ejemplo 1:

echo "aaaabbbb" | sed 's/a\+/A/'
# Salida: Abbbb

Reemplaza una o más "a" consecutivas con "A".

Ejemplo 2:

echo "123456" | sed 's/[0-9]\+/NUM/'
# Salida: NUM

Reemplaza una secuencia de uno o más dígitos con "NUM".

6. Agrupación y referencia posterior

Ejemplo 1:

echo "abc abc" | sed 's/\(abc\) \1/\1 XYZ/'
# Salida: abc XYZ

Reemplaza "abc abc" con "abc XYZ" usando referencia posterior.

Ejemplo 2:

echo "123-456" | sed 's/\([0-9]\{3\}\)-\([0-9]\{3\}\)/\1.\2/'
# Salida: 123.456

Reemplaza el guión en "123-456" por un punto.


Comando Mejorado para Diferentes Cantidades de Dígitos

echo "1.2.24" | sed 's/\([0-9]\{1,2\}\)\.?\([0-9]\{1,2\}\)\.?\([0-9]\{2,4\}\)/\1-\2-\3/'

Desglose de la expresión regular:

  • \([0-9]\{1,2\}\) captura uno o dos dígitos.
  • \.? coincide opcionalmente con un punto.
  • \([0-9]\{1,2\}\) captura uno o dos dígitos.
  • \.? coincide opcionalmente con un segundo punto.
  • \([0-9]\{2,4\}\) captura entre dos y cuatro dígitos.

La cadena de reemplazo \1-\2-\3 formatea la salida con guiones.

Ejemplos

Entrada completa

echo "12.34.5678" | sed 's/\([0-9]\{1,2\}\)\.?\([0-9]\{1,2\}\)\.?\([0-9]\{2,4\}\)/\1-\2-\3/'

Salida: 12-34-5678

Entrada con grupos incompletos

echo "1.2.24" | sed 's/\([0-9]\{1,2\}\)\.?\([0-9]\{1,2\}\)\.?\([0-9]\{2,4\}\)/\1-\2-\3/'

Salida: 1-2-24

Entrada con solo dos grupos

echo "5.678" | sed 's/\([0-9]\{1,2\}\)\.?\([0-9]\{1,2\}\)\.?\([0-9]\{2,4\}\)/\1-\2-\3/'

Salida: 5-67-8

Nota

Esta expresión regular puede no funcionar correctamente si no se proporcionan suficientes grupos para que coincidan con los patrones. Asegúrate de que los datos de entrada siempre contengan al menos dos grupos de uno o dos dígitos y un grupo de dos a cuatro dígitos.

[e1] https://vergaracarmona.es/comando-sed/

[e2] https://www.gnu.org/software/sed/manual/sed.html#sed-script-overview

[e3] https://techsolutionscenter.wordpress.com/2011/11/17/uso-basico-del-comando-sed-reemplazar-cadenas-en-archivos-con-sed/

[e4] https://www-gnu-org.translate.goog/software/sed/manual/sed.html?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc

[e5] https://www-grymoire-com.translate.goog/Unix/Sed.html?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc

[e6] https://edoras-sdsu-edu.translate.goog/doc/sed.html?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc

jueves, 4 de julio de 2024

Nano - Atajos de teclado

Nano

Atajos de teclado del editor de texto Nano.

Lista de comandos básicos del Editor Nano

  • Ctrl + g: Nos muestra el menú de ayuda.
  • Ctrl + o: Nos guarda el documento.
  • Ctrl + u: Pega en la línea que nos encontramos lo que se ha copiado en el buffer.
  • Ctrl + l: Redibuja la pantalla actual.
  • Ctrl + j: Justificamos el párrafo actual.
  • Ctrl + m: Insertaremos un retorno de carro en la posición actual del cursor.
  • Ctrl + _: Vamos a un número de línea concreto.
  • Ctrl + r: Insertar otro fichero en el actual.
  • Ctrl + w: Buscar una cadena.
  • Ctrl + y: Nos lleva a la página anterior.
  • Ctrl + v: Nos lleva a la página siguiente.
  • Ctrl + t: Revisar la ortografía.
  • Ctrl + x: Salimos del editor.

Identificar las Líneas

Número de línea del cursor

$ nano -c tuarchivo.sh
Con este comando te sale una linea por encima de los atajos de teclas indicandote donde está situado el cursor.

Numerar todas las líneas

$ nano -l tuarchivo.sh
Con este comando te salen todas las linear numeradas a la izquierda.

Copiar, cortar y pegar.

Copiar

alt + 6
Con esta combinacion de teclas copiamos una línea completa.

Alt + a (inicio) y Alt + 6 (final)
Con esta combinación copiamos el texto seleccionado.

Cortar

Ctrl + k
Con esta combinación cortamos una linea de texto.

Ctrl + 6 (inicio) y Ctrl + k (final)
Con esta combinación cortamos un texto en concreto.

Pegar

Ctrl + u
Con esta combinación pegamos el texto seleccionado anteriormente.

jueves, 20 de junio de 2024

Enlaces blandos - comando bash

Enlaces Simbólicos

Siempre uso enlaces simbólicos para los script almacenados en mis documentos y que me cargan varias pestañas de navegador. Son muy útiles, para hacerlo por proyectos, cargando con un click, las pestañas que necesites en cada caso.



Enlaces blandos en linux

Importante: no son lo mismo un enlace duro, que uno blando y sólo se diferencian en el atributo '-s' que lleva el enlace blando.

Enlace a un archivo

$ ln -s [../ruta_archivo_original] [../ruta_enlace_blando/nombre_enlace]

ejemplo donde se omite la ruta_enlace_blando por ser el directorio actual.
$ ln -s /home/lks/Documentos/trabajando/proyecto\ MKdocs.sh Ln_proyecto-Mkdocs

Varios enlaces blando a la vez

$ ln -s ~/Documentos/trabajando/*.sh ~/Documentos/trabajando/murrulina-txt ~/Escritorio/enlaces-simbolicos

En esta ocasion, se crearan enlaces simbolicos para todos los archivos cuya extension sea '.sh' y para la carpeta murrulina-txt dentro de la carpeta 'enlaces-simbolicos'

Enlaces

[e1] https://www.ionos.es/digitalguide/servidores/configuracion/comando-ln-de-linux/