Appearance
基础操作
本章将介绍 Linux 的基础操作,包括终端使用、命令行基础、常用快捷键和帮助系统,帮助你快速上手 Linux 命令行操作。
终端简介
什么是终端?
终端(Terminal)是用户与 Linux 系统交互的界面,通过命令行(Command Line)输入指令来操作系统。
mermaid
graph LR
A[用户] --> B[终端模拟器]
B --> C[Shell]
C --> D[内核]
D --> E[硬件]终端模拟器
bash
# 常见终端模拟器:
# - GNOME Terminal (Ubuntu 默认)
# - Konsole (KDE)
# - xfce4-terminal (XFCE)
# - Terminator (可分屏)
# - Alacritty (GPU 加速)
# - iTerm2 (macOS)
# 打开终端快捷键
# Ubuntu/Debian: Ctrl + Alt + T
# Fedora: Ctrl + Alt + T终端与控制台
bash
# 终端(Terminal):图形界面下的终端模拟器
# 控制台(Console):纯文本界面的命令行环境
# Linux 有 6 个虚拟控制台(TTY1-TTY6)
# 切换到控制台:Ctrl + Alt + F1~F6
# 切换回图形界面:Ctrl + Alt + F7 或 F8
# 查看当前 TTY
tty
# 输出示例:/dev/pts/0(图形终端)或 /dev/tty1(控制台)Shell 简介
什么是 Shell?
Shell 是命令行解释器,负责解释并执行用户输入的命令。
bash
# 查看当前使用的 Shell
echo $SHELL
# 输出:/bin/bash
# 查看系统支持的 Shell
cat /etc/shells
# 输出示例:
# /bin/sh
# /bin/bash
# /bin/dash
# /bin/zsh
# 查看所有已安装的 Shell
chsh -l常见 Shell 类型
| Shell | 说明 | 特点 |
|---|---|---|
| bash | Bourne Again Shell | 最常用,功能全面 |
| sh | Bourne Shell | 最原始,兼容性好 |
| zsh | Z Shell | 功能强大,插件丰富 |
| dash | Debian Almquist Shell | 轻量,启动快 |
| fish | Friendly Interactive Shell | 用户友好,自动补全 |
切换 Shell
bash
# 临时切换到其他 Shell
zsh # 切换到 zsh
exit # 退出当前 Shell,返回原 Shell
# 永久更改默认 Shell
chsh -s /bin/zsh
# 需要重新登录才能生效
# 或使用命令立即生效
exec zsh命令行基础
命令格式
bash
# 基本格式
命令 [选项] [参数]
# 示例
ls # 命令
ls -l # 命令 + 选项
ls -l /home # 命令 + 选项 + 参数
ls -la /home # 多个选项可以合并
ls -l -a /home # 也可以分开写命令提示符
bash
# 标准提示符格式
[用户名@主机名 当前目录]$ # 普通用户
[用户名@主机名 当前目录]# # root 用户
# 示例
user@ubuntu:~$ # 普通用户,家目录
root@ubuntu:/home# # root 用户,/home 目录
# 提示符含义:
# user - 当前用户名
# ubuntu - 主机名
# ~ - 当前目录(~ 表示家目录)
# $ - 普通用户提示符
# # - root 用户提示符命令类型
bash
# 查看命令类型
type ls
# 输出:ls is aliased to `ls --color=auto'
type cd
# 输出:cd is a shell builtin
type cat
# 输出:cat is /bin/cat
# 命令类型:
# - alias:别名
# - builtin:Shell 内置命令
# - file:外部命令(可执行文件)
# - keyword:Shell 关键字执行命令
bash
# 直接执行命令
ls
# 执行多个命令(顺序执行)
ls; pwd; date
# 条件执行(前一个成功才执行下一个)
ls && echo "成功"
# 条件执行(前一个失败才执行下一个)
ls || echo "失败"
# 后台执行
sleep 100 &
# 输出:[1] 12345(作业号和进程ID)
# 查看后台作业
jobs常用快捷键
光标移动
| 快捷键 | 功能 |
|---|---|
Ctrl + A | 移动到行首 |
Ctrl + E | 移动到行尾 |
Ctrl + B | 向左移动一个字符 |
Ctrl + F | 向右移动一个字符 |
Alt + B | 向左移动一个单词 |
Alt + F | 向右移动一个单词 |
编辑操作
| 快捷键 | 功能 |
|---|---|
Ctrl + U | 删除从光标到行首的内容 |
Ctrl + K | 删除从光标到行尾的内容 |
Ctrl + W | 删除光标前一个单词 |
Ctrl + D | 删除光标处字符(或退出终端) |
Ctrl + H | 删除光标前一个字符(同 Backspace) |
Ctrl + T | 交换光标处和前一个字符的位置 |
Alt + T | 交换光标处和前一个单词的位置 |
控制操作
| 快捷键 | 功能 |
|---|---|
Ctrl + C | 终止当前命令 |
Ctrl + D | 退出当前 Shell |
Ctrl + Z | 暂停当前命令(放入后台) |
Ctrl + L | 清屏(同 clear 命令) |
Ctrl + S | 暂停屏幕输出 |
Ctrl + Q | 恢复屏幕输出 |
历史命令
| 快捷键 | 功能 |
|---|---|
Ctrl + P | 上一条命令(同上箭头) |
Ctrl + N | 下一条命令(同下箭头) |
Ctrl + R | 搜索历史命令 |
Alt + . | 使用上一条命令的最后一个参数 |
!! | 执行上一条命令 |
!n | 执行第 n 条历史命令 |
!string | 执行最近以 string 开头的命令 |
bash
# 历史命令示例
!! # 执行上一条命令
sudo !! # 以 root 权限执行上一条命令
!ls # 执行最近以 ls 开头的命令
!$ # 上一条命令的最后一个参数
# 搜索历史命令
# 按 Ctrl + R,然后输入关键词
# 继续按 Ctrl + R 查找下一个匹配
# 按 Enter 执行,按 Esc 编辑帮助系统
man 手册
bash
# man 是 manual 的缩写,查看命令手册
man ls
# 手册章节
# 1 - 用户命令
# 2 - 系统调用
# 3 - C 库函数
# 4 - 设备文件
# 5 - 配置文件格式
# 6 - 游戏
# 7 - 杂项
# 8 - 系统管理命令
# 查看指定章节
man 5 passwd # 查看 passwd 配置文件格式
man 1 passwd # 查看 passwd 命令
# 搜索手册
man -k password # 搜索包含 password 的手册
apropos password # 同上man 导航
bash
# 在 man 页面中的操作:
# 空格键 - 向下翻一页
# b - 向上翻一页
# Enter - 向下滚动一行
# /pattern - 向下搜索
# ?pattern - 向上搜索
# n - 下一个搜索结果
# N - 上一个搜索结果
# q - 退出
# h - 帮助--help 选项
bash
# 大多数命令支持 --help 选项
ls --help
# 简短帮助,显示常用选项和用法
# 适合快速查看命令用法info 命令
bash
# info 提供更详细的文档
info coreutils
info ls
# info 导航:
# n - 下一个节点
# p - 上一个节点
# u - 上级节点
# Enter - 进入链接
# q - 退出type 和 which
bash
# 查看命令类型
type cd
type ls
# 查看命令位置
which ls
# 输出:/bin/ls
which python3
# 输出:/usr/bin/python3whatis 和 apropos
bash
# whatis - 简短描述
whatis ls
# 输出:ls (1) - list directory contents
# apropos - 搜索相关命令
apropos copy
# 输出所有包含 copy 关键词的命令基础命令实践
系统信息
bash
# 显示当前用户
whoami
# 显示当前日期时间
date
# 显示日历
cal
# 显示系统运行时间
uptime
# 显示系统信息
uname -a
# 显示主机名
hostname目录操作
bash
# 显示当前目录
pwd
# 输出:/home/user
# 切换目录
cd /home # 切换到 /home 目录
cd ~ # 切换到家目录
cd # 切换到家目录(同上)
cd - # 切换到上一个目录
cd .. # 切换到上级目录
cd ../.. # 切换到上两级目录文件列表
bash
# 列出文件和目录
ls # 列出当前目录
ls /home # 列出指定目录
ls -l # 详细列表格式
ls -a # 显示隐藏文件(以 . 开头)
ls -h # 人类可读的文件大小
ls -R # 递归列出子目录
ls -t # 按修改时间排序
ls -S # 按文件大小排序
ls -r # 反向排序
# 组合使用
ls -lah # 详细 + 隐藏 + 人类可读
ls -lt # 详细 + 按时间排序文件操作
bash
# 创建空文件
touch file.txt
# 创建目录
mkdir dir1
mkdir -p dir1/dir2/dir3 # 创建多级目录
# 复制文件
cp file1.txt file2.txt # 复制文件
cp -r dir1 dir2 # 复制目录
# 移动/重命名
mv file1.txt file2.txt # 重命名
mv file.txt /tmp/ # 移动文件
mv dir1 dir2 # 重命名目录
# 删除文件
rm file.txt # 删除文件
rm -r dir1 # 删除目录
rm -rf dir1 # 强制删除(不提示)
rm -i file.txt # 交互式删除(提示确认)查看文件
bash
# 查看文件内容
cat file.txt # 显示全部内容
cat -n file.txt # 显示行号
# 分页查看
less file.txt # 分页查看
more file.txt # 分页查看(功能较少)
# 查看文件开头
head file.txt # 显示前 10 行
head -n 20 file.txt # 显示前 20 行
# 查看文件结尾
tail file.txt # 显示后 10 行
tail -n 20 file.txt # 显示后 20 行
tail -f /var/log/syslog # 实时查看日志更新输入输出重定向
标准流
bash
# Linux 有三个标准流:
# stdin (0) - 标准输入
# stdout (1) - 标准输出
# stderr (2) - 标准错误输出重定向
bash
# 重定向标准输出到文件(覆盖)
ls > file.txt
# 重定向标准输出到文件(追加)
ls >> file.txt
# 重定向标准错误
ls /notexist 2> error.txt
# 重定向标准输出和标准错误
ls /notexist > all.txt 2>&1
ls /notexist &> all.txt # 简写形式
# 丢弃输出
ls > /dev/null输入重定向
bash
# 从文件读取输入
sort < file.txt
# Here Document(多行输入)
cat << EOF
这是第一行
这是第二行
EOF
# Here String(单行输入)
grep "pattern" <<< "this is a test string"管道
bash
# 管道将一个命令的输出作为另一个命令的输入
ls | grep ".txt"
cat file.txt | sort | uniq
# 统计文件行数
cat file.txt | wc -l
# 分页查看长输出
ls -l | less命令别名
设置别名
bash
# 查看所有别名
alias
# 设置别名
alias ll='ls -la'
alias l='ls -CF'
alias cls='clear'
# 使用别名
ll # 相当于 ls -la
# 删除别名
unalias ll永久别名
bash
# 将别名添加到配置文件使其永久生效
# 对于 bash,添加到 ~/.bashrc
echo "alias ll='ls -la'" >> ~/.bashrc
# 使配置生效
source ~/.bashrc
# 对于 zsh,添加到 ~/.zshrc
echo "alias ll='ls -la'" >> ~/.zshrc
source ~/.zshrc命令历史
history 命令
bash
# 查看命令历史
history
# 查看最近 10 条命令
history 10
# 清除历史
history -c
# 执行历史命令
!100 # 执行第 100 条命令
!! # 执行上一条命令
!-2 # 执行倒数第二条命令历史配置
bash
# 历史配置变量
echo $HISTSIZE # 历史命令数量(默认 500-2000)
echo $HISTFILE # 历史文件位置(~/.bash_history)
echo $HISTFILESIZE # 历史文件大小
# 在 ~/.bashrc 中配置
export HISTSIZE=10000
export HISTFILESIZE=20000
export HISTCONTROL=ignoreboth # 忽略重复和空格开头的命令小结
本章介绍了 Linux 的基础操作,包括:
| 内容 | 要点 |
|---|---|
| 终端 | 终端模拟器、虚拟控制台 |
| Shell | bash、zsh 等 Shell 类型 |
| 命令格式 | 命令 [选项] [参数] |
| 快捷键 | 光标移动、编辑、控制、历史 |
| 帮助系统 | man、--help、info、apropos |
| 重定向 | >、>>、<、 |
| 别名 | alias、unalias |
关键要点
- 熟练使用快捷键可以大幅提高命令行效率
- 遇到不懂的命令,善用
man和--help - 管道和重定向是 Linux 命令行的核心特性
- 别名可以简化常用命令的输入
下一步
下一章我们将学习 Linux 文件系统,了解 Linux 的目录结构、文件类型和路径概念。
