166

My Ubuntu laptop's Wi-Fi works fine on various Wi-Fi networks. But the list of available networks accessed from the toolbar icon of nm-applet no longer appears. I just see the known networks. The list of hidden networks also doesn't show any new networks.

sudo iwlist scan likewise only shows known networks.

How do I get a list of all available networks so I can connect to one?

I am using Xubuntu 14.04.

Joshua Fox
  • 3,011

4 Answers4

239

Use the nmcli dev wifi command. It shows transfer rate, signal strength, and security (e.g. WPA) as well:

screenshot after running "nmcli device wifi list

For more, see nmcli's manual and this for usage examples of nmcli.

aditya
  • 2,514
82

To scan all wlan networks, try using the command:

sudo iw dev wlan0 scan | grep SSID:

You can find more info in the AU answer How to connect and disconnect to a network manually in terminal?

blkpws
  • 1,242
25

In Ubuntu 16.04:

  1. Go to /sys/class/net you can see list of directories here.
  2. Find the wireless interface. It has wireless directories, for example in my case it's wlp10. You can check it using ls wlp10. If the directory's name different, use that directory's name.
  3. sudo iwlist wlp1s0 scan | grep ESSID

From here you can list all available Wi-Fi access points.

Source here.

8

Further to what has been already answered here, I've merged a few of them and added a little flavor of my own.

As for the nmcli answer, sure, do that if you want to install more software. But if you're looking for Access Points, maybe you don't have an internet connection yet and are unable to connect to install said software. With all that said, here's my solution:

for i in $(ls /sys/class/net/ | egrep -v ^lo$); do sudo iw dev $i scan | grep SSID | awk '{print substr($0, index($0,$2)) }'; done 2>/dev/null | sort -u 

Breaking it down:

for i in $(ls /sys/class/net/ | egrep -v ^lo$);

Lets have a look at all the contents of the location /sys/class/net. This will list all the network devices, but we're not really interested in the loopback interface. so we'll ignore that one

do sudo iw dev $i scan | grep SSID | awk '{print substr($0, index($0,$2)) }';done

For each of the network interfaces we found above, lets do the scan to list all the SSIDs (and only the SSIDs)

2>/dev/null 

And ignore all the errors (like searching for SSIDs with ethernet interfaces).

| sort -u

And finally, If you have multiple wi-fi adapters on the system, only list each SSID once.

Jim
  • 180