Android is based on Linux and has a Linux kernel underneath. Is there any way I can use shell commands and interact directly with the Linux system? E.g. A shell app that has access to the Linux system?
Yes there is,
Check out the application
Better Terminal or
Android Terminal Emulator both are support from 1.5
If you have a wireless network set up I can recommend to connect via SSH. It allows you to access and fully manage your Android in a few minutes. For Linux or Putty users there is no difference to a standard terminal using SSH besides some specific Android commands. Moreover, some file managers such as Nautilus support the SSH protocol so you will have the flexibility of a shell and additionally the comfort for file operations using a graphical file manager. I liked SSH so much that I have written a small how-to for Android (in German). I know, it might not fully apply to your question but can be considered while working with an additional computer and an Android phone.
An easy to use SSH server is SSH Droid, available in the Google market.
Recently I had similar requirement, and I found 'busybox' utility. The terminal emulator apps are useful however those support very few commands. However 'busybox' gave me access to most of the generally used Linux commands.
Here is how I used it.
The Scripting Layer for Android also includes a shell.