Arduino CLI compile and upload
$ arduino-cli compile --fqbn arduino:avr:uno MyFirstSketch Sketch uses 932 bytes (2%) of program storage space. Maximum is 32256 bytes. Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.
then
$ arduino-cli upload -p /dev/ttyACM0 --fqbn arduino:avr:uno MyFirstSketch