只收录本机实际装了、能直接用的命令。环境:Omarchy(Arch Linux)、zsh + oh-my-zsh(emacs 键位)、Hyprland、mise、Docker。
想不起来时先试:tldr 命令名、命令 --help | rg 关键词、alias | rg 关键词。
远端服务器运维见 Linux 服务器运维速查。
| 按键 |
作用 |
Ctrl + A / Ctrl + E |
光标跳到行首 / 行尾 |
Alt + B / Alt + F |
按单词左移 / 右移(Ctrl + → 也行) |
Ctrl + W |
删除光标前一个单词 |
Ctrl + U |
删除整行 |
Ctrl + K |
删除光标到行尾 |
Ctrl + Y |
粘贴刚才删掉的内容 |
Ctrl + R |
搜索历史命令,再按一次找更早的 |
Alt + . |
插入上一条命令的最后一个参数,多按几次往前翻 |
Ctrl + L |
清屏 |
Ctrl + C |
终止当前命令 |
Ctrl + Z |
把当前命令挂起到后台,fg 恢复、bg 让它在后台继续跑 |
Ctrl + D |
退出当前 shell(输入为空时) |
| 想做什么 |
命令 |
| 重复上一条命令 |
!! |
| 用 sudo 重跑上一条 |
sudo !! |
| 上一条命令的最后一个参数 |
!$ |
| 回到上一个目录 |
-(别名,等于 cd -) |
| 往上跳两级 / 三级目录 |
... / .... |
| 跳到常去的目录(模糊匹配) |
z 关键词,例如 z itsworks |
| 交互式选目录再跳 |
zi |
| 新建多级目录 |
md a/b/c(等于 mkdir -p) |
| 列出详细文件 |
l(ls -lah)、ll、la |
| 查某个别名是什么 |
alias gst |
| 搜历史 |
history | rg 关键词 |
| 想做什么 |
命令 |
| 好看的文件列表(含 git 状态) |
eza -la --git |
| 树形列出目录 |
eza --tree --level=2 |
| 带语法高亮看文件 |
bat 文件 |
| 在当前目录搜内容 |
rg '关键词' |
| 只列出包含关键词的文件名 |
rg -l '关键词' |
| 按文件名找文件 |
fd 名字 |
| 按扩展名找 |
fd -e md |
| 交互式模糊选文件 |
fzf,例如 nvim $(fzf) |
| 看当前目录各项占多大 |
du -sh * | sort -h |
| 看磁盘剩余空间 |
df -h |
| 打包 / 解包 tar.gz |
tar -czf out.tar.gz 目录 / tar -xzf file.tar.gz |
| 解压 zip |
unzip file.zip -d 目标目录 |
| 同步复制(可断点续传) |
rsync -avh --progress 源/ 目标/ |
| 把输出复制到剪贴板 |
命令 | wl-copy,或 wl-copy < 文件 |
| 粘贴剪贴板内容 |
wl-paste |
| 想做什么 |
命令 |
| 更新整个系统(Omarchy 推荐) |
omarchy-update |
| 更新系统(含 AUR) |
yay |
| 安装软件(官方仓库 + AUR) |
yay -S 包名 |
| 搜索软件 |
yay -Ss 关键词 |
| 搜索已安装的包 |
pacman -Qs 关键词 |
| 查看包的信息 |
pacman -Qi 包名 |
| 列出包装了哪些文件 |
pacman -Ql 包名 |
| 某个文件属于哪个包 |
pacman -Qo /usr/bin/dig |
| 卸载并清理依赖和配置 |
yay -Rns 包名 |
| 清理孤立依赖 |
pacman -Qdtq | sudo pacman -Rns - |
| 清理旧版本缓存(保留最近 3 个) |
paccache -r |
| 想做什么 |
命令 |
| 图形化看 CPU / 内存 / 进程 |
btop |
| 找某个进程 |
ps aux | rg 名字 |
| 按名字结束进程 |
pkill -f 名字 |
| 强制结束某个 PID |
kill -9 PID |
| 看内存使用 |
free -h |
| 系统信息概览 |
fastfetch |
| 查看服务状态 |
systemctl status 服务名 |
| 重启服务 |
sudo systemctl restart 服务名 |
| 开机自启并立即启动 |
sudo systemctl enable --now 服务名 |
| 用户级服务 |
systemctl --user status 服务名 |
| 实时看某个服务的日志 |
journalctl -u 服务名 -f |
| 看本次开机的错误日志 |
journalctl -b -p err |
| 看最近的日志并带解释 |
journalctl -xe |
| 想做什么 |
命令 |
| 看本机 IP(简洁) |
ip -br a |
| 看哪些端口在监听、被谁占用 |
ss -tlnp |
| 只看响应头 |
curl -I https://example.com |
| 格式化 JSON 输出 |
curl -s URL | jq |
| 查域名的 NS(是否已指向 Cloudflare) |
dig NS example.com +short |
| 绕过本机缓存查 |
dig NS example.com @1.1.1.1 +short |
| 问 .com 顶级域服务器(最权威) |
dig NS example.com @a.gtld-servers.net +norecurse |
| 从根服务器追踪解析过程 |
dig +trace NS example.com |
| 查 A 记录 |
dig A example.com +short |
| 查注册商登记的 NS |
whois example.com | rg -i 'name server' |
修改 NS 后,dig ... @a.gtld-servers.net 或 whois 已经变了、但普通 dig 还是旧值,说明只是缓存没过期,等一会儿即可。
| 想做什么 |
命令 |
| 看分区、文件系统和挂载点 |
lsblk -f |
| 看分区的 PARTUUID |
lsblk -o NAME,PARTUUID,FSTYPE,SIZE,MOUNTPOINTS |
| 看 UEFI 启动项 |
efibootmgr -v |
| 调整启动顺序 |
sudo efibootmgr -o 0002,XXXX |
| 只让下次从某项启动 |
sudo efibootmgr -n XXXX |
| 看固件模式和安全启动状态 |
bootctl status |
| 查看 Limine 菜单条目 |
sudo limine-entry-tool --tree |
这些命令的来龙去脉见双系统安装指南和双系统引导原理说明,工具汇总见 Tools。
| 别名 |
等于 |
gst |
git status |
gaa |
git add --all |
gcmsg "说明" |
git commit --message "说明" |
gp / gl |
git push / git pull |
gd |
git diff |
glog |
git log --oneline --decorate --graph |
gsw 分支 / gcb 新分支 |
git switch 分支 / git checkout -b 新分支 |
gsta / gstp |
git stash push / git stash pop |
grhh |
git reset --hard(会丢掉未提交的修改,慎用) |
| 图形化操作 |
lazygit |
| 想做什么 |
命令 |
| 看权限(数字 + 符号) |
stat -c '%a %A %U:%G %n' 文件 |
| 改权限 |
chmod 644 文件 / chmod u+x 脚本 |
| 递归改目录权限(目录 755、文件 644) |
find 目录 -type d -exec chmod 755 {} +; find 目录 -type f -exec chmod 644 {} + |
| 改所有者 |
sudo chown -R 用户:组 目录 |
| 看当前用户 / 组 |
id |
| 临时用 root 跑一条 |
sudo 命令;开 root shell:sudo -i |
| 看谁能写这个文件 |
getfacl 文件(若装了 acl) |
| 想做什么 |
命令 |
| 登录 |
ssh 用户@主机 |
| 指定密钥 / 端口 |
ssh -i ~/.ssh/id_ed25519 -p 22 用户@主机 |
| 带端口转发(本地 5432 → 远端 Postgres) |
ssh -L 5432:127.0.0.1:5432 用户@主机 |
| 只建隧道不落 shell |
ssh -N -L 8080:127.0.0.1:80 用户@主机 |
| 拷文件过去 / 过来 |
scp 文件 用户@主机:路径 / scp 用户@主机:路径 . |
| 目录同步(比 scp 更合适) |
rsync -avh --progress ./dir/ 用户@主机:~/dir/ |
| 测连通与延迟 |
ssh -v 用户@主机(看握手卡在哪) |
| 清掉旧主机指纹 |
ssh-keygen -R 主机名或IP |
常用 ~/.ssh/config 片段:
IdentityFile ~/.ssh/id_ed25519
然后直接 ssh myserver。
| 想做什么 |
命令 |
| 看容器 |
docker ps / docker ps -a |
| 看镜像 |
docker images |
| 进容器 shell |
docker exec -it 容器名 sh(或 bash) |
| 跟日志 |
docker logs -f --tail 200 容器名 |
| 停 / 删容器 |
docker stop 容器名 / docker rm 容器名 |
| 组合项目起来 |
docker compose up -d |
| 组合项目停掉并删容器 |
docker compose down |
| 看占用 |
docker system df |
| 清悬空镜像与缓存(慎用) |
docker system prune -f |
| 想做什么 |
按键 / 命令 |
| 新建会话 |
tmux new -s 名字 |
| 列出会话 |
tmux ls |
| 挂上已有会话 |
tmux attach -t 名字 |
| 前缀键(默认) |
Ctrl + B |
| 拆左右 / 上下窗格 |
前缀 + % / 前缀 + " |
| 窗格间移动 |
前缀 + 方向键 |
| 新建窗口 / 切换 |
前缀 + c / 前缀 + n p 或数字 |
| 断开会话(进程继续跑) |
前缀 + d |
| 滚屏翻历史 |
前缀 + [,q 退出 |
远端跑长任务:SSH 上去先 tmux new -s work,断线也不丢。
| 想做什么 |
命令 |
| 取 JSON 字段 |
命令 | jq '.data.items[].id' |
| 美化 JSON 文件 |
jq . file.json |
| 数行 / 字 |
wc -l 文件 |
| 排序去重 |
sort 文件 | uniq -c | sort -nr |
| 两文件差集 |
comm -23 <(sort a) <(sort b) |
| 替换文件内字符串(先预览) |
rg '旧' -n;改:sd '旧' '新' 文件 或 sed -i 's/旧/新/g' 文件 |
| 看差异 |
diff -u a b 或 delta a b(若装了) |
| 截取列 |
cut -d: -f1 /etc/passwd |
| 并行跑多条(GNU parallel 若有) |
fd -e md -x wc -l |
| 想做什么 |
命令 |
| 看 mise 管了哪些工具 |
mise ls |
| 安装 / 切换 Node |
mise use node@22 |
| 看当前 node / pnpm |
node -v / pnpm -v |
| 项目依赖 |
pnpm install / pnpm add 包 |
| Python 虚拟环境(uv 若有) |
uv venv && source .venv/bin/activate |
| 没有 uv 时 |
python3 -m venv .venv && source .venv/bin/activate |
| 跑一次性脚本不污染全局 |
pnpm dlx 包 / npx 包 / uvx 包 |