https://github.com/derlin/os-tp-shell
A simple shell implemented for the course 'Operating Systems 2, EIA-FR'
https://github.com/derlin/os-tp-shell
Last synced: 9 months ago
JSON representation
A simple shell implemented for the course 'Operating Systems 2, EIA-FR'
- Host: GitHub
- URL: https://github.com/derlin/os-tp-shell
- Owner: derlin
- Created: 2014-12-19T18:48:49.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2014-12-19T18:51:20.000Z (over 11 years ago)
- Last Synced: 2025-03-13T14:43:35.932Z (about 1 year ago)
- Language: C
- Size: 199 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
This is a simple shell, which normally handles common commands and does not crash upon errors. The skeleton was provided.
Context: Techniques avancées de programmation,
Systèmes d'exploitation 2, I3
Organization: EIA-FR
Date: 19 Dec. 2014
Author: Lucy Linder
Purpose:
This TP should help us understand the logic behind a shell and learn the basics of system calls in Linux using the C language.
----------------------------------------------------------------------------
# Tasks
A skeleton is provided. Students have to:
- implement the invoke command (execute external commands), allowing pipes and redirects
- add support for variable expansion
- implement history and the commands h1-h10
- add support for redirect in built-in commands
- implement the cd command
----------------------------------------------------------------------------
# Notes
I added a comment at the top of each created/modified file, which explains the purpose, modifications, todos and/or bugs that could persist. Please, refer to them if you have a doubt.
The makefile provided two commands: all and clean.
The .o and .d are created in the bin/ directory. If you run it on different systems, don't forget to make clean before trying to compile again.
I noticed some bugs in the provided implementation and also improved the way it coped with user errors. For more details, see the file headers (mostly my_shell.c).