终端基础
什么是终端?
终端(Terminal)是与 Linux 系统交互的文本界面。通过终端,你可以输入命令来执行各种操作,从简单的文件浏览到复杂的系统管理任务。
相关概念
┌─────────────────────────────────────────────────────────────┐
│ │
│ 终端模拟器 (Terminal Emulator) │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ Shell (如 Bash) │ │
│ │ ┌─────────────────────────────────────────────────┐ │ │
│ │ │ │ │ │
│ │ │ $ ls -la ← 命令行 │ │ │
│ │ │ total 24 │ │ │
│ │ │ drwxr-xr-x 3 user user 4096 Jan 1 10:00 . │ │ │
│ │ │ -rw-r--r-- 1 user user 123 Jan 1 10:00 file │ │ │
│ │ │ │ │ │
│ │ └─────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └───────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘- 终端模拟器:图形界面中运行的终端程序(如 GNOME Terminal、Konsole)
- Shell:命令解释器,接收命令并执行(如 Bash、Zsh)
- 命令行:输入命令的界面
- 控制台:物理终端,通常指 TTY
打开终端
图形界面
- GNOME:按
Ctrl + Alt + T或搜索 "Terminal" - KDE:按
Ctrl + Alt + T或搜索 "Konsole" - Xfce:菜单 → 附件 → 终端
虚拟控制台(TTY)
按 Ctrl + Alt + F1 到 F6 切换到虚拟控制台,Ctrl + Alt + F7 或 F2 返回图形界面。
命令提示符
打开终端后,你会看到命令提示符:
bash
username@hostname:~$各部分含义:
username:当前用户名@:分隔符hostname:计算机名::分隔符~:当前目录(~表示家目录)$:普通用户(#表示 root 用户)
提示符示例
bash
maxwell@ubuntu:~$ # 普通用户在家目录
maxwell@ubuntu:/etc$ # 普通用户在 /etc 目录
root@ubuntu:/var/log# # root 用户在 /var/log 目录命令的基本格式
bash
命令 [选项] [参数]示例
bash
ls # 命令:列出文件
ls -l # 命令 + 选项:详细列表
ls -la /home # 命令 + 选项 + 参数:列出 /home 的所有文件选项的形式
bash
# 短选项(单个字母,用 - 开头)
ls -l
ls -a
ls -la # 多个短选项可以合并
# 长选项(单词,用 -- 开头)
ls --all
ls --human-readable
# 带值的选项
head -n 10 file.txt
head --lines=10 file.txt第一批命令
pwd - 显示当前目录
bash
$ pwd
/home/maxwellls - 列出文件
bash
# 基本使用
$ ls
Desktop Documents Downloads Pictures
# 详细信息
$ ls -l
drwxr-xr-x 2 maxwell maxwell 4096 Jan 1 10:00 Desktop
drwxr-xr-x 2 maxwell maxwell 4096 Jan 1 10:00 Documents
# 显示隐藏文件
$ ls -a
. .. .bashrc .profile Desktop Documents
# 人类可读的文件大小
$ ls -lh
-rw-r--r-- 1 maxwell maxwell 1.5K Jan 1 10:00 file.txt
# 常用组合
$ ls -la
$ ls -lahcd - 切换目录
bash
# 进入目录
$ cd Documents
$ pwd
/home/maxwell/Documents
# 返回上级目录
$ cd ..
# 返回家目录
$ cd
$ cd ~
# 进入上次所在目录
$ cd -
# 使用绝对路径
$ cd /var/log
# 使用相对路径
$ cd ../etc路径说明
bash
. # 当前目录
.. # 上级目录
~ # 家目录
/ # 根目录
# 绝对路径:从根目录开始
/home/maxwell/Documents
# 相对路径:从当前目录开始
Documents
./Documents
../maxwell/Documentsclear - 清屏
bash
$ clear
# 或按 Ctrl + Lecho - 输出文本
bash
$ echo "Hello, World!"
Hello, World!
$ echo $HOME
/home/maxwell
$ echo $PATH
/usr/local/bin:/usr/bin:/binwhoami - 显示当前用户
bash
$ whoami
maxwelldate - 显示日期时间
bash
$ date
Sat Jan 1 10:00:00 CST 2025
$ date +"%Y-%m-%d"
2025-01-01
$ date +"%H:%M:%S"
10:00:00cal - 显示日历
bash
$ cal
January 2025
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31获取帮助
man - 手册页
bash
$ man ls
LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs...man 手册导航
空格/Page Down:下一页b/Page Up:上一页/关键词:搜索n:下一个搜索结果q:退出
手册章节
| 章节 | 内容 |
|---|---|
| 1 | 用户命令 |
| 2 | 系统调用 |
| 3 | 库函数 |
| 4 | 特殊文件 |
| 5 | 文件格式 |
| 6 | 游戏 |
| 7 | 杂项 |
| 8 | 系统管理命令 |
bash
# 查看特定章节
$ man 5 passwd # 查看 passwd 文件格式
$ man 1 passwd # 查看 passwd 命令--help 选项
bash
$ ls --help
Usage: ls [OPTION]... [FILE]...
List information about the FILEs...info - 详细文档
bash
$ info lswhatis - 简短描述
bash
$ whatis ls
ls (1) - list directory contentsapropos - 搜索命令
bash
$ apropos copy
cp (1) - copy files and directories
scp (1) - secure copy (remote file copy program)命令行快捷键
光标移动
| 快捷键 | 功能 |
|---|---|
Ctrl + A | 移到行首 |
Ctrl + E | 移到行尾 |
Ctrl + B | 后移一个字符 |
Ctrl + F | 前移一个字符 |
Alt + B | 后移一个单词 |
Alt + F | 前移一个单词 |
编辑
| 快捷键 | 功能 |
|---|---|
Ctrl + U | 删除到行首 |
Ctrl + K | 删除到行尾 |
Ctrl + W | 删除前一个单词 |
Alt + D | 删除后一个单词 |
Ctrl + Y | 粘贴删除的内容 |
Ctrl + _ | 撤销 |
历史命令
| 快捷键 | 功能 |
|---|---|
↑ / Ctrl + P | 上一条命令 |
↓ / Ctrl + N | 下一条命令 |
Ctrl + R | 搜索历史命令 |
!! | 执行上一条命令 |
!n | 执行第 n 条历史命令 |
!string | 执行以 string 开头的最近命令 |
控制
| 快捷键 | 功能 |
|---|---|
Ctrl + C | 中断当前命令 |
Ctrl + Z | 暂停当前命令 |
Ctrl + D | 退出终端(或输入 EOF) |
Ctrl + L | 清屏 |
Tab | 自动补全 |
Tab Tab | 显示所有补全选项 |
Tab 补全
Tab 补全是提高效率的重要功能:
bash
# 补全命令
$ sys<Tab>
$ systemctl
# 补全文件名
$ cd Doc<Tab>
$ cd Documents/
# 补全路径
$ ls /u<Tab>sr/<Tab>lo<Tab>cal/
$ ls /usr/local/
# 显示多个选项
$ cd D<Tab><Tab>
Desktop/ Documents/ Downloads/命令历史
history 命令
bash
# 显示历史命令
$ history
1 ls
2 cd Documents
3 pwd
...
# 显示最近 10 条
$ history 10
# 搜索历史
$ history | grep ls
# 清除历史
$ history -c使用历史命令
bash
# 执行上一条命令
$ !!
# 执行第 42 条命令
$ !42
# 执行最近以 ls 开头的命令
$ !ls
# 使用上一条命令的参数
$ ls Documents
$ cd !$ # cd Documents反向搜索
按 Ctrl + R,然后输入关键词:
bash
(reverse-i-search)`ls': ls -la /home按 Ctrl + R 继续搜索,按 Enter 执行,按 Esc 或 Ctrl + C 取消。
多个命令
顺序执行
bash
# 用分号分隔
$ mkdir test; cd test; pwd
/home/maxwell/test条件执行
bash
# && - 前一个成功才执行后一个
$ mkdir test && cd test
# 如果 mkdir 成功,才执行 cd
# || - 前一个失败才执行后一个
$ cd test || mkdir test
# 如果 cd 失败,才执行 mkdir组合使用
bash
$ mkdir test && cd test || echo "Failed"别名
创建别名
bash
# 临时别名
$ alias ll='ls -la'
$ ll
# 查看所有别名
$ alias
# 删除别名
$ unalias ll永久别名
编辑 ~/.bashrc 文件:
bash
# 添加别名
alias ll='ls -la'
alias la='ls -A'
alias l='ls -CF'
alias ..='cd ..'
alias ...='cd ../..'
alias update='sudo apt update && sudo apt upgrade'使更改生效:
bash
$ source ~/.bashrc
# 或
$ . ~/.bashrc通配符
基本通配符
| 通配符 | 含义 | 示例 |
|---|---|---|
* | 匹配任意字符(0个或多个) | *.txt |
? | 匹配单个字符 | file?.txt |
[abc] | 匹配括号中的任一字符 | file[123].txt |
[a-z] | 匹配范围内的字符 | file[a-z].txt |
[!abc] | 不匹配括号中的字符 | file[!0-9].txt |
示例
bash
# 所有 .txt 文件
$ ls *.txt
file1.txt file2.txt notes.txt
# 单个字符匹配
$ ls file?.txt
file1.txt file2.txt
# 字符范围
$ ls file[1-3].txt
file1.txt file2.txt file3.txt
# 排除
$ ls file[!1].txt
file2.txt file3.txt大括号展开
bash
# 创建多个文件
$ touch file{1,2,3}.txt
# 等同于 touch file1.txt file2.txt file3.txt
# 范围展开
$ echo {1..5}
1 2 3 4 5
$ echo {a..e}
a b c d e
# 组合
$ mkdir project/{src,bin,doc}
# 创建 project/src, project/bin, project/doc小结
本章介绍了终端的基本使用:
- 终端和 Shell 的概念
- 基本命令:
pwd、ls、cd、clear、echo - 获取帮助:
man、--help、info - 快捷键:提高操作效率
- 命令历史:重用之前的命令
- 通配符:批量操作文件
掌握这些基础知识后,你就可以开始在终端中高效地工作了。接下来我们将学习 Linux 的文件系统结构。
上一章:桌面环境
下一章:文件系统结构