Skip to content

终端基础

什么是终端?

终端(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 + F1F6 切换到虚拟控制台,Ctrl + Alt + F7F2 返回图形界面。

命令提示符

打开终端后,你会看到命令提示符:

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/maxwell

ls - 列出文件

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 -lah

cd - 切换目录

bash
# 进入目录
$ cd Documents
$ pwd
/home/maxwell/Documents

# 返回上级目录
$ cd ..

# 返回家目录
$ cd
$ cd ~

# 进入上次所在目录
$ cd -

# 使用绝对路径
$ cd /var/log

# 使用相对路径
$ cd ../etc

路径说明

bash
.           # 当前目录
..          # 上级目录
~           # 家目录
/           # 根目录

# 绝对路径:从根目录开始
/home/maxwell/Documents

# 相对路径:从当前目录开始
Documents
./Documents
../maxwell/Documents

clear - 清屏

bash
$ clear
# 或按 Ctrl + L

echo - 输出文本

bash
$ echo "Hello, World!"
Hello, World!

$ echo $HOME
/home/maxwell

$ echo $PATH
/usr/local/bin:/usr/bin:/bin

whoami - 显示当前用户

bash
$ whoami
maxwell

date - 显示日期时间

bash
$ date
Sat Jan  1 10:00:00 CST 2025

$ date +"%Y-%m-%d"
2025-01-01

$ date +"%H:%M:%S"
10:00:00

cal - 显示日历

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 ls

whatis - 简短描述

bash
$ whatis ls
ls (1)               - list directory contents

apropos - 搜索命令

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 执行,按 EscCtrl + 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 的概念
  • 基本命令pwdlscdclearecho
  • 获取帮助man--helpinfo
  • 快捷键:提高操作效率
  • 命令历史:重用之前的命令
  • 通配符:批量操作文件

掌握这些基础知识后,你就可以开始在终端中高效地工作了。接下来我们将学习 Linux 的文件系统结构。


上一章:桌面环境

下一章:文件系统结构