다음 명령을 사용하여 모든 Wi-Fi 네트워크의 신호 강도를 얻을 수 있습니다.
$ nmcli -t -f SIGNAL device wifi list
$ 77
67
60
59
55
45
44
39
39
37
이 목록을 현재 연결되어 있는 Wi-Fi로만 줄이고 싶습니다. 매뉴얼 페이지를 살펴봤지만 필요한 플래그를 찾을 수 없습니다.
sed
한 가지 해결책은 또는 을 사용하는 것이지만 awk
파이프는 사용하지 않으려고 합니다.
nmcli device wifi
열을 직접 구문 분석하는 대신 SIGNAL을 사용해야 합니까 ?
답변1
nmcli --version
nmcli tool, version 1.6.2
연결된 AP에서 신호를 받으려면 다음을 사용하세요.
nmcli dev wifi list | awk '/\*/{if (NR!=1) {print $7}}'
의 두 번째 *
태그 는 nmcli dev wifi list
연결된 SSID를 식별합니다.
nmcli --version
nmcli tool, version 1.22.10
사용:
nmcli dev wifi list | awk '/\*/{if (NR!=1) {print $6}}'
답변2
여기서의 비결은 -f
매개변수를 사용하여 nmcli
스크립트에서 필수 필드를 지정하는 것입니다. SSID가 중요하다면 이 SSID
필드를 사용하고, 어느 SSID에 연결하는지 관심이 있다면 다음 IN-USE
필드를 사용하세요.
$ nmcli -f IN-USE,SIGNAL device wifi
* SIGNAL
90
* 73
40
$ nmcli -f IN-USE,SIGNAL,SSID device wifi
* SIGNAL SSID
90 wifiWithoutSpaces
* 73 Some Wifi With Spaces
40 Wifi With a * in its SSID
이러한 방식으로 필드를 정렬하면 선택 신호가 행 시작 부분부터 고정된 수의 열 구분 문자라는 점입니다. 이제 열 계산이나 nmcli 버전 관리 문제 없이 GAD3R의 답변을 사용할 수 있습니다.
$ nmcli -f IN-USE,SIGNAL,SSID device wifi | awk '/^\*/{if (NR!=1) {print $2}}'
73
답변3
연결된 네트워크의 이름을 알고 있는 경우 다음과 같이 방법을 수정할 수 있습니다. (nmcli 1.14.6의 경우 다른 버전은 다를 수 있음)
nmcli -t -f SSID,SIGNAL dev wifi list | grep "^<network name>:" | cut -d : -f 2
답변4
어떤 라우터를 사용하고 있는지 확인하는 쉬운 방법:
nmcli -f IN-USE,SIGNAL device wifi | grep '*'