# git命令 ![image-20231120094757873](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20231120094757873.png) ​ 连接远程仓库 ![image-20231120095505383](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20231120095505383.png) ​ 推到master分支 在本地创建分支dev并切换到该分支 git checkout -b dev(本地分支名称) origin/dev(远程分支名称) 把远程分支拉到本地 git fetch origin dev(master)(dev/master为远程仓库的分支名) 把某个分支上的内容都拉取到本地 git pull origin dev(远程分支名称) 创建远程与本地同名的分支 git push --set-upstream origin branch_name 删除本地分支 ```git git branch --delete dev ``` 删除远程分支 ```git git push origin --delete branch_name ``` #1.使用git status查看当前还有多少个commit未推送 git status #2.查看具体是哪些commit未推送 git log 分支名称 ^origin/分支名称 1、git add . # 先add至工作区 1.1 使用git reset命令可以撤销之前的git add操作,从而移除某个add的文件。具体命令如下: ```git git reset file_path ``` 1.2 使用git rm命令移除已经add的文件。具体命令如下: ```git git rm --cached file_path ``` 1.3 使用git restore命令恢复之前的版本,可以将暂存区的修改撤销掉。具体命令如下: ```git git restore --staged file_path ``` 2、git commit -m "注释" # 添加至本地版本库 3、设置用户名和邮箱 git config user.name 作者 git config user.email 邮箱 4、将代码push至远程仓库 git push origin master git config --global --list 查看全局配置信息:用户名、邮箱 ![image-20231120095314273](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20231120095314273.png) ![image-20231120095358556](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20231120095358556.png) ### 查看提交历史 1. **查看所有提交记录**: 使用 `git log` 命令查看当前分支的完整提交历史,包括每次提交的哈希值、作者、日期以及提交信息。 Bash ```bash 1git log ``` 若要以更友好的格式展示(如oneline格式),可使用: Bash ```bash 1git log --oneline ``` 2. **查找特定提交**: 为了找到你要回退到的版本,可以通过多种方式过滤日志,例如根据提交消息、作者、日期等。若要查找包含特定关键词的提交,可以这样操作: Bash ```bash 1git log --grep="搜索关键词" ``` 若要找到最近的一次提交,可以在命令行浏览日志找到对应的提交哈希。 ### 回退到指定版本 1. **通过哈希值回退**: 确定要回退到的目标提交哈希后,可以使用 `git reset` 命令将HEAD指针指向该提交,有三种主要模式可以选择: - **软重置(soft reset)**:仅移动HEAD指针,不更改工作目录或暂存区。 Bash ```bash 1git reset --soft <提交哈希> ``` - **混合重置(mixed reset)**:移动HEAD指针,并清空暂存区内容,使它们与所选择的提交一致,但保留工作目录中的改动。 Bash ```bash 1git reset --mixed <提交哈希> ``` - **硬重置(hard reset)**:移动HEAD指针并重置工作目录,使得工作目录与所选择的提交完全一致,任何未提交的本地改动都会丢失。 Bash ```bash 1git reset --hard <提交哈希> ``` 其中,`<提交哈希>` 是你想要回退到的那个提交的完整哈希值,通常从 `git log` 中获取。 2. **回到某个标签或分支点**: 如果目标是回到一个标签或者之前的某个分支点,可以用类似的方式: Bash ```bash 1git reset --hard <标签名> # 或者 2git reset --hard <分支名> ``` 3. **撤销最近一次提交**: 如果你想撤销最近一次提交且不保留任何修改,可以直接执行: Bash ```bash 1git reset --hard HEAD~1 ``` 4. **切分支并创建新提交**: 如果你想保留当前分支的历史而是在一个新的分支上开始(比如开发团队经常采用这种做法来解决合并问题),你可以先创建一个新分支然后切换过去: Bash ```bash 1git checkout -b new_branch_name <提交哈希> ``` 请谨慎操作,特别是涉及到`--hard`选项时,因为它会改变你的工作目录状态,可能会丢失未提交的更改。在执行前确保已备份重要的未提交变更。如果你正在多人协作的项目中,请在推送更改前与团队沟通,以免影响他人。 startup.cmd -m standalone nacos 单机启动(非集群模式) debug模式运行程序 mvn spring-boot:run -Dspring-boot.run.arguments=--debug idea控制台Terminal命令 netstat -aon|findstr "提示的端口" # navicat 快捷键 1.ctrl+q 打开查询窗口 2.ctrl+/ 注释sql语句 3.ctrl+shift +/ 解除注释 4.ctrl+r 运行查询窗口的sql语句 5.ctrl+shift+r 只运行选中的sql语句 6.F6 打开一个mysql命令行窗口 7.ctrl+l 删除一行 8.ctrl+n 打开一个新的查询窗口 9.ctrl+w 关闭一个查询窗口 # SQLyog快捷键列表 \##连接 Ctrl+M 创建一个新的连接 Ctrl+N 使用当前设置新建连接 Ctrl+F4 断开当前连接 \##对象浏览器 F5 刷新对象浏览器(默认) Ctrl+B 设置焦点于对象浏览器 SQL 窗口 Ctrl+T 新建查询编辑器 Ctrl+E 设置焦点于 SQL 窗口 Ctrl+Y 重做 Ctrl+Z 撤销 Ctrl+X 剪切 Ctrl+V 粘贴 Ctrl+H 替换 Ctrl+G 转到 Ctrl+O 在 SQL 窗口打开一个 SQL 文档 Ctrl+Shift+U 使选择内容大写 Ctrl+Shift+L 使选择内容小写 Ctrl+Shift+C 注释 SQL 窗口选择内容 Ctrl+Shift+R 从选择内容删除注释 Ctrl+Shift+T 插入模板 Ctrl+Enter 列出所有的标签 Ctrl+Space 列出匹配的标签 \##执行查询 F8 执行当前查询并编辑结果集 F9 执行当前查询(默认) Ctrl+F9 执行选定查询(默认) Shift+F9 执行全部查询(默认) \##粘贴 SQL 语句 Alt+Shift+I 插入语句 Alt+Shift+U 更新语句 Alt+Shift+D 删除语句 Alt+Shift+S 选择语句 \##结果 F11 插入更新对话框 Ctrl+R 设置焦点于结果面板中的活动标签 Ctrl+L 切换结果窗口/表数据以表格/文本方式显示 Ctrl+Alt+C 以 CSV, SQL, Excel 等导出表数据 Ctrl+Alt+E 以 SQL 转储文件备份数据 Ctrl+Shift+M 从 CSV 导入数据 Ctrl+Shift+E 导出结果集 Alt+1…n 在结果窗口中选择第n个标签 \##显示/隐藏 Ctrl+1 显示/隐藏 对象浏览器 Ctrl+2 显示/隐藏 结果面板 Ctrl+3 显示/隐藏 查询窗口 \##数据库/数据表 Ctrl+D 创建数据库 F6 更改 数据库/数据表的结构/索引/视图/存储过程/函数/触发器/事件 F2 重命名 数据表/视图/触发器/事件 Shift+Del 截断 数据库/数据表 F7 管理索引窗口 F10 关联/外键 Ctrl+Alt+R 重新排序字段 Ctrl+Alt+T 数据表诊断 Ctrl+Alt+F 刷新对话框 Ctrl+Shift+Alt+S 以 HTML 格式创建数据库架构 Ctrl+Shift+Q 从 SQL 转储文件恢复数据库 \##增强工具 Ctrl+W 数据库同步向导 Ctrl+Q 架构同步工具 Ctrl+Alt+O 数据迁移工具包 Ctrl+Alt+N 通知服务向导 Ctrl+Alt+S 计划备份 Ctrl+K 查询创建器 Ctrl+Alt+D 架构设计器 \##用户管理 Ctrl+U 添加用户 Ctrl+Alt+U 编辑用户 Ctrl+Shift+W 管理用户权限 \##个人文件夹 Ctrl+Shift+F 添加当前 SQL 语句到个人文件夹 \##其它 F1 帮助 F12 快捷键窗口 Ctrl+C 复制 Ctrl+A 全选 Ctrl+F/F3 查找 (SQL 窗口/以文本方式显示的结果窗口和表数据) Ctrl+S 保存 Ctrl+PgUp 切换到上一标签 Ctrl+PgDown 切换到下一标签 DEL 删除选定 Alt+L 关闭标签 Alt+F4 退出程序 # shell:达梦数据库 ## 1、启动数据库服务 ```shell 服务注册成功后,启动数据库,如下所示: systemctl start DmServicedm.service 停止数据库,如下所示: systemctl stop DmServicedm.service 重启数据库,如下所示: systemctl restart DmServicedm.service 查看数据库服务状态,如下所示: systemctl status DmServicedm.service ``` ## 2、登录达梦数据库 切换目录到大梦数据库的bin目录下 ![img](https://img-blog.csdnimg.cn/fa97b45ae9a8440abcd54fcdd94fd951.png) 登录数据库 ```shell [root@localhost bin]# ./disql SYSDBA/SYSDBA@localhost:5236 ``` ## 3、创建数据库实例 ### 创建服务 ```shell ./dminit PATH=/home/dm8/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=N CHARSET=1 LENGTH_IN_CHAR=Y DB_NAME=usky_fire BLANK_PAD_MODE=1 LOG_SIZE=2048 INSTANCE_NAME=usky_fire PORT_NUM=5236 ``` #### 注册服务 ```shell ./dm_service_installer.sh -t dmserver -p DMSERVERusky_fire -dm_ini /home/dm8/data/usky_fire/dm.ini ``` #### 删除服务 ```shell ./dm_service_uninstaller.sh -n 实例/服务名(例如:DmServiceSP) ``` ### 创建表空间 ```sql CREATE TABLESPACE alarm_electrical_fire DATAFILE '/home/dm8/data/usky_fire/alarm_electrical_fire.dbf' SIZE 1M AUTOEXTEND ON NEXT 10M; ``` ```sql create tablespace alarm_spray_water datafile '/home/dm8/data/usky_fire/alarm_spray_water.dbf' size 128 autoextend on next 5 cache=normal; ``` #### 查看所有表 ```sql SELECT TABLE_NAME FROM USER_TABLES; ``` #### 将表指定给表空间 ```sql TABLESPACE alarm_electrical_fire; ``` #### 查看所有表空间 ```sql SELECT TABLESPACE_NAME, TABLESPACE_TYPE, TABLESPACE_SIZE FROM SYS_ALL_TABLESPACES; SELECT * FROM V$TABLESPACE; ``` #### 查看指定表空间内的表名 ```sql SELECT TABLE_NAME, COLUMN_COUNT, ROW_COUNT FROM SYS_TABLES WHERE TABLESPACE_NAME = 'alarm_hydrant_water'; SELECT * FROM ALL_TABLES WHERE TABLESPACE_NAME = '表空间名称'; SELECT * FROM DBA_TABLES WHERE TABLESPACE_NAME = 'alarm_spray_water'; ``` #### 查看表属于哪个模式 ```sql SELECT OWNER AS SCHEMA_NAME FROM ALL_TABLES WHERE TABLE_NAME = 'bsc_enterprise_screen'; ``` #### 删除表空间(同时删除数据) ```sql DROP TABLESPACE tablespace_name INCLUDING CONTENTS; ``` #### 只删除表空间而保留其中的数据: 1. 首先,确保没有任何活动会话或事务正在使用要删除的表空间。 2. 在达梦数据库中创建一个新的表空间,用于迁移表和数据。可以使用以下语句创建新表空间: ```sql CREATE TABLESPACE new_tablespace_name DATAFILE 'path_to_datafile' SIZE 100M; ``` 在上述语句中,`new_tablespace_name`是新表空间的名称,`path_to_datafile`是数据文件的路径和名称,`SIZE 100M`是指定表空间的大小。 3. 将要保留的表和数据迁移到新的表空间中。可以使用以下语句将表移动到新表空间: ```sql ALTER TABLE table_name MOVE TABLESPACE new_tablespace_name; ``` 在上述语句中,`table_name`是要移动的表的名称,`new_tablespace_name`是目标表空间的名称。 4. 确保所有表都已成功迁移到新表空间后,可以将旧表空间删除。使用以下语句删除表空间: ```sql DROP TABLESPACE old_tablespace_name INCLUDING CONTENTS; ``` 在上述语句中,`old_tablespace_name`是要删除的旧表空间的名称。`INCLUDING CONTENTS`参数可以选择是否删除表空间中的所有对象和数据。 ## 4、执行`SQL`脚本 两种操作,当然需要登录到数据库中才能操作(导出`dexp、dmp`文件不需要登录数据库) ```shell 1 # start + 脚本的绝对路径 2 SQL> start /home/dm8/data/usky_fire/alarm_hydrant_water(DM).sql run /path/to/sql/file.sql; @/path/to/sql/file.sql; ``` ```shell 1 # ` + 脚本的绝对路径 2 SQL> `start /home/dm8/data/usky_fire/alarm_hydrant_water(DM).sql ``` ## 5、导出`dmp`文件 使用`dexp`进行导出,切换到达梦的bin目录下,可以看到有一个`dexp`文件,使用它进行导出的操作 ```shell 1 ./dexp 用户id/密码@ip:5236 file=导出的文件 directory=导出文件所在的目录 导出的模式 ``` 导出模式:`FULL、OWNER、SCHEMAS、TABLES` ;全部导出、根据用户导出、根据模式导出和表导出。 ```shell 1 # 全部导出 2 [root@localhost bin]# ./dexp SYSDBA/SYSDBA@localhost:5236 file=imp_exp.dmp directory=/dm7/data FULL=y 3 # 根据模式导出 4 [root@localhost bin]# ./dexp SYSDBA/SYSDBA@localhost:5236 file=imp_exp.dmp directory=/dm7/data SCHEMAS=NINGDATABASE ``` ## 6、导入`dmp`文件 使用`dimp`进行导入,依旧需要切换到达梦的bin目录下,同样也会有一个`dimp`文件,使用这个文件进行导入操作 ```shell 1 ./dimp 用户id/密码@ip:5236 file=导入的文件 directory=导入文件所在的目录 导入的模式 ``` 和导出一样,导入也是同样的四个模式 ```shell 1 #根据模式进行导入 2 [root@localhost bin]# ./dimp SYSDBA/SYSDBA@localhost:5236 file=imp_exp.dmp directory=/dm7/data SCHEMAS=NINGDATABASE ``` ## 7、执行`SQL`脚本和`dmp`文件 - 修改操作较少或者修改的东西比较集中的情况下可以直接使用导出SQL脚本然后登录数据库执行SQL脚本进行同步操作;SQL脚本的执行默认是直接commit(直接执行SQL需要手动进行commit) - 其他比较复杂的操作或者数据量大可以使用导出dmp文件,具体的导出导入模式根据自己的需要进行选择 - dmp文件或者dexp文件进行操作时,导出和导入模式要一致 ## SQL命令 ### 查询数据库版本 ```sql select * from v$version; ``` ### 查看授权信息 ```sql select * from v$license; ``` ### 查看达梦数据库库名 ```sql select name,create_time from v$database; ``` ### 查看大小写配置是否敏感 --大小敏感(1为大小写敏感,0为大小写不敏感) ```sql SELECT SF_GET_CASE_SENSITIVE_FLAG(); 或 SELECT CASE_SENSITIVE(); SELECT SF_GET_CASE_SENSITIVE_FLAG(); ``` ### 查询数据库最大连接 ```sql select SF_GET_PARA_VALUE(2,'MAX_SESSIONS'); ``` ### 查看达梦数据库当前状态 ```sql select status$ from v$instance; ``` ### 查询授权截止有效期 ```sql select EXPIRED_DATE from v$license; ``` ### 查询数据文件位置 ```sql select GROUP_ID , ID ,path,STATUS$ from v$datafile; ``` ### 查询表空间大小 ```sql select FILE_NAME,FILE_ID,TABLESPACE_NAME,BYTES/1024/1024||'M' from dba_data_files; ``` ### 查询表空间使用情况 ```sql select t1.NAME tablespace_name, t2.FREE_SIZE*SF_GET_PAGE_SIZE()/1024/1024 ||'M' free_space, t2.TOTAL_SIZE*SF_GET_PAGE_SIZE()/1024/1024 ||'M' total_space, t2.FREE_SIZE*100/t2.total_size "% FREE" from V$TABLESPACE t1, V$DATAFILE t2 where t1.ID=t2.GROUP_ID; ``` ### 查询所有SCHEMA ```sql select * from dba_objects where object_type='SCH'; ``` ### 查询所有用户 ```sql select username from dba_users; ``` ### 切换SCHEMA ```sql set schema "testSchema"; ``` ### 创建SCHEMA ```sql CREATE SCHEMA "testSchema"; ``` ### 查询模式下全量表名称 ```sql select TABLE_NAME from all_tables WHERE OWNER='testSchema'; ``` ### 删除SCHEMA ```sql drop schema "testSchema"; ``` ### 列注释 ```sql COMMENT ON COLUMN testSchema.peoples.role_id is '角色Id'; ``` ### 查询列注释 ```sql select * from SYSCOLUMNCOMMENTS where SCHNAME='testSchema' and TVNAME='peoples' and COLNAME='role_id'; ``` ### 表注释 ```sql comment on table testSchema.peoples is '这是一个表注释'; ``` ### 查询表注释 ```sql select * from SYSTABLECOMMENTS where SCHNAME='testSchema' and TVNAME='peoples'; ``` ```sql SELECT COMMENTS FROM USER_TAB_COMMENTS WHERE TABLE_NAME = 'alarm_electrical_fire'; ``` ### 创建表空间 ```sql CREATE TABLESPACE MANAGEMENT DATAFILE 'MANAGEMENT.DBF' SIZE 128; ``` ### 查看表空间 ```sql select * from dba_data_files; select * from dba_tablespaces; select * from v$tablespace; ``` ### 创建用户 ```sql CREATE USER usky_cloud IDENTIFIED BY "usky666" DEFAULT TABLESPACE MANAGEMENT; GRANT DBA TO testSchema; GRANT DBA TO usky_cloud; ``` ### 查看当前实例的连接数 ```sql select clnt_ip,user_name,state,count(*) from v$sessions group by clnt_ip,user_name,state; ``` 查询 dba_segments 需要Dba权限,用户没有Dba权限时查询 all_tables 或 user_tables 某模式下所有表名 需要DBA权限 AND SEGMENT_NAME LIKE 'CD_%' ```sql select owner,SEGMENT_NAME as tbName from dba_segments where segment_type='TABLE' and OWNER ='模式名' ``` 查看模式下所有表 不需要DBA权限 and TABLE_NAME LIKE 'CD_%' ```sql select TABLE_NAME as tbName from all_tables where OWNER ='模式名' ``` 用户下所有表 where table_name like 'CD_%' ```sql select table_name as tbName from user_tables group by TABLE_NAME ``` ## 1.1 启动数据库 ```sql cd /home/dmdba/dmdbms/bin ./dmserver /home/dmdba/dmdbms/DAMENG/dm.ini ``` ### 1.2 连接数据库 ```sql ./disql SYSDBA/SYSDBA@localhost:5236 ``` ### 1.3 使用DISQL直接执行命令 ```sql cd /home/dmdba/dmdbms/bin ./disql SYSDBA/SYSDBA -E "select * from t1" ``` ### 1.4 数据库版本 ```sql select *,id_code from v$version; SQL> select * from v$version; ``` ### 1.4 数据库信息 ```sql select * from v$database; ``` ## 2 数据库对象 ### 2.1 表 ```sql // 查看表结构 SQL > describe table // 查看表的模式名 select owner from dba_tables where table_name='T1'; // 查看数据库中的表 select * from dba_tables; // 查看建表语句 sp_tabledef('SYSDBA','T1'); -- 模式名,表名,注意都要大写。 SELECT DBMS_METADATA.GET_DDL('TABLE',表名,模式名); // 参考 DBMS_METADATA 系统包 SELECT DBMS_METADATA.GET_DDL('TABLE','T1','SYSDBA'); // 例句 ``` ### 2.2 LICENSE ```sql SQL > SELECT * FROM V$LICENSE; ``` ## 3 数据库操作 ### 3.1 开启归档日志 ```sql //修改数据库为MOUNT状态 ALTER DATABASE MOUNT; //配置本地归档 ALTER DATABASE ADD ARCHIVELOG 'DEST = /dmdata/dameng/arch_dsc0, TYPE = local, FILE_SIZE = 1024, SPACE_LIMIT = 2048, ARCH_FLUSH_BUF_SIZE=16,HANG_FLAG=1'; //配置远程归档 ALTER DATABASE ADD ARCHIVELOG 'DEST = DSC1, TYPE = REMOTE, FILE_SIZE = 1024, SPACE_LIMIT = 2048, ARCH_FLUSH_BUF_SIZE=16, INCOMING_PATH = /dmdata/dameng/arch_dsc1'; //开启归档模式 ALTER DATABASE ARCHIVELOG; //修改数据库为OPEN状态 ALTER DATABASE OPEN; ``` ### 脱机完全备份(RMAN) ```sql // 必须开启归档并已生成归档日志 dmdba@else-virtual-machine:~/dmdbms/bin$ ./dmrman dmrman V8 RMAN> BACKUP DATABASE '/home/dmdba/dmdbms/DAMENG/dm.ini' FULL BACKUPSET '/else/bakup_dm'; ``` ### 3.3 联机完全备份(disql) ```sql SQL> BACKUP DATABASE TO WEEKLY_FULL_BAK BACKUPSET '/backup/dmdb/online'; SQL> BACKUP DATABASE FULL BACKUPSET '/backup/dmdb/online'; ``` ### 数据库表备份 ```sql SQL> BACKUP TABLE t1 BACKUPSET '/backup/dmdb/t1_bak_01'; ``` ### 数据库表恢复 ```sql // 前提: 表必须存在 SQL> RESTORE TABLE t1 FROM BACKUPSET '/backup/dmdb/t1_bak_01'; ``` ## 4 主从复制 ### 4.1 查看数据库模式 ```sql // 数据库状态查看 SQL> select status$ from v$instance; // 数据库模式查看 SQL> select MODE$ from v$instance; ``` ### 4.2 查看主备运行情况 ```sql SQL> select * from V$ARCH_STATUS SQL> select * from V$RLOG_RAFT_INFO ``` # nginx ```shell 重启服务:cd /usr/local/nginx/sbin ./nginx -s reload 添加环境变量: export PATH=$PATH:/usr/local/nginx 启动: sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 查看服务: sudo systemctl status nginx ps -ef | grep nginx sudo lsof -i :8083 ps aux | grep nginx 查看监听端口: sudo netstat -tulnp | grep nginx sudo ss -tulpn | grep nginx 检查配置文件是否正确: sudo /usr/local/nginx/sbin/nginx -t 看行号 :set number 如果配置文件检查无误,则应用新的配置(平滑重启): sudo /usr/local/nginx/sbin/nginx -s reload ``` # Linux ```shell 查看操作系统信息 uname -a cat /proc/version lsb_release -a cat /etc/.kyinfo 查看服务进程 (旧 netstat) netstat -tuln sudo netstat -anp | grep 端口号 (新 ss) ss -tuln ss -plunt '( sport = :端口号 | dport = :端口号 )' lsof 命令: 查看指定端口被哪个进程占用: lsof -i :端口号 fuser 命令: 杀掉占用指定端口的进程(同时也可以用于查询): fuser -kuv 端口号/tcp nmap 工具(主要用于远程扫描): 在本地主机上快速检查一个端口是否开放: nmap -sT localhost -p 端口号 ``` # Redis ```shell # 开机自动启动 systemctl enable redis.service # 取消开机自动启动(卸载服务) systemctl disabled redis.service # 启动redis服务 systemctl start redis.service # 查看服务状态 systemctl status redis.service # 停止服务 systemctl stop redis.service # 重新加载服务 systemctl daemon-reload #启动redis ./bin/redis-server /usr/local/redis/redis-6.2.14/redis.conf #查看进程 ps -aux | grep redis [Unit] Description=Redis Server After=network.target [Service] ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/redis-6.2.14/redis.conf ExecStop=/usr/local/redis/bin/redis-cli shutdown Restart=always [Install] WantedBy=multi-user.target ```