Which Arduino board do you use ? (since you use pin 1).
We don't use the Serial.readString(). Its behaviour is not well defined.
We even try to avoid the String class on a Arduino Uno.
I would like a good description of the commands that can be entered. This is where most beginners fail, so I hope that you can do this. Here are some notes to think about:
You use the ';' as seperator, but there is no ';' after the last command ?
What is at the end of a line ? A CarriageReturn or LineFeed or both or neither ? Suppose that you upload a file with commands, what is at the end of the lines in that case ?
Should there be a timeout ? Suppose that you have two commands "BLINK1" and "BLINK100". If you receive "BLINK1", how long do you wait for "00" that might or might not come ?
Do you want to add a parameter in the future ? For example blinking a led at pin 5 with 2 blinks per second: "BLINK:5:2;" or send a floating point number: "OFFSET:3.1415;". How about sending text ?
Do you want to request data in the future ? For example requesting the version of the code: "GETVERSION;" and the Arduino will reply with "2.01.02;".
The Serial input basics have a demo-code in post 2
where a start-marker and an end-marker is used to separate commands from each other.
So if you can change the character-sequence that you are sending to the arduino to look like this
<LED1ON><LED2OFF><LED3BLINK><LED4ON>
where the "<" acts as the startmarker and the "<" acts as the endmarker,
each time the end-marker is received the flag newData becomes true and you can process this one command. And then continue with reading from the serial inputbuffer.
Depending on how much characters you want to send at once you must iterate through your whole code very fast. Otherways if the number of sended characters exceeds the number the serial receive-buffer can hold some characters will get lost.