Linux: Difference between "<" and "|"

Linux question:

What's the difference between using "<" and "|" when combining bash shell commands? Don't both refer to stdin, the only difference being the order? And couldn't you just enter something directly into a command rather than using both of the above? For example:

$ ls < pwd

and

$ pwd | ls

and

$ ls pwd

Does anybody know how to clearly explain the difference between all these different stdin things, and what the conceptual differences between "<" and "|" are? I'm totally new to this...

Thanks a lot!

 

 

 

 

Top