Linux Shell 命令 + 項目場景

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分析包…