首页

mysql  |  npm  |  vm堆分析 | redis | docker | gradle | maven | oracle | git | 性能分析

一、linux压缩和解压

# 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文件夹

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

三、oracle脚本命令

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

七、maven命令

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

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请点击这里>>

十、docker常用命令

#查找远程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

十二、redis常用命令

# 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

十三、vm堆内存分析

#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

十四、npm命令

# 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

十五、mysql日志查询 & 慢查询分析

一、查看日志是否开启:@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命令

git pull   更新@b@git status  本地提交状态@b@git add  demo.java  添加暂存区@b@git commit -m "代码提交"   提交代码@b@git push    @b@git  revert  <commit_id>@b@git merge brance.yyyy.mm.dd  合并分支@b@git merge --abort  取消合并@b@git reset --hard  xxx版本号  回退@b@git  log   查看历史记录

十七、性能分析

查看系统当前网络连接数@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