UC3M

Grado en Ing. Telemática/Sist. Audiovisuales/Sist. de Comunicaciones

Arquitectura de Sistemas

Septiembre 2017 - Enero 2018

13.4.4. Otros comandos útiles

El intérprete ofrece muchos comandos útiles. En esta sección vamos a repasar algunos de ellos. La funcionalidad detallada de cada uno de ellos la puedes acceder mediante el comando man. Esta es una selección de otros comandos:

  • date (mostrar la fecha actual). Con este comando se puede mostrar la fecha actual en el sistema que se está ejecutando. Se puede obtener según diferentes formatos, dependiendo de las opciones que se utilicen en su invocación. Ejecute el comando date y observe el resultado.

  • echo (imprime en la salida estándar). Imprime un cierto texto pasado como parámetro en la salida estándar. Por ejemplo, echo "Esto es una prueba" mostrará el texto correspondiente por pantalla.

  • Redirecciones de salida Todo comando que se ejecuta en un intérprete de comandos, por defecto muestra su resultado por pantalla. Pero si queremos que su resultado no se muestre por pantalla y en su lugar se guarde en un fichero, debemos utilizar lo que se denomina como redirección de salida. Cuando se realiza una redirección de salida, se debe indicar un fichero destino donde se va a almacenar la salida. Si el fichero destino indicado no existe, el efecto será que se creará uno nuevo donde se almacenará la salida. Si el fichero destino ya existe, se almacenará en dicho fichero. Existen dos maneras de redirección de salida: comando > fichero_destino en el que si el fichero ya existe se sobreescribe el contenido que anteriormente hubiera, y comando >> fichero_destino en el que si el fichero ya existe no se sobreescribe el contenido que anteriormente hubiera sino que se añade al final del fichero a lo que ya hubiera. Ejecute date > prueba.txt y observará que el resultado ya no sale por pantalla sino que se crea un nuevo fichero de nombre prueba.txt donde se almacenará la fecha actual del sistema. A continuación ejecute echo "Texto a poner tras la fecha" >> prueba.txt y observe que el nuevo texto resultado de la ejecución del comando, aparece en el fichero tras la fecha en lugar de por pantalla. Si finalmente ejecutamos ls -lart > prueba.txt observaremos que se sobreescribe lo que anteriormente hubiera en el fichero por el listado completo del directorio actual.

  • cat (print the content of files). Este comando imprime el contenido de los diferentes ficheros que son pasados como argumentos. Por ejemplo con cat prueba.txt puede ver el contenido del fichero prueba.txt

  • grep (search a string in a files). Busca un string en uno o varios ficheros. Aunque este comando tiene muchas opciones vamos a ver aquí dos casos típicos de uso. En primer lugar para buscar un string en un determinado fichero se utiliza grep string fichero. Por ejemplo, para buscar el string "la" en el fichero "prueba.txt", ejecutariamos grep "la" prueba.txt . Por otro lado, si queremos buscar un string en todos los ficheros por debajo de un determinado directorio, haremos lo siguiente, utilizando la opción -r grep -r string *

  • ps (print the current processes). Permite listar los procesos que están en ese momento en el sistema operativo. Por ejemplo, cuando ejecutamos un programa, en muchas ocasiones un sólo proceso es creado asociado a ese programa, aunque también se pueden crear varios procesos para un sólo programa. Probaremos a ejecutar ps que nos mostrará los procesos que hay en el sistema operativo. Si queremos obtener más información sobre los procesos, podemos añadir ciertos parámetros, por ejemplo ejecutando ps auxw obtendremos información más detallada sobre los procesos. Finalmente, vamos a crear un proceso que estará indefinidamente en el sistema. Para ello, pondremos una línea de código que represente un bucle infinito, esto es por ejemplo "while(1);" como esta condición se cumplirá siempre, entonces el proceso estará indefinidamente ejecutándose en el sistema. Esta condición la pondremos en el main de un fichero .c y compilaremos y crearemos el ejecutable. Seguidamente lanzamos el proceso en segundo plano (para que nos devuelva el control del intérprete de comandos) con ./programa &, si seguidamente ejecutamos ps auxw veremos el nuevo proceso que se ha creado. Si queremos eliminar el proceso, podemos enviarle una señal para terminar el proceso utilizando el comando kill. Para ello, deberemos ver el identificador del proceso PID tras la ejecución de ps auxw y seguidamente utilizar kill -9 pid

Preguntas de autoevaluación

Responde a las siguientes preguntas

  1. Seleccione la frase correcta

    • Los argumentos de un comando se dividen en: el nombre del comando y el caracter "-"

    • Los argumentos de un comando se dividen en: aquellos objetos sobre los que hay que operar, y los argumentos para modificar su comportamiento

  2. Seleccione la ruta equivalente a la ruta absoluta /dirA/dirB/fichero.txt

    • /dirA/dirB/././.././file.txt

    • /dirA/dirB/../dirB/file.txt

  3. Que hace el comando $mv Notes.txt notes.old?

    • Cambia el nombre del fichero Notes.txt a notes.old

    • Mueve el fichero Notes.txt a la carpeta notes.old

  4. Selecciona la frase correcta referente al comando rmdir:

    • Cambia el nombre de un fichero

    • Mueve un fichero

    • Borra un fichero

    • Borra un directorio

  5. Seleccione el comando correcto para buscar la cadena "wordl" en el fichero main.c

    • $grep 'wordl' main.c

    • $grep main.c 'wordl'

    • $grep main.c |'wordl'