Files
notes/resource/常用命令.md
T
Docker7530 7f14056210 1778682052
2026-05-13 22:20:54 +08:00

345 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Docker
`docker exec -it mysql-jeecg /bin/bash`:进入 `mysql-jeecg` 容器内部,打开 bash 终端。
`docker inspect mysql`:查看 `mysql` 容器的详细信息(端口、挂载、环境变量等)。
## Mysql
```bash
sudo mkdir -p /opt/mydata/mysql-jeecg/{data,config,logs}
sudo chown -R 999:999 /opt/mydata/mysql-jeecg
```
```bash
docker run \
--name mysql-ibs \
--restart=always \
-v /opt/mydata/mysql-ibs/data:/var/lib/mysql \
-v /opt/mydata/mysql-ibs/config:/etc/mysql/conf.d \
-v /opt/mydata/mysql-ibs/logs:/var/log/mysql \
-p 63306:3306 \
-e MYSQL_ROOT_PASSWORD=xxxx \
-e MYSQL_CHARACTER_SET_SERVER=utf8mb4 \
-e MYSQL_COLLATION_SERVER=utf8mb4_unicode_ci \
-d mysql:8.0 \
--lower_case_table_names=1
```
关闭强制分组(ONLY_FULL_GROUP_BY
- `SELECT @@sql_mode;`:查看当前 MySQL 的 sql_mode 设置。
- `SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));`:全局关闭 ONLY_FULL_GROUP_BY(对新连接生效)。
- `SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));`:当前会话关闭 ONLY_FULL_GROUP_BY(只对当前连接生效)。
表名大小写设置
- `SHOW VARIABLES LIKE 'lower_case_table_names';`:查看表名是否区分大小写的配置值。
- `sed -i '/\[mysqld\]/a lower_case_table_names = 1' /etc/my.cnf`:在 MySQL 配置文件 `[mysqld]` 下添加 `lower_case_table_names=1`(通常需重启 MySQL 才生效)。
## Redis
```bash
sudo mkdir -p /opt/mydata/redis/{data,conf,logs}
sudo chown -R 999:999 /opt/mydata/redis
```
```bash
cat << EOF | sudo tee /opt/mydata/redis/conf/redis.conf
bind 0.0.0.0
port 6379
daemonize no
dir /data
appendonly yes
requirepass oWBTxm6VZWwoAwLnghQG
protected-mode yes
maxmemory 1gb
maxmemory-policy allkeys-lru
EOF
```
```bash
docker run \
--name redis-server \
--restart=always \
-p 6379:6379 \
-v /opt/mydata/redis/data:/data \
-v /opt/mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /opt/mydata/redis/logs:/var/log/redis \
--memory=2g \
-d redis:latest redis-server /etc/redis/redis.conf
```
# Git
```sh
# 全局设置。
git config --global user.name "excalicode"
git config --global user.email "excalicode@excalicode.com"
# 本地设置。
git config user.name "excalicode"
git config user.email "excalicode@excalicode.com"
# 禁用 SSL 证书验证。
git config --global http.sslVerify false
```
查看提交记录
```sh
git log --since="2025-01-01" --until="2025-07-31" --author="tianzhuo" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %sn", add, subs, loc }';
```
## 远程仓库
```sh
# ⚠️ 注意:执行这一步会删除本地所有 Git 历史!
rm -rf .git
# 初始化一个新的 Git 仓库
git init
# 设置 Git 用户名和私密邮箱(全局生效)
git config user.name "Docker7530"
git config user.email "121306237+Docker7530@users.noreply.github.com"
# 将当前项目所有文件加入暂存区并提交
git add .
git commit -m "Initial commit"
# 设置默认分支名为 main
git branch -M main
# 绑定新的 GitHub 仓库地址
git remote add origin https://github.com/Docker7530/excalicode-ai.git
# 推送到远程 GitHub 仓库
git push -u origin main
```
## 提交规范
[约定式提交](https://www.conventionalcommits.org/zh-hans/v1.0.0/)
```
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
```
要求:
- type 必须是规范内的关键字(英文)
- scope 必须是变更位置或模块名(如 prompts、admin、config
- description 需简洁描述此次修改意图(中文),不以句号结尾
- 如修改较多,需在正文用 bullet point 描述细项
- 不允许使用「更新代码」「修改 bug」这种无意义描述
### type 列表
| type | 用途 |
| -------- | ----------------- |
| build | 构建系统或依赖变更 |
| chore | 构建、依赖、脚本、CI/CD |
| ci | CI 相关变更 |
| docs | 文档、说明、注释 |
| feat | 新功能 |
| fix | 修补 Bug |
| perf | 性能优化 |
| refactor | 重构不影响行为的代码 |
| style | 仅代码格式调整(空格/逗号/缩进) |
| test | 新增修改测试 |
| revert | 回滚代码 |
### 示例
```
refactor(prompts): 重构提示词管理系统并统一后台样式
- 提示词从文件系统迁移到数据库
- 新增 PromptTemplate / FunctionPromptMapping CRUD
- 删除旧 PromptConstants
- 新增 Markdown 编辑和预览功能
```
## 设置代理
检查 Git 代理配置
```bash
git config --global --list | grep proxy
```
取消配置
```bash
git config --global --unset http.proxy
git config --global --unset https.proxy
```
设置正确的 SOCKS5 代理
```bash
git config --global http.proxy socks5://127.0.0.1:7890
git config --global https.proxy socks5://127.0.0.1:7890
```
`curl` 测试你的代理:
```bash
curl --proxy socks5h://127.0.0.1:7890 -I https://github.com
```
如果代理正常,你会看到 HTTP 响应头:
```
HTTP/2 200
...
```
如果代理没有开启,你可能会看到类似:
```
curl: (7) Failed to connect to 127.0.0.1 port 7890: Connection refused
```
# 数据库备份
```
# 备份表
sudo mysqldump -h localhost -u cdn -ppassW0rd# -P3306 cdnpro user > /root/tz/user.sql
sudo mysql -h localhost -u cdn -ppassW0rd# -P3306 cdnpro < /root/tz/system_config.sql
# 备份库
sudo mysqldump -h localhost -u cdn -ppassW0rd# -P3306 cdn_portal_trail > /home/tianzhuo/cdn_portal_trail_backup.sql
sudo mysql -h localhost -u cdn -ppassW0rd# -P3306 cdn_portal_pre < /root/portal-2025-08-05.sql
# 数据脱敏
UPDATE user
SET mobile = CONCAT(LEFT(mobile, 3), '****', RIGHT(mobile, 4)),
email = CONCAT(LEFT(email, 3), '***', SUBSTRING(email, LOCATE('@', email)));
```
# 添加服务器用户权限
```shell
useradd shizheng
mkdir /home/shizheng/.ssh -p
chmod 700 /home/shizheng/.ssh
echo -e "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC8GQ/4TjwOweEh99onTTOP3jJSY5h4hpv2zFWn525a3rkFOfmxZUh02Wysd/88HnqDL4JhQrpA7at0cy8p1sxqboJCLiqOv/c/Mr/8nAZbTA4vOP6Wk3IHmwQfxz7depseohcCZxRFMhNCnmtcioHFBfjFVPFRIHVmqjrAlQ2o2BLWQbH7C2Cj5z5zXgOm37NHe4G+jwwwSWBZOWFR5WoLGbALNsBKcadm7of02PlFZAJZ81OPOkEI9buyUxxFv+UB5Twe1WvJ9IDB+r6VGK/XzvuNaeVfrFMJdRmtyslnlV6t0bU7vx9DqCjwAzaTghUqitlAdIGznYi+aJcULjKb3/UX2Efct5XvoktSpRWbuljgbTB4GNJr4MEaizrSKV3E+9y+5G0KtxYDjGo4pusjn5LaTskUlsFz/SrlplqBaDIyFw09RtP/Mj277ep8n8bH84k3XGbmXzcNU3twdKaPcC9bVMjTlECcVsx74tkobOEtri4ALnl6C2VBDNUuhsM= shizheng@cmhi.chinamobile.com" > /home/shizheng/.ssh/authorized_keys
chmod 600 /home/shizheng/.ssh/authorized_keys
chown shizheng:shizheng /home/shizheng -R
echo "shizheng ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/10_shizheng
chmod 440 /etc/sudoers.d/10_shizheng
```
# Redis
## 安装
```shell
# 下载Redis指定版本的源码压缩包到当前目录。
wget http://download.redis.io/releases/redis-3.0.7.tar.gz
# 解压缩Redis源码压缩包。
tar xzf redis-3.0.7.tar.gz
# 建立一个redis目录的软连接,指向redis-3.0.7。
ln -s redis-3.0.7 redis
# 进入redis目录。
cd redis
# 编译(编译之前确保操作系统已经安装gcc)。
make
#安装。
make install
```
## 使用
```shell
# 登录
./redis-cli -h 172.21.16.209 -p 7001
# 密码
AUTH cmccPassw0rd
# 节点信息
info replication
# 集群信息
CLUSTER NODES
# 查询在某个哈希槽
CLUSTER KEYSLOT
# 测试环境
+mcKdQWMd/iqiwSmAt05FA==
```
# Windows
## 获取 DNS 服务器地址
```PowerShell
Get-DnsClientServerAddress | Select-Object -ExpandProperty ServerAddresses
```
## Power Shell 脚本限制
PowerShell 默认不允许执行脚本,而你尝试运行 yarn 命令时,PowerShell 尝试执行 yarn.ps1 脚本但被系统安全策略阻止了。
以管理员身份打开 PowerShell
执行以下命令更改执行策略:
```powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
```
这会允许你运行本地创建的脚本和已签名的远程脚本
然后再次尝试运行你的 yarn 命令:
```powershell
yarn config set registry https://registry.npmmirror.com
```
如果你想更加安全,完成操作后可以恢复更严格的执行策略:
```powershell
Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope CurrentUser
```
## 增加 JDK 信任证书
```sh
增加
.\keytool -import -alias cmcc-repo -file "E:\Environment\Server CA.crt" -keystore "E:\Environment\Jdks\jdk-17.0.13_windows-x64_bin\jdk-17.0.13\lib\security\cacerts"
导出
.\keytool -list -keystore "E:\Environment\Jdks\jdk-17.0.13_windows-x64_bin\jdk-17.0.13\lib\security\cacerts" > "$env:USERPROFILE\Desktop\certificates.txt"
删除
.\keytool -delete -alias "cmcc-repo" -keystore "E:\Environment\Jdks\jdk-17.0.13_windows-x64_bin\jdk-17.0.13\lib\security\cacerts"
```
# Maven
查看 Maven 最终生效的 settings 配置。
```
mvn help:effective-settings
```