终端基础操作 #
启动终端 #
不同系统的终端启动方式 #
Linux #
text
┌─────────────────────────────────────────────────────────────┐
│ Linux 终端启动方式 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 方式一:快捷键 │
│ ├── Ctrl + Alt + T (Ubuntu/Debian) │
│ ├── Ctrl + Alt + F1~F6 (虚拟控制台) │
│ └── Super + T (GNOME) │
│ │
│ 方式二:应用程序菜单 │
│ ├── 应用程序 → 附件 → 终端 │
│ ├── 搜索 "Terminal" │
│ └── 右键桌面 → 打开终端 │
│ │
│ 方式三:命令启动 │
│ ├── gnome-terminal (GNOME 终端) │
│ ├── konsole (KDE 终端) │
│ └── xterm (X 终端) │
│ │
└─────────────────────────────────────────────────────────────┘
macOS #
bash
# 方式一:Spotlight 搜索
Command + Space → 输入 "Terminal"
# 方式二:应用程序目录
应用程序 → 实用工具 → 终端.app
# 方式三:推荐安装 iTerm2
# https://iterm2.com/
Windows #
bash
# 方式一:Win + R
输入 "cmd" 或 "powershell"
# 方式二:开始菜单搜索
搜索 "PowerShell" 或 "Windows Terminal"
# 方式三:Windows Terminal(推荐)
# 从 Microsoft Store 安装
终端界面 #
终端提示符 #
bash
# 典型的提示符格式
[用户名@主机名 当前目录]$
# 示例
[alice@server ~]$
[root@server /etc]#
# 提示符含义
┌─────────────────────────────────────────────────────────────┐
│ 提示符解析 │
├─────────────────────────────────────────────────────────────┤
│ │
│ [alice@server ~]$ │
│ │ │ │ │ │
│ │ │ │ └── $ 普通用户 (# root用户) │
│ │ │ └── 当前目录 (~ 表示家目录) │
│ │ └── 主机名 │
│ └── 用户名 │
│ │
└─────────────────────────────────────────────────────────────┘
自定义提示符 #
bash
# 查看当前提示符设置
$ echo $PS1
[\u@\h \W]\$
# 提示符转义字符
\u 用户名
\h 主机名(短)
\H 主机名(完整)
\w 当前目录(完整路径)
\W 当前目录(仅目录名)
\d 日期
\t 时间(24小时制)
\T 时间(12小时制)
\n 换行
\$ $(普通用户)或 #(root用户)
# 临时修改提示符
$ export PS1="\u@\h:\w\$ "
alice@server:~$
# 永久修改(添加到 ~/.bashrc)
$ echo 'export PS1="\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "' >> ~/.bashrc
常用快捷键 #
光标移动 #
text
┌─────────────────────────────────────────────────────────────┐
│ 光标移动快捷键 │
├─────────────────────────────────────────────────────────────┤
│ │
│ Ctrl + A 移动到行首(Ahead) │
│ Ctrl + E 移动到行尾(End) │
│ Ctrl + B 向左移动一个字符(Backward) │
│ Ctrl + F 向右移动一个字符(Forward) │
│ │
│ Alt + B 向左移动一个单词 │
│ Alt + F 向右移动一个单词 │
│ │
│ 在 macOS 上使用 Option + B/F 移动单词 │
│ │
└─────────────────────────────────────────────────────────────┘
编辑操作 #
text
┌─────────────────────────────────────────────────────────────┐
│ 编辑快捷键 │
├─────────────────────────────────────────────────────────────┤
│ │
│ Ctrl + U 删除从光标到行首 │
│ Ctrl + K 删除从光标到行尾 │
│ Ctrl + W 删除光标前一个单词 │
│ Ctrl + D 删除光标处字符(或退出终端) │
│ Ctrl + H 删除光标前一个字符(同 Backspace) │
│ │
│ Ctrl + Y 粘贴最近删除的内容 │
│ Ctrl + _ 撤销上一次操作 │
│ │
│ Alt + D 删除光标后一个单词 │
│ Alt + Backspace 删除光标前一个单词 │
│ │
└─────────────────────────────────────────────────────────────┘
控制操作 #
text
┌─────────────────────────────────────────────────────────────┐
│ 控制快捷键 │
├─────────────────────────────────────────────────────────────┤
│ │
│ Ctrl + C 终止当前命令 │
│ Ctrl + D 退出当前 Shell(EOF) │
│ Ctrl + Z 暂停当前进程(放入后台) │
│ Ctrl + L 清屏(同 clear 命令) │
│ │
│ Ctrl + S 暂停屏幕输出 │
│ Ctrl + Q 恢复屏幕输出 │
│ │
└─────────────────────────────────────────────────────────────┘
历史命令 #
text
┌─────────────────────────────────────────────────────────────┐
│ 历史命令快捷键 │
├─────────────────────────────────────────────────────────────┤
│ │
│ Ctrl + P 上一条命令(Previous,同 ↑) │
│ Ctrl + N 下一条命令(Next,同 ↓) │
│ Ctrl + R 搜索历史命令(反向搜索) │
│ Ctrl + S 搜索历史命令(正向搜索) │
│ Ctrl + O 执行搜索到的命令并继续搜索 │
│ │
│ Alt + < 移动到历史命令第一条 │
│ Alt + > 移动到历史命令最后一条 │
│ │
│ Alt + . 插入上一条命令的最后一个参数 │
│ │
└─────────────────────────────────────────────────────────────┘
命令历史 #
history 命令 #
bash
# 查看命令历史
$ history
1 ls -la
2 cd /home
3 cat /etc/passwd
4 grep "error" /var/log/syslog
# 查看最近 10 条历史
$ history 10
# 执行第 n 条历史命令
$ !3 # 执行第 3 条命令
$ cat /etc/passwd
# 执行上一条命令
$ !!
$ cat /etc/passwd
# 执行最近以 xxx 开头的命令
$ !grep
$ grep "error" /var/log/syslog
历史命令扩展 #
bash
# !! 上一条命令
$ ls -la
$ !! | grep ".txt"
ls -la | grep ".txt"
# !-n 倒数第 n 条命令
$ !-2 # 执行倒数第 2 条命令
# !$ 上一条命令的最后一个参数
$ ls /very/long/path/to/directory
$ cd !$
cd /very/long/path/to/directory
# !* 上一条命令的所有参数
$ ls -la /home/user
$ echo !*
echo -la /home/user
# !^ 上一条命令的第一个参数
$ ls -la /home/user
$ cd !^
cd -la # 注意:这不是我们想要的
# 正确用法示例
$ cp file1.txt file2.txt /backup/
$ ls !^
ls file1.txt
历史搜索 #
bash
# Ctrl + R 反向搜索
# 按 Ctrl + R 后输入关键字
(reverse-i-search)`grep': grep "error" /var/log/syslog
# 继续按 Ctrl + R 查找更早的匹配
# 按 Enter 执行
# 按 Ctrl + G 取消搜索
# 使用 grep 搜索历史
$ history | grep "docker"
123 docker ps -a
145 docker images
167 docker-compose up -d
历史配置 #
bash
# 历史文件位置
~/.bash_history # Bash 历史文件
~/.zsh_history # Zsh 历史文件
# 历史配置(添加到 ~/.bashrc)
HISTSIZE=10000 # 内存中保存的历史条数
HISTFILESIZE=20000 # 文件中保存的历史条数
HISTCONTROL=ignoreboth # 忽略重复命令和空格开头的命令
HISTIGNORE="ls:cd:pwd:exit" # 忽略特定命令
# 忽略重复命令
HISTCONTROL=ignoredups
# 忽略空格开头的命令
HISTCONTROL=ignorespace
# 同时生效
HISTCONTROL=ignoreboth
# 添加时间戳
HISTTIMEFORMAT="%F %T "
自动补全 #
Tab 补全 #
bash
# 命令补全
$ sys<Tab>
$ systemctl
# 文件名补全
$ ls /etc/pass<Tab>
$ ls /etc/passwd
# 目录补全
$ cd /home/u<Tab>
$ cd /home/user/
# 双击 Tab 显示所有匹配项
$ ls /etc/pa<Tab><Tab>
pam.d/ passwd passwd- pam.conf
# 路径补全
$ cat /var/log/sys<Tab>
$ cat /var/log/syslog
命令选项补全 #
bash
# Bash 补全包提供选项补全
$ systemctl <Tab><Tab>
start stop restart status enable
disable reload daemon-reload
$ git <Tab><Tab>
add commit push pull clone
branch checkout merge rebase log
# 安装 bash-completion
# Ubuntu/Debian
$ sudo apt install bash-completion
# CentOS/RHEL
$ sudo yum install bash-completion
补全快捷键 #
text
┌─────────────────────────────────────────────────────────────┐
│ 补全快捷键 │
├─────────────────────────────────────────────────────────────┤
│ │
│ Tab 自动补全 │
│ Tab Tab 显示所有匹配项 │
│ │
│ Alt + ? 显示所有可能的补全 │
│ Alt + * 插入所有可能的补全 │
│ Alt + / 文件名补全 │
│ │
└─────────────────────────────────────────────────────────────┘
别名设置 #
创建别名 #
bash
# 查看所有别名
$ alias
# 创建临时别名
$ alias ll='ls -la'
$ ll
total 32
drwxr-xr-x 5 user user 4096 Apr 11 10:00 .
# 创建带参数的别名(需要使用函数)
$ alias lsg='ls | grep'
# 使用函数实现更复杂的别名
$ lsg() { ls "$1" | grep "$2"; }
$ lsg /etc conf
常用别名推荐 #
bash
# 添加到 ~/.bashrc
# 文件操作
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
alias lh='ls -lh'
# 目录操作
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
# 安全操作
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias mkdir='mkdir -pv'
# Git 快捷方式
alias gs='git status'
alias ga='git add'
alias gc='git commit'
alias gp='git push'
alias gl='git log --oneline'
# 系统信息
alias ports='netstat -tulanp'
alias myip='curl -s ifconfig.me'
alias meminfo='free -h'
alias diskinfo='df -h'
删除别名 #
bash
# 删除别名
$ unalias ll
# 删除所有别名
$ unalias -a
终端标签页管理 #
GNOME Terminal #
text
┌─────────────────────────────────────────────────────────────┐
│ 标签页快捷键 │
├─────────────────────────────────────────────────────────────┤
│ │
│ Ctrl + Shift + T 新建标签页 │
│ Ctrl + Shift + W 关闭当前标签页 │
│ Ctrl + Page Up 切换到上一个标签页 │
│ Ctrl + Page Down 切换到下一个标签页 │
│ Ctrl + Shift + Page Up 移动标签页位置 │
│ │
│ Ctrl + Shift + N 新建终端窗口 │
│ Ctrl + Shift + Q 关闭终端窗口 │
│ │
└─────────────────────────────────────────────────────────────┘
iTerm2 (macOS) #
text
┌─────────────────────────────────────────────────────────────┐
│ iTerm2 快捷键 │
├─────────────────────────────────────────────────────────────┤
│ │
│ Command + T 新建标签页 │
│ Command + W 关闭当前标签页 │
│ Command + 数字 切换到指定标签页 │
│ Command + Shift + [ 切换到上一个标签页 │
│ Command + Shift + ] 切换到下一个标签页 │
│ │
│ Command + D 垂直分屏 │
│ Command + Shift + D 水平分屏 │
│ Command + [ 切换到上一个分屏 │
│ Command + ] 切换到下一个分屏 │
│ │
└─────────────────────────────────────────────────────────────┘
复制粘贴 #
终端复制粘贴 #
bash
# GNOME Terminal
Ctrl + Shift + C 复制
Ctrl + Shift + V 粘贴
# macOS Terminal / iTerm2
Command + C 复制
Command + V 粘贴
# 使用鼠标
# 选中即复制(部分终端支持)
# 中键粘贴
# 命令行方式
# 复制到剪贴板
$ echo "Hello" | xclip -selection clipboard
# 从剪贴板粘贴
$ xclip -selection clipboard -o
终端多路复用 #
screen 基础 #
bash
# 安装 screen
$ sudo apt install screen # Ubuntu/Debian
$ sudo yum install screen # CentOS/RHEL
# 创建新会话
$ screen -S mysession
# 分离会话
Ctrl + A, D
# 列出会话
$ screen -ls
# 重新连接
$ screen -r mysession
# 终止会话
$ exit
tmux 基础 #
bash
# 安装 tmux
$ sudo apt install tmux
# 创建新会话
$ tmux new -s mysession
# 分离会话
Ctrl + B, D
# 列出会话
$ tmux ls
# 重新连接
$ tmux attach -t mysession
# 分屏
Ctrl + B, % 垂直分屏
Ctrl + B, " 水平分屏
Ctrl + B, 方向键 切换分屏
小结 #
通过本节学习,你应该掌握:
- 终端启动:不同系统的终端启动方式
- 快捷键:光标移动、编辑、控制、历史命令快捷键
- 命令历史:history 命令和历史扩展
- 自动补全:Tab 补全提高效率
- 别名设置:简化常用命令
- 终端管理:标签页、分屏、多路复用
下一步,我们将学习命令的结构与语法,了解如何正确构造命令。
最后更新:2026-04-11