is the command name. -l
is just one of many options you can add to it to determine what information is displayed and how. In this case it stands for the "long" format. man ls
will give you the documentation with the rest.
(single dot) is just the relative path character for the current directory (just as ..
means the containing directory), so ./filename
is simply the relative path to the file, meaning of course "filename in this directory". Generally you do not need to use it with simple command arguments such as with ls, as the P
irectory is usually considered the default by most programs. So ls -l filename
will work just fine. You only really need to add it when a full or relative path is expected, the most common case being launching scripts or executables when the current directory isn't in your PATH
environment setting, or when the program you are feeding it to doesn't know to look in the PWD
for some reason.
I recommend linuxcommand.org
for a good primer on how to navigate around the shell.