GithubHelp home page GithubHelp logo

luischaparroc / simple_shell Goto Github PK

View Code? Open in Web Editor NEW
18.0 4.0 29.0 104 KB

:shell: Command line interpreter for Unix-like operating systems

C 100.00%
unix-command-interpreter builtin-commands builtin shell c

simple_shell's People

Contributors

edward0rtiz avatar luischaparroc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

simple_shell's Issues

Simple shell 0.1

  • Display a prompt and wait for the user to type a command. A command line always ends with a new line.

  • The prompt is displayed again each time a command has been executed.

  • The command lines are simple, no semicolons, no pipes, no redirections or any other advanced features.

  • The command lines are made only of one word. No arguments will be passed to programs.

  • If an executable cannot be found, print an error message and display the prompt again.

  • Handle errors.

  • You have to handle the “end of file” condition (Ctrl+D)

Simple shell 0.4.1

  • handle arguments for the built-in exit

  • Usage: exit status, where status is an integer used to exit the shell

Simple shell 0.1.1

  • Write your own getline function

  • Use a buffer to read many chars at once and call the least possible the read system call

  • You will need to use static variables

  • You are not allowed to use getline

Simple shell 1.0.2 CD

Implement the builtin command cd:

  • Changes the current directory of the process.

  • Command syntax: cd [DIRECTORY]

  • If no argument is given to cd the command must be interpreted like cd $HOME

  • You have to handle the command cd -

  • You have to update the environment variable PWD when you change directory

Simple shell 1.0.5 alias

  • Implement the alias builtin command

  • Usage: alias [name[='value'] ...]

  • alias: Prints a list of all aliases, one per line, in the form name='value'

  • alias name [name2 ...]: Prints the aliases name, name2, etc 1 per line, in the form name='value'

  • alias name='value' [...]: Defines an alias for each name whose value is given. If name is already an

  • alias, replaces its value with value

Simple shell 1.0

  • Implement the env built-in, that prints the current environment

Simple shell 1.0.10

  • Usage: simple_shell [filename]

  • Your shell can take a file as a command line argument

  • The file contains all the commands that your shell should run before exiting

  • The file should contain one command per line

  • In this mode, the shell should not print a prompt and should not read from stdin

Simple shell 0.4

  • Implement the exit built-in, that exits the shell

  • Usage: exit

  • You don’t have to handle any argument to the built-in exit

Simple shell 1.0.1 setenv, unsetenv

Implement the setenv and unsetenv builtin commands

setenv

  • Initialize a new environment variable, or modify an existing one

  • Command syntax: setenv VARIABLE VALUE

  • Should print something on stderr on failure

unsetenv

  • Remove an environment variable

  • Command syntax: unsetenv VARIABLE

  • Should print something on stderr on failure

Simple shell 1.0.9 history

  • Implement the history built-in, without any argument

  • The history built-in displays the history list, one command by line, preceded with line numbers (starting at 0)

  • On exit, write the entire history, without line numbers, to a file named .simple_shell_history in the directory $HOME

  • When the shell starts, read the file .simple_shell_history in the directory $HOME if it exists, and set the first line number to the total number of lines in the file modulo 4096

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.