git和其它命令.md 21 KB

git命令

image-20231120094757873

​ 连接远程仓库

image-20231120095505383

​ 推到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 branch --delete dev

删除远程分支

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 reset file_path

1.2 使用git rm命令移除已经add的文件。具体命令如下:

git rm --cached file_path

1.3 使用git restore命令恢复之前的版本,可以将暂存区的修改撤销掉。具体命令如下:

git restore --staged file_path

2、git commit -m "注释" # 添加至本地版本库

3、设置用户名和邮箱

git config user.name 作者 
git config user.email 邮箱

4、将代码push至远程仓库

git push origin <u>master</u>

git config --global --list

查看全局配置信息:用户名、邮箱

image-20231120095314273

image-20231120095358556

查看提交历史

  1. 查看所有提交记录: 使用 git log 命令查看当前分支的完整提交历史,包括每次提交的哈希值、作者、日期以及提交信息。

Bash

   1git log

若要以更友好的格式展示(如oneline格式),可使用:

Bash

   1git log --oneline
  1. 查找特定提交: 为了找到你要回退到的版本,可以通过多种方式过滤日志,例如根据提交消息、作者、日期等。若要查找包含特定关键词的提交,可以这样操作:

Bash

   1git log --grep="搜索关键词"

若要找到最近的一次提交,可以在命令行浏览日志找到对应的提交哈希。

回退到指定版本

  1. 通过哈希值回退: 确定要回退到的目标提交哈希后,可以使用 git reset 命令将HEAD指针指向该提交,有三种主要模式可以选择:

    • 软重置(soft reset):仅移动HEAD指针,不更改工作目录或暂存区。

    Bash

     1git reset --soft <提交哈希>
    
    • 混合重置(mixed reset):移动HEAD指针,并清空暂存区内容,使它们与所选择的提交一致,但保留工作目录中的改动。

    Bash

     1git reset --mixed <提交哈希>
    
    • 硬重置(hard reset):移动HEAD指针并重置工作目录,使得工作目录与所选择的提交完全一致,任何未提交的本地改动都会丢失。

    Bash

     1git reset --hard <提交哈希>
    

    其中,<提交哈希> 是你想要回退到的那个提交的完整哈希值,通常从 git log 中获取。

    1. 回到某个标签或分支点: 如果目标是回到一个标签或者之前的某个分支点,可以用类似的方式:

    Bash

    1git reset --hard <标签名> # 或者
    2git reset --hard <分支名>
    
  2. 撤销最近一次提交: 如果你想撤销最近一次提交且不保留任何修改,可以直接执行:

Bash

   1git reset --hard HEAD~1
  1. 切分支并创建新提交: 如果你想保留当前分支的历史而是在一个新的分支上开始(比如开发团队经常采用这种做法来解决合并问题),你可以先创建一个新分支然后切换过去:

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、启动数据库服务

服务注册成功后,启动数据库,如下所示:
systemctl start DmServicedm.service
停止数据库,如下所示:
systemctl stop DmServicedm.service
重启数据库,如下所示:
systemctl restart DmServicedm.service
查看数据库服务状态,如下所示:
systemctl status DmServicedm.service

2、登录达梦数据库

切换目录到大梦数据库的bin目录下

img

登录数据库


[root@localhost bin]# ./disql SYSDBA/SYSDBA@localhost:5236

3、创建数据库实例

创建服务

./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

注册服务

./dm_service_installer.sh -t dmserver -p DMSERVERusky_fire -dm_ini /home/dm8/data/usky_fire/dm.ini

删除服务

./dm_service_uninstaller.sh -n 实例/服务名(例如:DmServiceSP)

创建表空间

CREATE TABLESPACE alarm_electrical_fire
DATAFILE '/home/dm8/data/usky_fire/alarm_electrical_fire.dbf' SIZE 1M AUTOEXTEND ON NEXT 10M;
create tablespace alarm_spray_water datafile '/home/dm8/data/usky_fire/alarm_spray_water.dbf' size 128 autoextend on next 5 cache=normal;

查看所有表

SELECT TABLE_NAME FROM USER_TABLES;

将表指定给表空间

TABLESPACE alarm_electrical_fire;

查看所有表空间

SELECT TABLESPACE_NAME, TABLESPACE_TYPE, TABLESPACE_SIZE
FROM SYS_ALL_TABLESPACES;

SELECT * FROM V$TABLESPACE;

查看指定表空间内的表名

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';

查看表属于哪个模式

SELECT OWNER AS SCHEMA_NAME  
FROM ALL_TABLES  
WHERE TABLE_NAME = 'bsc_enterprise_screen';

删除表空间(同时删除数据)

DROP TABLESPACE tablespace_name INCLUDING CONTENTS;

只删除表空间而保留其中的数据:

  1. 首先,确保没有任何活动会话或事务正在使用要删除的表空间。
  2. 在达梦数据库中创建一个新的表空间,用于迁移表和数据。可以使用以下语句创建新表空间:
CREATE TABLESPACE new_tablespace_name DATAFILE 'path_to_datafile' SIZE 100M;

在上述语句中,new_tablespace_name是新表空间的名称,path_to_datafile是数据文件的路径和名称,SIZE 100M是指定表空间的大小。

  1. 将要保留的表和数据迁移到新的表空间中。可以使用以下语句将表移动到新表空间:
ALTER TABLE table_name MOVE TABLESPACE new_tablespace_name;

在上述语句中,table_name是要移动的表的名称,new_tablespace_name是目标表空间的名称。

  1. 确保所有表都已成功迁移到新表空间后,可以将旧表空间删除。使用以下语句删除表空间:
