Buscar en el universo: bash

Results 1 - 10 of 27

Resultados

Oct 09 05:47

Arrays en BASH

Ejemplos de como crear y usar arrays en BASH
### Arrays en bash ###
 
## Declarar un array
# 1 - Con typeset o declare
typeset ARRAY[10] # Definido un array de nombre ARRAY de 10 elementos
typeset -a VECTOR # Definido un array de nombre VECTOR sin tamaño definid
decalre ARRAY[10] # Definido un array de nombre ARRAY de 10 elementos
declare -a VECTOR # Definido un array de nombre VECTOR sin tamaño definid
 
# 2 - Declarando y asignando
LIST[0]="Tomate"  # Se crea un array LIST cuyo primer elemento es "tomate"
NAMES=(Pepe Ana Juan Antonio María)  # Se crea una lista yle asigna los nombre.
 
## Asignar valores
# NOMBRE_ARRAY[indic
Lenguaje: 
bash
Oct 09 05:14

Bucles "for" en bash con ficheros con espacios

Supongo que muchos conoceréis este truquillo, pero a mi me costó lo suyo encontrarlo en su momento...

¿Alguna vez habéis hecho un bucle "for" en bash para recorrer una serie de ficheros y realizar tareas sobre ellos? Si es así, cuando los nombres de ficheros contienen espacios, "for" parte el nombre del fichero en varios trozos:

luis@endymion:~/pruebas$ ls
fichero con espacios 1  fichero con espacios 2  fichero-sinespacios1  fichero-sinespacios2
Oct 09 05:22

Recorrer ficheros con espacios en el nombre

Para recorrer un grupo de ficheros sin que "for" te separe los nombres con espacios.
#!/bin/sh
 
IFS=$'\x0A'$'\x0D'
 
for i in $(ls *); do
    echo $i;  # Tratamiento que se le quiera hacer
done
Lenguaje: 
bash
Jun 07 19:39

Cambiar extensiones de fichero masivamente / Massive file extension renaming

-- Español / Spanish -- Seguro que más de una vez se nos ha dado el caso de tener que cambiarle la extensión a varios ficheros, para esto, yo siempre suelo usar este scriptcillo de una linea que aprovecha las extensiones de BASH. -- Inglés / English -- It's for sure that you have had to change the extension of various files anytime, for this matter, I always use this one-line-script taking advantages of BASH.
# ${file%.*} elimina todo desde el primer "." hasta el final, se podrían usar patrones como ".png" para hacer más exacta la coincidencia.<br />
for file in PATH/*.png; do mv $file ${file%.*}.jpg; done
Lenguaje: 
bash
Mar 18 14:14

SPANISH: Lanzar un túnel ssh en background / ENGLISH: launch ssh tunnel in background

<p>SPANISH: Puede que a veces podamos necesitar crear un t&uacute;nel y dejarlo funcionando como si se tratase de un servicio cualquiera, pero por defecto, el cliente de 'ssh' no se lanza correctamente usando el m&eacute;todo com&uacute;n de usar '&amp;' y tampoco se lanza correctamente cuando lo colocas en un script de systemvinit/upstart. En estos casos, podemos usar estas opciones para lanzarlo: '-f -N' Se recomienda el uso de autenticaci&oacute;n por certificados, ya que de otra manera nos pedir&iacute;a el password y no ser&iacute;a muy &uacute;til :P Concretamente, el ejemplo que expongo lo he usado esto para hacer un mapeo de puertos desde un VirtualBox (hierro) y una VM alojada y conectada en &eacute;l por NAT :] Esta conexi&oacute;n se hac&iacute;a desde la VM al hierro.</p> <p>ENGLISH: Sometimes we may need create a tunnel and leave it running in background as if it were any other service, but 'ssh' client by default does not forks into background well using the common '&amp;' and it is not forked neither when you try to launch it via systemvinit/upstart script. In these cases, we can use this arguments to launch it into background: '-f -N'. It is recommended to use certs to authenticate with the foreign host, since in other way, it will prompt us for password and wouldn't be too useful as service :P I have used this to setup a NAT port forwarding between a VirtualBox host and a VM :]</p>
# ENGLISH: # # ssh -f -N -R LISTEN_PORT:localhost:22 user@REMOTE_HOST # # SPANISH: # # ssh -f -N -R PUERTO_DE_ESCUCHA:localhost:22 user@HOST_REMOTO # ssh -f -N -R 2232:localhost:22 distromatic@10.0.2.2
Lenguaje: 
bash
Sep 09 11:29

[BASH] asegurarse que todo va a la tubería.

A veces un comando nos da parte de la salida que vemos por la salida de error y al querer filtrar esto, la tubería no funciona como esperábamos. Y si no entendéis lo que cuento ejecutad esto: iwconfig|grep eth0
iwconfig |& grep eth0
 
Con esto nos aseguramos que todo va a ir a parar a la tubería.
Lenguaje: 
bash
Feb 09 17:49

rsync-over-ssh advanced use

If you want to make rsync-over-ssh to use specific 'ssh' options like, using a different identity key than the default one, you can use the '-e' rsync argument to pass options to the ssh command. Example above :]
# make rsync to use '/root/.ssh/non-bugged-id_rsa' to authenticate against the foreign host
#
rsync -avuz -e 'ssh -i /root/.ssh/non-bugged-id_rsa' remoteUser@remoteHost:/path /backup/path
Lenguaje: 
bash
Nov 07 09:13

Imprimir una columna de una linea filtrandola por su contenido con awk

Como me he decidido a guardar toda sentencia sed/awk que vaya usando y me lleve más de 5mins resolverla para tenerlo a mano a posteriori, aquí pongo otro snippet que imprimirá; una columna de una linea filtrandola por su contenido con una condición.
# esto imprimirá solo las columnas que contengan "root"
 
$ awk '{for (i=1;i<=NF;i++)  if ( $i ~ "root" ) print $i}' /proc/cmdline
 
# Se le podrían poner condiciones más complejas, por ejemplo, usando regex.
Lenguaje: 
bash
Mar 30 08:51

What process a window belongs to?

Windows managers add some properties to windows and one of them is '_NET_WM_PID(CARDINAL)' which stores what PID created that window. In order to get that PID, we just have to execute the command below and click on the window we want to read info from :]
$ xprop |grep WM_PID
_NET_WM_PID(CARDINAL) = 2717
$ ps ax | grep firefox
2717 ?        Sl   387:39 /usr/lib/firefox-3.0.6/firefox
Lenguaje: 
bash
Oct 09 00:42

Quitar espacios de nombres de fichero de manera sencilla

Script que le cambiará los espacios por _ a todos aquellos ficheros que se le pasen.
#!/bin/bash                                                                                                                
 
while [ $# != 0  ]
do
  mv -v "$1"  `echo $1|tr ' ' '_'` 2>/dev/null
  shift
done
Lenguaje: 
bash