I see, so what you're really after is a "Desktop" search engine.
Personally I recommend tracker along with tracker-search-tool, in my experience it works well, of course your mileage may vary. Other options include Beagle, Strigi and... I think that's it.
As far as shell commands go, you can use 'locate' or 'find' when you know the name or part of the name of the file you're looking for. For actually searching through files looking for a string you can use 'grep'
i.e.
grep -niHR "some string" .
would look recursively through every file trying to find a match for "some string" and print the filename along with the line number that matched, though if you have a lot of folders/files in the current directory this will probably be much slower than using something which indexes your files.