DROP TABLESPACE old_tablespace_name INCLUDING CONTENTS;

在上述语句中,old_tablespace_name是要删除的旧表空间的名称。INCLUDING CONTENTS参数可以选择是否删除表空间中的所有对象和数据。

4、执行SQL脚本

两种操作,当然需要登录到数据库中才能操作(导出dexp、dmp文件不需要登录数据库)

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;
1 # ` + 脚本的绝对路径
2 SQL> `start /home/dm8/data/usky_fire/alarm_hydrant_water(DM).sql

5、导出dmp文件

使用dexp进行导出,切换到达梦的bin目录下,可以看到有一个dexp文件,使用它进行导出的操作

1 ./dexp 用户id/密码@ip:5236 file=导出的文件 directory=导出文件所在的目录 导出的模式

导出模式:FULL、OWNER、SCHEMAS、TABLES ;全部导出、根据用户导出、根据模式导出和表导出。

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文件,使用这个文件进行导入操作

1 ./dimp 用户id/密码@ip:5236 file=导入的文件 directory=导入文件所在的目录 导入的模式

和导出一样,导入也是同样的四个模式

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命令

查询数据库版本

select * from v$version;

查看授权信息

select * from  v$license;

查看达梦数据库库名

select name,create_time from v$database;

查看大小写配置是否敏感

--大小敏感(1为大小写敏感,0为大小写不敏感)

SELECT SF_GET_CASE_SENSITIVE_FLAG();
或
SELECT CASE_SENSITIVE();
SELECT SF_GET_CASE_SENSITIVE_FLAG();

查询数据库最大连接

select SF_GET_PARA_VALUE(2,'MAX_SESSIONS');

查看达梦数据库当前状态

select status$ from v$instance;

查询授权截止有效期

select EXPIRED_DATE  from v$license;

查询数据文件位置

select GROUP_ID , ID ,path,STATUS$ from v$datafile;

查询表空间大小

select FILE_NAME,FILE_ID,TABLESPACE_NAME,BYTES/1024/1024||'M'  from dba_data_files;

查询表空间使用情况

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

 select * from dba_objects where object_type='SCH';

查询所有用户

select username from dba_users;

切换SCHEMA

set schema "testSchema";

创建SCHEMA

CREATE SCHEMA "testSchema";

查询模式下全量表名称

select TABLE_NAME from all_tables WHERE OWNER='testSchema';

删除SCHEMA

drop schema "testSchema";

列注释

COMMENT ON COLUMN testSchema.peoples.role_id is '角色Id';

查询列注释

select * from SYSCOLUMNCOMMENTS 

where SCHNAME='testSchema' and TVNAME='peoples' and COLNAME='role_id';

表注释

comment on table testSchema.peoples is '这是一个表注释';

查询表注释

select * from SYSTABLECOMMENTS where SCHNAME='testSchema' and TVNAME='peoples';
SELECT COMMENTS
FROM USER_TAB_COMMENTS
WHERE TABLE_NAME = 'alarm_electrical_fire';

创建表空间

CREATE TABLESPACE MANAGEMENT DATAFILE 'MANAGEMENT.DBF' SIZE 128;

查看表空间

select * from dba_data_files;

select * from dba_tablespaces;

select * from v$tablespace;

创建用户

CREATE USER usky_cloud IDENTIFIED BY "usky666" DEFAULT TABLESPACE MANAGEMENT;

GRANT DBA TO testSchema;
GRANT DBA TO usky_cloud;

查看当前实例的连接数

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 SEGMENTNAME LIKE 'CD%'

select owner,SEGMENT_NAME as tbName from dba_segments  where segment_type='TABLE' and OWNER ='模式名' 

查看模式下所有表 不需要DBA权限 and TABLENAME LIKE 'CD%'

select TABLE_NAME as tbName from all_tables where OWNER ='模式名' 

用户下所有表 where tablename like 'CD%'

select table_name as tbName from user_tables group by TABLE_NAME

1.1 启动数据库

cd /home/dmdba/dmdbms/bin
./dmserver /home/dmdba/dmdbms/DAMENG/dm.ini

1.2 连接数据库

./disql SYSDBA/SYSDBA@localhost:5236

1.3 使用DISQL直接执行命令

cd /home/dmdba/dmdbms/bin
./disql SYSDBA/SYSDBA -E "select * from t1"

1.4 数据库版本

select *,id_code from v$version;

SQL> select * from v$version;

1.4 数据库信息

select * from v$database;

2 数据库对象

2.1 表

// 查看表结构
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 > SELECT * FROM V$LICENSE;

3 数据库操作

3.1 开启归档日志

//修改数据库为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)

// 必须开启归档并已生成归档日志
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> BACKUP DATABASE TO WEEKLY_FULL_BAK BACKUPSET '/backup/dmdb/online';
SQL> BACKUP  DATABASE  FULL  BACKUPSET '/backup/dmdb/online';

数据库表备份

SQL> BACKUP TABLE t1 BACKUPSET '/backup/dmdb/t1_bak_01';

数据库表恢复

// 前提: 表必须存在
SQL> RESTORE TABLE t1 FROM BACKUPSET '/backup/dmdb/t1_bak_01';

4 主从复制

4.1 查看数据库模式

// 数据库状态查看
SQL> select status$ from v$instance;
// 数据库模式查看
SQL> select MODE$ from v$instance;

4.2 查看主备运行情况

 SQL> select * from V$ARCH_STATUS
 SQL> select * from V$RLOG_RAFT_INFO 

nginx

重启服务: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

查看操作系统信息
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

# 开机自动启动
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