Interactive Mode: Users can enter commands one at a time and receive immediate output or results.
Non-Interactive Mode: Users can provide a script or a file containing a series of commands to be executed by the shell.
Command Execution: The shell supports executing various commands available in the operating system, including both built-in commands and external programs.
Input/Output Redirection: Users can redirect input from a file or redirect output to a file, enabling data to be read from or written to external files.
Pipeline Support: Users can chain multiple commands together using the pipe operator (|), allowing the output of one command to serve as the input to another.
Command History: The shell maintains a command history, allowing users to recall and execute previously entered commands using the up and down arrow keys.
Environment Variables: Users can set and modify environment variables within the shell, enabling customization and configuration.