Original post : https://unix.stackexchange.com/a/310699
nmcli con add type wifi ifname wlan0 con-name Hostspot autoconnect yes ssid Hostspot
nmcli con modify Hostspot 802-11-wireless.mode ap 802-11-wireless.band bg ipv4.method shared
nmcli con modify Hostspot wifi-sec.key-mgmt wpa-psk
nmcli con modify Hostspot wifi-sec.psk "veryveryhardpassword1234"
nmcli con up Hostspot
If after reboot nmcli con up Hotspot doesn't work
Use this command instead to start Hotspot
UUID=$(grep uuid /etc/NetworkManager/system-connections/Hotspot | cut -d= -f2)
nmcli con up uuid $UUID

in the nmcli cmd code block, Hostspot should change to Hotspot, otherwise the UUID part will get no result.
and some system will add
.nmconnection, so it better to using this to get UUID (as long there is no other connection name start with Hotspot)UUID=$(grep uuid /etc/NetworkManager/system-connections/Hotspot* | cut -d= -f2)and for the last part, dnsmasq binary is needed to turn on the hotspot