shellresumen
TRANSCRIPT
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
1.- inicio shell
2.- ingreso de comandos
Y el comando apagareq
Apaga la pc
Código fuente
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#include <dirent.h>void ingreso(){
char command[20];printf("# ");scanf("%s",&command);if (strcmp(command,"hora")==0){
hora();}
else{
if (strcmp(command,"limpiar")==0){
system("clear");ingreso();
}else{
if (strcmp(command,"!!!")==0){
ayuda();ingreso();
}else{
if (strcmp(command,"laninfo")==0){
laninfo();ingreso();
}else{
if (strcmp(command,"salir")==0){
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{
error(1);
ingreso();}
}}
}}
}}
}}
}}
void ayuda(){
printf("Shell del sistema v0.1rc");printf("\nhora --> muestra la hora del sistema\n");printf("\nlimpiar --> Limpia la pantalla\n");printf("\n!!! --> Muestra esta pantalla de ayuda\n");printf("\nlaninfo --> Muestra la información de la red cableada\n");printf("\nsalir --> Salir de la shell\n");printf("\ninfo --> muestra la información del sisema\n");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 wireless\n");printf("\napagareq --> Apaga el sistema\n");
}int hora(){ time_t rawtime; time ( &rawtime ); printf ( " %s", ctime (&rawtime) );
ingreso();}void info(){
system("./inform.sh");}void laninfo(){
system("ifconfig eth0");
}void wlaninfo(){
system("ifconfig wlan0");}void listado(){
struct dirent **entradas= NULL;int numeroEntradas;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;
}void usuario(){
system("whoami");}int error( int num_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();
}int main(){ingreso();return 0;}