No one would use IPython if it were not more powerful than the standard terminal. Much of IPython's power comes from two features:
Shell integration
Magic commands
Any command starting with !
is passed directly to the operating system to be executed, and the result is returned. By default, the output is then printed out to the terminal. If desired, the result of the system command can be assigned to a variable. The result is treated as a multiline string, and the variable is a list containing one string element per line of output. Here is an example:
In [22]: myDir = !dir In [23]: myDir Out[23]: [' Volume in drive C has no label.', ' Volume Serial Number is 1E95-5694', '', ' Directory of C:\\Program Files\\Python 3.5', '', '10/04/2015 08:43 AM <DIR> .', '10/04/2015 08:43 AM <DIR> ..',]
While this functionality is not entirely absent in straight Python (the OS and subprocess libraries provide similar abilities...