UNIVERSIDAD TÉCNICA DE AMBATOFACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACIÓN     CARRERA DE DOCENCIA EN INFORMÁTICA        ...
RESUMENHay que tomar en cuenta algunos pasos para crear una ShellQue es una Shell.- En informática, el término Shell se em...
int c=0;    int x=wherex();    int y=wherey();    do{     op=getche();     if (op==8)     {       if (c>0)       {        ...
if (l1<l || l2<l)      resultado=1;    else    {      int i;      for(i=0; i<l; i++)      {        if(cmd1[i]!=cmd2[i])   ...
void Directorio(char cmd[]){  //Obtener el directorio  char ruta[80];  char dir[80];  int i=0,j=0,k=0;  int l=strlen(cmd);...
Lista(ruta, dir);}void main(){  char cmd[80];  int salir=0;    clrscr();    printf("C:>");    do{     Ingresar(cmd);     i...
Upcoming SlideShare
Loading in …5
×

Shell

1,285 views
1,212 views

Published on

codigo de una shell para Xp

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,285
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
29
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Shell

  1. 1. UNIVERSIDAD TÉCNICA DE AMBATOFACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACIÓN CARRERA DE DOCENCIA EN INFORMÁTICA SEMESTRE SEPTIEMBRE 2011 – FEBRERO 2012 SISTEMAS OPERATIVOS TEMA: SHELL Integrantes: JUAN VALENCIA MARCOS VAYAS
  2. 2. RESUMENHay que tomar en cuenta algunos pasos para crear una ShellQue es una Shell.- En informática, el término Shell se emplea parareferirse a programas que proveen una interfaz de usuario para acceder alos servicios bien una vez que ya sabemos que es una Shell veamos 1. Primero hay que saber en dónde y en qué sistema operativo vas a trabajar , por esta razón de que si hacemos una Shell para XP esta no correrá en vista o mucho menos en otro sistema operativo 2. Entonces debemos crear librerías para esta Shell en este caso de nosotros crearemos tres comandos Estas son: 2.1 Para ver el directorio Esta tendrá el nombre de “directorio” el mismo que puede ser modificado en el código fuente 2.2 Para limpiar la pantalla Este comando se llamara “limpiar” el mismo que puede ser cambiado en el código fuente de la misma manera que todas las instrucciones o comandos 2.3 Para salir de la pantalla principal o de modo consola Utilizaremos una instrucción llamada “salir” A continuación se mostrara el código fuente que se utilizo# include <stdio.h># include <conio.h># include <string.h># include <dir.h>void Imprimir(int x, int y, int c, char cmd[]){ int i=0; gotoxy(x,y); for(i=0; i<c; i++) { printf("%c",cmd[i]); } printf(" "); gotoxy(x+c,y);}void Ingresar(char cmd[]){ char op;
  3. 3. int c=0; int x=wherex(); int y=wherey(); do{ op=getche(); if (op==8) { if (c>0) { c--; } } if (op!=13 && op!=8 && op!=27) { cmd[c]=op; c++; } Imprimir(x,y,c,cmd); }while(op!=13); cmd[c]=0;}int Comparar(char cmd1[], char cmd2[]){ int resultado=0; int l1 = strlen(cmd1); int l2 = strlen(cmd2); if (l1!=l2) resultado=1; else { int i; for(i=0; i<l1; i++) { if(cmd1[i]!=cmd2[i]) { resultado=1; break; } } } return resultado;}int CompararParte(char cmd1[], char cmd2[], int l){ int resultado=0; int l1 = strlen(cmd1); int l2 = strlen(cmd2);
  4. 4. if (l1<l || l2<l) resultado=1; else { int i; for(i=0; i<l; i++) { if(cmd1[i]!=cmd2[i]) { resultado=1; break; } } } return resultado;}void Limpiar(){ clrscr();}void Lista(char ruta[], char dir[]){ struct ffblk ffblk; int done; if (dir[0]==0) { printf("nArchivos del Directorio actual %sn",dir); } else { printf("nDirectorio de %sn",dir); } if (ruta[0]==0) { done = findfirst("*.*",&ffblk,0); } else { done = findfirst(ruta,&ffblk,0); } while (!done) { printf("t%sn", ffblk.ff_name); done = findnext(&ffblk); }}
  5. 5. void Directorio(char cmd[]){ //Obtener el directorio char ruta[80]; char dir[80]; int i=0,j=0,k=0; int l=strlen(cmd); for(i=l-1;i>=0;i--) { if(cmd[i]== ) { break; } } k=0; if(i>0) { for(j=i+1;j<l;j++) { ruta[k]=cmd[j]; k++; } } ruta[k]=0; l=strlen(ruta); k=0; for(i=l-1;i>0;i--) { if(ruta[i]==) { k=1; break; } } if(k==1) { for(j=0;j<i;j++) { dir[j]=ruta[j]; } dir[j]=0; } else { dir[0]=0; }
  6. 6. Lista(ruta, dir);}void main(){ char cmd[80]; int salir=0; clrscr(); printf("C:>"); do{ Ingresar(cmd); if(Comparar(cmd,"salir")==0) { salir=1; } else { if(Comparar(cmd,"limpiar")==0) { Limpiar(); } else { if(CompararParte(cmd,"enlistar",3)==0) Directorio(cmd); else printf("nEl comando es incorrecto"); } } printf("C:>"); }while(salir==0);}

×