I'm wondering if anyone knows of a clever way in Emacs when in a shell, can I directly open a file without having to open it in another Emacs instance.
I'm assuming you mean in the same window, not buffer.
From eshell its simple. You can run emacs lisp functions by simply typing them into eshell. This means you can type
to open file.txt. You could also make a nicer alias to this so you could do something like type "emacs file.txt" to do the same thing. The emacs wiki page on eshell aliases has several examples of this.
You can use with-editor in order to do that but you have to be running emacs as a daemon.
I don't know a solution to do that without using emacs as a daemon, if you ever find out I really am interested as I haven't yet investigated further.