Skip to content

Minishell: intérprete de comandos que soporta pipes, redirecciones y ejecución en background, manejando errores y señales del sistema.

Notifications You must be signed in to change notification settings

CodVictor/Minishell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Practica 2 - Minishell

Minishell es un intérprete de comandos diseñado para ejecutar mandatos en foreground y background, soportando pipes, redirecciones y mandatos internos. Esta práctica tiene como objetivo principal la implementación de un minishell funcional que cumpla con todas las especificaciones de manejo de procesos, señales y redirecciones.


Características principales

  • Ejecución de mandatos con uno o varios argumentos.
  • Soporte para pipes (|) entre múltiples mandatos.
  • Redirecciones:
    • Entrada: < fichero (solo en el primer mandato de un pipe)
    • Salida: > fichero (solo en el último mandato de un pipe)
    • Error: >& fichero (solo en el último mandato de un pipe)
  • Ejecución en background usando & mostrando el PID del proceso sin bloquear el prompt.
  • Manejo de señales:
    • SIGINT (Ctrl-C): no interrumpe el minishell ni procesos en background.
    • SIGTSTP (Ctrl-Z): detiene los procesos en foreground sin parar el minishell.
  • Mandatos internos:
    • cd: cambio de directorio con rutas absolutas o relativas, y acceso al HOME.
    • exit: termina el minishell de forma ordenada.
    • umask: establece o muestra la máscara de permisos para nuevos ficheros.
    • jobs: lista los trabajos en background o detenidos por SIGTSTP.
    • bg: reanuda la ejecución de trabajos detenidos en background.

Objetivos parciales

Objetivo Descripción Puntos
1 Ejecutar un mandato en foreground con 0 o más argumentos 0.5
2 Ejecutar un mandato en foreground con redirecciones de entrada y salida 1
3 Ejecutar dos mandatos en foreground con pipe y posibles redirecciones 1
4 Ejecutar más de dos mandatos en foreground con pipe y redirecciones 2.5
5 Ejecutar el mandato interno cd 0.5
6 Ejecutar mandatos en foreground y background con más de dos comandos, manejando jobs y bg 2
7 Manejar señales SIGINT y SIGTSTP correctamente 1
8 Ejecutar el mandato interno exit 0.5
9 Ejecutar el mandato interno umask 1

Nota: Todos los objetivos se deben cumplir con un único programa genérico. No se deben crear versiones separadas para cada objetivo.


Uso

  1. Compilar el programa (si aplica según tu implementación):
gcc -Wall -Wextra myshell.c libparser.a -o mishell -static
  1. Ejecutar el minishell desde la terminal:
./minishell

About

Minishell: intérprete de comandos que soporta pipes, redirecciones y ejecución en background, manejando errores y señales del sistema.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages