Basic
What the shell actually does
I typed a command and a program ran. Between my words and that program sits the shell, and it does work I did not ask for: it expands wildcards, splits words, runs redirects, and picks which file a name refers to. Most shell confusion is confusion about that work, not about the program.
What you will see
One line per entry, with . and .. present. The -a flag reveals the entries the default listing hides.
About 2 min of reading
Data Flow
A line of text becomes a program call.
1
Read the line you typed
↓
2
Expand globs and split words
↓
3
Set up redirects
↓
4
Find the program and run it
Examples
The shell reads, then runs
The shell parses the line first: it expands globs, splits into words, sets up redirects. Then it finds the program and runs it with the arguments it decided on. The program never sees your original line.
Names are paths
A bare word is a path relative to the current directory. That is why the same command works in one folder and fails in another, and why an absolute path is the fix rather than more typing.
The shell has state
Current directory, environment variables, and exit status persist between commands. That state is why a session that worked once may not work again, and why a script sets its own state at the top.