Todas as respostas acima funcionarão perfeitamente, mas podem causar falsos positivos se você tiver a string em mais do que apenas o código-fonte. Digamos que você esteja procurando onde você usa a classe FooBar em um projeto java, você pode procurar por todos os arquivos chamados * .java e grep.
# grep "FooBar" -Hn $(find -name "*.java")
A seção entre o $ () será expandida para a saída desse comando. O -H imprime o nome do arquivo. É o padrão onde há mais de um nome de arquivo, mas explicitamente o adicionamos aqui caso a expansão retorne apenas um nome de arquivo. O -n imprime o número da linha da partida.
Isso funcionará para projetos pequenos, mas se você estiver lidando com um projeto maior, haverá a possibilidade de a descoberta se expandir para uma cadeia maior do que o limite da linha de comando. Por isso, é mais seguro usar:
# find -name "*.java" -print0 | xargs -0 grep "FooBar" -Hn
O xargs recebe a entrada do padrão e a divide para que ela caiba na linha de comando, executando o comando várias vezes, se necessário. Os -print0 e -0 são necessários para lidar com arquivos com espaços em seus nomes.
Você também pode procurar todos os nomes de arquivos com uma correspondência:
# find -name "*.java" -print0 | xargs -0 grep "FooBar" -l
O -l exibirá apenas o nome do arquivo e parará de procurar em um determinado arquivo assim que encontrar uma correspondência.
Se você estiver fazendo esse tipo de coisa com frequência, convém examinar uma ferramenta como ctags ou tags exuberantes, que mantêm um índice de pesquisa do seu código-fonte e podem responder a esse tipo de pergunta rapidamente. Tanto o vim quanto o emacs têm suporte para essas ferramentas. Você também pode gostar de ver uma IDE como eclipse, que pode fazer referência cruzada muito bem.
(Eu sei que você estava procurando por uma definição de classe, mas em Java uma classe será definida em um arquivo com o mesmo nome da classe. Se você estivesse fazendo cpp, você poderia fazer algo como:
# find -name "*.cpp" -o -name "*.cc" -o -name "*.h" -o -name "*.hpp" -print0 | \
xargs -0 egrep "class\s+FooBar" -Hn