# Debian快速入门 ***Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.*** --- 本文档面向 **Quectel Pi H1智能主控板** 初学者,旨在协助用户快速掌握Debian系统中的常见操作与开发任务。内容涵盖文件属性与权限、文件管理、文本编辑及软件包管理,适用于零基础或Linux入门用户逐步学习。 # 文件属性与权限 了解Linux文件的类型、所有者及权限位结构,学习使用 **ls -l** 命令查看文件属性,并通过 **chown**、**chmod** 命令管理文件所有者与访问权限。 在Linux中,文件不仅包含“文件名”与“大小”,还具备所有者、所属组、访问权限、类型及修改时间等属性。理解这些属性有助于排查脚本无法执行、目录不可写,以及修改系统配置文件时需要使用sudo等问题。 ## 文件属性查看方法 最常用的查看方式为: ```plaintext ls -l ``` 若需同时显示隐藏文件,并以更易读的方式显示文件大小,可执行如下命令: ```plaintext ls -lah ``` 典型输出如下: ```plaintext -rwxr-xr-- 1 pi pi 2048 Jun 22 10:30 demo.sh ``` 该行信息可拆分为以下部分: | **字段** | **示例** | **说明** | | --- | --- | --- | | 文件类型与权限 | -rwxr-xr-- | 第1位表示文件类型,后9位表示权限 | | 链接数 | 1 | 指向该文件的目录项数量 | | 所有者 | pi | 文件拥有者 | | 所属组 | pi | 该文件归属的用户组 | | 大小 | 2048 | 文件大小。单位:字节(默认) | | 修改时间 | Jun 22 10:30 | 最后修改时间 | | 文件名 | demo.sh | 文件名称 | ## 文件类型识别 权限串的第1位表示文件类型: 例如: - drwxr-xr-x:表示目录。 - -rw-r--r--:表示普通文件。 - lrwxrwxrwx:表示符号链接。 ## 权限位结构说明 第2至第10位共9个字符,分为3组: ```plaintext rwx r-x r-- | | | | | +-- 其他用户(others)权限 | +------ 所属组(group)权限 +---------- 所有者(owner)权限 ``` 每组权限包含以下字符: | **符号** | **含义** | | --- | --- | | r | 可读 | | w | 可写 | | x | 可执行 | | - | 无此权限 | 例如: - rw-r--r--:所有者可读可写,所属组与其他用户仅可读。 - rwxr-xr-x:所有者可读、可写、可执行,所属组与其他用户可读、可执行。 ### chown:所有者与所属组管理 当文件归属错误的用户或用户组时,可使用 **chown** 进行修改。 基本语法: ```plaintext sudo chown [选项] 用户[:组] 文件或目录 ``` 常用示例: 将文件所有者更改为pi: ```plaintext sudo chown pi demo.sh ``` 同时修改所有者和所属组: ```plaintext sudo chown pi:pi demo.sh ``` 递归修改整个目录的所有者与所属组: ```plaintext sudo chown -R pi:pi /home/pi/project ``` 仅修改所属组: ```plaintext sudo chown :pi /home/pi/project/config.json ``` **Quectel Pi H1典型应用场景** - 通过 **sudo** 解压或复制文件后,文件所有者将变更为root,导致普通用户pi无法继续编辑。 - 项目目录从外部设备拷贝后,若权限与当前用户不一致,需进行统一调整。 ### chmod:访问权限管理 当文件“可读但不可写”或“脚本无法执行”时,通常需使用 **chmod**。 基本语法: ```plaintext chmod [选项] 权限 文件或目录 ``` **符号模式** 格式如下: ```plaintext [ugoa][+-=][rwx] ``` 其中: - u表示所有者 - g表示所属组 - o表示其他用户 - a表示所有用户 常用示例: 为所有者添加执行权限: ```plaintext chmod u+x demo.sh ``` 为所有用户添加读权限: ```plaintext chmod a+r demo.txt ``` 移除其他用户的写权限: ```plaintext chmod o-w demo.txt ``` **数字模式** 权限亦可采用数字形式表示,例如: ```plaintext chmod 755 demo.sh chmod 644 notes.txt ``` 此处的3位数字分别对应: ```plaintext chmod 754 demo.sh | | | | | +-- 其他用户(others)权限 | +---- 所属组(group)权限 +------ 所有者(owner)权限 ``` 每组rwx权限均可视为3个开关位:r、w和x。 - r(读权限)是否开启 - w(写权限)是否开启 - x(执行权限)是否开启 这3个开关既可理解为“加法权重”,也可视为一个3位二进制数: 对应关系如下: | **权限位** | **二进制位** | **十进制权重** | | --- | --- | --- | | r | 100 | 4 | | w | 10 | 2 | | x | 1 | 1 | 因此,一组权限的数字本质上即为各开启权限位的权重之和: - r-- = 100 = 4 - rw- = 110 = 4 + 2 = 6 - r-x = 101 = 4 + 1 = 5 - rwx = 111 = 4 + 2 + 1 = 7 - --- = 000 = 0 ## 操作示例 **为脚本添加执行权限** ```plaintext chmod u+x start.sh ./start.sh ``` **保护私有配置文件** ```plaintext chmod 600 ~/.ssh/config ``` # 文件与目录管理 掌握Linux中最常用的文件与目录操作命令:**pwd**、**cd**、**ls**、**mkdir**、**rmdir**、**cp**、**rm**、**mv**,以及 **cat**、**tail** 等文件内容查看工具。 在Linux中,多数日常操作均围绕“路径”与“目录”展开。无论是查看日志、切换项目目录、复制模型文件,还是删除无用资源,均需依赖常用的文件与目录命令。 ## 路径与目录基础概念 ### 当前工作目录 终端始终存在一个“当前工作目录”。多数命令默认作用于当前目录,因此明确当前所处位置至关重要。 查看当前目录: ```bash pwd ``` ### 路径表示方式 - **绝对路径**:从根目录/开始,例如 */home/pi/project*。 - **相对路径**:相对于当前目录,例如 *project/src*。 常见特殊写法: - .表示当前目录; - ..表示上一级目录; - ~表示当前用户主目录,例如 */home/pi*。 ### 常用系统目录 在 **Debian** 系统中,用户通常会涉及以下目录: | **目录** | **作用** | | --- | --- | | */etc* | 系统配置文件 | | */opt* | 第三方应用或自定义程序 | | */var/log* | 系统日志 | | */tmp* | 临时文件 | ### 常用命令 #### ls:目录内容查看 **ls** 命令用于显示当前工作目录包含的文件及子目录内容。 示例: ```bash # 查看当前目录内容 ls # 查看当前目录所有文件,包括隐藏文件 ls -la # 查看更易读的文件大小 ls -lh # 按时间排序查看文件 ls -ltr ``` #### cd:目录切换 **cd** 命令用于切换当前工作目录至指定路径。 ```bash cd [dirName] # dirName:目标目录,可为相对路径或绝对路径。 ``` 示例: ```bash # 切换到usr目录 cd /usr # 返回上一级目录 cd .. # 返回用户主目录 cd ~ # 返回上一次所在目录 cd - ``` #### mkdir与rmdir:目录创建与删除 **mkdir** 命令用于创建目录,**rmdir** 命令用于删除空目录。 ```bash # -p确保目录路径存在,若不存在则自动创建 mkdir [-p] dirName # -p若父目录因删除子目录而变为空,则一并删除 rmdir [-p] dirName ``` 示例: ```bash #在当前目录下创建logs目录 mkdir logs #自动创建不存在的父目录project/data mkdir -p project/data/raw #删除logs目录,该目录需为空 rmdir logs ``` #### cp:文件与目录复制 通过 **cp** 命令,可将文件或目录从源位置复制到目标位置。 ```bash cp [选项] 源文件 目标文件 ``` 示例: ```bash #将文件source.txt复制为backup.txt cp source.txt backup.txt #复制目录 cp -r project project_backup ``` #### mv:移动与重命名 **mv** 命令用于重命名文件或目录,或将其移动至其他位置。 ```bash #将app.log移动到/tmp/目录下 mv app.log /tmp/ #将old_name.txt文件重命名为new_name.txt mv old_name.txt new_name.txt #重命名目录,将dataset目录重命名为dataset_old mv dataset dataset_old ``` #### rm:文件与目录删除 **rm** 命令用于删除文件或目录。 ```bash #删除文件demo.txt rm demo.txt #删除demo_dir目录及子目录 rm -r demo_dir #强制删除且不提示 rm -rf demo_dir ``` ```{note} **rm -rf** 为高风险命令,删除数据后无法恢复。执行前建议先使用 **pwd** 和 **ls** 命令确认目标路径。 ``` #### cat与tail:文件内容查看 **cat** **cat** 命令用于连接文件并将其打印至标准输出设备,主要用于查看和拼接文件内容。 ```bash #查看README.md文件内容 cat README.md #配合行号显示查看: cat -n app.py ``` **tail** **tail** 命令可用于查看文件末尾的内容。 ```bash # 默认显示最后10行系统日志 tail /var/log/syslog #查看系统日志/var/log/syslog末尾50行 tail -n 50 /var/log/syslog #实时跟踪日志 tail -f /var/log/syslog ``` ## 基础操作示例 ### 创建并进入项目目录 ```bash mkdir -p ~/project/demo cd ~/project/demo pwd ``` ### 备份配置文件 ```bash cp -i /etc/hosts ~/hosts.bak ``` ### 清理临时目录 ```bash rm -r ~/project/demo/tmp ``` # 文本编辑 在使用 **Quectel Pi H1** 进行开发时,用户经常需要修改配置文件、编辑脚本或调整服务参数。终端环境下常用的文本编辑器有 **Vim** 和 **nano**。本节将分别介绍这两款编辑器的使用方法,用户可根据实际需求选择合适的工具。 ## Vim编辑器 vim是vi编辑器的增强版本,支持语法高亮、搜索替换、批量编辑等功能,适用于本地终端、串口终端及SSH会话。 若系统提示找不到该命令,可先执行以下命令安装: ```bash sudo apt update sudo apt install vim ``` ## Vim工作模式 根据常见使用方式,Vim可划分为以下三个核心模式: | **模式** | **作用** | **如何进入** | | --- | --- | --- | | 命令模式 | 移动光标、复制、删除、保存、退出 | 打开文件后默认进入 | | 输入模式 | 输入和修改文本 | 在命令模式下按i、a、o | | 命令行模式 | 执行保存、退出、查找替换等命令 | 在命令模式按 **:** | 三种模式间的切换逻辑如下: - 打开文件后,默认进入命令模式。 - 需要输入内容时,切换到输入模式。 - 需要保存、退出或执行查找替换时,切换到命令行模式。 ### 基础操作流程 1. **打开或创建文件** ```bash vim notes.txt ``` 若文件不存在,Vim将自动新建该文件。 2. **进入输入模式** 在命令模式下按下以下任意一个键: | **按键** | **作用** | | --- | --- | | **i** | 在光标当前位置开始输入 | | **a** | 在光标后一个位置开始输入 | | **o** | 在当前行下方新增一行并输入 | 3. **文本录入** 进入输入模式后,即可像普通编辑器一样输入字符。 4. **返回命令模式** 按 **Esc** 键返回命令模式。 1. **保存与退出** 在命令模式下按下 **:** 键进入命令行模式,然后输入并执行相应命令: | **命令** | **作用** | | --- | --- | | **:w** | 保存 | | **:q** | 退出 | | **:wq** | 保存并退出 | | **:q!** | 不保存,强制退出 | ### 常用操作指令 **命令模式常用指令** | **按键** | **作用** | | --- | --- | | **h j k l** | 向左、下、上、右移动光标 | | **x** | 删除当前字符 | | **dd** | 删除当前行 | | **yy** | 复制当前行 | | **p** | 在下方粘贴 | | **u** | 撤销 | | **Ctrl+r** | 重做 | | **/关键字** | 向下搜索 | | **n** | 跳转到下一个匹配 | **命令行模式常用指令** | **命令** | **作用** | | --- | --- | | **:set nu** | 显示行号 | | **:set nonu** | 取消行号 | | **:%s/old/new/g** | 全文替换 | | **:1,10s/old/new/g** | 替换第1到第10行 | ### 操作示例 以下以创建一个简单脚本为例: ```bash vim hello.sh ``` 按 **i** 进入输入模式,写入以下内容: ```bash #!/bin/bash echo "Hello Quectel Pi H1" ``` 按下 **Esc** 返回命令模式,输入 **:wq** 保存并退出。 随后为脚本增加执行权限: ```bash chmod u+x hello.sh ./hello.sh ``` ### 编辑系统文件 编辑普通用户目录下的文件时,可直接执行: ```bash vim ~/notes.txt ``` 编辑系统配置文件时,通常需使用sudo权限: ```bash sudo vim /etc/hostname ``` 建议先备份原文件: ```bash sudo cp /etc/hostname /etc/hostname.bak sudo vim /etc/hostname ``` ### 常见问题排查 **无法退出Vim** 多数情况是由于仍处于输入模式。请先按下 **Esc** 键,再输入 **:q** 或 **:wq**。 **保存时提示权限不足** 表明当前文件需要管理员权限,请退出后使用 **sudo vim <文件名>** 重新打开。 **中文显示或缩进异常** 通常与终端字体或文件编码有关。建议优先使用UTF-8编码,并在图形终端中确认字体支持中文。 ## nano编辑器 ### 概述 **nano** 是一款轻量级终端文本编辑器,操作简单直观,无需切换模式,适合快速编辑配置文件,也适合不熟悉Vim的用户使用。 若系统未预装nano,可先执行以下命令进行安装: ```bash sudo apt update sudo apt install nano ``` ### 基础操作 1. **打开或创建文件** ```bash nano notes.txt ``` 若文件不存在,nano将自动新建该文件。打开后即可直接输入和编辑文本,无需切换模式。 2. **编辑文本** 打开文件后,在光标所在位置即可直接输入字符,并使用方向键移动光标。 3. **保存文件** 按下 **Ctrl+O**(字母O),nano将提示确认文件名,按下 **Enter** 键确认保存。 4. **退出编辑器** 按下 **Ctrl+X** 退出。若文件存在未保存的修改,nano将询问是否保存: - 按 **Y** 保存后退出 - 按 **N** 不保存退出 - 按 **Ctrl+C** 取消退出操作 ### 常用快捷键 nano底部会显示常用快捷键提示,其中^表示Ctrl键。 | **快捷键** | **作用** | | --- | --- | | **Ctrl+O** | 保存文件 | | **Ctrl+X** | 退出 | | **Ctrl+K** | 剪切当前行 | | **Ctrl+U** | 粘贴剪切的内容 | | **Ctrl+W** | 搜索文本 | | **Ctrl+\** | 搜索并替换 | | **Ctrl+G** | 查看帮助 | | **Ctrl+C** | 显示当前光标位置 | | **Alt+U** | 撤销 | | **Alt+E** | 重做 | | **Ctrl+A** | 移动到行首 | | **Ctrl+E** | 移动到行尾 | | **Ctrl+Y** | 向上翻页 | | **Ctrl+V** | 向下翻页 | ### 搜索与替换 **搜索文本** 按 **Ctrl+W**,输入要搜索的关键字,按 **Enter** 跳转到第一个匹配位置。继续按 **Ctrl+W** 并按 **Enter** 可跳转到下一个匹配。 **搜索并替换** 按C **trl+\**,输入要查找的字符串并按下 **Enter** 键,再输入替换后的字符串并按下 **Enter** 键。nano将逐一询问是否替换: - 按 **Y** 替换当前匹配 - 按 **N** 跳过当前匹配 - 按 **A** 替换所有匹配 ### 操作示例 以创建一个简单脚本为例: ```bash nano hello.sh ``` 直接输入以下内容: ```bash #!/bin/bash echo "Hello Quectel Pi H1" ``` 按 **Ctrl+O** 保存,按 **Enter** 确认文件名,再按 **Ctrl+X** 退出。 随后为脚本添加执行权限: ```bash chmod u+x hello.sh ./hello.sh ``` ### 编辑系统文件 编辑系统配置文件时,同样需使用sudo权限: ```bash sudo nano /etc/hostname ``` # 软件下载与更新 在Debian系统中,安装软件通常依赖两类工具:APT与dpkg。理解二者的分工,有助于清晰区分“从软件源安装软件”与“手动安装本地.deb安装包”两类场景。 本节将介绍Debian系统中安装与更新软件的基本方法,以便用户理解后续搭建环境时 **apt install** 等命令的含义。 关于APT的详细使用方法、常见命令和软件源配置,请参考 [软件更新](<../../操作系统/Debian/软件更新/软件更新.md>)。 ## APT与dpkg概述 在Debian系统中,安装软件主要依赖以下两类工具: | **工具** | **作用** | **典型场景** | | --- | --- | --- | | **APT** | 从软件源查找、下载软件,自动处理依赖 | 联网安装软件、更新系统 | | **dpkg** | 直接安装本地.deb包 | 手动安装厂商提供的安装包 | 简而言之,APT为日常使用的上层工具(自动处理依赖),DPKG为底层工具(仅负责安装软件包,不处理依赖)。 ## APT常用命令 ## apt update 更新软件包列表,该命令用于刷新本地软件包索引。该命令不会安装或升级任何软件,仅用于更新软件源中可用软件包及其最新版本的信息。 建议在安装软件或升级系统前,先执行 **apt update** 命令。 ```bash sudo apt update ``` ## apt upgrade 升级已安装的软件包,该命令会将系统中所有已安装软件包升级至软件源中可用的最新版本。 ```bash sudo apt upgrade ``` 通常的操作流程为先执行 **update**,再执行 **upgrade**: ```bash sudo apt update sudo apt upgrade ``` ## apt install 安装软件包,此为最常用的命令。该命令会从软件源中查找指定的软件包,自动下载并安装,同时处理所有依赖关系。 ```bash sudo apt install 软件包名 ``` 后续搭建开发环境时,常会用到类似命令: ```bash sudo apt install python3 # 安装Python 3 sudo apt install git # 安装Git sudo apt install vim # 安装Vim编辑器 #可一次性安装多个包: sudo apt install python3 git vim ``` ## apt remove 卸载软件包,用于从系统中卸载指定的软件包。 ```bash sudo apt remove 软件包名 ```