为什么写这篇博文
一直以来,我都是两个系统掺杂着用。因为在 Linux 下确实有些体验赶不上 Windows,但 Windows 下的各种环境配置很麻烦,而且文件给我感觉还是有些杂乱,不太方便管理,尤其是像我这种对系统有点洁癖的人,往往为了删除某个软件,还得在各个犄角旮旯里翻找,更别说一不小心点到流氓软件后,还得到处找它写入的启动文件
所以,最近在不停的完善我在 Linux 下的各种配置,准备完全转入到 Linux ,以后可能就一些小工具或者 Windows 独占的扫描器需要开虚拟机了
为此,我开这篇博文用于记录一些,在 Linux 下日常使用的一些小工具(都是 CLI 工具,如果是图形界面的我觉得没有记录的必要吧)。所以这篇文章应该会时常变动吧。毕竟这些小工具也不是一天收集完的
WIFI 管理工具
wpa_supplicant
:一款终端下的 WIFI 管理工具,大部分 Linux 内置的就是这个,其他图形界面的实际上后端也是用的这个工具。在 Archlinux 下不是预装软件,好像在安卓里也是用的这个来管理 WIFI 的
wpa_supplicant
下有三个命令工具:
wpa_supplicant
:wifi 启动工具,用于指定启动 wifi 的各种参数。常用方式:wpa_supplicant -B -i interface -c configfile's path
-B
:用于指定以守护进程的方式在后台运行-i
:用于指定要使用的网卡-c
:用于指定wpa_supplicant
的配置文件,默认是/etc/wpa_supplicant/wpa_supplicant.conf
(这个默认文件在 Archlinux 上也是你自己生成的,其他 linux 发行版上可能会自动生成)-D
:指定驱动程序,有时候启动失败你可以同过此选项指定驱动。一般两个选择一个就行nl80211
和wext
wpa_passphrase
:wifi 配置文件生成工具。常用方式wpa_passphrase essid passphrase >> /etc/wpa_supplicant/wpa_supplicant.conf
essid
:用于指定 WIFI 名,即你手机搜索的那个 WIFI 名称即可passphrase
:指定 WIFI 的连接密码- 最后面是
shell
下的管道符,用于将生成的配置直接追加到配置文件中,下次连接时可以直接使用配置文件,不用再去生成一遍
wpa_cli
:命令行下设置 wifi 的交互式工具- 使用此工具,必须
wpa_supplicant
服务先开启,才可以使用。用上面的wpa_supplicant
命令开启服务, - 在启动
wpa_cli
时,你需要使用-i
指定网卡接口,如果不指定则默认使用开启服务时指定的网卡 help
:启动后可以使用此命令查看帮助,而且可以使用Tab
键进行补全scan
:扫描附近的 AP(即 WIFI)scan_results
:查看扫描结果,会显示物理地址、加密方式和 WIFI 名,即 SSIDadd_network [network_id]
:添加一个网络,会要求你设置一个network_id
用来标识这个网络,不设置则默认从 0 开始set_network [network_id] ssid
:设置添加的网络的 SSIDset_network [network_id] key_mgmt [Encryption]
:设置添加的网络的加密方式,默认不设置用你指定的 WIFI 的加密方式,一般用于一个 WIFI 提供多种传输方式时选择set_network [network_id] psk
:如果该 WIFI 有密码,则输入密码,没有就不设置enable_network [network_id]
:开启网络,如果系统搜索到你设置好的网络就会自动连接status
:查看当前连接的网络状态disable_network [network_id]
:关闭指定的网络save_config
:保存你设置的网络配置quit
:退出交互模式
- 使用此工具,必须
wpa_supplicant
的默认配置文件在/etc/wpa_supplicant/wpa_supplicant.conf
这个位置
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel
update_config=1
fast_reauth=1
ap_scan=1
network={
ssid="ChinaNet-xxxx"
#psk="xxxxxx"
psk=aa7dfaskhneltb3dc14dddd72e9b518fc11a251c58e364ce13c5db23d2e67f23
}
以上是一个官方的配置模板,前五行可以直接复制过去,具体解释请查看官方 WIKI
下面的 network 模块,是由wpa_passphrase
生成的对应 WIFI 的配置,其中第二行 psk 可以直接删除,本身他也是被注释掉的,wpa_supplicant
在连接时默认优先使用经过加密后的 psk,如果你打算手写配置,那直接使用明文密码也是可以的
蓝牙管理工具
Archlinux 下使用蓝牙最基础的要安装蓝牙驱动包bluez
和蓝牙基础工具包buez-utils
bluez-utils
包中提供的终端下蓝牙管理工具是bluetoothctl
,前端的话 gnome 和 kde 都有自己专用的管理工具,通用的蓝牙前端管理工具是Blueman
。但我这里只说终端下的管理工具
使用蓝牙前需要先检查蓝牙是否被禁用了,使用rfkill
命令可以查看蓝牙和网卡的禁用情况,正常情况下输出的最后两列 SOFT 和 HARD 应该都是 unblocked,表示没被禁用,如果是blocked
可以使用命令rfkill unblock identifier
开启,网卡也是一样,如果被禁用了也可以使用这个命令开启,其中的identifier
可以是之前输出的ID
字段的编号也可以是DEVICE
设备名,如果要关闭设备可以使用rfkill block identifier
bluetoothctl
是一个交互工具,输入后你会进入到一个交互界面对蓝牙进行管理。下面是一些常用命令,<ctrl>
表示本机的蓝牙 MAC 地址,<dev>
表示可以连接的蓝牙 MAC 地址
list
:显示本机可用的蓝牙控制器,如果你有多个蓝牙可以列出show <ctrl>
:显示指定蓝牙控制器的信息select <ctrl>
:选择要使用的蓝牙power <on/off>
:开启或关闭蓝牙电源agent <on/off>
:开启或关闭接口default-agent
:选择接口功能,比如键盘输入,使用默认就行,详情看 Archlinux WIKIdiscoverable <on/off>
:开启或关闭,蓝牙发现功能pairable <on/off>
:开启或关闭,蓝牙的配对功能scan <on/off>
:扫描蓝牙设备devices
:列出扫描到的开启的蓝牙设备info <dev>
:显示指定蓝牙设备的信息pair <dev>
:配对指定的蓝牙设备,手机这种接下来会让你输入 PIN 码,键盘这种不需要 PIN 码trust <dev>
:信任指定的蓝牙设备untrust <dev>
:不信任指定的蓝牙设备connect <dev>
:连接指定的蓝牙设备disconnect <dev>
:断开连接remove <dev>
:删除指定的蓝牙设备version
:显示版本信息quit
:退出
如果要使用蓝牙传输文件的话,可以将手机通过蓝牙挂载到电脑上,我一般只用于连接键盘,就暂不做记录了
声音管理工具
ALSA 是代替 OSS 的 Liunx 中提供声音设备驱动的内核组件,因此只需要安装 ALSA 工具包 alsa-utils
即可
alsa-utils
工具提供了图形界面的声音设置工具alsamixer
(当然也是在命令行下的图形界面),和声音设置命令amixer
以及测试工具speaker-test
和命令行工具alsactl
当前版本的 Linux 中 ALSA 默认所有声道都是静音,所以需要先手动解除
alsamixer
的基础功能介绍:
- 使用左右健选择声道,上下或 j、k 键加减音量
- 使用 m 键开启或关闭声道,下方标有
MM
即是静音状态,00
表示开启状态 Master
栏表示主音量Headphone
表示耳机音量,一般调到最大,以后就通过调节Master
栏来操控就行了Speaker
:表示麦克风音量PCM
:5.1 声道,这个和Master
必须一起打开,不然没声音。其他不多做记录,详情查看 WikiF6
:选择声卡,电脑有多个声卡时,可以选择声卡,有时候会出现你默认声卡不对,导致始终没有声音,这时候先换个声卡试试F5
:显示所有选项,默认情况下主界面只显示基础的一些声道,如果你要细调使用这个显示全部选项ESC
:退出alsactl store
:通过alsactl
命令将你设置的音量保存到配置文件中,默认alsamixer
不会持久保存你设置的音量,通过这个命令你下次开机后的音量设置就和保存时的一样了
amixer
一般用于通过脚本绑定到按键上,让通过按键就可以调整音量
amixer sset Master 5%+
:声音增加 5% ,将此命令映射到XF86AudioRaiseVolume
按键amixer sset Master 5%-
:声音减小 5% ,将此命令映射到XF86AudioLowerVolume
按键amixer sset Master toggle
:切换禁音,将此命令映射到XF86AudioMute
按键
speaker-test -c 2
:测试声卡是否工作,数值根据声道调整,7.1 声道数值为 8,也可以使用使用-D
参数知道设备
安卓调试工具
安卓调试工具使用的是adb
,但初次使用要注意几个问题
首先,是用户组问题,根据谷歌 Android Studio 官网介绍,在 linux 下,要使用 adb 必须保证当前用户在plugdev组中
groupadd plugdev
:添加组
usermod -aG plugdev $LOGNAME
:将当前用户添加到 plugdev 组中
第二个问题是no permissions
报错,无权限问题,这里需要使用另一个工具lsusb
安装usbutils
包
连接手机,然后使用lsusb
,列出的信息中,找到你的手机名,在该行中的ID字段后是用分号分隔的八位字符如:xxxx:xxxx
取后四位,这是你手机的 usb 地址。
然后在/etc/udev/rules.d/
目录下添加配置文件51-android.rules
。数字一般写做安卓版本(默认惯例而已,可以随便写)
在配置文件中写入如下,其中ATTR{idProduct}==
后面跟的就是你手机的 usb 地址
ATTR{idProduct}==”xxxx”, SYMLINK+=”android_adb”, MODE=”0660”, GROUP=”plugdev”, TAG+=”uaccess”, SYMLINK+=”android”
之后重新载入配置:udevadm control --reload-rules
重启 udev 服务:systemctl restart systemd-udevd.service
udev 从内核请求事件:udevadm trigger
最后重启 adb 就行了
常用命令
adb devices
:查看连接的设备,如果没有启动服务会自动启动服务adb shell
:进入手机终端,如果不止一个设备需要指定设备名,只有一个设备则不用adb push LOCAL REMOTE
:传送文件到设备adb pull REMOTE LOCAL
:下载文件到本地adb install packagename
:安装本地 app 文件到手机add uninstall packagename
:卸载手机中指定的 app
##