鏇存柊鏂囨。

This commit is contained in:
renjianbo
2026-01-14 17:55:16 +08:00
parent ce810e83ad
commit 4d39534216
12 changed files with 2600 additions and 3133 deletions

View File

@@ -4,6 +4,9 @@ git remote set-url origin http://101.43.95.130:3001/admin/push_server.git
git remote set-url origin http://101.43.95.130:3001/admin/coupon.git
最常用:查看所有远程仓库的 URL推荐
git remote -v
git config --global user.name "renjianbo"
git config --global user.email "18691577328@qq.com"

View File

@@ -0,0 +1,131 @@
## 基本信息
- **日期**: 2026-01-14
- **星期**: 星期三
- **天气**: 晴
- **心情**: 良好
## 今日计划
### 工作安排
- [ ] 知你--会员功能
- [ ] 知你--聊天会话界面跑马灯温馨提示
### 学习计划
- [ ] 学习内容1
- [ ] 学习内容2
### 其他计划
- [ ] 其他事项1
## 工作记录
### 已完成
- ✅ 知你--会员功能开发
- 时间: HH:MM - HH:MM
- 内容: http://101.43.95.130:8082/c/zhini_im/+/106
- 收获:
- ✅ 知你--聊天会话界面跑马灯温馨提示
- 时间: HH:MM - HH:MM
- 内容: http://101.43.95.130:8082/c/zhini_im/+/107
- 收获:
### 进行中
- 🔄 进行中事项1
- 开始时间: HH:MM
- 当前进度:
- 遇到的问题:
- 下一步计划:
- 继续知你--会员功能开发
### 待处理
- ⏳ 待处理事项1
- 计划时间: HH:MM
- 优先级: 高/中/低
## 学习记录
### 技术学习
- **学习内容**:
- **学习时间**: HH:MM - HH:MM
- **学习方式**: 阅读/实践/视频
- **关键收获**:
- **相关链接**: [[相关文档]]
### 源码阅读
- **阅读模块**:
- **阅读时间**: HH:MM - HH:MM
- **关键理解**:
- **疑问**:
- **相关链接**: [[相关源码]]
### 问题解决
- **问题描述**:
- **解决过程**:
- **解决方案**:
- **经验总结**:
- **相关链接**: [[相关文档]]
## 会议记录
### 会议1
- **时间**: HH:MM - HH:MM
- **主题**:
- **参与人**:
- **关键内容**:
- **行动项**:
- **相关链接**: [[会议记录]]
## 思考与总结
### 今日收获
1. 收获1
2. 收获2
3. 收获3
### 今日反思
- 做得好的地方:
- 需要改进的地方:
- 改进计划:
### 明日计划
1. 计划1
2. 计划2
3. 计划3
## 技术笔记
### 技术点1
- **内容**:
- **代码示例**:
```java
// 代码示例
```
- **关键理解**:
- **相关链接**: [[相关文档]]
### 技术点2
- **内容**:
- **关键理解**:
## 问题与疑问
### 问题1
- **问题描述**:
- **思考**:
- **待解决**:
### 问题2
- **问题描述**:
- **思考**:
## 相关链接
- [[相关项目]]
- [[相关文档]]
- [[相关笔记]]
## 备注
- 备注1
- 备注2

View File

@@ -1,189 +1,746 @@
adb devices           获取链接的设备
adb get-state         获取设备状态
adb start-server     启动adb服务
adb kill-server       关闭adb服务
adb connect          连接设备
adb disconnect      断开设备
adb install 软件名称 apk 安装软件
adb install -r 软件名称 apk 重新安装软件
adb uninstall apk包名  卸载软件
adb uninstall -k  包名 保留数据卸载
adb logcat      查看手机上的运行日志,可以用此项来查错
adb push  本地路径  安卓路径   本地向安卓传输数据
adb pull  安卓路径  本地路径      从安卓端下载到本地
Adb remount         重新挂载系统文件
Adb get-serilno     获取系列号
Adb shell dmesg    打印内核的调试信息
Adb reboot            重启手机
Adb reboot recovery 重启手机到recovery界面
Adb reboot bootloader        重启手机到bootloader界面
Adb version   查看版本
adb shell        进入手机终端
adb shell screencap  /sdcard/sreen.png   截图
adb shell dumpsys battery 查看电量
adb shell dumpsys cpuinfo  获取cpu信息
adb shell svc wifi enable   打开wifi
adb shell svc wifi disable  关闭wifi
adb shell wm size   查看分辨率
adb shell momkey -p 包名 -v 100    单应用-100个随机事件压力测试
adb shell momkey -p 包名 -p 包名 -v -v 100   多应用-100个随机事件压力测试
 am 命令(activity manager)
adb shell am start -n packagename/activity    直接启动
adb shell am start -S packagename/activy       先停止在启动
adb shell am start -W packagename/activy     等待启动完成
action adb shell am start -a android.intent.action.CALL -d [tel:10086](tel:10086)   拨打电话
adb shell am start -a android.intent.action.VIEW -d 百度一下,你就知道      打开网页
adb shell am monitor          打开软件启动监控
 adb shell am force-stop packagename          强制关闭app
Pm 命令package manager
Adb shell pm list package          列出安装包所有应用名
Adb shell pm list package -3      列出所有第三方包
Adb shell pm dump packagename           应用详细信息
Adb shell pm path       安装的应用包的apk 位置
Adb shell pm install     安装设备上的apk
adb shell pm clear  包名   清理程序数据
Input 命令
Adb shell input text aimomo             键盘输入aimomo
Adb shell input tap 300 700              模拟点击x=300,y=700
Adb shell input keyevent KEYCODE_HOME 模拟点击home键
Adb shell input swipe 300 500 300 900 模拟滑动
adb 常用命令使用指南,希望对你有帮助
1、 adb devices 查看设备列表
查看电脑已连接Android 设备列表多行显示表示连接多个Android设备每行前面的字符串表示Android设备的SN号
2、adb  get-state 获取连接状态 device offline unkown
3、adb install -r  APK路径 安装应用
apk文件所在的文件路径包括apk,如D:/hello.apk,注意需要打开的cmd路径不要带有中文否则部分电脑可能会提示安装失败
4、adb uninstall 应用包名,应用卸载   查看自己安装的包名adb uninstall -k hello.apk 下载应用,但保留缓存数据
5、adb connect 设备ip地址如果电脑与设备在同一局域网内Android设备的连接ip 地址,可连接成功
6、adb push 电脑上的文件 路径 sdcard/  将电脑的文件输入到手机上
      如文件D:/hello.apk adb push D:/hello.apk  /sdcard、hello.apk
