Linux Mac 用户终端命令行快捷键 + 符号速查全解
作为一个刚接触 Linux 和终端的 macOS 用户,常常被命令行的各种快捷键和符号弄得头晕脑胀,本文将带你系统地掌握命令行中最常用的快捷键和符号,并通过逻辑联想帮助你轻松记住每一个组合。
一、基础控制类快捷键
快捷键 | 功能 | 记忆逻辑 |
---|
Ctrl + C | 中断当前命令 | C = Cancel,终止运行 |
Ctrl + Z | 挂起当前命令(后台) | Z = Zap,挂起程序,可用 fg 恢复 |
Ctrl + L | 清屏(等效 clear) | L = Look fresh / clear |
Ctrl + M | 等效回车 | M = Meta-Enter(早期终端设计) |
Tab | 自动补全 | 超常用,节省时间 |
二、历史命令操作
快捷键 | 功能 | 记忆逻辑 |
---|
Ctrl + P | 上一条命令 | P = Previous |
Ctrl + N | 下一条命令 | N = Next |
Ctrl + R | 搜索历史命令 | R = Reverse Search,命令模糊查找神器 |
Alt + . | 粘贴上一条命令最后一个参数 | . 表示最后一个词尾 |
Alt + 数字 Alt + . | 粘贴上一条命令第 N 个参数 | 数字索引参数位置 |
Alt + 数字 Alt + . Alt + . | 粘贴上上一条命令第 N 个参数 | 多层参数调用 |
三、命令行编辑快捷键
光标移动
快捷键 | 功能 | 记忆逻辑 |
---|
Ctrl + A | 移动光标到行首 | A = Ahead |
Ctrl + E | 移动光标到行尾 | E = End |
Ctrl + B | 向左移动一个字符 | B = Backward |
Ctrl + F | 向右移动一个字符 | F = Forward |
Option + 左/右 | 按单词跳转 | 对应 Alt + B/F |
Ctrl + ] + 字符 | 向后跳转到字符 | 快速定位字符位置 |
Ctrl + Alt + ] + 字符 | 向前跳转到字符 | 反向字符跳转 |
删除/剪切/撤销
快捷键 | 功能 | 记忆逻辑 |
---|
Ctrl + H | 删除前一个字符 | 模拟 Backspace |
Ctrl + D | 删除当前字符 | D = Delete |
Ctrl + K | 删除光标到行尾 | K = Kill to end(杀死后面) |
Ctrl + U | 删除光标到行首 | U = Undo 回撤(撤回前面) |
Ctrl + W | 删除光标前的单词 | W = Word |
Ctrl + \ | 删除光标前空白字符 | 清除冗余空格 |
Ctrl + Y | 粘贴最近删除的内容 | Y = Yank(拉回来) |
Ctrl + _ | 撤销上一步编辑 | _ 表示“底层回滚” |
Ctrl + X Ctrl + E | 用系统编辑器编辑命令 | E = Edit(适合长命令) |
四、macOS 专属快捷键
快捷键 | 功能 |
---|
Option + ←/→ | 按单词跳转 |
Command + K | 清除整个终端窗口内容(区别于清屏) |
Shift + Insert | 粘贴(某些终端支持) |
五、Shell 特殊符号 & 语法
符号 | 含义 | 记忆逻辑 | 示例 |
---|
~ | 当前用户主目录 | 像屋顶,回到“家” | cd ~ → 回到 /Users/用户名 |
/ | 根目录 | 文件系统的大树根 | cd / → 根目录 |
. | 当前目录 | “这里” | ls . → 列出当前目录 |
.. | 上一级目录 | “上面一层” | cd .. → 返回上一级 |
- | 上一次所在目录 | Dash = “来回切换” | cd - → 在两个目录间切换 |
* | 通配符,匹配零个或多个任意字符 | 星号 = 任意多字符 | ls *.txt → 匹配所有 .txt 文件 |
? | 通配符,匹配任意单个字符 | 问号 = 单字符匹配 | ls file?.sh → 匹配 file1.sh 等 |
[] | 字符集,匹配方括号内任意一个字符 | 列表选择 | ls file[12].sh → file1.sh 或 file2.sh |
{} | 花括号扩展,生成一组字符串 | 花括号 = 批量 | mv a{,1}.txt → a.txt → a1.txt |
` | ` | 管道,将前一个命令输出导入下一个命令的输入 | 管道 = 水流联通 |
> | 重定向输出到文件(覆盖) | 大于号 = 写入 | echo hi > file.txt |
>> | 重定向追加到文件 | 双箭头 = 追加 | echo ok >> file.txt |
< | 重定向文件到命令 | 小于号 = 读入 | wc -l < file.txt |
2> | 重定向标准错误 | 2 = stderr | cmd 2> err.log |
&> | 同时重定向标准输出和标准错误 | & = both | cmd &> all.log |
&& | 前一命令成功时再执行后一命令 | and | make && make install |
` | | ` | 前一命令失败时执行后一命令 |
; | 顺序执行命令 | 顺序分号 | cmd1; cmd2 |
$() | 命令替换,将子命令输出作为字符串 | $ + () = 子命令 | echo $(date) |
` | 同上(旧语法),不推荐使用 | 反引号 = 早期替代 | ``echo `whoami``` |
$VAR | 变量引用 | $ = 取值 | echo $HOME |
${VAR:-default} | 变量为空则使用默认值 | :- = 默认 | echo ${NAME:-guest} |
export VAR=… | 设置环境变量 | export = “导出给子进程” | export PATH=$PATH:~/bin |
alias ll='ls -la' | 创建命令别名 | alias = 别名 | ll → ls -la |
function fn { … } | 定义 shell 函数 | function = 函数 | fn(){ echo hi; } |