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.
dired-jump. It uses the current shell directory.
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.
I'm not sure if this is exactly what you're asking, but I have an eshell alias to open up files the same way I would in a terminal
alias emacs find-file $1
Then from eshell, if I want to open up a file I just need to type
emacs $FILENAME and it will open the file in a new buffer.