miércoles, 9 de enero de 2019

Recopilatorio de Bash y comandos Linux

COMANDOS
Crear varios directorios a la vez
mkdir -p /opt/folder1/folder2/folder3

Copiar el rsa key del host1 al host2 para no proporcionar la passwor del "usuario" cada vez que se realiza una conexion ssh del host1 al host2
[user@hots1]$ ssh-copy-id -i /home/user/.ssh/id_rsa.pub user@host2

Generar el id_rsa.pub
ssh_keygen


Editor VI
:set number -> muestra el numero de linea en el editor

-------------

:set fileformat=unix
:set fileformat=dos

Aplica el formato unix o dos al fichero actualmente abierto, muy util cuando se muestra el error
Not found #!/bin/bash^M

----------
:set list
Muestra los caracters ocultos en el archivo abierto

BASH
Ejemplo de for 1:
Los espacion son IMPORTANTES.

actions=(opcion1 opcion2 opcion3)
for item in ${actions[@]}; do
  echo "Action: ${item}"
done

Ejemplo for 2:
  for (( a=1; a < 80; a++ )); do
    echo "Iteration ${a}"
  done

IF

Igualar cadenas:Los espacios son IMPORTANTES

 _APP=opcion5
if [[ $_APP = "opcion1" ]]
  then
    echo "opcion 1"
  elif  [[ $_APP = "opcion2" ]]
  then
    echo "opcion 2"
  else
    echo "No es ninguna opcion"
  fi

Doble condicion:
$var
if [[ $var = *"value1"* || $var = *"value2"* ]]
then
  echo "var contiene value1 o value2 "
fi


Existe el directorio:

if [ -d /path/dir1/dir2 ]
then
  echo "Directorio existe"
else
  echo "Directorio NO existe"
fi

Fichero existe:

if [ -f /path/dir1/dir2 ]
then
  echo "Fichero existe"
else
  echo "Fichero NO existe"
fi


Ejemplo case :

typeVar=Z
case $typeVar in
  A)
    echo "opcion A"
  ;;
  B)
    echo "opcion B"
  ;;
  C)
    echo "opcion C"
  ;;
  D)
    echo "opcion D"
  ;;
  *)
    echo "opcion no definida"
  ;;
esac

Ejemplo obtener el PID del script en ejecucion y el pid de invocaciones dentro del mainPID
#!/bin/bash

myFunction(){
  for (( a=1; a<10; a++ )); do
    echo "myFunction iteration ${a}"
    sleep 3
  done
}

myFunction &
myFuncPid=$!
mainPid=$$

for (( a=1; a<10; a++ )); do
  echo "mainPID ${mainPid} funcPid ${myFuncPid} iteration ${a}"
  sleep 5
done