Eva-01 features:
Table of Contents
- Light Weight
- Fast
- Cross-Platform
- User friendly
I have seen the Neon Genesis Evangelion anime by Hideaki Anno, and was really moved by the concepts of EVAs. EVA-01 run by the protagonist was a special one for me as it could change to berserk mode and many other different capabilites. Also, I was moved by the NERV HQ as mentioned in anime and its computer system having central dogma and terminal dogma.
Based on this computer system mentioned in anime, the eva-01 also has two header files - CentralDogma.hpp and TerminalDogma.hpp.
- The main
parseCommand()function, is used to execute commands, store them in history, also the logic for||,;, and&&are implemented. Along with that the command to run a command from history with its index is also implemented -!<index_number> - Inside it has a registry keeping the records of the commands along with the names with which they will be called. The registry filling is done inside the main function.
searchHistory()function is used byhistoryfunction inside theTerminalDogmato search particular commands with related names.
- It has a brief abstract base class for all eva-01 shell commands. It defines the common interface for every shell command. Each command has its own behaviour in
execute()and thedescription()is written inside the header file only. - All the commands implemented inside it are described in the commands section.
- For the
calc()function many other functions likeisNumber(),isLeftAssociative(),precedence(),postfix()- to change infix to postfix along with brackets,solvePostfix()are implemented. sys()--
For windows (took help from learn.microsoft.com, all the link are provided for the documentation of specific functions) -
- For the harware information - getting harware information
- For the system information - getting system information
- For getting the processes - taking snapshot and view process
- For getting the information of DNS server, adapters information - ip helper from microsoft
-
In linux -
- For getting info about network and adapters -
man getifaddrs; inet_ntop() β convert IP addresses, sockaddr_ll β read MAC addresses
- For getting info about network and adapters -
-
- probe - Network diagnostics tool with real-time latency visualization.
probe <host> [-c count] [-t] [-i interval]-c : Number of packets to send (default: 4) -t : Continuous ping -i : Interval between pings in ms (default: 1000) - history - It shows all the previous commands executed and also searches commands related with command name(s) given. To run a particular command from history with their index -
!<index_number> - shift - Moves and renames files/folders.
shift <file1> <folder1/file1>orshift <folder2/folder3> <folder4/folder3>You need to give the name of the file/folder along with the destination you want to move. For renaming you just need to give a new name in the second arguement. - view - Displays the content of the files.
view <file1> <file2> <...> - time - It just shows you the time.
- forge - It makes directory. Command -
forge <directory1> <directory2> <...> - sys - It can be used to interact with the system and processes. Also it shows specific things related to the system.
- sys - shows system and hardware informations.
- -p | --proc - shows all the processes.
- -n | --network - shows information about your network and it's adapters.
- -a | --adapters - shows information about adapters.
- calc - Just a simple calculator.
- say - Prints text to the console and also write and appends text into files which are in double quotes only
and ends with >> and file name with proper space.
say <text>orsay <"text"> >> <filename> - clear - Clears the console.
- show - Shows all the folder and files present in the working directory.
- jump - Changes the directory to the given directory.
- help - Gives information about the commands
- erase - Deletes the provided files and folders.
erase <file1> <folder1> <file2> <...> - craft - Creates files only.
craft <file1> <file2> <...> - run - Runs the commands stored in
<filename.eva>or<filename.txt>, one by one.
-
sys -nandsys -ashows information about dns server, IF index (Windows), ipv4 or ipv6 address for adapters. -
probefunction basically works like ping as in windows to ping a given host. It is a simple packet sniffer with some basic details and a graph (simple). If you give the-tflag it will run continuously unless you stop it.-iflag is just interval the function will sleep between two consecutive pinging.
Run (windows only)-
g++ -Iinclude src\main.cpp src\CentralDogma.cpp src\TerminalDogma.cpp -lPsapi -lkernel32 -ladvapi32 -o eva-01
then run the eva-01.exe
or
mingw32-make or make to run the makefile
Go to the latest release and download the eva-01.exe Then run it.
Run (linux/unix) -
g++ -Iinclude src/*.cpp -o eva-01
-
calc 96/2 || say ok ------>(It shows 48 as the first command is running successfully, so the second command will not run) view a.txt && say hello ------>(If a.txt is there then its content along with hello is displayed. But if it is not present, then hello will not be displayed) view a.txt ; say hello; craft "hello world.txt" ------>(All this commands will be executed one by one, irrespective of the output) run << hello.txt----> All the commands inside hello.txt written one by one are executed. Sample hello.txt -calc 2+4/(3*1) craft a.txt && say "hello world" >> a.txt
- A tool to ping or a packet sniffer.
- A tool to make api requests.
- Command to kill or run processes.
- Executing commands that run other processes like running a python or cpp file.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b my-branch) - Commit your Changes (
git commit -m 'Add some advices') - Push to the Branch (
git push origin my-branch) - Open a Pull Request
Support me by giving a β¨ to this project
The license is GNU public license see more n LICENSE
This is all the things about my program. If you like it, then please share with others. This is a project which the begineers as well as intermediate programmers can build. Support me by following my github account. Thank you.
