1. A method of running a command involving a plurality of machines, said method comprising: (a) providing code to interact with all the types of operating system used by the individual machines which comprise said plurality of machines, (b) obtaining a group of one or more commands from a command source, (c) parsing said group of commands according to a grammar which allows all of but may or may not require each of the following: (c1) parameters including a machine, username and current working directory to be associated with labels, (c2) commands from said group of commands to be split into a group of elements where elements from said group of elements may send output to or read input from other elements within said group of elements, (c3) each element within said group of elements to be associated with one of said labels thereby associating the parameters associated with said label with said element, (d) running said code to interact with operating systems where said code for interacting with operating systems is required in order to run said command and where said code for interacting with said operating systems is not already running in a suitable form as a result of previous commands executed using this method, (e) instructing and coordinating said code for interacting with operating systems so as to execute said command, whereby complex commands involving various elements on various machines can be executed