Progra2
Clasificado en Informática
Escrito el en español con un tamaño de 23,68 KB
Especificar el comando LINUX que permita obtener en pantalla, mediante el comando ls, una lista del contenido del directorio /root/examen, en donde los nombres de archivos queden entrecomillados y separados por comas. ls -Q -m /root/examen Especificar el comando LINUX que permita listar todos los subdirectorios del directorio actual que tengan permiso de lectura, escritura y ejecución para el dueño, y lectura y ejecución para el grupo. lsl¦grep^drwxrx Especificar el comando LINUX que permita hacer que el C Shell sea el shell por defecto para el usuario root. chsh -s /bin/csh Escribir un Shell script que permita recibir un archivo y un directorio como argumentos, el script deberá verificar que efectivamente dichos argumentos se corresponden con un archivo y un directorio, respectivamente. El script deberá verificar e informar si el archivo existe en dicho directorio, sino el script deberá copiar el archivo en el directorio. #!/bin/bash
clear
if test -f $1
then
if test -d $2
then
ls $2 | grep -w $1
if test $? -eq 0
then
echo -e Archivo $1 existe en el directorio $2\n
else
cp $1 $2
fi
else
echo -e directorio no válido\n
exit
fi
else
echo -e archivo no válido\n
exit
fi Crear un archivo llamado personas.dat, donde los campos que forman cada registro son: nombre-persona, peso (en kilogramos) y estatura (en metros). El archivo tiene al caracter # como delimitador de campo, así por ejemplo, el archivo personas.dat podría tener los datos: Juan#80#1.75
Paulina#65#1.6 Escriba un programa AWK, llamado listado_imc, que permita leer el archivo personas.dat y generar el listado de personas con IMC (Índice de Masa Corporal) normal. Para valores entre 18.5 y 24.99 el IMC es considerado normal. El IMC se calcula como IMC=peso/(estatura)2.
El listado deberá tener el siguiente formato:
Listado de IMC Normal
NombreIMC BEGIN{FS=#; OFS=\t;
print Listado de IMC Normal;
print Nombre IMC}
{
imc=$2/($3*$3)
if (imc>=18.5 && imc<=24.99)
printf %-s\t%2.2f\n,$1,imc
}
La ejecución debería ser: awk -f listado_imc personas.dat Dado el siguiente contenido de la variable de ambiente PATH:
/usr/local/bin:/bin:/usr/bin:.
Si tengo un comando llamado lista en el directorio actual y otro llamado de la misma forma en el directorio /usr/bin ¿cuál sería el seleccionado al ejecutar lista simplemente en el prompt? Se ejecutaría el comando lista del directorio /usr/bin, pues el directorio actual (.) aparece después que /usr/bin en el PATH Escribir un Shell script que permita recibir dos archivos como argumentos, el script debe validar que los parámetros recibidos sean realmente archivos y que el primer archivo (archivo de entrada) dado como argumento no está vacío, luego deberá guardar en el otro archivo (archivo de salida), las líneas que comienzan con cualquier letra (minúscula o mayúscula) del archivo de entrada. #!/bin/bash
clear
if test -s $1
then
if test -f $2
then
grep ^[a-zA-Z] $1 >> $2
else
echo -e $1: archivo no válido\n
exit
fi
else
echo -e archivo $1 no existe o está vacío\n
exit
fi Especificar el comando LINUX que permita buscar y borrar, sin confirmación, todos los archivos regulares vacíos, cuyos nombres empiezan con la letra a y que se encuentran en el directorio /root/examen. find /root/examen -name a* -size 0 -type f -exec rm -f {} \; Crear un archivo, palabras.txt, que contenga una palabra distinta por cada línea. Especificar el comando LINUX que permita extraer hacia el archivo words.txt todas las palabras que empiecen y terminen con vocal (minúscula o mayúscula). Se debe crear palabras.txt con cualquier editor
grep ^[aeiouAEIOU] palabras.txt | grep [aeiouAEIOU]$ > words.txt Especificar el comando LINUX que permita crear el alias listar que permita limpiar la pantalla, poner la fecha y hora del día en líneas separadas, y listar los permisos de todos los archivos del directorio. alias listar=clear; date +%D%n%T; ls -al Utilizando piping, escriba el comando LINUX que permita obtener la cantidad de archivos ordinarios (o archivos regulares) que existen dentro del directorio actual de trabajo. ls -l | grep ^- | wc -l
Crear un archivo llamado notas_curso, donde los campos que forman cada registro son: nombre-alumno, apellido-alumno, primera-nota, segunda-nota, tercera-nota. El archivo tiene al caracter , como delimitador de campo, así por ejemplo, el archivo notas_curso podría tener los datos: Juan,Perez,3.5,4.7,5.3
Paulina,Fabres,2.5,4.7,3.4 Escriba un programa AWK, llamado listado_aprobados, que permita mostrar un listado en pantalla de los alumnos aprobados (promedio mayor o igual que 4.0). El listado deberá tener el siguiente formato: Listado de Aprobados
ApellidoNombrePromedio BEGIN {FS=,; OFS=\t;
print Listado de Aprobados;
print Apellido Nombre Promedio}
{
promedio=($3+$4+$5)/3
if (prom>=4.0)
printf %-s\t%-s\t%1.1f\n,$2,$1,prom
}
La ejecución debería ser: awk -f listado_aprobados notas_curso Dar los comandos LINUX que permitan fijar las variables de ambiente adecuadas de tal forma que el histórico de comandos incluya fecha y hora de ejecución de los comandos, y se eliminen del histórico las entradas duplicadas en TODO el archivo del histórico de comandos, respectivamente.
Basta con modificar las variables HISTTIMEFORMAT y HISTCONTROL en el archivo .bash_profile de los usuarios, por ejemplo: export HISTTIMEFORMAT=%F%T
export HISTCONTROL=erasedups
Considere una empresa, constituida por su casa matriz y tres sucursales. Debidos a problemas en la conexión desde las sucursales a casa matriz se ha decido testear constantemente las direcciones IP de dichas sucursales.
Escriba un Shell script, llamado testIP, que permita elaborar un archivo log con las pruebas de conectividad desde casa matriz a todas las sucursales. Las pruebas de conectividad se realizaran cada 5 minutos las 24 horas del día y los resultados deberán guardarse en el archivo testIP_sucursales.log, junto con la fecha y hora de la prueba de conectividad realizada. Las direcciones IP de las sucursales deberán proveerse al shell script en un archivo cuyo nombre será pasado como argumento a dicho script y cuyo formato es simplemente una dirección IP (las que se van a testear) en cada línea del archivo.
#!/bin/bash
clear
while true
do
for ip in $(cat $1)
do
echo -e +--------------------------------+>>testIP_sucursales.log
date +%D%t%T>> testIP_sucursales.log
ping -c 3 $ip>>testIP_sucursales.log
done
sleep 300
done
Escriba un Shell script, llamado mostrar_lineas, que permita, mediante el uso de while, mostrar todas las líneas no vacías, junto con el número de línea, de un archivo cualquiera leído desde teclado.#!/bin/bash
clear
echo -e Archivo: \c
read archivo
i=1
while read line
do
if test ! $line =
then
echo -e $i\t$line
i=$(echo $i+1 | bc)
fi
done < $archivo