shell 命令

  • 1. 基础文件操作命令
    • 1.1 `ls` - 列出目录内容
    • 1.2 `find` - 文件搜索
  • 2. 版本控制命令
    • 2.1 `git` - 版本控制系统
    • 2.2 高级 Git 操作
  • 3. 文本搜索命令
    • 3.1 `grep` - 文本搜索
    • 3.2 高级搜索技巧
  • 4. Android 构建系统命令
    • 4.1 `source` - 加载环境变量
    • 4.2 `lunch` - 选择构建目标
    • 4.3 `m` - Android 构建命令
  • 5. 目录操作命令
    • 5.1 `cd` - 切换目录
  • 6. 完整的项目开发工作流
    • 6.1 日常开发流程
    • 6.2 调试和问题排查流程
  • 7. 高级技巧和最佳实践
    • 7.1 自动化脚本示例
    • 7.2 常用别名设置
    • 7.3 监控和日志分析
  • 8. 故障排除指南
    • 8.1 常见问题解决
    • 8.2 性能优化
  • 9. 项目特定命令详解
    • 9.1 固件查找命令
    • 9.2 构建产物管理
    • 9.3 源代码分析
  • 10. 开发环境配置
    • 10.1 环境变量设置
    • 10.2 工具链配置
  • 11. 版本控制和协作
    • 11.1 分支管理策略
    • 11.2 代码审查流程
  • 12. 构建和部署
    • 12.1 自动化构建脚本
    • 12.2 部署脚本
  • 13. 总结
    • 13.1 关键要点
    • 13.2 最佳实践

1. 基础文件操作命令

1.1 ls - 列出目录内容

基本用法:

ls                    # 列出当前目录文件
ls -la               # 列出所有文件(包括隐藏文件)的详细信息
ls -lh               # 以人类可读格式显示文件大小
ls -lt               # 按修改时间排序
ls -R                # 递归列出子目录内容

项目场景应用:

