You have two good options, foremost and extundelete.
extundelete - Is your first choice, it can recover the files with NAME!
foremost - is ugly, and recovery files by the sector number and type, but there is a better chance to recover. It will try to work even if the partition is damaged or with bad blocks, or of course in the entire disk if there is no partition anymore, it is formatted or a lot of other possibilities.
Both need the partition to be mounted read-only, and you will need a pendrive or another disk to save the recovered files.
A live -CD can help too for booting the system with the partition not mounted.
If you cant reboot your system, try using dd to create a image of your disk or partition in other place (bigger), never do this in the same disk or you will lost every chances for the recovery.
dd if=/dev/sda1 of=/mnt/otherbiggerpartition/test.img
cd /mnt/otherbiggerpartition/
foremost test.img
or
extundelete test.img
(with this you wont need to umount the partition but the chances of data recovery is reduced, and you need a bigger partition or disk, that the raw image of partition can be saved.)