For Unix users, there are a ton of really useful commands that I think every programmer should know. Granted, I am still finding new shortcuts everyday, but for the beginning programmer, I think these should help simplify your life and will be immensely helpful in time.
$ cd foo
Toggles between directories. Also helpful to know that .. toggles backwards. Separate directories in your path with slashes.
Lists all subdirectories within your current directory
$ cat foo.txt
Displays content of a file
$ cat foo foobar > foobar2
Creates a new file foobar2, containing copies of foo and foobar in that order
Alters permissions on files or directories using the system below:
|u user||+ adds a permission||r read|
|g group||- removes a permission||w write|
|o other||= assigns a permission||x executes files|
Makes a new directory
Brings up a list of previous commands in your buffer.
$ sudo !!
Re-runs your previous command as a root.
$ grep -r "foo"*
Searches for text in all files in your directories and subdirectories.
$ grep output.txt *.c
Searches within your code files for the specific file affecting the output.
$ service --status-all | grep firewall
Determines whether or not your firewall is running.
$ grep -n foobar foo.txt
Searches for text within file and outputs line numbers where the text appears.
There are honestly so many uses for grep, but I think we can move on here. These were just some of the more common concerns I was able to find.