ImageMagick should meet your requirements, as your requirements mention a GUI is optional. I'm using that for "batch compression" all the time, which is as easy as
mogrify -quality 70 *.jpg
(this example compressing all JPEG images in the current working directory to 70%).
- Support .png and .jp(e)g files: Yes, and many more formats.
- Bulk functionality to compress a lot of images at once: Yes, as pointed out :)
- Free: Yes, open-source.
- Linux: Yes, and in the repos of all major distributions
- GUI: Oh: Yes, infact there is – by the command
display
display
offers a GUI to ImageMagick (source: ArchLinux Wiki; click image for larger variant)
be a command line tool with no gui interface
..I prefer with a GUImogrify -quality 70 *.jpg
, for example.