Skip to content

基础操作

本章将介绍 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说明特点
bashBourne Again Shell最常用,功能全面
shBourne Shell最原始,兼容性好
zshZ Shell功能强大,插件丰富
dashDebian Almquist Shell轻量,启动快
fishFriendly 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/python3

whatis 和 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 的基础操作,包括:

内容要点
终端终端模拟器、虚拟控制台
Shellbash、zsh 等 Shell 类型
命令格式命令 [选项] [参数]
快捷键光标移动、编辑、控制、历史
帮助系统man、--help、info、apropos
重定向>、>>、<、
别名alias、unalias

关键要点

  • 熟练使用快捷键可以大幅提高命令行效率
  • 遇到不懂的命令,善用 man--help
  • 管道和重定向是 Linux 命令行的核心特性
  • 别名可以简化常用命令的输入

下一步

下一章我们将学习 Linux 文件系统,了解 Linux 的目录结构、文件类型和路径概念。