mysql | npm | vm堆分析 | redis | docker | gradle | maven | oracle | git | 性能分析| 网路命令
一、shell命令
# 1、打包压缩@b@ tar -zcvf pack.tar.gz pack/ #打包压缩为一个.gz格式的压缩包@b@ tar -jcvf pack.tar.bz2 pack/ #打包压缩为一个.bz2格式的压缩包@b@ tar -Jcvf pack.tar.xz pack/ #打包压缩为一个.xz格式的压缩包@b@@b@# 2、解包解压@b@ tar -zxvf pack.tar.gz /pack #解包解压.gz格式的压缩包到pack文件夹@b@ tar -jxvf pack.tar.bz2 /pack #解包解压.bz2格式的压缩包到pack文件夹@b@ tar -Jxvf pack.tar.xz /pack #解包解压.xz格式的压缩包到pack文件夹@b@# 3、内容搜索@b@ grep '07/Apr/2023' access.log|grep -v 'Baiduspider'|wc -l #排除百度网络爬虫访问次数
more请点击这里>>,操作示例点击这里>>,查看硬件配置这里>>
二、jvm运行脚本
# 1、linux环境(.sh脚本)@b@ #!/bin/sh @b@ classpath=$classpath:/home/soft/xwood-tools/lib/*:/home/soft/xwood-tools/lib/classes/:@b@ nohup "java" -classpath $classpath com.xwood.engine.pgip.TendaIpStartJobMain &@b@@b@# 2、window环境(.bat批处理)@b@ @echo off@b@ title "tendaDip"@b@ cd ..@b@ set APP_HOME=%cd%@b@ set CLASSPATH=.;%APP_HOME%\lib\classes\;%APP_HOME%\lib\*;%JAVA_HOME%\jre\lib\rt.jar@b@ @b@ java.exe -Xms100m -Xmx100m com.xwood.engine.pgip.TendaIpStartJobMain@b@ @pause
-- 1、登录解锁被锁账号crmuser01 @b@ alter user crmuser01 account unlock;@b@@b@-- 2、追查被锁原因@b@ select * from dba_users where username='crmuser01 ' order by lock_date desc; @b@ select * from logon_denied order by login_time desc;@b@ @b@-- 3、客户端(PL/SQL)字符集@b@ 新增环境变量:key:NLS_LANG,value:SIMPLIFIED CHINESE_CHINA.AL32UTF8@b@ @b@-- 4、uuid(小写)生成@b@ select lower(sys_guid()) from dual;@b@ @b@-- 5、查看锁表人详情@b@ @b@ select a.object_name,c.OSUSER,c.MACHINE,c.PROGRAM,b.session_id,c.serial#,c.program,c.username,c.command,c.machine,c.lockwait @b@from all_objects a,v$locked_object b,v$session c where a.object_id=b.object_id and c.sid=b.session_id;@b@ @b@---- 解锁@b@alter system kill session 'session_id,serial#';@b@ @b@---- 例句@b@alter system kill session '453,10316';
#oracle重启步骤 @b@# 先关闭oracle@b@ 1.#su - oracle --切换到oracle用户且切换到它的环境@b@ 2.$lsnrctl stop --停止监听@b@ 3.$sqlplus / as sysdba --以DBA身份进入sqlplus@b@ 4.SQL>SHUTDOWN IMMEDIATE --关闭db@b@# 再启动oracle@b@ 1.#su - oracle --切换到oracle用户且切换到它的环境@b@ 2.$lsnrctl status --查看监听及数据库状态@b@ 3.$lsnrctl start --启动监听@b@ 4.$sqlplus / as sysdba -- 以DBA身份进入sqlplus@b@ 5.SQL>startup -- 启动db
四、查询电脑最近操作记录
# 1、window系统@b@ Windows+r -> 打开运行窗口 -> 输入“recent” -> 打开最近操作记录
五、PLSQL 连接串(DataBase值)
192.168.1.100:1521/instanceName
六、eclipse.ini(vm参数)
-vm@b@D:/apps/jdk/jdk1.8.0_11/bin/javaw
mvn clean 清除产生的target目录@b@@b@mvn compile 编译源代码,生成target目录@b@@b@mvn test-compile 编译测试代码@b@@b@mvn test 运行测 试@b@@b@mvn site 产生site@b@@b@mvn package 打包,编译测试代码和核心代码并且打包相应的包类型@b@@b@mvn install 将生成的jar文件复制到本地的Maven仓库中,其他的项目也可以使用此jar包@b@@b@mvn deploy 上传到服务器,用于发布项目@b@@b@# maven插件运行tomcat目标命令@b@@b@clean package@b@ @b@clean install@b@ @b@tomcat:run -Dmaven.tomcat.port=8086@b@ @b@tomcat:run-war -Dmaven.tomcat.port=8088
tomcat运行详情参考链接
gradle -v //版本号@b@gradle clean //清除build文件夹@b@gradle build //检查依赖并打包@b@gradle assembleDebug //编译打包Debug包@b@gradle assembleRelease //编译打包Release包@b@gradle installRelease //打包并安装Release包@b@gradle unstallRelease //卸载Release包@b@gradle dependencies //查看依赖图表@b@gradle clean build -x test //跳过测试编译@b@gradle --profile build //分析构建任务@b@gradle build --dry-run //编译并不执行任务@b@gradle install //安置项目jar包到本地Maven仓库@b@gradle tasks //查看Gradle任务@b@gradle tasks --all //查看所有Gradle任务@b@gradle build --daemon //使用Gradle守护程序(Daemon)@b@gradle build --offline //用离线模式运行@b@gradle clean build --refresh-dependencies //刷新Gradle依赖缓存
九、notepad正则命令
# 1. 查找复制代码中含有数字行多余标识,并替换为空@b@查找:(^[0-9\-]+).@b@替换:空@b@@b@# 2.查找后缀多余部分,并替换为空@b@查找:</column>.*@b@替换:</column>
more请点击这里>>
#查找远程images可用网站@b@docker search tomcat@b@#下载远程到本地@b@docker pull docker.io/tomcat@b@#查看本地images@b@docker images@b@#运行 - 若端口被占用,可以指定容器和主机的映射端口 前者是外围访问端口:后者是容器内部端口@b@docker run -p 8081:8080 docker.io/tomcat@b@# 使用以下命令来查看正在运行的容器@b@docker ps@b@#登录tomcat服务器 3cb43327475 - 容器id(CONTAINER_ID),通过上面doker ps查到@b@docker exec -it 3cb43327475 /bin/bash @b@#把war包丢到宿主机 在丢到container里面丢到tomcat/webapps@b@docker cp demo.war 3cb43327475 :/usr/local/tomcat/webapps@b@#上述执行有个弊端就是 容器重启后项目就会不再了,下面是方式2启动 以挂载的方式启动@b@docker run -d -v /usr/docker_file/demo.war:/usr/local/tomcat/webapps/demo.war -p 8080:8080 docker.io/tomcat@b@@b@@b@$ docker ps // 查看所有正在运行容器@b@$ docker stop containerId // containerId 是容器的ID@b@ @b@$ docker ps -a // 查看所有容器@b@$ docker ps -a -q // 查看所有容器ID@b@ @b@$ docker stop $(docker ps -a -q) // stop停止所有容器@b@$ docker rm $(docker ps -a -q) // remove删除所有容器
详细完整实战,请参考这里
十一、gitlab冲突
1)方法一:@b@ 回退冲突文件至上一个历史版本,再进行merge操作,再整合最新冲突文件的版本。@b@ @b@2)方法二:@b@ 先进行commit - > pull -> 产生冲突 -> 解决冲突(手动) -> add index -> commit & push
# 1.输入ping,Redis给我们返回PONG,表示服务正常运行@b@redis_local:0>ping@b@"PONG"@b@# 2.查看当前数据库中key的数目@b@redis_local:0> dbsize@b@"31"@b@# 3. 切换数据库@b@redis_local:0> select 2@b@"OK"@b@redis_local:2>@b@# 4. 查看所有key (*:表示0-多个字符、?: 表示单个字符)@b@redis_local:0> keys *@b@1) "jd19825k5870_9330_9380"@b@2) "jd19825k5870_9330_9378"@b@3) "jd19825k5870_9330_9371"@b@...@b@# 5. 清空当前库所有数据@b@redis_local:0>flushdb@b@"OK"@b@# 6. 判断key是否存在 (1 - 存在;0 - 不存在)@b@redis_local:0>exists name@b@"1"@b@# 7. 设置key的生存时间,超过时间key自动删除;单位是秒;@b@redis_local:0>ttl name@b@"-1" @b@redis_local:0>expire name 60@b@"1"@b@redis_local:0>ttl name@b@"60"@b@# 7. 查看key所存储的数据类型@b@redis_local:0>type name @b@"string"@b@# 8. 删除指定key (1 - 成功;0 - 失败)@b@redis_local:0>del name@b@"1"@b@# 9. 给key的赋值@b@redis_local:0>set name 123@b@"OK"@b@# 10. 获取key的值@b@redis_local:0>get name@b@"123"@b@# 11. 退出命令 - exit 或者 quit
#1. 查看进程编号(PID)命令 - top 或 jps@b@ [root@centos6 ~]# jps@b@ 10866 Bootstrap@b@ 6481 Jps@b@ 3106 JswLauncher@b@ @b@#2. 查看进程PID中哪些线程TIDCPU占用过高 - ps H -eo pid,tid,%cpu | grep pid@b@ [root@centos6 ~]# ps H -eo pid,tid,%cpu | grep 10866@b@ 10866 10866 0.0@b@ 10866 10867 0.0@b@ 10866 10868 0.0@b@ 10866 10869 1.0@b@ 10866 10870 0.0@b@ 10866 10871 1.5@b@ 10866 10872 0.0@b@ 10866 10873 0.0@b@ @b@#3. jstack <pid> 查看线程堆栈信息 @b@@b@[root@centos6 ~]# printf "%x\n" 10869@b@2a75@b@[root@centos6 ~]# jstack 10866 | grep -10 2a75@b@ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)@b@ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)@b@ at java.lang.reflect.Method.invoke(Method.java:606)@b@ at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)@b@ at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)@b@@b@"VM Thread" prio=10 tid=0x00007fd9a4066800 nid=0x2a77 runnable @b@@b@"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007fd9a401e800 nid=0x2a74 runnable @b@@b@"GC task thread#1 (ParallelGC)" prio=10 tid=0x00007fd9a4020800 nid=0x2a75 runnable @b@@b@"GC task thread#2 (ParallelGC)" prio=10 tid=0x00007fd9a4022800 nid=0x2a76 runnable @b@@b@"VM Periodic Task Thread" prio=10 tid=0x00007fd9a40a8800 nid=0x2a7e waiting on condition @b@@b@JNI global references: 479@b@@b@#4. jmap 查看对内存对象信息@b@[root@iZuf6gyurl0fqb87hirq23Z ~]# jmap -heap @b@。。@b@[root@iZuf6gyurl0fqb87hirq23Z ~]# jmap -histo:live 10866|more@b@ num #instances #bytes class name@b@----------------------------------------------@b@ 1: 44547 81230248 [B@b@ 2: 1306976 63327624 [C@b@ 3: 1302966 31271184 java.lang.String@b@ 4: 560982 22439280 com.webssky.jcseg.Word@b@ 5: 572938 18334016 java.util.concurrent.ConcurrentHashMap$Has@b@hEntry@b@ 6: 104293 16174232 <constMethodKlass>@b@ 7: 104293 13363664 <methodKlass>@b@。。。
# 1.查看npm版本@b@npm -v@b@# 2.查看帮助@b@// 显示npm的所有命令@b@npm help@b@// 显示npm所有命令使用语法@b@npm -l @b@// 显示指定命令的使用语法@b@npm <command> -h@b@# 3. 更新npm@b@npm install npm@latest -g@b@# 4. 使用npm创建包描述文件package.json@b@npm init @b@// 创建默认的package.json@b@npm init --yes/-y@b@# 5.安装包@b@// 安装当前package.json文件中所列的依赖包@b@npm install @b@// 安装包(不会修改package.json)@b@npm install <package_name> @b@// 安装生产环境的包(会添加依赖信息到package.json中的dependencies)@b@npm install <package_name> --save/-S/--save-prod/-P @b@// 安装开发环境和测试环境依赖包(会添加依赖信息到package.json中的devDependencies)@b@npm install <package_name> --save-dev/-D @b@// 安装全局包(安装后可以在任意目录下使用这个包)@b@npm install <package_name> --global/-g @b@// 安装某一版本的包@b@npm install <package_name>@<version>@b@# 6.卸载包@b@// 从node_modules目录下删除指定的包(不会修改package.json)@b@npm uninstall <package_name>@b@// 卸载指定的包并在package.json中删除依赖@b@npm uninstall --save/--save-dev <package_name>@b@// 卸载全局安装的包@b@npm uninstall -g <package_name>@b@# 6.更新包@b@// 更新生产环境依赖包@b@npm update <package_name> --save@b@// 更新开发环境依赖包@b@npm update <package_name> --save-dev@b@// 更新全局安装的包@b@npm update <package_name> -g@b@# 7.镜像地址@b@// 查看当前镜像地址@b@npm get registry@b@// 修改镜像地址为淘宝镜像(原始镜像地址为:https://registry.npmjs.org/)@b@npm config set registry@b@# 8. 发布npm包@b@// 创建用户(或者直接去官网注册)@b@npm adduser@b@// 登录@b@npm login@b@// 显示当前登录的用户名@b@npm whoami@b@// 查看版本@b@npm version @b@// 更新版本号@b@npm version <newversion>@b@// 发布@b@npm publish@b@# 9. npm run@b@//运行调试dev环境@b@npm run dev@b@//运行调试prod环境@b@npm run prod@b@//编译目标文件至dist目录@b@npm run build
一、查看日志是否开启:@b@@b@1、show variables where Variable_name = 'general_log';@b@@b@2、show variables like 'general_log';@b@@b@二、开启和关闭的sql:@b@1、set global general_log=on;@b@@b@2、set global general_log=off;@b@@b@三、查看log文件所在位置:@b@@b@1、show variables where Variable_name='general_log_file';@b@@b@2、show variables like 'general_log_file';@b@@b@四、修改log文件所在位置:@b@@b@1、set global general_log_file='tmp/mysql_log.log';@b@@b@五、日志输出类型table或file:@b@@b@1、show variables like 'log_output';@b@@b@六、修改日志输出类型:@b@@b@1、set global log_output='table';@b@@b@2、set global log_output='file';
慢查询日志(可用可不用):@b@@b@一、查看慢查询设置:@b@@b@1、show variables like "%slow%";@b@@b@二、 启用慢查询:@b@@b@1、set global slow_query_log=ON;@b@@b@2、set global slow_query_log=OFF;@b@@b@三、 设置成2秒,加上global,下次进mysql已然生效:@b@@b@1、set global long_query_time=2;
git init - 初始化一个新的 Git 存储库。@b@git clone - 将远程存储库克隆到本地计算机。@b@git pull - 从远程存储库获取并合并更改。@b@git status - 检查工作目录的当前状态。@b@git add demo.java - 为下一次提交暂存更改。@b@git commit -m "代码提交" - 记录分阶段的更改并创建快照。@b@git push - 将本地更改上传到远程存储库。@b@git branch - 列出、创建或删除分支。@b@git revert <commit_id> - 回退提交某一个历史版本(产生回退记录)@b@git checkout / git switch - 在分支或提交之间切换。@b@git merge brance.yyyy.mm.dd 合并分支@b@git merge --abort 取消合并@b@git reset --hard xxx版本号 回退(无回退记录)@b@git diff - 查看工作目录和暂存区域之间的差异。@b@git log - 显示提交的时间顺序列表@b@git reflog --date=local | grep 分支名称 查看当前分支由哪个原分支所创建
查看系统当前网络连接数@b@netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'@b@查看堆内对象的分布 Top 50(定位内存泄漏)@b@jmap –histo:live $pid | sort-n -r -k2 | head-n 50@b@按照 CPU 的使用情况列出 Top 10 的进程@b@ps -aeo pcpu,user,pid,cmd | sort -nr | head -10@b@按照 内存 的使用情况列出 Top 10 的进程@b@ps axo %mem,pid,euser,cmd | sort -nr | head -10@b@显示系统整体的 CPU 利用率和闲置率@b@grep "cpu " /proc/stat | awk -F ' ' '{total = $2 + $3 + $4 + $5} END {print "idle \t used\n" $5*100/total "% " $2*100/total "%"}'@b@按照 Swap 分区的使用情况列出 Top 10 的进程@b@for file in /proc/*/status ; do awk '/VmSwap|Name|^Pid/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 3 -n -r | head -10@b@按线程状态统计线程数@b@jstack $pid | grep java.lang.Thread.State:|sort|uniq -c | awk '{sum+=$1; split($0,a,":");gsub(/^[ \t]+|[ \t]+$/, "", a[2]);printf "%s: %s\n", a[2], $1}; END {printf "TOTAL: %s",sum}'@b@显示垃圾收集信息(间隔1秒持续输出)@b@jstat -gcutil $pid 1000@b@显示老年代容量@b@jstat -gcoldcapacity $pid@b@显示新生代容量及使用情况@b@jstat -gcnewcapacity $pid@b@显示各个代的容量及使用情况@b@jstat -gccapacity $pid@b@显示最后一次或当前正在发生的垃圾收集的诱发原因@b@jstat -gccause $pid@b@查找/目录下占用磁盘空间最大的 Top 10 文件@b@find / -type f -print0 | xargs -0 du -h | sort -rh | head -n 10@b@快速杀死所有的 Java 进程@b@ps aux | grep java | awk '{ print $2 }' | xargs kill -9
查看局域网内网ip地址@b@arp -a@b@添加一条静态路由,将10.10.10.0网段的流量通过192.168.1.1进行中转@b@route add -net 10.10.10.0 gw 192.168.1.1 netmask 255.255.255.0 dev eth0@b@删除静态路由@b@route del -net 10.10.10.0 gw 192.168.1.1 netmask 255.255.255.0 dev eth0@b@删除路由节点@b@route delete 192.168.1.3@b@添加路由节点@b@route add inet_addr_1 inet_addr_2@b@追踪访问本网站所经过所有链路ip地址@b@tracert @b@向本网站发送大小1024字节包两次@b@ping -l 1024 -n 2@b@查询路由表及接口@b@netstat -a@b@查询活动连接@b@netstat -a@b@查询目标ip物理地址@b@arp -a 192.168.1.22@b@查询ip对应域名@b@nslookup 47.100.59.40@b@晚上10点延时10s关机@b@at 22:00 shutdown -s -t 10@b@查看端口链接列表@b@netstat -ano