7、adb pull  /sdcard/文件路径 指定的pc目录将文件拷贝到pc文件保存的路径直接与cmd打开的路径相同
8、adb reboot 或加参数-p设备进行重启
9、 adb shell pm clear 包名 清除应用数据
10 、adb shell pm list packages -3 查看第三方安装的应用包名,卸载应用前,一般可通过该指令查看包名
11、adb shell am force-stop 包名 关闭应用
12、adb shell screencap /sdcard/screen.png  截屏幕
13、adb shell screenrecord /sdcard/hello.mp4 屏幕视频录制,测试时可使用
14、adb logcat 抓取日志
如果要过滤日志可通过adb logcat | findstr "输入过滤的内容"
15、adb shell wm size 查看屏幕大小
16、 adb shell getprop查看配置信息
adb shell getprop ro.build.version.sdk 查看api版本
17、adb shell input keyevent 4 相当于返回键,返回上一页
18、adb shell df 查看手机存储信息
19、adb shell  pm disable-user com.android.launcher3 禁用系统应用
20、 adb shell pm enable com.android.launcher3 启用系统 需要root权限
21、adb start-server | kill-server //启动或关闭adb服务进程
22、adb shell cat /sys/class/net/wlan0/address   //获取mac地址
23、adb shell monkey -p 包名 --throttle 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v s 1540475754297 100  monkey测试
24、adb shell ls /system/bin  查看当前设备可以使用的所有命令
25、adb shell input text "[www.baidu.com](http://www.baidu.com)",在编辑的文本框中输入编辑文字
26、adb shell svc wifi enable | disable   打开或关闭wifi
27、adb shell svc data enable |disable 打开或关闭移动网络
28、adb shell input swipe 760 500 600 320 点击屏幕,根据实际坐标点击
29、adb shell mkdir   /sdcard/创建目录
30、cat /proc/cpuinfo // 查看CPU信息如果为内存则cat/proc/meminfo
31、cat /data/misc/wifi/*.conf 查看wifi密码需要root权限
32、 mount -o remount,rw / 当root权限之后仍提示file system read only时先执行adb root ,接着执行adb remount, mount -o remount,rw / 然后执行该指令
33、(1)setprop service.adb.tcp.port 5555 (2)stop adbd (3)start adbd 使用wifi连接失败时
34、adb shell dumpsys activity | findstr “mFocus” 获取当前的activity
35、adb shell settings put global policy_control immersive.full=*
36、仅隐藏状态栏adb shell settings put global policy_control immersive.status=*
37、仅隐藏虚拟键adb shell settings put global policy_control immersive.navigation=*
38、恢复adb shell settings put global policy_control null
39、完全隐藏  adb shell wm overscan 0,0,0,0
40、旋转屏幕
# ADB 常用命令指南
## 目录
- [设备连接管理](#设备连接管理)
- [应用安装与卸载](#应用安装与卸载)
- [文件传输](#文件传输)
- [日志查看](#日志查看)
- [系统操作](#系统操作)
- [Activity Manager (am) 命令](#activity-manager-am-命令)
- [Package Manager (pm) 命令](#package-manager-pm-命令)
- [Input 输入命令](#input-输入命令)
- [屏幕操作](#屏幕操作)
- [系统信息查询](#系统信息查询)
- [网络操作](#网络操作)
- [Monkey 压力测试](#monkey-压力测试)
- [高级调试技巧](#高级调试技巧)
---
## 设备连接管理
### 查看设备列表
```bash
adb devices
```
- 显示所有已连接的Android设备
- 多行显示表示连接多个设备
- 每行前面的字符串表示设备的SN号序列号
### 获取设备状态
```bash
adb get-state
```
- 返回设备状态:`device`(已连接)、`offline`(离线)、`unknown`(未知)
### 启动/关闭 ADB 服务
```bash
adb start-server # 启动adb服务
adb kill-server # 关闭adb服务
```
### 连接/断开设备
```bash
adb connect <设备IP地址> # 通过WiFi连接设备需在同一局域网
adb disconnect # 断开当前设备连接
adb disconnect <设备IP地址> # 断开指定设备
```
### WiFi 连接设置
```bash
# 1. 使用USB连接设备
adb tcpip 5555
# 2. 断开USB使用WiFi连接
adb connect <设备IP地址>:5555
# 如果WiFi连接失败在设备上执行
adb shell setprop service.adb.tcp.port 5555
adb shell stop adbd
adb shell start adbd
```
---
## 应用安装与卸载
### 安装应用
```bash
adb install <apk文件路径> # 安装APK
adb install -r <apk文件路径> # 重新安装(覆盖已安装版本)
adb install -s <设备SN> <apk路径> # 指定设备安装(多设备时)
adb install -d <apk文件路径> # 允许降级安装
adb install -g <apk文件路径> # 授予所有运行时权限
```
**示例:**
```bash
adb install D:/hello.apk
# 注意cmd路径不要包含中文否则可能安装失败
```
### 卸载应用
```bash
adb uninstall <包名> # 卸载应用
adb uninstall -k <包名> # 卸载应用但保留数据和缓存
```
**示例:**
```bash
adb uninstall com.example.app
adb uninstall -k com.example.app
```
---
## 文件传输
### 推送文件到设备
```bash
adb push <本地文件路径> <设备路径>
```
**示例:**
```bash
adb push D:/hello.apk /sdcard/hello.apk
adb push D:/test.txt /sdcard/Download/test.txt
```
### 从设备拉取文件
```bash
adb pull <设备路径> <本地保存路径>
```
**示例:**
```bash
adb pull /sdcard/screen.png D:/screenshots/
adb pull /sdcard/Download/file.txt ./
```
---
## 日志查看
### 基本日志查看
```bash
adb logcat # 查看所有日志
adb logcat -c # 清空日志缓冲区
adb logcat -v time # 显示时间戳
adb logcat -v threadtime # 显示线程和时间
adb logcat -v long # 详细格式
```
### 过滤日志
```bash
# 按标签过滤
adb logcat -s TAG1 TAG2
# 按优先级过滤V/D/I/W/E/F/S
adb logcat *:E # 只显示错误级别
adb logcat *:W # 显示警告及以上
# 组合过滤
adb logcat -s TAG:*:E # 特定标签的错误日志
# 使用管道过滤Windows
adb logcat | findstr "关键字"
adb logcat | findstr /i "error"
# 使用管道过滤Linux/Mac
adb logcat | grep "关键字"
adb logcat | grep -i "error"
```
### 保存日志到文件
```bash
adb logcat > log.txt # 保存所有日志
adb logcat -v time > log.txt # 保存带时间戳的日志
adb logcat -s TAG:*:E > error_log.txt # 保存过滤后的日志
adb logcat -d > log.txt # 一次性获取当前日志并退出
```
### 按时间过滤日志
```bash
adb logcat -t 100 # 显示最后100行
adb logcat -t '01-01 12:00:00.000' # 显示指定时间之后的日志
```
---
## 系统操作
### 重启设备
```bash
adb reboot # 普通重启
adb reboot recovery # 重启到Recovery模式
adb reboot bootloader # 重启到Bootloader模式
adb reboot -p # 关机(部分设备支持)
```
### 重新挂载系统分区
```bash
adb remount # 重新挂载系统分区为可写需要root
adb root # 以root权限重启adb
```
### 进入Shell
```bash
adb shell # 进入设备Shell
adb shell <命令> # 直接执行Shell命令
```
**示例:**
```bash
adb shell ls /sdcard
adb shell cat /proc/cpuinfo
```
---
## Activity Manager (am) 命令
### 启动Activity
```bash
# 基本启动
adb shell am start -n <包名>/<Activity类名>
# 先停止再启动
adb shell am start -S -n <包名>/<Activity类名>
# 等待启动完成
adb shell am start -W -n <包名>/<Activity类名>
# 启动并传递数据
adb shell am start -a <action> -d <data> -t <type>
```
**示例:**
```bash
# 启动主Activity
adb shell am start -n com.example.app/.MainActivity
# 拨打电话
adb shell am start -a android.intent.action.CALL -d tel:10086
# 打开网页
adb shell am start -a android.intent.action.VIEW -d "https://www.baidu.com"
# 打开应用市场
adb shell am start -a android.intent.action.VIEW -d "market://details?id=com.example.app"
```
### 启动Service
```bash
adb shell am startservice -n <包名>/<Service类名>
```
### 发送广播
```bash
adb shell am broadcast -a <action>
```
**示例:**
```bash
# 发送开机广播
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED
```
### 监控Activity启动
```bash
adb shell am monitor # 监控应用启动和崩溃
```
### 强制停止应用
```bash
adb shell am force-stop <包名>
```
### 获取当前Activity
```bash
# Windows
adb shell dumpsys activity | findstr "mFocus"
# Linux/Mac
adb shell dumpsys activity | grep "mFocus"
# 更精确的方式
adb shell dumpsys window windows | findstr "mCurrentFocus"
```
### 获取Activity栈信息
```bash
adb shell dumpsys activity activities
```
---
## Package Manager (pm) 命令
### 列出应用
```bash
adb shell pm list packages # 列出所有应用包名
adb shell pm list packages -3 # 只列出第三方应用
adb shell pm list packages -s # 只列出系统应用
adb shell pm list packages -u # 列出已卸载的应用
adb shell pm list packages -f # 显示应用关联的apk文件
adb shell pm list packages -i # 显示应用的安装器
```
### 应用信息查询
```bash
adb shell pm dump <包名> # 显示应用详细信息
adb shell pm path <包名> # 显示应用APK路径
adb shell pm list packages -f <包名> # 显示应用APK路径另一种方式
```
**示例:**
```bash
adb shell pm dump com.example.app
adb shell pm path com.example.app
# 输出package:/data/app/com.example.app-xxx/base.apk
```
### 安装/卸载(设备端)
```bash
adb shell pm install <apk路径> # 在设备上安装APK
adb shell pm uninstall <包名> # 在设备上卸载应用
```
### 清除应用数据
```bash
adb shell pm clear <包名> # 清除应用数据和缓存
```
### 启用/禁用应用
```bash
adb shell pm disable-user <包名> # 禁用应用需要root
adb shell pm enable <包名> # 启用应用需要root
```
**示例:**
```bash
adb shell pm disable-user com.android.launcher3
adb shell pm enable com.android.launcher3
```
---
## Input 输入命令
### 文本输入
```bash
adb shell input text "文本内容"
```
**示例:**
```bash
adb shell input text "aimomo"
adb shell input text "www.baidu.com"
```
**注意:** 不支持中文输入,空格需要用 `%s` 表示
### 点击操作
```bash
adb shell input tap <x坐标> <y坐标>
```
**示例:**
```bash
adb shell input tap 300 700
```
### 按键事件
```bash
adb shell input keyevent <键码>
```
**常用键码:**
```bash
adb shell input keyevent KEYCODE_HOME # Home键
adb shell input keyevent KEYCODE_BACK # 返回键
adb shell input keyevent KEYCODE_MENU # 菜单键
adb shell input keyevent KEYCODE_VOLUME_UP # 音量+
adb shell input keyevent KEYCODE_VOLUME_DOWN # 音量-
adb shell input keyevent KEYCODE_POWER # 电源键
adb shell input keyevent KEYCODE_ENTER # 回车键
adb shell input keyevent KEYCODE_DEL # 删除键
# 使用数字键码
adb shell input keyevent 3 # Home键
adb shell input keyevent 4 # 返回键
adb shell input keyevent 24 # 音量+
adb shell input keyevent 25 # 音量-
adb shell input keyevent 26 # 电源键
```
### 滑动操作
```bash
adb shell input swipe <x1> <y1> <x2> <y2> [持续时间(ms)]
```
**示例:**
```bash
# 从(300, 500)滑动到(300, 900)
adb shell input swipe 300 500 300 900
# 快速滑动100ms
adb shell input swipe 300 500 300 900 100
# 模拟长按500ms
adb shell input swipe 300 500 300 500 500
```
### 长按操作
```bash
adb shell input swipe <x> <y> <x> <y> 500
```
---
## 屏幕操作
### 截图
```bash
adb shell screencap <保存路径>
```
**示例:**
```bash
adb shell screencap /sdcard/screen.png
adb pull /sdcard/screen.png ./
```
### 录屏
```bash
adb shell screenrecord <保存路径> [选项]
```
**选项:**
- `--time-limit <秒>`: 限制录制时间默认180秒
- `--size <宽x高>`: 设置分辨率
- `--bit-rate <比特率>`: 设置比特率默认4Mbps
**示例:**
```bash
# 录制10秒视频
adb shell screenrecord --time-limit 10 /sdcard/video.mp4
# 设置分辨率
adb shell screenrecord --size 1280x720 /sdcard/video.mp4
# 停止录制Ctrl+C 或执行时间限制
```
### 查看屏幕分辨率
```bash
adb shell wm size
adb shell wm size <宽x高> # 设置分辨率需要root
```
### 隐藏状态栏和导航栏
```bash
# 完全沉浸式(隐藏状态栏和导航栏)
adb shell settings put global policy_control immersive.full=*
# 仅隐藏状态栏
adb shell settings put global policy_control immersive.status=*
# 仅隐藏导航栏
adb shell settings put global policy_control immersive.navigation=*
# 恢复显示
adb shell settings put global policy_control null
# 完全隐藏(另一种方式)
adb shell wm overscan 0,0,0,0
```
---
## 系统信息查询
### 查看系统属性
```bash
adb shell getprop # 查看所有系统属性
adb shell getprop <属性名> # 查看特定属性
```
**常用属性:**
```bash
adb shell getprop ro.build.version.sdk # API版本
adb shell getprop ro.build.version.release # Android版本
adb shell getprop ro.product.model # 设备型号
adb shell getprop ro.product.manufacturer # 制造商
adb shell getprop ro.serialno # 序列号
```
### 查看CPU信息
```bash
adb shell cat /proc/cpuinfo
adb shell dumpsys cpuinfo
```
### 查看内存信息
```bash
adb shell cat /proc/meminfo
adb shell dumpsys meminfo
adb shell dumpsys meminfo <包名> # 查看特定应用内存
```
### 查看存储信息
```bash
adb shell df # 查看存储空间
adb shell df -h # 人类可读格式
```
### 查看电量信息
```bash
adb shell dumpsys battery
```
### 查看网络信息
```bash
# 查看MAC地址
adb shell cat /sys/class/net/wlan0/address
# 查看IP地址
adb shell ip addr show wlan0
adb shell ifconfig wlan0
```
### 查看设备信息
```bash
adb shell getprop ro.build.version.sdk # SDK版本
adb shell getprop ro.build.version.release # Android版本
adb shell getprop ro.product.model # 设备型号
adb shell getprop ro.product.brand # 品牌
adb shell getprop ro.product.manufacturer # 制造商
```
### 查看可用命令
```bash
adb shell ls /system/bin # 查看系统命令
adb shell which <命令名> # 查找命令路径
```
---
## 网络操作
### WiFi控制
```bash
adb shell svc wifi enable # 打开WiFi
adb shell svc wifi disable # 关闭WiFi
```
### 移动网络控制
```bash
adb shell svc data enable # 打开移动数据
adb shell svc data disable # 关闭移动数据
```
### 查看WiFi密码需要root
```bash
adb shell cat /data/misc/wifi/*.conf
```
---
## Monkey 压力测试
### 基本Monkey测试
```bash
adb shell monkey -p <包名> -v <事件数>
```
**示例:**
```bash
# 单应用100个随机事件
adb shell monkey -p com.example.app -v 100
# 多应用测试
adb shell monkey -p com.app1 -p com.app2 -v -v 100
```
### 完整Monkey测试命令
```bash
adb shell monkey -p <包名> \
--throttle 100 \ # 事件间隔100ms
--ignore-crashes \ # 忽略崩溃
--ignore-timeouts \ # 忽略超时
--ignore-security-exceptions \ # 忽略安全异常
--ignore-native-crashes \ # 忽略Native崩溃
--monitor-native-crashes \ # 监控Native崩溃
-v -v -v \ # 详细日志3级
-s <种子值> \ # 设置随机种子
<事件数>
```
**示例:**
```bash
adb shell monkey -p com.example.app \
--throttle 100 \
--ignore-crashes \
--ignore-timeouts \
--ignore-security-exceptions \
--ignore-native-crashes \
--monitor-native-crashes \
-v -v -v \
-s 1540475754297 \
1000
```
### Monkey测试选项说明
- `-p <包名>`: 指定测试的应用包名
- `-v`: 日志详细程度可叠加最多3个
- `--throttle <毫秒>`: 事件之间的延迟
- `--ignore-crashes`: 忽略应用崩溃,继续测试
- `--ignore-timeouts`: 忽略ANR继续测试
- `--ignore-security-exceptions`: 忽略权限异常
- `-s <种子值>`: 设置随机种子,可重现测试序列
- `--pct-touch <百分比>`: 触摸事件百分比
- `--pct-motion <百分比>`: 滑动事件百分比
- `--pct-trackball <百分比>`: 轨迹球事件百分比
- `--pct-nav <百分比>`: 导航事件百分比
- `--pct-syskeys <百分比>`: 系统按键事件百分比
---
## 高级调试技巧
### 查看内核日志
```bash
adb shell dmesg # 查看内核调试信息
adb shell dmesg | tail -100 # 查看最后100行
```
### 文件系统操作
```bash
# 创建目录
adb shell mkdir /sdcard/test
# 查看文件
adb shell cat <文件路径>
adb shell ls -l <目录路径>
# 删除文件
adb shell rm <文件路径>
# 复制文件
adb shell cp <源路径> <目标路径>
# 移动文件
adb shell mv <源路径> <目标路径>
```
### 权限管理
```bash
# 当root权限后仍提示只读时
adb root
adb remount
adb shell mount -o remount,rw /
```
### 查看系统服务
```bash
adb shell service list # 列出所有服务
adb shell dumpsys <服务名> # 查看服务信息
```
**常用服务:**
```bash
adb shell dumpsys activity # Activity信息
adb shell dumpsys window # 窗口信息
adb shell dumpsys meminfo # 内存信息
adb shell dumpsys battery # 电池信息
adb shell dumpsys cpuinfo # CPU信息
adb shell dumpsys package # 包信息
adb shell dumpsys connectivity # 网络连接信息
```
### 性能监控
```bash
# 查看CPU使用率
adb shell top
adb shell top -n 1 # 只显示一次
# 查看特定进程
adb shell top | grep <进程名>
# 查看网络统计
adb shell cat /proc/net/dev
```
### 应用调试
```bash
# 查看应用进程
adb shell ps | grep <包名>
# 查看应用UID
adb shell dumpsys package <包名> | grep userId
# 查看应用权限
adb shell dumpsys package <包名> | grep permission
```
### 快速操作组合
```bash
# 一键截图并拉取
adb shell screencap /sdcard/screen.png && adb pull /sdcard/screen.png ./
# 一键清理日志并开始记录
adb logcat -c && adb logcat > log.txt
# 一键安装并启动
adb install app.apk && adb shell am start -n com.example.app/.MainActivity
```
---
## 常用命令速查表
| 功能 | 命令 |
|------|------|
| 查看设备 | `adb devices` |
| 安装应用 | `adb install -r app.apk` |
| 卸载应用 | `adb uninstall <包名>` |
| 查看日志 | `adb logcat` |
| 过滤日志 | `adb logcat \| grep "关键字"` |
| 截图 | `adb shell screencap /sdcard/screen.png` |
| 录屏 | `adb shell screenrecord /sdcard/video.mp4` |
| 启动应用 | `adb shell am start -n <包名>/<Activity>` |
| 停止应用 | `adb shell am force-stop <包名>` |
| 查看当前Activity | `adb shell dumpsys activity \| grep mFocus` |
| 查看包列表 | `adb shell pm list packages -3` |
| 清除数据 | `adb shell pm clear <包名>` |
| 点击屏幕 | `adb shell input tap x y` |
| 输入文本 | `adb shell input text "内容"` |
| 滑动 | `adb shell input swipe x1 y1 x2 y2` |
| 按键 | `adb shell input keyevent KEYCODE_HOME` |
| 重启 | `adb reboot` |
| 查看系统版本 | `adb shell getprop ro.build.version.release` |
| 查看SDK版本 | `adb shell getprop ro.build.version.sdk` |
---
## 注意事项
1. **路径问题**Windows下路径不要包含中文否则可能失败
2. **权限问题**部分命令需要root权限`adb remount``pm disable`
3. **多设备连接**:使用`-s <设备SN>`指定设备
4. **WiFi连接**:需要设备与电脑在同一局域网
5. **日志过滤**Windows使用`findstr`Linux/Mac使用`grep`
6. **Monkey测试**:建议在测试设备上运行,避免影响正常使用
---
## 参考资源
- [Android官方ADB文档](https://developer.android.com/studio/command-line/adb)
- [ADB命令完整参考](https://developer.android.com/studio/command-line/adb#direct)
- [Monkey测试文档](https://developer.android.com/studio/test/monkey)
---
*最后更新2024年*

View File

@@ -0,0 +1,780 @@
# Linux 常用命令指南
## 目录
- [文件与目录操作](#文件与目录操作)
- [文件查看与编辑](#文件查看与编辑)
- [文件搜索](#文件搜索)
- [权限管理](#权限管理)
- [进程管理](#进程管理)
- [系统信息](#系统信息)
- [网络操作](#网络操作)
- [压缩与解压](#压缩与解压)
- [文本处理](#文本处理)
- [磁盘管理](#磁盘管理)
- [用户管理](#用户管理)
- [服务管理](#服务管理)
- [常用快捷键](#常用快捷键)
- [组合命令](#组合命令)
---
## 文件与目录操作
### 目录操作
```bash
# 查看当前目录
pwd
# 切换目录
cd <目录路径>
cd ~ # 切换到用户主目录
cd - # 切换到上一个目录
cd .. # 切换到上级目录
cd / # 切换到根目录
# 列出目录内容
ls # 列出当前目录文件
ls -l # 详细列表(长格式)
ls -a # 显示隐藏文件
ls -la # 详细列表包含隐藏文件
ls -lh # 人类可读的文件大小
ls -lt # 按时间排序
ls -ltr # 按时间倒序
ls -R # 递归列出子目录
# 创建目录
mkdir <目录名> # 创建单个目录
mkdir -p dir1/dir2/dir3 # 递归创建多级目录
mkdir dir1 dir2 dir3 # 创建多个目录
# 删除目录
rmdir <目录名> # 删除空目录
rm -r <目录名> # 递归删除目录
rm -rf <目录名> # 强制递归删除(危险!)
```
### 文件操作
```bash
# 创建文件
touch <文件名> # 创建空文件或更新文件时间戳
touch file1 file2 file3 # 创建多个文件
# 复制文件
cp <源文件> <目标文件> # 复制文件
cp -r <源目录> <目标目录> # 递归复制目录
cp -p <源文件> <目标文件> # 保留文件属性
cp -a <源目录> <目标目录> # 归档复制(保留所有属性)
# 移动/重命名文件
mv <源文件> <目标文件> # 移动或重命名文件
mv <源目录> <目标目录> # 移动目录
# 删除文件
rm <文件名> # 删除文件
rm -f <文件名> # 强制删除(不提示)
rm -i <文件名> # 交互式删除(提示确认)
rm -rf <目录> # 递归强制删除目录(危险!)
```
### 文件链接
```bash
# 创建硬链接
ln <源文件> <链接名>
# 创建软链接(符号链接)
ln -s <源文件> <链接名>
ln -s <源目录> <链接目录>
```
---
## 文件查看与编辑
### 查看文件内容
```bash
# 查看整个文件
cat <文件名> # 显示文件全部内容
cat -n <文件名> # 显示行号
cat file1 file2 # 连接多个文件显示
# 分页查看
less <文件名> # 分页查看(可上下滚动)
more <文件名> # 分页查看(只能向下)
# 查看文件头部
head <文件名> # 显示前10行
head -n 20 <文件名> # 显示前20行
head -c 100 <文件名> # 显示前100字节
# 查看文件尾部
tail <文件名> # 显示后10行
tail -n 20 <文件名> # 显示后20行
tail -f <文件名> # 实时跟踪文件变化(常用于日志)
tail -F <文件名> # 跟踪文件(文件被删除重建后继续跟踪)
# 查看文件类型
file <文件名> # 显示文件类型信息
# 统计文件信息
wc <文件名> # 统计行数、单词数、字节数
wc -l <文件名> # 只统计行数
wc -w <文件名> # 只统计单词数
wc -c <文件名> # 只统计字节数
```
### 文件编辑
```bash
# vi/vim 编辑器
vi <文件名> # 打开文件编辑
vim <文件名> # 打开文件编辑增强版vi
# nano 编辑器(简单易用)
nano <文件名> # 打开文件编辑
# 基本vim操作
# 进入编辑模式:按 i插入或 a追加
# 退出编辑模式:按 Esc
# 保存并退出::wq 或 :x
# 不保存退出::q!
# 保存不退出::w
```
---
## 文件搜索
### find 命令
```bash
# 按名称搜索
find <目录> -name "<文件名>" # 精确匹配
find <目录> -name "*.txt" # 通配符匹配
find <目录> -iname "*.txt" # 忽略大小写
# 按类型搜索
find <目录> -type f # 只查找文件
find <目录> -type d # 只查找目录
find <目录> -type l # 只查找链接
# 按大小搜索
find <目录> -size +100M # 大于100MB的文件
find <目录> -size -10k # 小于10KB的文件
find <目录> -size 50M # 等于50MB的文件
# 按时间搜索
find <目录> -mtime -7 # 7天内修改的文件
find <目录> -mtime +30 # 30天前修改的文件
find <目录> -mmin -60 # 60分钟内修改的文件
# 按权限搜索
find <目录> -perm 644 # 权限为644的文件
find <目录> -perm -u+x # 用户有执行权限的文件
# 执行操作
find <目录> -name "*.log" -delete # 删除找到的文件
find <目录> -name "*.txt" -exec rm {} \; # 对找到的文件执行命令
find <目录> -name "*.txt" -ok rm {} \; # 交互式执行
```
### locate 命令(需要先建立索引)
```bash
locate <文件名> # 快速搜索文件(基于数据库)
updatedb # 更新locate数据库需要root
```
### grep 命令(文本搜索)
```bash
# 基本搜索
grep "关键字" <文件名> # 在文件中搜索
grep -i "关键字" <文件名> # 忽略大小写
grep -v "关键字" <文件名> # 反向搜索(不匹配的行)
grep -n "关键字" <文件名> # 显示行号
grep -c "关键字" <文件名> # 统计匹配行数
# 递归搜索
grep -r "关键字" <目录> # 递归搜索目录
grep -r -n "关键字" <目录> # 递归搜索并显示行号
# 正则表达式
grep "^关键字" <文件名> # 以关键字开头
grep "关键字$" <文件名> # 以关键字结尾
grep -E "正则表达式" <文件名> # 扩展正则表达式
# 上下文显示
grep -A 3 "关键字" <文件名> # 显示匹配行及后3行
grep -B 3 "关键字" <文件名> # 显示匹配行及前3行
grep -C 3 "关键字" <文件名> # 显示匹配行及前后3行
```
### which/whereis 命令
```bash
which <命令> # 查找命令的完整路径
whereis <命令> # 查找命令、源码和手册页位置
```
---
## 权限管理
### 查看权限
```bash
ls -l <文件名> # 查看文件权限
stat <文件名> # 查看详细文件信息
```
### 修改权限chmod
```bash
# 数字方式
chmod 755 <文件名> # rwxr-xr-x
chmod 644 <文件名> # rw-r--r--
chmod 777 <文件名> # rwxrwxrwx所有权限
# 符号方式
chmod u+x <文件名> # 用户添加执行权限
chmod g-w <文件名> # 组移除写权限
chmod o+r <文件名> # 其他用户添加读权限
chmod a+x <文件名> # 所有人添加执行权限
chmod u=rwx,g=rx,o=r <文件名> # 分别设置权限
# 递归修改
chmod -R 755 <目录> # 递归修改目录及子目录权限
```
### 修改所有者chown
```bash
chown <用户> <文件名> # 修改文件所有者
chown <用户>:<组> <文件名> # 修改所有者和组
chown -R <用户> <目录> # 递归修改目录所有者
```
### 修改组chgrp
```bash
chgrp <组名> <文件名> # 修改文件组
chgrp -R <组名> <目录> # 递归修改目录组
```
### 特殊权限
```bash
# SUIDSet User ID
chmod u+s <文件名> # 执行时以文件所有者身份运行
# SGIDSet Group ID
chmod g+s <文件名> # 执行时以文件组身份运行
# Sticky Bit
chmod +t <目录> # 目录中只有所有者可以删除文件
```
---
## 进程管理
### 查看进程
```bash
# 基本查看
ps # 显示当前终端进程
ps aux # 显示所有进程详细信息
ps -ef # 显示所有进程(另一种格式)
ps aux | grep <进程名> # 搜索特定进程
# 实时查看
top # 实时显示进程(类似任务管理器)
htop # 增强版top需要安装
top -p <PID> # 只显示指定进程
# 按资源排序
top -o %CPU # 按CPU使用率排序
top -o %MEM # 按内存使用率排序
```
### 进程控制
```bash
# 启动进程
<命令> & # 后台运行命令
nohup <命令> & # 后台运行,终端关闭后继续
# 终止进程
kill <PID> # 终止进程发送SIGTERM信号
kill -9 <PID> # 强制终止发送SIGKILL信号
killall <进程名> # 终止所有同名进程
pkill <进程名> # 按名称终止进程
# 暂停/恢复进程
kill -STOP <PID> # 暂停进程
kill -CONT <PID> # 恢复进程
# 查看进程树
pstree # 显示进程树
pstree -p # 显示进程树和PID
```
### 作业控制
```bash
jobs # 查看后台作业
fg <作业号> # 将后台作业调到前台
bg <作业号> # 将暂停的作业放到后台运行
```
---
## 系统信息
### 系统版本
```bash
uname -a # 显示所有系统信息
uname -r # 显示内核版本
uname -m # 显示机器架构
cat /etc/os-release # 显示发行版信息
lsb_release -a # 显示LSB信息需要安装
```
### CPU信息
```bash
cat /proc/cpuinfo # 显示CPU详细信息
lscpu # 显示CPU架构信息
nproc # 显示CPU核心数
```
### 内存信息
```bash
free # 显示内存使用情况
free -h # 人类可读格式
free -m # 以MB为单位
cat /proc/meminfo # 详细内存信息
```
### 磁盘信息
```bash
df # 显示磁盘使用情况
df -h # 人类可读格式
df -i # 显示inode使用情况
du <目录> # 显示目录占用空间
du -h <目录> # 人类可读格式
du -sh <目录> # 只显示总计
du -h --max-depth=1 <目录> # 只显示一级子目录
```
### 系统负载
```bash
uptime # 显示系统运行时间和负载
w # 显示登录用户和负载
```
### 硬件信息
```bash
lspci # 显示PCI设备
lsusb # 显示USB设备
dmidecode # 显示硬件信息需要root
```
---
## 网络操作
### 网络配置
```bash
# 查看IP地址
ifconfig # 显示网络接口信息
ip addr # 显示IP地址新命令
ip addr show # 显示所有接口
hostname -I # 显示本机IP地址
# 配置网络
ifconfig <接口> <IP地址> # 设置IP地址
ip addr add <IP地址>/<掩码> dev <接口> # 添加IP地址
# 查看路由
route -n # 显示路由表
ip route # 显示路由表(新命令)
```
### 网络连接测试
```bash
ping <主机> # 测试网络连通性
ping -c 4 <主机> # 发送4个包后停止
ping -i 2 <主机> # 每2秒发送一次
# 端口测试
telnet <主机> <端口> # 测试端口连通性
nc -zv <主机> <端口> # 测试端口netcat
```
### 网络下载
```bash
wget <URL> # 下载文件
wget -c <URL> # 断点续传
wget -r <URL> # 递归下载
curl <URL> # 下载文件(支持更多协议)
curl -O <URL> # 保存文件
curl -L <URL> # 跟随重定向
```
### 网络统计
```bash
netstat -an # 显示所有网络连接
netstat -tuln # 显示监听端口
netstat -rn # 显示路由表
ss -an # 显示网络连接(新命令,更快)
ss -tuln # 显示监听端口
```
### 防火墙
```bash
# iptables需要root
iptables -L # 列出规则
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 添加规则
# ufwUbuntu防火墙
ufw status # 查看状态
ufw enable # 启用防火墙
ufw allow 80/tcp # 允许端口
ufw deny 22/tcp # 拒绝端口
```
---
## 压缩与解压
### tar 命令
```bash
# 压缩
tar -czf <压缩包名>.tar.gz <目录> # 创建gzip压缩包
tar -cjf <压缩包名>.tar.bz2 <目录> # 创建bzip2压缩包
tar -cJf <压缩包名>.tar.xz <目录> # 创建xz压缩包
# 解压
tar -xzf <压缩包名>.tar.gz # 解压gzip压缩包
tar -xjf <压缩包名>.tar.bz2 # 解压bzip2压缩包
tar -xJf <压缩包名>.tar.xz # 解压xz压缩包
# 查看压缩包内容
tar -tzf <压缩包名>.tar.gz # 列出gzip压缩包内容
tar -tjf <压缩包名>.tar.bz2 # 列出bzip2压缩包内容
# 常用选项说明
# -c: 创建压缩包
# -x: 解压
# -z: gzip压缩
# -j: bzip2压缩
# -J: xz压缩
# -f: 指定文件名
# -v: 显示过程
# -C: 指定解压目录
```
### zip/unzip 命令
```bash
zip -r <压缩包名>.zip <目录> # 压缩目录
zip <压缩包名>.zip <文件1> <文件2> # 压缩文件
unzip <压缩包名>.zip # 解压
unzip -l <压缩包名>.zip # 查看压缩包内容
unzip -d <目录> <压缩包名>.zip # 解压到指定目录
```
### gzip/gunzip 命令
```bash
gzip <文件名> # 压缩文件(生成.gz文件
gunzip <文件名>.gz # 解压.gz文件
gzip -d <文件名>.gz # 解压(另一种方式)
```
---
## 文本处理
### 文本过滤
```bash
# cut 命令(按列提取)
cut -d: -f1 /etc/passwd # 以:为分隔符提取第1列
cut -c1-10 <文件名> # 提取第1-10个字符
# sort 命令(排序)
sort <文件名> # 排序文件
sort -r <文件名> # 倒序排序
sort -n <文件名> # 按数字排序
sort -u <文件名> # 去重排序
# uniq 命令(去重)
uniq <文件名> # 去除相邻重复行
uniq -c <文件名> # 统计重复次数
uniq -d <文件名> # 只显示重复行
uniq -u <文件名> # 只显示不重复行
# 组合使用
sort <文件名> | uniq # 排序后去重
```
### 文本替换
```bash
# sed 命令(流编辑器)
sed 's/旧文本/新文本/g' <文件名> # 替换文本
sed -i 's/旧文本/新文本/g' <文件名> # 直接修改文件
sed 's/旧文本/新文本/g' <文件名> > 新文件 # 保存到新文件
sed -n '10,20p' <文件名> # 显示第10-20行
sed '10,20d' <文件名> # 删除第10-20行
# tr 命令(字符转换)
tr 'a-z' 'A-Z' < <文件名> # 小写转大写
tr -d '\n' < <文件名> # 删除换行符
```
### awk 命令(文本处理工具)
```bash
awk '{print $1}' <文件名> # 打印第1列
awk -F: '{print $1}' <文件名> # 以:为分隔符打印第1列
awk '/关键字/ {print}' <文件名> # 打印包含关键字的行
awk '{sum+=$1} END {print sum}' <文件名> # 计算第1列总和
```
---
## 磁盘管理
### 磁盘分区
```bash
fdisk -l # 列出所有分区需要root
lsblk # 以树形显示块设备
parted -l # 显示分区信息
```
### 挂载/卸载
```bash
mount # 显示已挂载的文件系统
mount <设备> <挂载点> # 挂载设备
umount <挂载点> # 卸载设备
umount -l <挂载点> # 强制卸载lazy unmount
```
### 文件系统检查
```bash
fsck <设备> # 检查文件系统需要root
fsck -y <设备> # 自动修复错误
```
---
## 用户管理
### 用户操作
```bash
whoami # 显示当前用户名
id # 显示用户ID和组ID
who # 显示登录用户
w # 显示登录用户和活动
# 添加/删除用户需要root
useradd <用户名> # 添加用户
userdel <用户名> # 删除用户
passwd <用户名> # 修改用户密码
```
### 切换用户
```bash
su <用户名> # 切换用户
su - <用户名> # 切换用户并加载环境变量
sudo <命令> # 以root权限执行命令
sudo -u <用户> <命令> # 以指定用户执行命令
```
### 组操作
```bash
groups # 显示当前用户所属组
groupadd <组名> # 添加组需要root
groupdel <组名> # 删除组需要root
usermod -aG <组名> <用户名> # 将用户添加到组需要root
```
---
## 服务管理
### systemd 服务现代Linux发行版
```bash
systemctl status <服务名> # 查看服务状态
systemctl start <服务名> # 启动服务
systemctl stop <服务名> # 停止服务
systemctl restart <服务名> # 重启服务
systemctl reload <服务名> # 重新加载配置
systemctl enable <服务名> # 设置开机自启
systemctl disable <服务名> # 取消开机自启
systemctl list-units # 列出所有服务
systemctl list-unit-files # 列出所有服务文件
```
### service 命令(传统方式)
```bash
service <服务名> status # 查看服务状态
service <服务名> start # 启动服务
service <服务名> stop # 停止服务
service <服务名> restart # 重启服务
```
---
## 常用快捷键
### 终端快捷键
```bash
Ctrl + C # 中断当前命令
Ctrl + D # 退出终端/结束输入
Ctrl + Z # 暂停进程(放入后台)
Ctrl + L # 清屏等同于clear
Ctrl + A # 移动到行首
Ctrl + E # 移动到行尾
Ctrl + U # 删除光标前所有内容
Ctrl + K # 删除光标后所有内容
Ctrl + W # 删除光标前一个单词
Ctrl + R # 搜索历史命令
Tab # 自动补全
```
### 历史命令
```bash
history # 显示命令历史
history | grep <关键字> # 搜索历史命令
!! # 执行上一条命令
!<编号> # 执行历史中指定编号的命令
!<字符串> # 执行最近以字符串开头的命令
```
---
## 组合命令
### 管道操作
```bash
# 基本管道
命令1 | 命令2 # 将命令1的输出作为命令2的输入
# 示例
ps aux | grep python # 查找python进程
cat file.txt | grep "关键字" # 在文件中搜索
ls -l | wc -l # 统计文件数量
```
### 重定向
```bash
命令 > 文件 # 输出重定向到文件(覆盖)
命令 >> 文件 # 输出追加到文件
命令 < 文件 # 从文件读取输入
命令 2> 文件 # 错误输出重定向
命令 > 文件 2>&1 # 标准输出和错误都重定向
命令 > /dev/null 2>&1 # 丢弃所有输出
```
### 逻辑操作
```bash
命令1 && 命令2 # 命令1成功才执行命令2
命令1 || 命令2 # 命令1失败才执行命令2
命令1 ; 命令2 # 顺序执行命令(无论成功失败)
```
### 常用组合示例
```bash
# 查找并删除
find . -name "*.log" -delete
# 统计文件行数
find . -name "*.txt" -exec wc -l {} \; | awk '{sum+=$1} END {print sum}'
# 查找大文件
find . -type f -size +100M -exec ls -lh {} \;
# 批量重命名
for file in *.txt; do mv "$file" "${file%.txt}.bak"; done
# 监控日志
tail -f /var/log/syslog | grep "ERROR"
# 压缩并删除原文件
tar -czf backup.tar.gz dir/ && rm -rf dir/
# 查找并替换
find . -name "*.txt" -exec sed -i 's/旧文本/新文本/g' {} \;
```
---
## 实用技巧
### 别名设置
```bash
# 临时设置
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# 永久设置(添加到 ~/.bashrc 或 ~/.bash_profile
echo "alias ll='ls -alF'" >> ~/.bashrc
source ~/.bashrc # 重新加载配置
```
### 环境变量
```bash
echo $PATH # 显示PATH变量
export PATH=$PATH:/新路径 # 添加PATH
export VAR=value # 设置环境变量
env # 显示所有环境变量
```
### 后台运行
```bash
nohup <命令> & # 后台运行,忽略挂起信号
screen -S <会话名> # 创建screen会话
screen -r <会话名> # 恢复screen会话
tmux new -s <会话名> # 创建tmux会话
tmux attach -t <会话名> # 附加到tmux会话
```
---
## 常用命令速查表
| 功能 | 命令 |
|------|------|
| 查看当前目录 | `pwd` |
| 列出文件 | `ls -lah` |
| 切换目录 | `cd <目录>` |
| 创建目录 | `mkdir -p dir1/dir2` |
| 删除文件 | `rm -rf <文件/目录>` |
| 复制文件 | `cp -r <源> <目标>` |
| 移动文件 | `mv <源> <目标>` |
| 查看文件 | `cat/less/more <文件>` |
| 查看头部 | `head -n 20 <文件>` |
| 查看尾部 | `tail -f <文件>` |
| 搜索文件 | `find . -name "*.txt"` |
| 搜索文本 | `grep -r "关键字" <目录>` |
| 查看进程 | `ps aux \| grep <进程>` |
| 终止进程 | `kill -9 <PID>` |
| 查看内存 | `free -h` |
| 查看磁盘 | `df -h` |
| 查看网络 | `ifconfig``ip addr` |
| 测试网络 | `ping <主机>` |
| 压缩文件 | `tar -czf file.tar.gz dir/` |
| 解压文件 | `tar -xzf file.tar.gz` |
| 修改权限 | `chmod 755 <文件>` |
| 修改所有者 | `chown user:group <文件>` |
| 查看系统信息 | `uname -a` |
| 查看系统负载 | `uptime` |
---
## 注意事项
1. **权限问题**很多系统管理命令需要root权限使用`sudo`
2. **路径问题**:注意绝对路径和相对路径的区别
3. **通配符**`*` 匹配任意字符,`?` 匹配单个字符
4. **危险命令**`rm -rf``dd``mkfs` 等命令要谨慎使用
5. **命令历史**:使用 `history` 查看,`Ctrl+R` 搜索
6. **帮助文档**:使用 `man <命令>``<命令> --help` 查看帮助
---
## 参考资源
- [Linux命令大全](https://www.runoob.com/linux/linux-command-manual.html)
- [GNU Coreutils文档](https://www.gnu.org/software/coreutils/manual/)
- [Linux man pages](https://man7.org/linux/man-pages/)
---
*最后更新2024年*

File diff suppressed because it is too large Load Diff

View File

@@ -13,66 +13,3 @@ pkill -f "cursor-server"
联通大王卡号13022988679
公司电信卡号17392826953 QQ号3145431252 密码renjianbo0118 邮箱3145431252@qq.com 密码renjianbo0118 网易邮箱17392826953@163.com !renjianbo1219
公司移动卡号15129026818
瑞来康健微信小程序账号15129026818@163.com 密码Ruilaizi123456
公众号账号17392826953@163.com 密码Ruilaizi123456
瑞来兹开票信息
公司名称:西安瑞来兹软件科技有限公司
统一社会信息代码91610131MAB0GH1Y54
地址陕西省西安市高新区科技二路65号启迪科技园D座9楼10901号
电话18691577328
开户行及帐号:中国农业银行股份有限公司西安丈八四路分理处
26121201040005017
公司手机号15129026818
公司QQ号2183824293 renjianbo0206 绑定的的手机18133922183
微信小程序官网https://mp.weixin.qq.com/
小程序2183824293@qq.com renjianbo0118
名片秘钥
887cd30d79bba800b30d8c4ef919a20c
公司服务器密码:~Ruilaizi123456
接口文档账号903292507@qq.com renjianbo0118
项目管理系统
https://pingcode.com/?utm_source=%E5%93%81%E7%89%8C%E4%B8%93%E5%8C%BA&utm_medium=pc-pingcode&utm_campaign=%E5%93%81%E7%89%8C%E4%B8%93%E5%8C%BA-%E9%AB%98%E7%BA%A7%E7%89%88&utm_content=PC-%E6%90%9C%E7%B4%A2%E9%80%9A%E6%A0%8F%E5%95%86%E5%93%81tab%E6%A0%B7%E5%BC%8F&utm_term=%E6%A0%87%E9%A2%98-PingCode&e_matchtype={matchtype}&e_creative={creative}&e_adposition={adposition}&e_pagenum={pagenum}&e_keywordid={keywordid}
管理 17392826953
3145431252@qq.com renjianbo0118
18302920526 ruilaizi
18792702169 ruilaizi
google账号renj62507@gmail.com renjianbo123
99API 账户18133922183 renjianbo1219
chatAI 18133922183@163.com !renjianbo0118
儿童医院小程序注册邮箱 3669785689@qq.com !ruilaizi123456
微信开放平台 生长激素预测模型小程序 3990202197@qq.com renjianbo1219
生长激素预测模型小程序3858752441@qq.com renjianbo1219
飞书账号15129026818
github账号密码263303411@qq.com renjianbo0118
硅基密钥sk-xpptixobqxshkmikjvjeoltekytqmmresfndhoivezomuobn
deepssk:sk-fdf7cc1c73504e628ec0119b7e11b8cc
263303411 renjianbo1219
计算云 renjianbo 密码!Rjb1219
荣耀开放平台 手机号 15129026818 邮箱263303411@qq.com renjianbo1219
curse 网站续费 https://cursor.com/cn/dashboard

View File

@@ -0,0 +1,836 @@
# Cursor 使用技巧指南
## 目录
- [基础操作技巧](#基础操作技巧)
- [AI 功能使用](#ai-功能使用)
- [快捷键大全](#快捷键大全)
- [代码编辑技巧](#代码编辑技巧)
- [搜索与导航](#搜索与导航)
- [调试技巧](#调试技巧)
- [多文件编辑](#多文件编辑)
- [代码重构](#代码重构)
- [Git 集成](#git-集成)
- [插件与扩展](#插件与扩展)
- [性能优化](#性能优化)
- [常见问题解决](#常见问题解决)
- [高级技巧](#高级技巧)
---
## 基础操作技巧
### 快速打开文件
```bash
# 使用命令面板
Ctrl + Shift + P (Windows/Linux)
Cmd + Shift + P (Mac)
# 快速打开文件
Ctrl + P (Windows/Linux)
Cmd + P (Mac)
# 快速打开符号(函数、类等)
Ctrl + Shift + O (Windows/Linux)
Cmd + Shift + O (Mac)
```
### 多光标编辑
```bash
# 添加多个光标
Alt + Click # 在多个位置添加光标
Ctrl + Alt + ↑/↓ # 在上/下行添加光标
Ctrl + D # 选择下一个相同的词
Ctrl + Shift + L # 选择所有相同的词
```
### 代码折叠
```bash
# 折叠/展开代码块
Ctrl + Shift + [ # 折叠当前代码块
Ctrl + Shift + ] # 展开当前代码块
Ctrl + K Ctrl + 0 # 折叠所有代码块
Ctrl + K Ctrl + J # 展开所有代码块
```
### 快速跳转
```bash
# 跳转到定义
F12 # 跳转到定义
Ctrl + Click # 按住Ctrl点击跳转
Alt + F12 # 预览定义(不跳转)
# 跳转到引用
Shift + F12 # 查找所有引用
# 返回上一位置
Ctrl + - # 返回上一位置
Ctrl + Shift + - # 前进到下一位置
```
---
## AI 功能使用
### Chat 功能
```bash
# 打开 Chat 面板
Ctrl + L (Windows/Linux)
Cmd + L (Mac)
# 或者使用命令面板
Ctrl + Shift + P -> "Cursor: Open Chat"
```
**使用技巧:**
- 选中代码后,在 Chat 中会自动包含上下文
- 使用 `@文件名` 引用特定文件
- 使用 `@代码库` 引用整个代码库
- 使用 `@文档` 引用文档
### Composer 功能
```bash
# 打开 Composer
Ctrl + I (Windows/Linux)
Cmd + I (Mac)
```
**使用场景:**
- 多文件编辑
- 大型重构任务
- 跨文件代码生成
- 复杂功能实现
### 内联编辑Tab 补全)
```bash
# 自动触发
# 输入代码时Cursor 会自动提供建议
Tab # 接受建议
Ctrl + → # 接受部分建议
Esc # 拒绝建议
```
### 代码生成提示
```bash
# 使用注释触发
// TODO: 实现用户登录功能
// FIXME: 修复内存泄漏问题
// CURSOR: 生成一个用户注册表单
```
### AI 命令使用
```bash
# 在 Chat 中使用特殊命令
/explain # 解释代码
/refactor # 重构代码
/fix # 修复错误
/test # 生成测试
/document # 生成文档
```
---
## 快捷键大全
### 文件操作
| 功能 | Windows/Linux | Mac |
|------|--------------|-----|
| 新建文件 | Ctrl + N | Cmd + N |
| 打开文件 | Ctrl + O | Cmd + O |
| 保存文件 | Ctrl + S | Cmd + S |
| 保存所有 | Ctrl + K S | Cmd + K S |
| 关闭文件 | Ctrl + W | Cmd + W |
| 关闭所有 | Ctrl + K W | Cmd + K W |
| 重新打开文件 | Ctrl + Shift + T | Cmd + Shift + T |
### 编辑操作
| 功能 | Windows/Linux | Mac |
|------|--------------|-----|
| 撤销 | Ctrl + Z | Cmd + Z |
| 重做 | Ctrl + Y | Cmd + Shift + Z |
| 复制行 | Shift + Alt + ↓ | Shift + Option + ↓ |
| 删除行 | Ctrl + Shift + K | Cmd + Shift + K |
| 移动行 | Alt + ↑/↓ | Option + ↑/↓ |
| 注释行 | Ctrl + / | Cmd + / |
| 格式化 | Shift + Alt + F | Shift + Option + F |
| 全选 | Ctrl + A | Cmd + A |
### 导航操作
| 功能 | Windows/Linux | Mac |
|------|--------------|-----|
| 跳转到行 | Ctrl + G | Cmd + G |
| 跳转到符号 | Ctrl + Shift + O | Cmd + Shift + O |
| 跳转到定义 | F12 | F12 |
| 查找引用 | Shift + F12 | Shift + F12 |
| 返回上一位置 | Ctrl + - | Cmd + - |
| 前进到下一位置 | Ctrl + Shift + - | Cmd + Shift + - |
### 搜索操作
| 功能 | Windows/Linux | Mac |
|------|--------------|-----|
| 查找 | Ctrl + F | Cmd + F |
| 替换 | Ctrl + H | Cmd + Option + F |
| 全项目查找 | Ctrl + Shift + F | Cmd + Shift + F |
| 全项目替换 | Ctrl + Shift + H | Cmd + Shift + H |
### AI 相关快捷键
| 功能 | Windows/Linux | Mac |
|------|--------------|-----|
| 打开 Chat | Ctrl + L | Cmd + L |
| 打开 Composer | Ctrl + I | Cmd + I |
| 接受建议 | Tab | Tab |
| 拒绝建议 | Esc | Esc |
| 接受部分建议 | Ctrl + → | Cmd + → |
---
## 代码编辑技巧
### 多光标编辑
```javascript
// 示例:同时编辑多个变量
// 1. 选中第一个变量名
// 2. 按 Ctrl + D 选择下一个相同的词
// 3. 继续按 Ctrl + D 选择更多
// 4. 开始编辑,所有选中的位置会同步修改
const userName = "John";
const userEmail = "john@example.com";
const userAge = 30;
// 选中所有 "user" 后,可以统一重命名
```
### 列选择模式
```bash
# 进入列选择模式
Shift + Alt + 鼠标拖动 # Windows/Linux
Shift + Option + 鼠标拖动 # Mac
# 或者使用键盘
Ctrl + Shift + Alt + ↑/↓ # Windows/Linux
Cmd + Shift + Option + ↑/↓ # Mac
```
### 代码块选择
```bash
# 扩展选择
Ctrl + Shift + → # 扩展选择到词
Ctrl + Shift + Alt + → # 扩展选择到代码块
```
### 快速复制/移动
```bash
# 复制当前行
Shift + Alt + ↓ # 向下复制
Shift + Alt + ↑ # 向上复制
# 移动当前行
Alt + ↓ # 向下移动
Alt + ↑ # 向上移动
```
### 智能重命名
```bash
# 重命名符号
F2 # 重命名当前符号
# 会自动更新所有引用
```
---
## 搜索与导航
### 快速文件搜索
```bash
# 按文件名搜索
Ctrl + P # 打开快速文件搜索
# 输入文件名或路径的一部分即可
# 按符号搜索
Ctrl + Shift + O # 在当前文件中搜索符号
Ctrl + T # 在整个项目中搜索符号
```
### 高级搜索
```bash
# 全项目搜索
Ctrl + Shift + F # 打开搜索面板
# 搜索选项
# - 区分大小写
# - 全词匹配
# - 正则表达式
# - 包含/排除文件
```
### 使用正则表达式搜索
```bash
# 在搜索框中启用正则表达式
# 示例:
# 查找所有 console.log
console\.log
# 查找所有函数定义
function\s+\w+
# 查找所有 TODO 注释
TODO|FIXME|XXX
```
### 文件导航
```bash
# 在文件之间快速切换
Ctrl + Tab # 切换最近打开的文件
Ctrl + P # 快速打开文件
# 在编辑器中导航
Ctrl + G # 跳转到指定行号
Ctrl + Shift + O # 跳转到文件中的符号
```
---
## 调试技巧
### 断点设置
```bash
# 设置断点
F9 # 切换断点
Ctrl + Shift + F9 # 删除所有断点
# 条件断点
# 右键点击断点 -> 编辑断点 -> 添加条件
```
### 调试控制
```bash
F5 # 开始调试
F10 # 单步跳过
F11 # 单步进入
Shift + F11 # 单步跳出
Ctrl + Shift + F5 # 重启调试
Shift + F5 # 停止调试
```
### 调试面板
```bash
Ctrl + Shift + D # 打开调试面板
# 可以查看变量、调用栈、断点等
```
### 日志调试
```bash
# 使用 console.log
console.log('Debug:', variable);
# 使用断点
debugger; # 在代码中插入断点
```
---
## 多文件编辑
### 分割编辑器
```bash
# 水平分割
Ctrl + \ # 分割编辑器
Ctrl + 1/2/3 # 切换到不同编辑器组
# 垂直分割
Ctrl + K Ctrl + \ # 垂直分割
# 关闭编辑器组
Ctrl + K W # 关闭当前编辑器组
```
### 并排编辑
```bash
# 打开文件到侧边
Ctrl + K → # 打开文件到右侧
Ctrl + K ← # 打开文件到左侧
# 移动文件到不同组
Ctrl + K Ctrl + ←/→ # 移动文件到左/右组
```
### 文件对比
```bash
# 对比两个文件
# 1. 右键点击文件 -> "Select for Compare"
# 2. 右键点击另一个文件 -> "Compare with Selected"
```
---
## 代码重构
### 提取函数
```bash
# 选中代码块
# 右键 -> "Extract Function"
# 或使用快捷键
Ctrl + Shift + R # 快速重构菜单
```
### 重命名符号
```bash
F2 # 重命名符号
# 会自动更新所有引用
```
### 提取变量
```bash
# 选中表达式
# 右键 -> "Extract Variable"
# 或使用命令面板
Ctrl + Shift + P -> "Extract Variable"
```
### 内联变量/函数
```bash
# 选中变量或函数调用
# 右键 -> "Inline Variable" 或 "Inline Function"
```
### 移动代码
```bash
# 选中代码
Alt + ↑/↓ # 移动代码块
```
---
## Git 集成
### Git 操作
```bash
# 打开源代码管理
Ctrl + Shift + G # 打开 Git 面板
# 常用操作
# - 查看更改
# - 暂存文件
# - 提交更改
# - 推送/拉取
```
### 查看 Git 历史
```bash
# 查看文件历史
# 右键文件 -> "Open Timeline"
# 或使用命令
Ctrl + Shift + P -> "Git: View File History"
```
### 分支管理
```bash
# 切换分支
Ctrl + Shift + P -> "Git: Checkout to..."
# 创建分支
Ctrl + Shift + P -> "Git: Create Branch..."
```
### 解决冲突
```bash
# 合并冲突时
# Cursor 会高亮冲突区域
# 使用 "Accept Current Change" / "Accept Incoming Change" 等选项
```
---
## 插件与扩展
### 推荐插件
```bash
# 代码格式化
- Prettier
- ESLint
- Black (Python)
# 主题
- One Dark Pro
- Material Theme
- Dracula Official
# 实用工具
- GitLens
- Error Lens
- Bracket Pair Colorizer
- Path Intellisense
- Auto Rename Tag
```
### 安装插件
```bash
# 打开扩展面板
Ctrl + Shift + X # 打开扩展面板
# 搜索并安装插件
```
### 插件配置
```bash
# 打开设置
Ctrl + , # 打开设置
# 搜索插件名称进行配置
```
---
## 性能优化
### 禁用不必要的功能
```bash
# 在设置中禁用
# - 文件监听(如果项目很大)
# - 某些语言服务器
# - 不必要的扩展
```
### 排除文件/文件夹
```bash
# 在 .cursorignore 或 .gitignore 中
node_modules/
dist/
build/
*.log
```
### 限制 AI 上下文
```bash
# 在设置中调整
# - AI 上下文窗口大小
# - 自动补全延迟
# - 最大文件大小
```
### 清理缓存
```bash
# 清理 Cursor 缓存
# Windows
%APPDATA%\Cursor\Cache
# Mac
~/Library/Application Support/Cursor/Cache
# Linux
~/.config/Cursor/Cache
```
### 重启 Cursor Server
```bash
# 如果 Cursor 变慢,可以重启服务
# Linux/Mac
pkill -f "cursor-server"
# 或者使用命令面板
Ctrl + Shift + P -> "Developer: Reload Window"
```
---
## 常见问题解决
### Cursor 无响应
```bash
# 1. 重启 Cursor
# 2. 清理缓存
# 3. 检查系统资源
# 4. 禁用不必要的扩展
```
### AI 功能不工作
```bash
# 1. 检查网络连接
# 2. 检查 API 密钥设置
# 3. 查看 Cursor 状态栏的错误信息
# 4. 重启 Cursor
```
### 代码补全不显示
```bash
# 1. 检查语言服务器是否运行
# 2. 检查文件类型是否正确识别
# 3. 重启语言服务器
Ctrl + Shift + P -> "Developer: Restart Extension Host"
```
### 快捷键冲突
```bash
# 1. 检查系统快捷键设置
# 2. 在 Cursor 设置中自定义快捷键
Ctrl + K Ctrl + S # 打开快捷键设置
```
### 文件无法保存
```bash
# 1. 检查文件权限
# 2. 检查磁盘空间
# 3. 检查文件是否被其他程序占用
```
### 中文输入问题
```bash
# 1. 检查输入法设置
# 2. 在设置中启用 "Editor: Accept Suggestion On Commit Character"
# 3. 调整输入法快捷键
```
---
## 高级技巧
### 自定义代码片段
```bash
# 打开代码片段设置
Ctrl + Shift + P -> "Preferences: Configure User Snippets"
# 示例:创建 React 组件片段
{
"React Component": {
"prefix": "rfc",
"body": [
"import React from 'react';",
"",
"const ${1:ComponentName} = () => {",
" return (",
" <div>",
" $0",
" </div>",
" );",
"};",
"",
"export default ${1:ComponentName};"
],
"description": "Create a React functional component"
}
}
```
### 工作区设置
```bash
# 项目特定设置
# 在项目根目录创建 .vscode/settings.json
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"files.exclude": {
"**/.git": true,
"**/node_modules": true
}
}
```
### 任务配置
```bash
# 在 .vscode/tasks.json 中配置任务
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "npm run build",
"group": "build"
}
]
}
# 运行任务
Ctrl + Shift + P -> "Tasks: Run Task"
```
### 调试配置
```bash
# 在 .vscode/launch.json 中配置调试
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/index.js"
}
]
}
```
### 使用命令面板
```bash
# 常用命令
Ctrl + Shift + P # 打开命令面板
# 常用命令列表:
# - "Format Document" 格式化文档
# - "Organize Imports" 整理导入
# - "Go to Symbol" 跳转到符号
# - "Change All Occurrences" 更改所有出现
# - "Rename Symbol" 重命名符号
```
### AI 提示词技巧
```bash
# 在 Chat 中使用更好的提示词
# ❌ 不好的提示
"修复这个bug"
# ✅ 好的提示
"这个函数在处理空数组时会抛出错误,请添加空值检查并返回默认值"
# 使用 @ 引用
@文件名 # 引用特定文件
@代码库 # 引用整个代码库
@文档 # 引用文档
# 使用特殊命令
/explain @file.js # 解释文件
/refactor @function # 重构函数
/test @component # 生成测试
```
### 代码审查技巧
```bash
# 使用 AI 进行代码审查
# 1. 选中代码
# 2. 在 Chat 中输入:
"请审查这段代码检查是否有bug、性能问题或可以改进的地方"
# 使用 Composer 进行大规模审查
# 1. 打开 Composer
# 2. 选择多个文件
# 3. 要求 AI 进行整体审查
```
### 批量操作
```bash
# 使用多光标进行批量操作
# 1. 选中第一个位置
# 2. Ctrl + D 选择下一个
# 3. 继续选择所有需要的位置
# 4. 同时编辑
# 使用查找替换
Ctrl + H # 打开替换
# 启用正则表达式
# 进行批量替换
```
### 代码生成模板
```bash
# 使用 AI 生成代码模板
# 在 Chat 中:
"生成一个 React 函数组件,包含以下功能:
- 使用 TypeScript
- 包含 props 类型定义
- 使用 useState 管理状态
- 包含错误处理"
```
---
## 实用配置示例
### settings.json 推荐配置
```json
{
// 编辑器设置
"editor.fontSize": 14,
"editor.lineHeight": 1.6,
"editor.tabSize": 2,
"editor.insertSpaces": true,
"editor.formatOnSave": true,
"editor.formatOnPaste": true,
"editor.codeActionsOnSave": {
"source.fixAll": true,
"source.organizeImports": true
},
// 文件设置
"files.autoSave": "afterDelay",
"files.autoSaveDelay": 1000,
"files.exclude": {
"**/.git": true,
"**/node_modules": true,
"**/dist": true,
"**/build": true
},
// AI 设置
"cursor.ai.enabled": true,
"cursor.ai.autoComplete": true,
// 搜索设置
"search.exclude": {
"**/node_modules": true,
"**/dist": true,
"**/build": true
}
}
```
---
## 学习资源
### 官方资源
- [Cursor 官网](https://cursor.com)
- [Cursor 文档](https://docs.cursor.com)
- [Cursor 博客](https://cursor.com/blog)
### 社区资源
- [Cursor Discord](https://discord.gg/cursor)
- [GitHub Discussions](https://github.com/getcursor/cursor/discussions)
- [Reddit r/cursor](https://reddit.com/r/cursor)
### 视频教程
- YouTube 搜索 "Cursor AI tutorial"
- 官方 YouTube 频道
---
## 最佳实践
### 1. 合理使用 AI
- 不要过度依赖 AI理解生成的代码
- 使用 AI 加速开发,但保持代码质量
- 定期审查 AI 生成的代码
### 2. 保持代码整洁
- 使用格式化工具
- 及时清理未使用的代码
- 保持一致的代码风格
### 3. 利用快捷键
- 学习常用快捷键,提高效率
- 自定义适合自己工作流的快捷键
- 定期复习快捷键
### 4. 组织项目结构
- 使用工作区设置
- 配置合理的文件排除规则
- 保持项目结构清晰
### 5. 版本控制
- 充分利用 Git 集成
- 定期提交代码
- 使用有意义的提交信息
---
## 总结
Cursor 是一个强大的 AI 辅助代码编辑器,掌握这些技巧可以大大提高开发效率:
1. **基础操作**:多光标、快速导航、代码折叠
2. **AI 功能**Chat、Composer、内联编辑
3. **代码编辑**:智能重命名、代码重构、批量操作
4. **调试技巧**:断点、日志、调试面板
5. **性能优化**:合理配置、清理缓存、排除文件
持续学习和实践这些技巧,让 Cursor 成为你开发路上的得力助手!
---
*最后更新2024年*

View File

@@ -0,0 +1,70 @@
## 错误原因
这是 Dify 的登录安全机制:当同一邮箱的密码错误次数超过限制时,会临时锁定该邮箱的登录。
### 具体机制
1. 错误次数限制:最多允许 5 次错误登录尝试LOGIN_MAX_ERROR_LIMITS = 5
2. 锁定时间:默认 24 小时86400 秒)
3. 计数方式:每次密码错误会增加计数,存储在 Redis 中
### 相关代码
login.pyLines 95-97
is_login_error_rate_limit = AccountService.is_login_error_rate_limit(args.email)
if is_login_error_rate_limit:
    raise EmailPasswordLoginLimitError()
account_service.pyLines 786-792
def add_login_error_rate_limit(email: str):
    key = f"login_error_rate_limit:{email}"
    count = redis_client.get(key)
    if count is None:
        count = 0
    count = int(count) + 1
    redis_client.setex(key, dify_config.LOGIN_LOCKOUT_DURATION, count)
account_service.pyLines 796-805
def is_login_error_rate_limit(email: str) -> bool:
    key = f"login_error_rate_limit:{email}"
    count = redis_client.get(key)
    if count is None:
        return False
    count = int(count)
    if count > AccountService.LOGIN_MAX_ERROR_LIMITS:
        return True
    return False
### 解决方案
1. 等待锁定时间结束(默认 24 小时)
2. 管理员可在 Redis 中删除该邮箱的计数记录:
   redis-cli DEL "login_error_rate_limit:your-email@example.com"
3. 使用邮箱验证码登录(如果已启用),不受此限制影响
这是防止暴力破解的安全措施,建议等待锁定时间结束或联系管理员处理。

View File

@@ -0,0 +1 @@
admin !Rjb0118