Este documento describe un shell creado en C con 6 funciones que incluyen mostrar la hora, limpiar la pantalla, mostrar ayuda, mostrar información de red, salir de la shell y listar archivos. Explica las librerías utilizadas y capturas de pantalla del shell en ejecución y el comando para apagar la PC. Finalmente incluye el código fuente del shell.
1. Shell
Resumen creación
Grupo: Épsilon
Este trabajo está realizado en lenguaje c y puede ser compilado con gcc tiene 6
funciones
Librerías a utilizar
#include<stdio.h> instrucciones del lenguaje
#include<stdlib.h> para llamadas al sistema
#include<string.h> para trabajar con cadenas
#include<time.h> para trabajar con fechas y horas
#include<dirent.h> sirve para trabajar con archivos y directorios
Comandos creados para la Shell
hora --> muestra la hora del sistema
!!! --> muestra esta pantalla de ayuda
info --> muestra la información del sistema
laninfo --> muestra la información de la tarjeta de red
wlaninfo --> muestra la información de la tarjeta de red inalámbrica
limpiar --> limpia la pantalla de la Shell
usuario --> muestra el usuario del pc
apagareq --> apaga la pc
salir --> salir de la Shell
list --> listado de archivos contenidos en la carpeta actual
Captura de pantallas
5. exit(1);
}
else
{
if (strcmp(command,"info")==0)
{
info();
ingreso();
}
else
{
if (strcmp(command,"list")==0)
{
listado();
ingreso();
}
else
{
if
(strcmp(command,"usuario")==0)
{
usuario();
ingreso();
}
else
{
if
(strcmp(command,"wlaninfo")==0)
{
wlaninfo();
ingreso();
}
else
{
if
(strcmp(command,"apagareq")==0)
{
system("sudo halt");
}
else
6. {
error(1);
ingreso();
}
}
}
}
}
}
}
}
}
}
}
voidayuda()
{
printf("Shell del sistema v0.1rc");
printf("nhora --> muestra la hora del sisteman");
printf("nlimpiar --> Limpia la pantallan");
printf("n!!! --> Muestra esta pantalla de ayudan");
printf("nlaninfo --> Muestra la información de la red cableadan");
printf("nsalir --> Salir de la shelln");
printf("ninfo --> muestra la información del siseman");
printf("nlist --> Listar archivos en la presente carpeta");
printf("nusuario --> Muestra el usuario que está actualmente conectado");
printf("nwlaninfo --> Muestra información de la red wirelessn");
printf("napagareq --> Apaga el sisteman");
}
inthora()
{
time_trawtime;
time ( &rawtime );
printf ( " %s", ctime (&rawtime) );
ingreso();
}
void info()
{
7. system("./inform.sh");
}
voidlaninfo()
{
system("ifconfig eth0");
}
voidwlaninfo()
{
system("ifconfig wlan0");
}
voidlistado()
{
structdirent **entradas= NULL;
intnumeroEntradas;
int i;
numeroEntradas = scandir (".", &entradas, NULL, NULL);
for (i=0; i<numeroEntradas; i++)
{
printf (" %s ", entradas[i]->d_name);
free (entradas[i]);
entradas[i] = NULL;
}
printf("n");
free (entradas);
entradas = NULL;
}
voidusuario()
{
system("whoami");
}
int error( intnum_err )
{
char *errores[] = {
"No se ha producido ningún error",
"Comando desconocido , escriba !!! para mostrar una lista de los
comandos",
"No hay espacio en disco",
"Me he cansado de trabajar"
};
printf( "Error número %i: %s.n", num_err, errores[num_err] );
ingreso();