220

Other posts seems to be addressing more complicated network connection issues from the command line.

The Unity panel Network indicator/button doesn't respond too well sometimes - it keeps trying to connect to a network even when i click on "disconnect", stuff like that.

So I want to go command line for the control. I don't like GUIs anyway.

Is there not some simple command line tool which can do something like the following?

wifi connect MyNetworkNameA
wifi disconnect
wifi connect MyNetworkNameB
cmo
  • 6,558

4 Answers4

276

I think you want to keep using managed interface (by NetworkManager). nmcli is a command‐line tool for controlling NetworkManager.

  • To see list of saved connections, use (<SavedWiFiConn>)

      nmcli c
    
  • To see list of available WiFi hotspots (<WiFiSSID>)

      nmcli d wifi list
    

    or:

      sudo iwlist <WifiInterface> scanning
    
  • To see list of interfaces (<WifiInterface>)

      ifconfig -a
    

    or

      ip link
    

Just change <WifiInterface>, <WiFiSSID>, <WiFiPassword> in the following commands to reflect your setup. If WiFi info already saved, easier way using <SavedWiFiConn> name of connection as it was saved in NetworkManager.

Ubuntu 16.04 and the following

##disconnect
nmcli d disconnect <WifiInterface>

##connect nmcli d connect <WifiInterface>

Another way:

##disconnect
nmcli c down <SavedWiFiConn>

##connect nmcli c up <SavedWiFiConn>

Ubuntu 15.10 & previous

##disconnect
nmcli d disconnect iface <WifiInterface>

##connect nmcli d wifi connect <WiFiSSID> password <WiFiPassword> iface <WifiInterface>

Another way:

##disconnect:
nmcli c down id <SavedWiFiConn>

##connect: nmcli c up id <SavedWiFiConn>

Tell to ask for password

If your password isn't automatically recognized type this:

nmcli -a c up <SavedWiFiConn>

Reference: man nmcli (Trusty, Noble)

user.dz
  • 49,176
155

nmtui ncurses solution

Great interactive ncurses network manager option:

nmtui

If for some reason it is not installed, the Debian package is:

sudo apt install network-manager

Comes in the same package as nm-applet (the default top bar icon thing) and nm-cli, and is therefore widely available.

Screenshot:

enter image description here

Tested in Ubuntu 17.10.

28

If your wi-fi access point is saved, it will auto-connect. Turn wireless on or off with a simpler command:

nmcli nm wifi on
nmcli nm wifi off

on newer version:

nmcli radio wifi on
nmcli radio wifi off

For reference, see man nmcli.

user.dz
  • 49,176
20

If you want to connect to a network called PrettyFlyForAWiFi-5G

nmcli -a d wifi connect PrettyFlyForAWiFi-5G

-a (or --ask) means it will ask you for the password. The connection will be saved and should connect automatically if you restart your computer.

You could append password <your password> to the end (the literal word password followed by the actual password)

nmcli d wifi connect PrettyFlyForAWiFi-5G password 12345678

but maybe run unset HISTFILE beforehand, so that your WiFi password isn't saved to your ~/.bash_history file.


To see all the WiFi networks around you (--rescan yes is optional, the list of networks might be up to 30 seconds old without it)

nmcli d wifi list --rescan yes

which will output something like

IN-USE  SSID                         MODE   CHAN  RATE        SIGNAL  BARS  SECURITY
        PrettyFlyForAWiFi-5G         Infra  44    405 Mbit/s  59      ▂▄▆_  WPA2
        PrettyFlyForAWiFi            Infra  6     195 Mbit/s  41      ▂▄__  WPA1 WPA2

To forget a connection (that was saved after you ran nmcli -a d wifi connect <name>)

nmcli c delete PrettyFlyForAWiFi-5G

To see a list of all saved connections

nmcli c

You can use nmcli connection instead of nmcli c <whatever> and nmcli device instead of nmcli d

nmcli is the command line interface for NetworkManager (which is part of GNOME, Ubuntu's default desktop environment) and is already installed on Ubuntu.

Don't forget to set up your country code for using the perfect regulations:

sudo iw reg set <2 letter country code>

sudo nano /etc/default/crda