2.6.3. Ejercicios sobre redirecciones

  1. Sin usar un editor de textos, escriba en el archivo /tmp/burguillos.txt el siguiente verso:

    Rico en inverno y pobre en el estío,
    
  2. Ídem, pero mostrando por pantalla y, a la vez, guardando en el mencionado archivo.

  3. Añada con una sola orden los dos siguientes versos al anterior archivo:

    parezco en mi fortuna el Manzanares,
    que con agua o sin ella, siempre es río.
    
  4. Dentro del código de un script necesitamos saber si un módulo del kernel está cargado, y mirando documentación hemos visto que:

    # modprobe -n --first-time nombre_modulo
    [.. información o mensaje de error que no nos interesa ..]
    # echo $?  # El resultado (0/1) está disponible en $?
    

    hace lo que deseamos, ya que la orden funciona (devuelve 0) si el módulo no está cargado y falla (devuelve 1) si ya está cargado o no existe. Para nuestro script sólo tiene interés el resultado y no el mensaje de información (salida estándar) o el de error (salida de errores), así que deseamos escribir la orden de modo que no se vea ningún mensaje. ¿Qué debemos añadir a la orden para que así sea?

  5. Liste paginado el contenido del directorio /usr/bin.

  6. ¿Cuántos usuarios locales tiene definidos mi sistema? ¿Cuántos usuarios en total? No los cuente a mano, que el sistema lo haga por usted.

    Nota

    Por si aún no sabe consultar usuarios, el archivo /etc/passwd contiene la lista de usuarios locales, mientras que la lista de usuarios totales se puede obtener con:

    $ getent passwd
    
  7. Pase a maýusculas la lista de usuarios locales.

  8. Observe lo siguiente:

    $ tar sjsjsjss
    tar: Debe especificar una de las opciones `-Acdtrux', '--delete' o '--test-label'
    Pruebe 'tar --help' o 'tar --usage' para más información.`
    

    Ingénieselas para ver el mensaje de error en mayúsculas.

  9. Convierta el archivo /tmp/salida.txt en la salida estándar, ejecute algunas órdenes que impriman algo y vuelve a hacer la pantalla la salida estándar. Finalmente, compruebe que la salida de las órdenes se guardó en el archivo.

  10. Defina con una sola orden las variables a, b y c con valores 1, 2 y 3, respectivamente.

    Nota

    ¿Se acuerda de read y que es capaz de almacenar en variables lo que se le proporciona por la entrada estándar?