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; } |