I use Ultra-Edit text editor to get to the PC command line.
You can use the USBasp to load the bootloader-inclusive hex file into the AVR and have the sketch active and bootloader restored. There are actually two hex files: one has the bootloader along with a mapping of all the unused flash beyond the program end, and the other file is just the Intel hex encoding of the program code. This will compile your code into a hex file located in the same folder as the. You can -sometimes- (actually usually it happens always, but this is Arduino.) reload the bootloader along with your code into the AVR by using the Export Binary compiled feature in the Sketch menu (Control+Alt+S).
But happens thousands of times a day in the real world. In theory, if I read the data sheet correctly, you shouldn't be able to overwrite the bootloader. In theory, if I read the data sheet correctly, a certain fuse setting will protect the bootloader section from being overwritten by new application code. One of the first things that the ISP process often does (according to the AVRdude docs) is erase the flash memory in the CPU. Yes, you will erase the bootloader in an Arduino Nano or UNO by using the ISP cable (connected to a USBasp device) to load code.