User Tools

Site Tools


informatica:linux:script

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
informatica:linux:script [2019/09/24 10:38] joseinformatica:linux:script [2023/10/10 18:11] jose
Line 194: Line 194:
  
 ====== Comprobar si un puerto está abierto o levantado: ====== ====== Comprobar si un puerto está abierto o levantado: ======
 +
 ===== En local: ===== ===== En local: =====
 <code> <code>
Line 210: Line 211:
 </code> </code>
 ==== Servidor externo ==== ==== Servidor externo ====
-Con estos comandos veces hay que poner el nombre del servicio, por ejemplo una VIP de oracle+Como alternativa a telnet se pueden usar estos comandos. A veces hay que poner el nombre del servicio, por ejemplo una VIP de oracle
   cat < /dev/null > /dev/tcp/<ip>/<puerto>   cat < /dev/null > /dev/tcp/<ip>/<puerto>
 +  
 Conexión correcta, no da error: Conexión correcta, no da error:
   # cat < /dev/null > /dev/tcp/oracle-scan/1521   # cat < /dev/null > /dev/tcp/oracle-scan/1521
Line 236: Line 238:
 Con netcat, la respuesta es parecida al telnet: Con netcat, la respuesta es parecida al telnet:
   nc oracle-scan 1521   nc oracle-scan 1521
 +Con curl:
 +  curl -v telnet://<ip>:<puerto>
 ====== Demonio ====== ====== Demonio ======
 Se crea un fichero kkfichero que mientras este creado se ejecuta el script. \\ Se crea un fichero kkfichero que mientras este creado se ejecuta el script. \\
Line 354: Line 358:
   i=$(($i + 1))   i=$(($i + 1))
  
 +Con decimales: 
 +   awk 'BEGIN{printf "%.2f\n", (640/480)}' 
 +   1.33
 ====== Búcles ====== ====== Búcles ======
  
