Connecting to wireless networks from command line
I'm assuming you're using Ubuntu Desktop as you didn't specify otherwise.
You can create a wireless network configuration that will be managed by Network Manager by creating files in /etc/NetworkManager/system-connections
. Look at existing files to see how the format looks like.
Once the connection is created, you can use the nmcli
command to manage NetworkManager from the command line, doing things such as enabling, disabling and querying connections.
Incidentally, the System Testing tool (checkbox) has a script that does exactly this: creates a connection and enables it, with parameters that you supply on the command line.
For instance, this creates a connection to the open "duck" network:
sudo /usr/share/checkbox/scripts/create_connection duck
This will create a connection to a network using WPA2 security, with "wings" password:
sudo /usr/share/checkbox/scripts/create_connection -S wpa -K wings duck
The script is written in Python so it should be easy for you to look at and adapt to your needs.
The script's help says this:
Usage: create_connection [options] SSID
Options:
-h, --help show this help message and exit
-S SECURITY, --security=SECURITY
The type of security to be used by the connection.
One of wpa and wep. No security will be used if
nothing is specified.
-K KEY, --key=KEY The encryption key required by the router.
-U UUID, --uuid=UUID The uuid to assign to the connection for use by
NetworkManager. One will be generated if not
specified here.
-R RETRIES, --retries=RETRIES
The number of times to attempt bringing up the
connection until it is confirmed as active.
-I INTERVAL, --interval=INTERVAL
The time to wait between attempts to detect the
registration of the connection.