211

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
2

4 Answers 4

265

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
    

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

##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>

If your password isn't automatically recognized type this:

nmcli -a c up <SavedWiFiConn>

Reference: man nmcli

22
  • 1
    Works like a charm! And, as suspected, the command line responds immediately, while the GUI can be sluggish, uncooperative, and unresponsive sometimes.
    – cmo
    May 6, 2014 at 15:55
  • 1
    Saved my day when I lost my Unity dash and taskbar, and the Network Settings dialog kept on crashing upon any kind of network connection establishment. Nov 27, 2014 at 1:21
  • 2
    @kirill_igum , sorry to be late quiet busy, You may use cron for scheduling wifi scan using iwlist wlan0 scanning or nmcli d wifi list then nmcli to connect to the corresponding wifi network depending on your needs.
    – user.dz
    Jan 11, 2016 at 21:59
  • 1
    On Ubuntu 14.04 this connect command returns Error: Device 'wlan0' is not an Wi-Fi device. I believe this answer is incomplete. Mar 7, 2016 at 16:19
  • 6
    To save a connection setup: sudo nmcli dev wifi con "SSID_NAME" password PASSWORD "CONFIG_NAME" To find auto your saved connection setups: nmcli c
    – Cirelli94
    Apr 13, 2017 at 13:05
147

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.

7
  • 3
    works on Ubuntu 16.01 as well, cool solution!
    – Jan Sila
    Dec 1, 2017 at 8:57
  • 8
    This is a much more intuitive solution than what is above IMO. Unless you're trying to learn how Linux/Unix connects to WiFi, this seems like the ideal select and press enter solution. Works well on Ubuntu 18
    – jamzsabb
    Jun 18, 2018 at 18:56
  • 3
    This "just worked " on Ubuntu 18.04
    – Ryre
    Dec 9, 2019 at 3:32
  • 1
    and Jetson Nano ... and usefully it kept eth0 up too (I'm running headless and didn't lose the ssh session) Sep 28, 2020 at 19:49
  • 1
    F***ING THANK YOU! Over the years I've had to rescue a laptop several times, and I always have to look up the spells required for wifi. nmtui is the best solution and just works!
    – Sarke
    Dec 28, 2022 at 1:12
27

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.

3
  • 2
    How do you make NM enable wifi automatically during boot? Every time I reboot, Network Manager starts with wifi disabled.
    – Cerin
    Jul 25, 2015 at 21:46
  • @Cerin, you may try adding this command to startup applications, see askubuntu.com/questions/243139/…
    – user.dz
    Jan 11, 2016 at 21:47
  • And how do in Ubuntu > 14.04.
    – monitor35
    Apr 18, 2016 at 8:35
14

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 
1
  • 2
    When using nmcli, there is a pop up to reask the password if it was miss-typed. Would you know whether there is a possibility of disabling this feature? Quite annoying when trying to use nmcli in a non-interactive script...
    – borizzzzz
    Oct 18, 2019 at 12:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .