实用命令和技巧
终端连接 wifi
列出网卡设备
nmcli dEnable WiFi (if disabled): Use
nmcli r wifi onscan for wifi networks:
sudo iwlist scanList available networks: Use
nmcli d wifi listto see a list of SSIDs, security types, and signal strength.Connect to a network:
# 二选一: sudo nmcli --ask device wifi connect <SSID> # 询问密码 sudo nmcli d wifi connect <SSID> password <password> # 直接指定密码
压缩
# 压缩为 tar.xz
# -T16: 使用16个线程压缩,0 表示使用所有可用的 CPU 核心
# -v: 启用详细模式,显示压缩进度和详细信息
# -9: 设置压缩级别为9(范围:0-9, 默认为 6)
tar -I 'xz -T0 -v -9' -cf output.tar.xz file1 folder1
# 压缩为 tar.zst,压缩等级选择范围:1-19, Default: 3
tar -I 'zstd -T0 -v -19' -cf output.tar.zst file1 folder1
# 解压(自动识别格式)
tar -xaf output.tar.xz
# 测试当前目录的压缩率和压缩速度
tar -cf - . | pv -ra | zstd -T16 -v -15 > /dev/null 将本地文件(夹)打包压缩并通过 ssh 传输到服务器
# 使用 zstd
tar -I 'zstd -T16 -19 -v' -cf - my_folder | ssh user@host "cat > Documents/my_folder.tar.zst"
# 使用 xz
tar -I 'xz -T16 -9 -v' -cf - my_folder | ssh user@host "cat > Documents/my_folder.tar.xz"将本地文件(夹)传输到服务器,自动压缩解压以节省带宽和时间
方法一:使用 rsync(推荐,更方便且支持断点续传)
rsync -aPz ssh my_folder/ user@host:Documents/my_folder/方法二:使用 tar 和 ssh(可手动指定压缩算法和等级)
# 从本地传到服务器
# 使用 zstd
tar -I 'zstd -T0 -v --adapt' -cf - my_folder | ssh user@host "tar -I 'zstd' -xf - -C Documents/my_folder"
# 使用 xz
tar -I 'xz -T16 -v' -cf - my_folder | ssh user@host "tar -I 'xz' -xf - -C Documents/my_folder"
# 从服务器传到本地
ssh user@host "tar -I 'zstd -T0 -v --adapt' -cf - /path/to/server_folder" | tar -I 'zstd' -xf - -C ~/local关闭图形界面
# 关闭图形界面
sudo systemctl isolate multi-user.target
# 开启图形界面
sudo systemctl isolate graphical.targetArch Linux/Manjaro 包管理器
以下命令中,paru 和 sudo pacman 应该都可以互换
paru 还可以安装 AUR 仓库中的软件
paru -Rns package_name # 删除软件,配置文件,依赖
paru -Qdt # 列出孤包
sudo pacman -U /path/to/package/package_name-version.pkg.tar.zst # 安装本地包
sudo pacman -U http://www.example.com/repo/example.pkg.tar.zst # 安装远程包(指定网址)查询一个包含具体文件的包名
paru -Fy # 同步文件数据库
paru -F libcrypto.so.1.1 # 查找某个文件在哪个包里(报缺失 .so 错误时很有用)Git
下载 GitHub 仓库中的单个文件夹
右键 GitHub 上的目标文件夹并复制链接,再粘贴到 https://download-directory.github.io 即可下载该目录。
常用命令和配置
git remote # 查看远程库名称
git remote -v # 查看远程库地址
# 让 git status / git diff 正常显示中文路径
git config --global core.quotepath false
# 忽略文件权限变化,适合 exfat / NTFS 等文件系统上的仓库
git config core.fileMode false
git config --global core.fileMode false将子目录变成子模块
假设仓库目录结构如下:
.
├── .git
└── src
├── utils
└── pinocchio_servoexport dir=src/pinocchio_servo
export new_repo_url=<新仓库地址>
# 在主仓库中把这个目录拆成独立分支
git subtree split --prefix="$dir" -b temp_split
# 把这个分支推到新仓库
git remote add temp_origin "$new_repo_url"
git push temp_origin temp_split:main
# 从主仓库移除原目录
git rm -r "$dir"
git commit -m "Remove vendored $dir"
# 以子模块形式加回去
git submodule add "$new_repo_url" "$dir" # 注:这里也可以使用相对 URL
git commit -m "Add $dir as submodule"
# 删除临时分支和远程
git branch -D temp_split
git remote remove temp_origintmux
启用鼠标:
方法一(临时):
Ctrl+B, 输入:set -g mouse
方法二(永久):
vim ~/.tmux.conf
# 在文件中写入
set-option -g mouse on强制 OpenGL 使用软件渲染
LIBGL_ALWAYS_SOFTWARE=1 <cmd>
# 或者
QT_XCB_FORCE_SOFTWARE_OPENGL=1 <cmd>使 Qt 程序以 x11 运行
在终端中
QT_QPA_PLATFORM=xcb <your_app>在 desktop 文件中配置
以 yakuake 为例:
cp /usr/share/applications/org.kde.yakuake.desktop ~/.local/share/applications/Then open ~/.local/share/applications/org.kde.yakuake.desktop file with your favourite text editor, find the line:
Exec=yakuakeChange it to:
Exec=env QT_QPA_PLATFORM=xcb yakuakeNow restart the app.
远程点亮电脑屏幕
适用于 Wayland + KDE 的环境
export XDG_RUNTIME_DIR=/run/user/$(id -u)
export WAYLAND_DISPLAY=wayland-0
export QT_QPA_PLATFORM=wayland
kscreen-doctor --dpms on或者使用这个脚本(原理相同):wake_screen.sh