TinyShell is a minimalist shell for operating system simulations, developed as part of the Operating Systems course at Hanoi University of Science and Technology (HUST). It provides a basic shell environment with commands for managing files, directories, processes, and system information.
To install TinyShell, follow these steps:
- Clone the repository:
git clone https://github.com/datphamvn/TinyShell_OS_HUST.git
- Navigate to the TinyShell directory:
cd TinyShell_OS_HUST
- Compile the source code (ensure you have the necessary compilers installed):
make all
Run TinyShell with the command:
./tinyshell
Once started, you can use the following commands within TinyShell:
help
: Provide help information for commands.cd ..
: Change to the parent directory of the current directory.cd <path>
: Change the current directory to the specified path. Use quotes for paths with spaces.dir | ls
: Display list of files in the current directory.mkdir <name>
: Create a new folder in the current directory.rmdir <name>
: Delete a folder in the current directory.date
: Display the current date.time
: Display the current time.run mspaint -f|bg
: Open MS Paint in foreground or background mode.run notepad -f|bg
: Open system Notepad in foreground or background mode.run [*.exe] -f|bg
: Execute an executable in the current directory in foreground or background mode.list
: Display list of processes.stop 'ID'
: Stop a running process.resume 'ID'
: Resume a stopped process.kill 'ID'
: Kill a running process.kill -a
: Kill all running processes.run [*.bat]
: Execute a batch file and run a list of command lines.env
: Display all environment variables and their values.env <name>
: Display the value of the specified environment variable.addenv -n <name> -v <value>
: Add an environment variable with the specified value.delenv <name>
: Delete the specified environment variable.clear | cls
: Clear the TinyShell console.exit
: Exit TinyShell.
- Command parsing and execution
- Directory navigation
- File and process management
- Environment variable manipulation
- System information display
We welcome contributions to TinyShell. If you have suggestions or improvements, please fork the repository, make your changes, and submit a pull request.
TinyShell is released under the MIT License. For more details, see the LICENSE file in the repository.