Guión sesiones teóricas Temas 2 y 3

Acto 1. Presentación

Objetivo: situar a los alumnos en los temas 2 y 3, y qué material pueden consultar. Explicar: - hoja de ruta con niveles progresivos de competencia - Libro Linux Fundamentals - foros de ejercicios en Moodle

Acto 2. Sesiones tipo demostración

Objetivo: trabajar con los alumnos sobre casos frecuentes/importantes de órdenes Unix

Se asume que los alumnos ya han empezado a trabajar el Tema 2 en el laboratorio.

Guión: * find → buscar por metadatos (de ficheros)
* grep → buscar por contenido
* stat -c formato * órdenes empotradas $(orden) * redirecciones avanzadas 2>/dev/null, etc.

find

stat

  1. Listar todos los ficheros que se tocaron por última vez en febrero de 2018
  2. Listar los nombres de los usuarios que tienen ficheros en /tmp
  1. se resuelve con stat -c "%y %n" * | grep ^2018-02. Posibilidad de dar formato con cut

  2. se resuelve con stat -c "%u" /tmp | sort -u.

grep y expresiones regulares

chuleta grep: https://www.cheatography.com/tme520/cheat-sheets/grep-english/pdf/

ejemplos para el Tema 3

ejemplos de uso: muestras de código en Dropbox

órdenes empotradas

ejemplo: touch $(date +%Y-%m-%d).txt para crear un fichero 2018-10-10.txt ejemplo: echo Hay $(ls | wc -l) fichero(s) en el directorio actual

usos típicos del for

for f in *
do
 echo He encontrado el fichero: $f
done

for i in 1 2 3 4 5 6 7 8 9 10; do echo $i; done

for i in $(seq 10); do echo $i; done

for ((i=1;i<=10;i++)); do echo $i; done

fun() {
    i=1
    for f in "$@"
    do
      echo argumento $i = $f
      ((i++))
    done
}

condicionales

rm file1 && echo It worked! || echo It failed!
[ -f fichero ] || { echo el fichero no existe 2>/dev/null; exit 1; }

comillas y espacios

(pendiente desarrollar)

comillas dobles, comillas simples, meter una $variable

echo hola mundo feroz
echo "hola mundo feroz"

manejo avanzado de strings

fich=/uno/dos/tres/hola.mundo.txt

# Quitar un patrón mínimo a la derecha
echo ${fich%.*}

# Quitar un patrón máximo a la derecha
echo ${fich%%.*}

# Quitar un patrón mínimo a la izquierda
echo ${fich#*/}

# Quitar un patrón máximo a la izquierda
echo ${fich##*/}
echo ${fich##*.}

${variable%}

arrays

(pendiente desarrollar)