Using the rfkill command (with examples)
- Linux
- November 5, 2023
List devices
rfkill
Motivation:
The rfkill
command without any options will list all the devices that can be controlled by rfkill. This includes wireless devices such as Bluetooth and WLAN.
Explanation:
Running rfkill
without any options will display a table with the following columns:
- ID: The ID of the device.
- TYPE: The type of the device, e.g. bluetooth, WLAN.
- DEVICE: The name of the device.
Example Output:
ID TYPE DEVICE
0 bluetooth hci0
1 wlan phy0
Filter by columns
rfkill -o ID,TYPE,DEVICE
Motivation:
The -o
or --output
option allows you to specify which columns to include in the output. This can be helpful if you only need specific information about the devices.
Explanation:
The -o
option is followed by a comma-separated list of columns. In this example, we are specifying the columns ID, TYPE, and DEVICE to be displayed in the output.
Example Output:
ID TYPE DEVICE
0 bluetooth hci0
1 wlan phy0
Block devices by type
rfkill block bluetooth
Motivation:
The block
option allows you to disable or block a specific type of device. This can be useful if you want to temporarily or permanently disable a certain wireless device.
Explanation:
The block
option is followed by the type of device you want to block. In this example, we are blocking the Bluetooth device.
Example Output:
No output will be displayed if the blocking is successful. However, the Bluetooth device will be disabled.
Unblock devices by type
rfkill unblock wlan
Motivation:
The unblock
option allows you to enable or unblock a specific type of device that was previously blocked. This is useful if you want to re-enable a wireless device that was disabled.
Explanation:
The unblock
option is followed by the type of device you want to unblock. In this example, we are unblocking the WLAN (wireless LAN) device.
Example Output:
No output will be displayed if the unblocking is successful. However, the WLAN device will be enabled again.
Output in JSON format
rfkill -J
Motivation:
The -J
or --json
option allows you to output the results in JSON format. This can be convenient if you want to programmatically process the output using tools that support JSON parsing.
Explanation:
Adding the -J
option to the command will format the output in JSON format instead of the default table format.
Example Output:
[
{
"ID": 0,
"TYPE": "bluetooth",
"DEVICE": "hci0"
},
{
"ID": 1,
"TYPE": "wlan",
"DEVICE": "phy0"
}
]
By providing code examples and explanations for each use case of the rfkill
command, this article provides a comprehensive guide for understanding and using this command effectively. The examples cover listing devices, filtering by columns, blocking and unblocking devices by type, and outputting in JSON format. Whether you need to manage wireless devices or integrate the command into a script or application, this guide has you covered.