LinuxCNC (dawniej Enhanced Machine Controller lub EMC2) – otwarte oprogramowanie umożliwiające kontrolowanie maszyn CNC za pomocą komputera osobistego. Rozpowszechniane jest zazwyczaj jako obraz ISO wraz ze zmodyfikowaną wersją systemu operacyjnego Debian.

Zastosowanie LinuxCNC daje możliwość wykorzystania komputera osobistego do sterowania maszynami, takimi jak frezarki, tokarki, przecinarki plazmowe i inne maszyny do cięcia, plotery, roboty i platformy Stewarta.

Oprogramowanie pozwala kontrolować do 9 osi lub przegubów maszyny CNC za pomocą instrukcji w języku G-code (RS-274NGC). Posiada zestaw interfejsów graficznych dostosowanych do konkretnych zadań (ekran dotykowy, interaktywny).

System zaprojektowany jest z myślą o wykorzystaniu w komputerach osobistych z architekturą procesora x86. Wykorzystuje on znacznie zmodyfikowane jądro Linuxa, umożliwiające pracę jako system czasu rzeczywistego (RTAI), aby obsługiwać urządzenia z silnikami krokowymi oraz serwomotorami.