鏇存柊鏂囨。
This commit is contained in:
10
.obsidian/bookmarks.json
vendored
10
.obsidian/bookmarks.json
vendored
@@ -4,6 +4,16 @@
|
||||
"type": "file",
|
||||
"ctime": 1768298736833,
|
||||
"path": "docs/Obsidian/高频命令.md"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"ctime": 1768374029159,
|
||||
"path": "docs/Obsidian笔记体系/Projects/saars开发/数据库配置.md"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"ctime": 1768374043546,
|
||||
"path": "docs/Obsidian笔记体系/Projects/知你-调测/知你--调测.md"
|
||||
}
|
||||
]
|
||||
}
|
||||
35
.obsidian/workspace.json
vendored
35
.obsidian/workspace.json
vendored
@@ -13,12 +13,12 @@
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "docs/Obsidian笔记体系/Daily/2026-01-13.md",
|
||||
"file": "docs/adb调试命令/adb常用命令.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "2026-01-13"
|
||||
"title": "adb常用命令"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -53,7 +53,7 @@
|
||||
"state": {
|
||||
"type": "search",
|
||||
"state": {
|
||||
"query": "path:\"docs/\" ",
|
||||
"query": "",
|
||||
"matchingCase": false,
|
||||
"explainSearch": false,
|
||||
"collapseAll": false,
|
||||
@@ -185,32 +185,33 @@
|
||||
},
|
||||
"active": "9a5781991bf94030",
|
||||
"lastOpenFiles": [
|
||||
"docs/cursor/cursor使用技巧.md",
|
||||
"docs/adb调试命令/linux常用命令.md",
|
||||
"docs/adb调试命令/常用linux命令.md",
|
||||
"docs/adb调试命令/adb常用命令.md",
|
||||
"docs/Obsidian笔记体系/Daily/2026-01-14.md",
|
||||
"docs/Obsidian笔记体系/Daily/2026-01-13.md",
|
||||
"docs/Obsidian笔记体系/Daily/2024-06-02.md",
|
||||
"docs/cursor/cursor.md",
|
||||
"docs/Obsidian/高频命令.md",
|
||||
"docs/Obsidian笔记体系/Projects/知你-调测/知你--调测.md",
|
||||
"docs/Obsidian笔记体系/Projects/saars开发/数据库配置.md",
|
||||
"docs/Obsidian笔记体系/Areas/03-Window系统/SurfaceFlinger交互流程.md",
|
||||
"docs/Obsidian笔记体系/Areas/03-Window系统/窗口类型与层级.md",
|
||||
"docs/Obsidian笔记体系/Areas/03-Window系统/触摸事件传递.md",
|
||||
"docs/dify/密码输入错误次数超过限制时的机制.md",
|
||||
"docs/dify/管理员账户.md",
|
||||
"docs/Obsidian/2026-01-05 个人文档管理.md",
|
||||
"未命名.base",
|
||||
"docs/Obsidian笔记体系/Daily/2026-01-13.md",
|
||||
"docs/Obsidian笔记体系/Projects/知你-调测/知你--调测.md",
|
||||
"个人笔记体系.md",
|
||||
"使用说明.md",
|
||||
"docs/Obsidian笔记体系/README.md",
|
||||
"docs/gerrit/gerrit每日工作流程.md",
|
||||
"docs/cursor/cursor.md",
|
||||
"docs/Obsidian/资源网站.md",
|
||||
"docs/Obsidian/重要笔记.md",
|
||||
"docs/dify/作为安卓高级开发工程师,除了项目管理,你完全可以在技术专项、团队效能和个人成长三大领域构建更懂你的专属助手.md",
|
||||
"docs/dify/使用dify,可以生成一个专项事务助手吗,比如公司正规化事务助手.md",
|
||||
"docs/Obsidian笔记体系/Projects/saars开发/数据库配置.md",
|
||||
"docs/git/git常用命令.md",
|
||||
"docs/git/hello.md",
|
||||
"docs/学习笔记/前端学习.md",
|
||||
"docs/git/test.md",
|
||||
"docs/学习笔记/效率提升.md",
|
||||
"docs/gerrit/生成并配置SSH密钥、克隆仓库.md",
|
||||
"docs/git/git设置用户名和邮箱.md",
|
||||
"docs/学习笔记/个人全自动研发体系.md",
|
||||
"docs/学习笔记/DevOps学习.md",
|
||||
"docs/git/git同步远程分支总结.md",
|
||||
"docs/学习笔记/honor工作资料.md",
|
||||
"docs/Obsidian笔记体系/Projects/知你-调测",
|
||||
"docs/gerrit",
|
||||
"gerrit",
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
131
docs/Obsidian笔记体系/Daily/2026-01-14.md
Normal file
131
docs/Obsidian笔记体系/Daily/2026-01-14.md
Normal 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
|
||||
@@ -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年*
|
||||
|
||||
780
docs/adb调试命令/linux常用命令.md
Normal file
780
docs/adb调试命令/linux常用命令.md
Normal 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
|
||||
# SUID(Set User ID)
|
||||
chmod u+s <文件名> # 执行时以文件所有者身份运行
|
||||
|
||||
# SGID(Set 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 # 添加规则
|
||||
|
||||
# ufw(Ubuntu防火墙)
|
||||
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
@@ -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
|
||||
|
||||
836
docs/cursor/cursor使用技巧.md
Normal file
836
docs/cursor/cursor使用技巧.md
Normal 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年*
|
||||
70
docs/dify/密码输入错误次数超过限制时的机制.md
Normal file
70
docs/dify/密码输入错误次数超过限制时的机制.md
Normal 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. 使用邮箱验证码登录(如果已启用),不受此限制影响
|
||||
|
||||
这是防止暴力破解的安全措施,建议等待锁定时间结束或联系管理员处理。
|
||||
1
docs/dify/管理员账户.md
Normal file
1
docs/dify/管理员账户.md
Normal file
@@ -0,0 +1 @@
|
||||
admin !Rjb0118
|
||||
@@ -58,6 +58,7 @@ nav:
|
||||
- 技术文档/部署文档.md
|
||||
- Cursor工具:
|
||||
- cursor/cursor.md
|
||||
- cursor/cursor使用技巧.md
|
||||
- 学习笔记:
|
||||
- 学习笔记/Java学习.md
|
||||
- 学习笔记/前端学习.md
|
||||
@@ -181,6 +182,7 @@ nav:
|
||||
- Obsidian笔记体系/Projects/saars开发/营养师/健康营养师分析数据.md
|
||||
- Obsidian笔记体系/Projects/saars开发/营养师/营养师分析数据.md
|
||||
- Obsidian笔记体系/Projects/知你-调测/知你--调测.md
|
||||
- Obsidian笔记体系/Daily/2026-01-14.md
|
||||
- gerrit:
|
||||
- gerrit/gerrit上传代码详细指南.md
|
||||
- gerrit/gerrit分支规范.md
|
||||
@@ -189,10 +191,12 @@ nav:
|
||||
- gerrit/gerrit每日工作流程.md
|
||||
- adb调试命令:
|
||||
- adb调试命令/adb常用命令.md
|
||||
- adb调试命令/常用linux命令.md
|
||||
- adb调试命令/linux常用命令.md
|
||||
- dify:
|
||||
- dify/作为安卓高级开发工程师,除了项目管理,你完全可以在技术专项、团队效能和个人成长三大领域构建更懂你的专属助手.md
|
||||
- dify/使用dify,可以生成一个专项事务助手吗,比如公司正规化事务助手.md
|
||||
- dify/密码输入错误次数超过限制时的机制.md
|
||||
- dify/管理员账户.md
|
||||
- git:
|
||||
- git/Git add . 后如何撤销.md
|
||||
- git/git同步远程分支总结.md
|
||||
|
||||
Reference in New Issue
Block a user