# 查看项目根目录结构
ls -la /home/share/primary/project_dev/camera_project/# 查看构建输出目录
ls -lh out/target/product/*/# 查看源代码目录
ls -R src/

1.2 find - 文件搜索

基本用法:

find . -name "*.c"                    # 查找所有.c文件
find . -type f -name "*.h"            # 查找所有.h文件
find . -mtime -7                      # 查找7天内修改的文件
find . -size +100M                    # 查找大于100MB的文件
find . -exec grep -l "pattern" {} \;  # 在文件中搜索内容

项目场景应用:

# 查找固件文件
find . -name "*.bin" -o -name "*.img"# 查找配置文件
find . -name "*.conf" -o -name "*.config"# 查找特定模块的源文件
find . -path "*/kernel/*" -name "*.c"# 查找最近修改的构建文件
find out/ -type f -mtime -1

2. 版本控制命令

2.1 git - 版本控制系统

基本用法:

git status                    # 查看工作区状态,显示哪些文件被修改、添加或删除
git diff                      # 查看未提交的修改,显示工作区与暂存区的差异
git log                       # 查看提交历史,显示所有提交记录
git branch                    # 查看分支列表,显示本地分支
git checkout <branch>         # 切换分支,切换到指定的分支
git add .                     # 添加所有文件到暂存区,准备提交
git commit -m "message"       # 提交更改,将暂存区的更改提交到本地仓库
git pull                      # 拉取远程更新,从远程仓库获取最新代码
git push                      # 推送到远程仓库,将本地提交推送到远程

项目场景应用:

# 查看当前工作状态
git status                    # 检查哪些文件被修改,哪些文件已暂存
git diff HEAD~1              # 查看与上次提交的差异,比较当前工作区与上一次提交# 分支管理
git branch -a                # 查看所有分支(包括远程),显示本地和远程分支列表
git checkout -b feature/new-module  # 创建并切换到新分支,用于开发新功能
git merge develop            # 合并develop分支,将develop分支的更改合并到当前分支# 提交工作
git add .                    # 将所有修改的文件添加到暂存区
git commit -m "feat: add new camera module support"  # 提交更改并添加描述信息
git push origin feature/new-module  # 将本地分支推送到远程仓库

2.2 高级 Git 操作

# 查看文件历史
git log --follow -- filename.c  # 查看特定文件的完整修改历史,包括重命名# 查看特定提交的详细信息
git show <commit-hash>          # 显示指定提交的详细信息和文件变更# 撤销最后一次提交
git reset --soft HEAD~1         # 撤销最后一次提交,但保留修改在暂存区# 查看分支图
git log --graph --oneline --all  # 以图形方式显示分支和提交历史# 暂存当前工作
git stash                      # 暂存当前工作区的修改,保存到临时区域
git stash pop                  # 恢复之前暂存的工作,从临时区域恢复修改

3. 文本搜索命令

3.1 grep - 文本搜索

基本用法:

grep "pattern" file.txt              # 在文件中搜索指定模式
grep -r "pattern" directory/         # 递归搜索目录中的所有文件
grep -n "pattern" file.txt           # 显示行号,显示匹配行的行号
grep -i "pattern" file.txt           # 忽略大小写,不区分大小写搜索
grep -v "pattern" file.txt           # 反向匹配,显示不匹配的行
grep -l "pattern" *.c                # 只显示文件名,只显示包含匹配的文件名

项目场景应用:

# 搜索配置相关代码
grep -nr "configure" src/            # 递归搜索src目录中所有包含"configure"的文件
grep -r "CONFIG_" . --include="*.c" --include="*.h"  # 搜索所有.c和.h文件中的CONFIG_定义# 搜索错误处理代码
grep -r "error\|ERROR" src/          # 搜索所有包含error或ERROR的文件# 搜索特定函数定义
grep -r "function_name" . --include="*.c"  # 搜索特定函数的定义# 搜索调试信息
grep -r "DEBUG\|debug" . --include="*.c"   # 搜索所有调试相关的代码

3.2 高级搜索技巧

# 使用正则表达式搜索
grep -E "pattern1|pattern2" file.txt  # 使用扩展正则表达式,匹配多个模式# 搜索并显示上下文
grep -A 3 -B 3 "pattern" file.txt     # 显示匹配行前后3行的上下文# 排除特定目录
grep -r "pattern" . --exclude-dir=build  # 搜索时排除build目录# 统计匹配次数
grep -c "pattern" file.txt            # 统计文件中匹配模式的行数

4. Android 构建系统命令

4.1 source - 加载环境变量

基本用法:

source build_envsetup.sh     # 加载构建环境,执行脚本并设置环境变量
source build/envsetup.sh     # 加载Android构建环境,设置Android构建相关变量
source ~/.bashrc             # 重新加载bash配置,刷新shell环境变量

项目场景应用:

# 完整的构建环境设置流程
cd /home/share/primary/project_dev/camera_project  # 切换到项目目录
source build_envsetup.sh                    # 加载项目特定的构建环境
source build/envsetup.sh                    # 加载Android标准构建环境
export PATH=$PATH:/path/to/tools           # 添加工具路径到环境变量
export ANDROID_BUILD_TOP=$(pwd)            # 设置Android构建根目录

4.2 lunch - 选择构建目标

基本用法:

lunch 10                     # 选择目标10,选择预定义的构建目标
lunch                        # 交互式选择目标,显示所有可用目标供选择
lunch aosp_arm64-eng         # 选择特定目标,直接指定构建目标

项目场景应用:

# 查看可用目标
lunch                        # 显示所有可用的构建目标列表# 选择开发目标
lunch 10                     # 选择目标10,通常对应aosp_arm64-eng开发版本# 验证选择
echo $TARGET_PRODUCT         # 显示当前选择的目标产品
echo $TARGET_BUILD_VARIANT   # 显示当前选择的构建变体

4.3 m - Android 构建命令

基本用法:

m clean_all                  # 清理所有构建产物,删除所有编译生成的文件
m all                        # 构建所有模块,编译整个系统
m release                    # 构建发布版本,生成优化后的发布版本
m -j8                        # 使用8个线程构建,并行编译提高速度
m module_name                # 构建特定模块,只编译指定的模块

项目场景应用:

# 完整的构建流程
m clean_all                  # 清理之前的构建产物,确保干净的构建环境
m all                        # 完整构建,编译所有必要的模块
m release                    # 构建发布版本,生成最终的产品镜像# 增量构建
m -j$(nproc)                 # 使用所有CPU核心,最大化并行编译效率
m module_name -j4            # 构建特定模块,使用4个线程编译指定模块# 调试构建
m DEBUG=1 all                # 启用调试信息,编译时包含调试符号

5. 目录操作命令

5.1 cd - 切换目录

基本用法:

cd /path/to/directory        # 切换到指定目录,改变当前工作目录
cd ..                        # 返回上级目录,移动到父目录
cd ~                         # 返回家目录,移动到用户主目录
cd -                         # 返回上次访问的目录,在最近两个目录间切换

项目场景应用:

# 项目导航
cd /home/share/primary/project_dev/camera_project  # 切换到项目根目录
cd src/                                     # 进入源代码目录
cd kernel/                                  # 进入内核源码目录
cd drivers/camera/                          # 进入摄像头驱动目录

6. 完整的项目开发工作流

6.1 日常开发流程

# 1. 进入项目目录
cd /home/share/primary/project_dev/camera_project  # 切换到项目工作目录# 2. 检查Git状态
git status                    # 查看当前工作区状态,检查哪些文件被修改
git diff                      # 查看未提交的修改,显示具体的代码变更# 3. 更新代码
git pull origin develop       # 从远程develop分支拉取最新代码# 4. 设置构建环境
source build_envsetup.sh      # 加载项目构建环境变量
source build/envsetup.sh      # 加载Android标准构建环境
lunch 10                      # 选择构建目标10# 5. 清理并构建
m clean_all                   # 清理之前的构建产物
m all                         # 完整构建项目# 6. 查找构建产物
find . -name "*.bin" -o -name "*.img"  # 查找生成的固件和镜像文件# 7. 提交更改
git add .                     # 将所有修改添加到暂存区
git commit -m "feat: update camera module"  # 提交更改并添加描述
git push origin feature/camera-update  # 推送到远程分支

6.2 调试和问题排查流程

# 1. 检查构建错误
m all 2>&1 | tee build.log    # 构建项目并将输出保存到日志文件# 2. 搜索错误信息
grep -i "error" build.log     # 在构建日志中搜索错误信息
grep -i "warning" build.log   # 在构建日志中搜索警告信息# 3. 查找相关源文件
find . -name "*.c" -exec grep -l "function_name" {} \;  # 查找包含特定函数的源文件# 4. 检查配置文件
grep -r "CONFIG_" . --include="*.config"  # 搜索所有配置文件中的配置项# 5. 查看文件修改历史
git log --follow -- filename.c  # 查看特定文件的完整修改历史

7. 高级技巧和最佳实践

7.1 自动化脚本示例

#!/bin/bash
# build_and_test.shset -e  # 遇到错误立即退出,确保脚本在出错时停止执行echo "Starting build process..."# 设置环境
cd /home/share/primary/project_dev/camera_project  # 切换到项目目录
source build_envsetup.sh                    # 加载构建环境
source build/envsetup.sh                    # 加载Android构建环境
lunch 10                                    # 选择构建目标# 清理构建
echo "Cleaning previous build..."
m clean_all                                 # 清理之前的构建产物# 构建项目
echo "Building project..."
m all -j$(nproc)                           # 使用所有CPU核心进行构建# 查找构建产物
echo "Finding build artifacts..."
find . -name "*.bin" -o -name "*.img"       # 查找生成的固件文件# 检查构建状态
if [ $? -eq 0 ]; then                       # 检查构建是否成功echo "Build completed successfully!"
elseecho "Build failed!"exit 1                                  # 构建失败时退出脚本
fi

7.2 常用别名设置

# 添加到 ~/.bashrc
alias ll='ls -la'                          # 显示所有文件的详细信息
alias la='ls -A'                           # 显示所有文件(包括隐藏文件)
alias l='ls -CF'                           # 以列格式显示文件# 项目相关别名
alias cdproj='cd /home/share/primary/project_dev/camera_project'  # 快速切换到项目目录
alias build='source build_envsetup.sh && source build/envsetup.sh && lunch 10'  # 一键设置构建环境
alias clean='m clean_all'                  # 快速清理构建
alias makeall='m all -j$(nproc)'          # 快速构建所有模块
alias gs='git status'                      # 快速查看Git状态
alias gl='git log --oneline'               # 快速查看提交历史

7.3 监控和日志分析

# 监控构建过程
watch -n 5 'ps aux | grep make'            # 每5秒监控make进程状态# 分析构建日志
grep -E "(error|warning|failed)" build.log | head -20  # 提取前20个错误或警告# 查看磁盘使用情况
du -sh out/                                # 查看构建输出目录的大小
df -h                                      # 查看磁盘空间使用情况# 监控系统资源
top -p $(pgrep make)                       # 监控make进程的系统资源使用

8. 故障排除指南

8.1 常见问题解决

# 构建失败时的诊断步骤
echo "=== 系统信息 ==="
uname -a                                   # 显示系统内核信息
df -h                                      # 显示磁盘空间使用情况
free -h                                    # 显示内存使用情况echo "=== 构建环境 ==="
echo $ANDROID_BUILD_TOP                    # 显示Android构建根目录
echo $TARGET_PRODUCT                       # 显示目标产品
echo $TARGET_BUILD_VARIANT                 # 显示构建变体echo "=== 最近错误 ==="
tail -50 build.log                         # 显示构建日志的最后50行echo "=== 磁盘空间 ==="
du -sh out/                                # 显示构建输出目录大小

8.2 性能优化

# 并行构建优化
export MAKEFLAGS="-j$(nproc)"              # 设置make使用所有CPU核心# 缓存优化
export CCACHE_DIR=/path/to/ccache          # 设置ccache缓存目录
export USE_CCACHE=1                        # 启用ccache编译缓存# 内存优化
export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g"  # 设置Jack编译服务器内存参数

9. 项目特定命令详解

9.1 固件查找命令

find -name CameraDeviceFW.bin              # 查找特定的固件文件
find . -name "*.bin" -type f               # 查找所有二进制固件文件
find . -name "*FW*" -type f                # 查找所有包含FW的固件文件
find . -path "*/firmware/*" -name "*.bin"  # 在firmware目录中查找固件

9.2 构建产物管理

# 查找所有构建产物
find out/ -name "*.img" -o -name "*.bin" -o -name "*.zip"  # 查找所有镜像和固件文件# 按时间排序查看最新构建产物
find out/ -name "*.img" -printf "%T@ %p\n" | sort -n | tail -10  # 显示最近修改的10个镜像文件# 统计构建产物大小
find out/ -name "*.img" -exec ls -lh {} \;  # 显示所有镜像文件的大小

9.3 源代码分析

# 查找特定功能的源代码
grep -r "camera" src/ --include="*.c" --include="*.h"  # 搜索摄像头相关代码# 查找函数定义
grep -r "^[[:space:]]*[a-zA-Z_][a-zA-Z0-9_]*[[:space:]]*(" src/ --include="*.c"  # 查找所有函数定义# 查找宏定义
grep -r "^[[:space:]]*#define" src/ --include="*.h"    # 查找所有宏定义

10. 开发环境配置

10.1 环境变量设置

# 设置项目环境变量
export PROJECT_ROOT=/home/share/primary/project_dev/camera_project  # 设置项目根目录
export PATH=$PROJECT_ROOT/tools:$PATH                       # 添加项目工具到PATH
export ANDROID_BUILD_TOP=$PROJECT_ROOT                      # 设置Android构建根目录# 设置编译环境
export ARCH=arm64                                           # 设置目标架构
export CROSS_COMPILE=aarch64-linux-gnu-                     # 设置交叉编译工具链
export KERNEL_DIR=$PROJECT_ROOT/kernel                      # 设置内核源码目录

10.2 工具链配置

# 检查工具链可用性
which aarch64-linux-gnu-gcc                                 # 检查交叉编译工具链
which make                                                  # 检查make工具
which git                                                   # 检查git版本控制工具# 设置工具链路径
export TOOLCHAIN_PATH=/opt/toolchain/aarch64-linux-gnu      # 设置工具链路径
export PATH=$TOOLCHAIN_PATH/bin:$PATH                       # 添加工具链到PATH

11. 版本控制和协作

11.1 分支管理策略

# 创建功能分支
git checkout -b feature/camera-module                       # 创建摄像头模块功能分支
git push -u origin feature/camera-module                    # 推送并设置上游分支# 合并代码
git checkout develop                                        # 切换到开发分支
git pull origin develop                                     # 拉取最新代码
git merge feature/camera-module                             # 合并功能分支
git push origin develop                                     # 推送合并结果# 清理分支
git branch -d feature/camera-module                         # 删除本地分支
git push origin --delete feature/camera-module              # 删除远程分支

11.2 代码审查流程

# 准备代码审查
git diff develop...HEAD                                     # 查看与develop分支的差异
git log --oneline develop..HEAD                             # 查看提交历史# 创建补丁
git format-patch develop -o patches/                        # 创建补丁文件
git send-email patches/                                     # 发送补丁邮件# 应用补丁
git am patches/*.patch                                      # 应用补丁文件

12. 构建和部署

12.1 自动化构建脚本

#!/bin/bash
# auto_build.sh# 设置错误处理
set -e# 日志函数
log() {echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1"
}# 构建函数
build_project() {log "Starting project build..."# 设置环境cd /home/share/primary/project_dev/camera_projectsource build_envsetup.shsource build/envsetup.shlunch 10# 清理构建log "Cleaning previous build..."m clean_all# 构建项目log "Building project..."m all -j$(nproc)# 查找构建产物log "Finding build artifacts..."find . -name "*.bin" -o -name "*.img"log "Build completed successfully!"
}# 执行构建
build_project

12.2 部署脚本

#!/bin/bash
# deploy.sh# 部署函数
deploy_firmware() {local firmware_path="$1"local target_device="$2"echo "Deploying firmware: $firmware_path to $target_device"# 检查文件是否存在if [ ! -f "$firmware_path" ]; thenecho "Error: Firmware file not found: $firmware_path"exit 1fi# 复制固件到目标设备scp "$firmware_path" "$target_device:/tmp/"# 在目标设备上安装固件ssh "$target_device" "sudo dd if=/tmp/$(basename $firmware_path) of=/dev/mmcblk0 bs=4M"echo "Firmware deployment completed!"
}# 使用示例
deploy_firmware "./out/target/product/device/firmware.bin" "user@device-ip"

13. 总结

这些命令和脚本构成了一个完整的嵌入式Linux项目开发工作流,涵盖了从代码管理到构建部署的各个环节。每个命令都有详细的注释说明其作用和用途,帮助开发者更好地理解和使用这些工具。

13.1 关键要点

  1. 版本控制:使用Git进行代码管理,包括分支管理、代码审查和协作
  2. 构建系统:使用Android构建系统进行项目编译和打包
  3. 调试工具:使用grep、find等工具进行代码搜索和问题排查
  4. 自动化:编写脚本自动化构建和部署流程
  5. 环境管理:正确设置开发环境和工具链

13.2 最佳实践

  • 定期提交代码,保持版本历史的清晰
  • 使用有意义的分支名和提交信息
  • 在构建前清理环境,确保构建的一致性
  • 使用并行编译提高构建效率
  • 保存构建日志用于问题排查
  • 定期备份重要的构建产物

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/915447.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/915447.shtml
英文地址,请注明出处:http://en.pswp.cn/news/915447.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

A316-Mini-V1:超小尺寸USB高清音频解码器模组技术探析

引言 随着便携式音频设备的普及&#xff0c;对小型化、高性能音频解决方案的需求日益增长。本文将介绍一款极致小型化的高性能USB音频解码器模组——A316-Mini-V1&#xff0c;这是一款基于XMOS XU316芯片的微型音频处理模组。产品概述 A316-Mini-V1是一款专为小尺寸产品设计的M…

低代码平台买saas好还是私有化好

选择低代码平台采用SaaS还是私有化部署&#xff0c;应根据企业具体情况考虑安全性、成本控制、维护难度、扩展需求等因素。 其中&#xff0c;安全性是决定企业选择的重要因素之一。私有化部署意味着企业能够完全掌控数据和系统的安全管理&#xff0c;更适合对数据安全要求极高的…

基于SkyWalking的微服务APM监控实战指南

基于SkyWalking的微服务APM监控实战指南 1. 业务场景描述 随着微服务在生产环境中大规模应用&#xff0c;系统链路复杂、实例弹性伸缩、灰度发布等特点都给性能监控和问题诊断带来了新的挑战。传统的单机或轻量级监控方案已无法满足微服务环境下的全链路、分布式追踪和实时告警…

Python 进阶(五): Excel 基本操作

目录 1. 概述2. 写入 2.1 使用 xlwt2.2 使用 XlsxWriter 3. 读取4. 修改 1. 概述 在现实中&#xff0c;很多工作都需要与数据打交道&#xff0c;Excel 作为常用的数据处理工具&#xff0c;一直备受人们的青睐&#xff0c;而大部分人都是手动操作 Excel&#xff0c;如果数据量…

32、鸿蒙Harmony Next开发:使用动画-动画概述

​​​属性动画转场动画粒子动画组件动画动画曲线动画衔接动画效果帧动画&#xff08;ohos.animator&#xff09; UI&#xff08;用户界面&#xff09;中包含开发者与设备进行交互时所看到的各种组件&#xff08;如时间、壁纸等&#xff09;。属性作为接口&#xff0c;用于控制…

【STM32】485接口原理

485 通信实验 这篇文章是对 RS485通信 的原理、硬件连接、接口芯片&#xff08;SP3485&#xff09;、总线结构等都有详尽的说明。我们在此处进行清晰有条理的讲解整理&#xff0c;便于学习和实验操作。 在了解485接口通信原理之前&#xff0c;我们先复习一下串口&#xff1a;串…

亚马逊二审攻防全攻略:预防、应对与长效合规之道

当店铺收到二审通知&#xff0c;不少卖家会陷入焦虑与慌乱&#xff0c;只要掌握科学的预防策略与应对方法&#xff0c;不仅能降低二审风险&#xff0c;即便遭遇审核也能顺利突围。一、未雨绸缪&#xff1a;预防二审的四大核心策略夯实资料真实性根基资料的真实性与一致性是亚马…

添加状态信息

1首先在数据字典里加入可借阅和不可借阅状态2导入数据字典export default {name: "Book",dicts: [book_borrow_status],//导入数据字典data() {return {formData: {name: null,author: null,num: null,price: null,typeId: null,status:null//新加状态属性},3设置状态…

234、回文链表

题目&#xff1a;解答&#xff1a;对143稍作修改即可&#xff0c;判断两个指针指向的是否一直相等。终止条件为不等或者head2nullptrclass Solution { public:ListNode *rev(ListNode *head){ListNode *cur head;ListNode *pre nullptr;while(cur){ListNode * nxt cur->n…

第15次:商品搜索

实现用户在页面可自由搜索某个商品的功能。 第1步&#xff1a;准备搜索功能用到的库 pip install whoosh pip install jieba pip install django-haystackwhoosh是搜索引擎&#xff0c;对英文支持较好&#xff0c;但对中文效果不佳。jieba为中文分词库&#xff0c;弥补whoosh…

《使用Qt Quick从零构建AI螺丝瑕疵检测系统》——0. 博客系列大纲

目录【《使用Qt Quick从零构建AI螺丝瑕疵检测系统》系列简介】第一部分&#xff1a;基础入门与项目启航第二部分&#xff1a;核心视觉算法开发第三部分&#xff1a;模拟完整工业流程第四部分&#xff1a;软件打包与高级特性【《使用Qt Quick从零构建AI螺丝瑕疵检测系统》系列简…

【Python】Python中的循环语句

循环语句导读一、基本概念1.1 循环语句的执行流程1.2 循环语句的分类二、while语句三、for语句四、break与continue五、死循环六、循环中的else语句七、range()函数结语导读 大家好&#xff0c;很高兴又和大家见面啦&#xff01;&#xff01;&#xff01; 在上一篇内容中我们…

docker|Linux|以centos基础镜像为基础制作nmap专用镜像(镜像瘦身计划)

一、 最近由于某些场景下需要使用nmap&#xff0c;而nmap的rpm安装包在源目标机器上使用有软件冲突&#xff0c;因此&#xff0c;计划使用docker部署nmap 具体计划为 1、使用centos的基础镜像&#xff0c;在有网环境下&#xff0c;通过配置阿里云的yum仓库&#xff0c;在cen…

基于单片机公交车报站系统/报站器

传送门 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目速选一览表 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目功能速览​​​​​​​ 概述 公交车自动报站系统利用单片机作为核心控制器&#xff0c;结合GPS/北斗定位模块、语音存…

Oracle 体系结构学习

1 认识Oracle后台进程Oracle数据库后台进程是Oracle数据库管理系统&#xff08;DBMS&#xff09;的核心组件&#xff0c;它们在后台运行&#xff0c;负责数据库的各种管理和维护任务。主要包括以下几种&#xff1a;SMON (System Monitor)SMON负责数据库的恢复操作&#xff0c;如…

构建一种安全的老式测试仪,用于具有限流灯泡,模拟仪表和可变输出的交流设备

这个复古电路和电源测试仪的想法来自我需要一个简单&#xff0c;安全&#xff0c;时尚的工具来测试和控制工作台上的线路供电设备。商业解决方案要么太笨重&#xff0c;太昂贵&#xff0c;要么缺乏我喜欢的触觉和模拟魅力。所以我决定自己造一个。这个测试仪的核心是一个老式的…

Redis5:Redis的Java客户端——Jedis与SpringDataRedis详解

目录 1、Jedis客户端 1.1使用过程 2、SpringDataRedis 2.1 SpingDataRedis介绍 2.2SpringDataRedis快速入门 2.3RedisTemplate的RedisSerializer 2.3.1RedisTemplate中JDK序列化局限性 2.3.2方式一&#xff1a;改变RedisTemplate的序列化方式 2.3.3RedisTemplate存储一…

零基础 “入坑” Java--- 十三、再谈类和接口

文章目录一、Object类1.获取对象信息2.对象比较&#xff1a;equals方法二、再谈接口1.比较相关接口2.Cloneable接口和深拷贝三、内部类1.匿名内部类2.实例内部类3.静态内部类4.局部内部类在之前的学习中&#xff0c;我们已经了解了有关类以及接口的知识&#xff0c;在本章节中&…

Spring Boot 一个注解搞定「加密 + 解密 + 签名 + 验签」

Spring Boot 一个注解搞定「加密 解密 签名 验签」本文基于 Spring Boot 3.x&#xff0c;通过一个自定义注解 AOP&#xff0c;一行注解即可给任何 Controller 方法加上 请求解密 → 验签 → 响应加密 → 加签 的完整链路&#xff0c;并可直接拷贝到生产环境使用。一、最终效…

《计算机网络》实验报告二 IP协议分析

目 录 1、实验目的 2、实验环境 3、实验内容 3.1 tcpdump 基本用法 3.2 wireshark基本用法 3.3 利用tcpdump抓包&#xff0c;wireshark分析包 4、实验结果与分析 4.1 tcpdump命令的基本用法 4.2 wireshark的基本用法 4.3 利用tcpdump抓包&#xff0c;wireshark分析包…