I'm not sure it matters that much. You could
fdisk -l /dev/sda ; However, usually
/dev/sda is your hard or SSD disk, and the USB stick would be e.g.
/dev/sdi (then run
fdisk -l /dev/sdi). Do a
dmesg just after plugging the stick to find out.
Be careful: very often
/dev/sda is your system disk.
Once a file system is mounted from the USB key, you might run fsstat(1) if you have that (e.g.
fsstat /dev/sdi1) and also df(1)
In practice, you very probably don't need, and won't be able to get reliably and faithfully, the page, sector, block sizes of an USB stick.
However, you'll better use not too small buffers when read(2)-ing or write(2)-ing them. I suggest using 32Kbytes or 64Kbytes buffer for USB key I/O operations. If you are going thru a filesystem most of the data is in fact in the page cache (and will probably be flushed at
You probably cannot easily find the physical page size of your devices (in particular, because the hardware is probably not giving any way to query it). If that matters, dive into the complete technical specifications of your hardware (and I won't be surprised if you needed to sign an NDA to get them).
You might consider using commands to query the hardware:
lsusb, etc... (but I believe they don't give what you want, because the hardware itself lacks such capabilities)
You could simply benchmark I/O operation with various buffer sizes (e.g. power of two from 512 bytes to 1Megabyte)