实用命令和技巧

实用命令和技巧

终端连接 wifi

  1. 列出网卡设备nmcli d

  2. Enable WiFi (if disabled): Use nmcli r wifi on

  3. scan for wifi networks: sudo iwlist scan

  4. List available networks: Use nmcli d wifi list to see a list of SSIDs, security types, and signal strength.

  5. 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.target

Arch Linux/Manjaro 包管理器

以下命令中,parusudo 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_servo
export 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_origin

tmux

启用鼠标:

方法一(临时):

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=yakuake

Change it to:

Exec=env QT_QPA_PLATFORM=xcb yakuake

Now restart the app.

参考自 Workaround for yakuake in Wayland : r/kde

远程点亮电脑屏幕

适用于 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