Line 386: Line 392:
 </code> </code>
  
 +
 +====== ECHO ======
 +Referencia: https://www.linuxtopia.org/online_books/advanced_bash_scripting_guide/string-manipulation.html
 +
 +Mostrar una parte de una cadena con echo:
 +  palabra=murcielago
 +
 +  echo ${palabra:2}
 +  rcielago
 +
 +  echo ${palabra:1:2}
 +  ur
 +
 +  echo ${palabra:(-2)}
 +  go
 +
 +  echo ${palabra:2:3}
 +  rci
  
 ====== SED ====== ====== SED ======
 +Muestra las coincidencias en un fichero
 +  sed  -n '/texto/p' totes_brutes
 +Borra una línea. La número 5
 +  sed '5d' fichero.txt
 +Borra líneas con coincidencias
 +  sed  -i '/texto/d' totes_brutes
 +
 +
 +
 +Elmina caracteres duplicados en un fichero
 +<code>
 +molon
 +remar
 +adios
 +
 +sed -f <(printf 's/%s//2g\n' {a..z}) <<< cat fichero.txt
 +
 +moln
 +rema
 +adios
 +</code>
 +
 +
 +
 +
 +
 +No es sed, pero para reemplazar dentro de una variable
 +  var="hola que tal"
 +  echo $var
 +    hola que tal
 +Solo cambia el primero:
 +  echo ${var/ /%20}
 +    hola%20que tal
 +Los cambia todos:
 +  echo ${var// /%20}
 +    hola%20que%20tal
 +
 ===== Mostrar un parámetro ===== ===== Mostrar un parámetro =====
   echo "param1=hola param2=que param3=tal" | sed -e 's/^.*param1=\([^ ]*\).*$/\1/'   echo "param1=hola param2=que param3=tal" | sed -e 's/^.*param1=\([^ ]*\).*$/\1/'
Line 404: Line 465:
 Mostrar la segunda línea Mostrar la segunda línea
   sed -n '2p' file.txt   sed -n '2p' file.txt
 +Mostrar a partir de la segunda línea  
 +  sed 2p file.txt
  
 Mostrar hasta la línea 20: Mostrar hasta la línea 20:
Line 518: Line 581:
  
 ====== AWK ====== ====== AWK ======
 +- Entre 2 delimitadores (-F):
 +  echo "holaquetalcomoestamos" | awk -F 'hola|estamos' {'print $2'}
 +
 +
 -Muestra la última columna -Muestra la última columna
   cat fichero.txt | awk {'print $NF'}   cat fichero.txt | awk {'print $NF'}
Line 571: Line 638:
      
 ====== GREP ====== ====== GREP ======
 +Cuenta número de letras de un fichero:
 +<code>
 +grep -Eo '[^[:blank:]]' <<<cat 5.txt | sort | uniq -c
 +   4073 a
 +    711 b
 +   1297 c
 +    612 d
 +   2027 e
 +    386 f
 +    565 g
 +    412 h
 +   1714 i
 +    340 j
 +</code>
 +
 +Cuenta número de palabras:
 +<code>
 + grep -Eo '[^[:blank:]]+' <<<'this  line this this line' | sort | uniq -c
 +      2 line
 +      3 this
 +</code>
 +
 +
 +
 +Texto entre dos cadenas:
 +  <span class="title">abaixar </span>
 +
 +  grep -oP '(?<=class="title">).*?(?=</span)' file.txt
 +
 +
 +
 Varias coincidencias Varias coincidencias
   # grep -E 'hola|adios' fichero.txt   # grep -E 'hola|adios' fichero.txt
Line 576: Line 674:
 Buscar por nombre de proceso, para evitar grep -v grep Buscar por nombre de proceso, para evitar grep -v grep
   # ps -fc java   # ps -fc java
 +
 +Posicion de un caracter en una cadena. La letra o en la cadena bolo. Empieza por 0
 +  echo "bolo" | grep -b -o o
 +1:o
 +3:o
  
  
Line 769: Line 872:
      
 ====== Date ====== ====== Date ======
- 
 http://www.cyberciti.biz/tips/linux-unix-get-yesterdays-tomorrows-date.html http://www.cyberciti.biz/tips/linux-unix-get-yesterdays-tomorrows-date.html
  
 +Formato fecha custom:  
 +  date +%Y%m%d_%H%M%S
 +  20190420_225307
 +  
 +  date +'%d/%m/%Y %H:%M:%S'
 +  10/10/2023 20:11:31
 +
 +  
   date --date='tomorrow'   date --date='tomorrow'
   date --date='1 day'   date --date='1 day'
Line 786: Line 896:
   date --date='10 year ago'   date --date='10 year ago'
  
-Formato fecha custom:   +Pasar una fecha a unixtime: 
-  date +%Y%m%d_%H%M%S +  date "+%s" -d "01/02/2021 13:11:04" 
-  20190420_225307+   
 +Coge formato americano MM/DD/YYY. Si probamos esto falla: 
 +  date "+%s" -d "31/01/2021 13:11:04" 
 +Convertir unixtime a formato texto: 
 +  date -d @1448488800000 
 +Thu Oct 13 06:00:00 PM CEST 47870
  
-====== Poner fecha en historial history ======+Reordenamos las fechas: 
 +  echo 31/01/2021 14:12:30 | awk 'BEGIN{FS=OFS="/"}{print $2,$1,$3}'|xargs -i date -d"{}" +"%s" 
 + 
 +====== History ====== 
 + 
 +===== Poner fecha en historial history =====
 export HISTTIMEFORMAT='%d/%m/%Y %H:%M:%S: ' export HISTTIMEFORMAT='%d/%m/%Y %H:%M:%S: '
  
-====== Salir terminal sin grabar history ======+===== Salir terminal sin grabar history =====
   kill -9 $$   kill -9 $$
 +
 +===== Historial infinito =====
 +export HISTSIZE=""
 +
 +
  
 ====== Unixtime ====== ====== Unixtime ======
Line 932: Line 1057:
  
 ====== Buscar paquete debian ====== ====== Buscar paquete debian ======
 +Instalamos apt-file y hacemos apt-file update. Buscamos:
 +  apt-file search --regexp '/identify$'
 +Que lo que hace es esta búsqueda:
   # apt-file search /usr/bin/identify   # apt-file search /usr/bin/identify
   graphicsmagick-imagemagick-compat: /usr/bin/identify   graphicsmagick-imagemagick-compat: /usr/bin/identify
 O desde la web:\\ O desde la web:\\
 https://www.debian.org/distrib/packages#search_contents https://www.debian.org/distrib/packages#search_contents
 +
 +====== Fecha certificado ======
 +<code>
 +SITE_URL="dominio.com"
 +SITE_SSL_PORT="443"
 +
 +openssl s_client -connect ${SITE_URL}:${SITE_SSL_PORT} \
 +  -servername ${SITE_URL} 2> /dev/null |  openssl x509 -noout  -dates
 +</code>
  
informatica/linux/script.txt · Last modified: 2024/04/19 07:00 by jose