Mysh
Powerful & Versatile Shell
Extended Command-Line Features
Overview
Mysh is a powerful and fully functional shell that surpasses other built-in shells in terms of capabilities and performance. It provides an extensive range of commands and features, offering an enhanced user experience.
Mysh incorporates several built-in commands, including echo, ls, cd, cat, wc, pipes (|), bg (&), kill, ps, exit, start-server, close-server, send, and start-client. These commands enable efficient file manipulation, process management, networking functionalities, and more. With its comprehensive set of features, Mysh provides a versatile and reliable shell environment for users.
Details
Features and Functionality
The following are the commands supported by mysh:
- echo: prints the arguments to the standard output
- ls: lists the files and directories in the current directory
- cd: changes the current directory
- cat: prints the contents of a file to the standard output
- wc: counts the number of lines, words, and characters in a file
- pipes (|): redirects the output of one command to the input of another
- bg (&): runs a command in the background
- kill: terminates mysh process
- ps: prints the list of processes launched by the mysh process
- exit: terminates the mysh process
- start-server: starts the server on a specified port
- close-server: closes the server of current mysh process
- send: sends a message to the server given the server port
- start-client: starts a client on a specified port
Design
The design of mysh focuses on providing a comprehensive and high-performance shell with a wide range of functionalities, surpassing those of other built-in shells. It is built using a Makefile that produces the executable "mysh" and supports various compile flags for enhanced error handling. The shell includes built-in commands for file manipulation, process management, and networking, ensuring a robust and versatile user experience.
File Manipulation
Able to perform various file operations such as creating, copying, moving and deleting files, along with directory navigation and file permissions management, and ability to search for specific files using pattern maching.
Process Management
Launch, monitor and control processes with commands for process execution, termination, suspension and resumption; redirect input/output streams for efficient process communication and control.
Networking Functionalities
Establish network connections, send and receive data, handle network protocols for client-server communication.