常用命令小计

记录工作中用到的一些比较实用的命令,包括Windows和Linux下的。持续更新中

Maven命令

常用基本命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
创建maven项目:mvn archetype:create
指定 group: -DgroupId=packageName
指定 artifact:-DartifactId=projectName
创建web项目:-DarchetypeArtifactId=maven-archetype-webapp
创建maven项目:mvn archetype:generate
验证项目是否正确:mvn validate
maven 打包:mvn package
只打jar包:mvn jar:jar
生成源码jar包:mvn source:jar
产生应用需要的任何额外的源代码:mvn generate-sources
编译源代码: mvn compile
编译测试代码:mvn test-compile
运行测试:mvn test
运行检查:mvn verify
清理maven项目:mvn clean
生成eclipse项目:mvn eclipse:eclipse
清理eclipse配置:mvn eclipse:clean
生成idea项目:mvn idea:idea
安装项目到本地仓库:mvn install
发布项目到远程仓库:mvn deploy
在集成测试可以运行的环境中处理和发布包:mvn integration-test
显示maven依赖树:mvn dependency:tree
显示maven依赖列表:mvn dependency:list
分析maven依赖情况:mvn dependency:analyze
下载依赖包的源码:mvn dependency:sources
安装本地jar到本地仓库:mvn install:install-file -DgroupId=packageName -DartifactId=projectName -Dversion=version -Dpackaging=jar -Dfile=path

maven 命令的格式为 mvn [plugin-name]:[goal-name],可以接受的参数如下,

1
2
3
4
5
6
-D 指定参数,如 -Dmaven.test.skip(=true可选项) 跳过单元测试;
-P 指定 Profile 配置,可以用于区分环境;
-e 显示maven运行出错的信息;
-o 离线执行命令,即不去远程仓库更新包;
-X 显示maven允许的debug信息;
-U 强制去远程更新snapshot的插件或依赖,默认每天只更新一次。

maven分析依赖情况,通过该命令可以快速定位依赖情况,然后通过在pom里面添加exclusion排除冲突的依赖

1
2
3
4
mvn dependency:tree -Dverbose -Dincludes=groupId:artifactId:version
# -Dverbose显示详细信息
# -Dincludes指定包含的包,可以用*匹配如-Dincludes=org.apache.*:*
# -Dexcludes排除包,类似于includes

web项目相关命令

  • 启动tomcat:mvn tomcat:run
  • 启动jetty:mvn jetty:run
  • 运行打包部署:mvn tomcat:deploy
  • 撤销部署:mvn tomcat:undeploy
  • 启动web应用:mvn tomcat:start
  • 停止web应用:mvn tomcat:stop
  • 重新部署:mvn tomcat:redeploy
  • 部署展开的war文件:mvn war:exploded tomcat:exploded

Linux下自动化脚本

根据输入进程描述自动杀死进程

  • 有时候要杀死tomcat进程通常都是分步骤找到pid再kill

    1
    2
    3
    4
    $ ps -ef | grep desc
    email 6762 1 0 Aug07 ? 00:01:03 processDesc
    #得到上述pid 6762然后kill
    $ kill -s 9 6762
  • 以上操作往往效率比较低,现在可以通过awk配合ps -ef | grep desc 命令自动获取pid并杀死进程,可以将下述代码保存为可执行文件,在后续直接执行并输入进程描述来达成自动杀死进程的目的。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    #!/bin/bash
    kill_func() {
    #赋值输入的进程描述信息
    processDesc=$1
    #得到进程描述信息匹配到的进程数量,如果不唯一则退出,防止误杀
    PCOUNT=$(ps -ef | grep $processDesc | grep -v grep | awk 'END{print NR}')
    if [ $PCOUNT -gt 1 ]; then
    echo "for input [$processDesc] found $PCOUNT processes, pid is not unique,please recheck your input."
    exit
    elif [ $PCOUNT -eq 0 ]; then
    echo "process $processDesc not exist"
    exit
    fi
    #得到进程PID然后执行kill
    PID=$(ps -ef |grep $processDesc | grep -v grep | awk '{printf $2}')
    if [ $? -eq 0 ]; then
    echo "process id:$PID"
    else
    echo "process $processDesc not exist"
    exit
    fi
    kill -9 ${PID}
    if [ $? -eq 0 ];then
    echo "kill $processDesc success"
    else
    echo "kill $processDesc fail"
    fi
    }
    #输入进程描述信息
    echo "please input process descripe info"
    read input
    kill_func $input
    echo "done!"

##Linux下常用命令

查看当前目录下各个文件夹的大小

  • du -h --max-depth=1 -h命令用来人性化展示容量单位 达到1000k用m 1000m用G,依次类推

查看磁盘总体用量

  • df -h