When I go to set a static IP address I usually just use “nm-connection-editor”. If you don’t have this, then “sudo apt-get install network-manager-gnome”.
In our application scenario, it is not convenient to use the GUI. In addition, if the IP address configured on the GUI is used, the device name and mac address may change when multiple network ports are used.
Once set with the nm-connection-editor the setup does not require the GUI. It is Wi-Fi which tends to configure during GUI login. Incidentally, you could see what files change in “/etc” after setup with nm-connection-editor (e.g., you could rsync “/etc” before and after the setup…rsync would tell you which files changed). It would be a lot of output, but you could also run nm-connection-editor in strace and dig out the file edits from the log. Networking setup became a real pain once network management was added, although it was probably a necessary pain.
Note: Networking was a lot easier before systemd services were introduced. This added networking management and ended simple bash script setup.