10.1.8. Uso de linux

El tema recoge otros aspectos a tener en cuenta cuando se desea manejar con soltura y eficacia Linux a través de la CLI más allá de los elementales expuestos en el uso básico.

10.1.8.1. Órdenes avanzadas

En este apartado toca aprender cómo concatenar varias órdenes dentro de una misma línea y cuáles son las substituciones en línea que hace la shell antes de ejecutar de modo efectivo la orden. Los conocimientos pueden ponerse a prueba con los ejercicios:

10.1.8.2. Redirecciones de E/S

Respecto al concepto de redirección basta con centrarse en el apartado de redirección básica sin antender a los conceptos de tuberías con nombre ni process substitution. Es importante los conceptos incluidos en este apartado porque es la herramienta básica para hacer cooperar las órdenes entre sí y lograr órdenes conjuntas muy poderosas. Entendidas bien estas ideas, realice los ejercicios:

10.1.8.3. Copias de seguridad

El epígrafe persigue cónocer cuáles son herramientas habituales de compresión y empaquetado, lo cual supone estudiar todo este epígrafe de copias de seguridad. La relación de ejericios es la que se encuentra al final de ese epigrafe:

10.1.8.4. Tratamiento de texto

Para este contenido hay desarrollado todo un epígrafe en los apuntes, pero la parte dedicada a expresiones regulares es denasiado extensa para el nivel de primero del grado medio, por lo que lo sustituiremos por el siguiente resumen:

  1. Generalidades:

    • Las expresiones regulares son patrones capaces de concordar con múltiples cadenas de texto y que se usan para hacer búsquedas con o sin substitución dentro de un texto. Por ejemplo, la expresión “^a” significa cualquier texto que empiece por «a».

    • Lo habitual es que las herramientas hagan la búsqueda línea por línea, esto es:

      1. Tomen la primera línea del texto.

      2. Comprueben si se encuentra el patrón en la línea.

      3. Informen de la búsqueda.

      4. Pase a la siguiente línea y así sucesivamente hasta que acabe el archivo.

      En consecuencia, la expresión de ejemplo “^a” concordará con todas las líneas que empiecen por «a», ya que cada línea se considera un texto diferente.

    • Hay distintos tipos de expresiones regulares, así que nos centraremos en las expresiones regulares ERE para la que tienen soporte total o parcial casi todas las órdenes con la gran excepción de expr.

    • No deben confundirse las expresiones regulares con los comodines de la shell, aunque en algunos casos puedan tener un uso confusamente similar.

    • Por lo general, la herramienta no fuerza a que el patrón concuerde con la línea completa, sino que basta con que lo haga con una parte. Por ese motivo, las expresión “a” concuerda con cualquier línea que contenga una «a» y no sólo con las líneas cuyo contenido es exclusivamente una sola «a».

  2. Recetario

    Expresión

    Descripción

    Comodines

    .

    Cualquier carácter

    Delimitadores

    ^

    Comienzo del texto

    $

    Final del texto

    b

    Comienzo o final de palabra

    Cuantificadores

    ?

    Una o ningna vez lo expresado anteriormente

    *

    0 o más veces lo expresado anteriormente

    +

    1 o más veces lo expresado anteriormente

    {x}

    X veces lo expresado anteriormente

    {X,Y}

    Entre X e Y veces los expresado anteriormente

    Agrupadores

    (…)

    Agrupa una parte de la regex

    Opcionales

    a|b

    Una de las dos expresiones («a» o «b»).

    […]

    Cualquiera de los caracteres incluidos dentro.

    [^…]

    Ninguno de los caracteres incluidos dentro.

  3. Ejemplos.

    Indicar las expresiones regulares que concuerden con texto que:

    1. acabe en «a»:

      a$
      
    2. acabe en «s» o «n»:

      [sn]$
      
    3. contenga al menos una palabra que empiece por «e»:

      \be
      
    4. contenga «hola»:

      hola
      
    5. contenga la palabra «hola»:

      \bhola\b
      
    6. contenga exclusivamente «hola»:

      ^hola$
      
    7. esté vacío (no contenga nada):

      ^$
      
    8. sólo contenga letras «b»:

      ^b+$
      
    9. empiece por «a» y acabe en «b»:

      ^a.*b$
      
    10. contenga la la palabra «hola» o «adios»:

      \b(hola|adios)\b
      
    11. no empiece por «a»:

      ^[^a]
      

Nota

Para probar que funcionan las expresiones de arriba, lo más sencillo es utilizar grep. Por ejemplo, para ver las líneas de fichero /tmp/mifichero.txt que acaban en «a» debemos hacer:

# grep -E 'a$' /tmp/mifichero.txt

Los epígrafes sobre herramientas de búsqueda y de manipulación sí son pertinentes. Para practicar las herramientas de manipulación de texto y las expresiones regulares intente la relación:

10.1.8.5. Planificación de tareas

Estudiaremos este aspecto sólo haciendo uso del método clásico con at y crontab. La relación de ejercicios correspondiente es ésta:

10.1.8.6. Escalada de privilegios

Hay un epígrafe dedicado a esta tarea, pero para nuestro nivel sólo requiere una lectura superficial que no implique llegar a saber cómo se configura sudo, sino simplemente:

  • Entender que hay distribuciones que usan preferentemente su y otras preferentemente sudo.

  • Que su suele usarse para abrir una sesión interactiva dentro de la cual llevar a cabo las instrucciones propias del administrador. La constraseña para su uso es la del adminsitrador. Por ejemplo:

    $ whoami
    usuario
    $ su -
    # whoami
    root
    # apt upgrade
    # apt update
    # exit
    $ whoami
    usuario
    
  • Que en las distribuciones que configuran en la instalación sudo, la configuración está pensada para que el usuario lo utilice como «prefijo» antes de la orden que requiere privilegios. Se le pedirá la contraseña del propio usuario sin privilegios, no la del administrador, la cual no existe:

    $ whoami
    usuario
    $ sudo apt upgrade
    $ sudo apt update
    $ whoami
    usuario
    

No se requiere hacer ninguna relación de ejercicios.