Use avrdude.
The command format is simple, assuming you have installed it from the Linux repositories:
avrdude -carduino -patmega328p -P/dev/ttyUSB0 -b115200 -Uflash:w:/path/to/project.bin.hex:i
Depending on what bootloader is installed in your nano you may need to change the baud rate (-b115200) to 57600. Also, of course, the USB device should be set to what your board actually identifies as.
The breakdown of the command is:
-c<programmer type>
-p<part name>
-P<port>
-b<baud rate>
-U<instruction>
The programmer type, part name and baud rate can all be gleaned from the boards.txt file in the AVR core files. For example, for the Nano:
nano.upload.protocol=arduino
nano.menu.cpu.atmega328.upload.speed=115200
nano.menu.cpu.atmega328.build.mcu=atmega328p
relate to -c -b and -p respectively. The instruction will always be the same, and means "Write to flash the following file in IHEX8 format". "flash" is the destination memory, "w" is the write command, and ":i" at the end defines the expected file format.
On a Linux computer with avrdude installed you can find much more information with man avrdude.