zoukankan      html  css  js  c++  java
  • Linux常用命令

    1.添加文件到jar包

    jar -uvf platform-0.0.1-SNAPSHOT.jar BOOT-INF/classes/application.yml

    注意:会把appliction.yml文件压缩到jar包中对应文件夹的相对路径中去

    2.删除文件

    #强制删除文件夹下所有文件
    rm -rf /usr/local/test 
    #强制删除文件
    rm -f /usr/local/test/test.sh

     3.查看端口占用

    netstat -ntlp   //查看当前所有tcp端口
    netstat -ntulp |grep 80   //查看所有80端口使用情况
    netstat -an | grep 3306   //查看所有3306端口使用情况

     4.复制

    cp -a [源文件] [目标文件夹] //例如:cp -a /usr/local/redis /usr 就把redis文件夹及里面所有文件复制到了usr文件夹下

    5.用户组 用户

    //添加组
    groupadd xxx
    //删除组
    groupdel xxx
    
    //添加用户
    // -d:指定目录  -g:指定组 -m 自动建立用户加目录
    useradd -d /usr/local -g xxx -m username
    //给用户设置密码
    passwd username
    
    //查看用户名信息
    id username

    6.授权

    //更改目录所有者
    chown -R [用户名] [目录名]
    //更改目录权限 
    chmod -R 755 [目录名]
    
    //执行权限问题
    r-4 //读取权限
    w-2 //写入权限
    x-1 //执行权限
    0 //无权限
    
    例如:
    第一位7:所属用户权限,可读可写可执行 = 4 + 2 +1
    第二位6:用户组权限,可读可写可 = 4 + 2
    第三位5:其他用户权限,可读可执行 = 4 + 1
    777 //最大权限
    775 //所属用户最大权限,用户组最大权限,其他用户可读执行权限

     7查看进程

    找出进程ID
    1.ps -ef | grep mrf-center | grep -v grep
    
    找出进程下耗时最长的线程
    2.top -Hp pid
    
    找出线程的十六进制值
    3.printf "%x
    " 21742
    
    找出堆栈信息的线程数据
    4.jstack 21711 | grep 54ee

    8.查看内存 磁盘

    #查看文件夹大小
    du -h –max-depth=1 /usr/local
    #查看系统磁盘信息
    df -h
    #查看系统实时状态
    top
    #查看剩余内存
    free

    9.linux之间复制文件

    #!/usr/bin/expect
    
    #指定最后编译好的jar存放的位置
    set remote_password "123456"
    set remote_ip "192.168.10.1"
    set jar_path "/usr/local"
    #Jenkins中编译好的jar名称
    set jar_name "app.jar"
    set sh "restart-app.sh"
    
    spawn scp $jar_path/$jar_name root@$remote_ip:$jar_path
    # yum install -y expect
    # yum install -y tcl tclx tcl-devel
    expect {
        "(yes/no)?" {
            send "yes
    ";
            exp_continue;
        }
        "*assword:" {
            send "$remote_password
    "
        }
    }
    expect "100%"
    expect eof
    
    # 远程执行ssh命令
    #做法1
    #spawn ssh root@$remote_ip "sh $jar_path/$sh"
    #expect "*password:"
    #send "$remote_password
    "
    #interact
    #做法2
    spawn ssh root@$remote_ip         
    expect {
        "(yes/no)?" {
            send "yes
    ";
            exp_continue;
        }
        "*assword:" {
            send "$remote_password
    ";
        }
    }
    expect {
        "root@" {
            send "cd $jar_path&&sh reMgt.sh
    "
        }
    }
    expect {
        "run new one" {
            send "exit
    "
        }
    }
    expect eof
    spawn               交互程序开始后面跟命令或者指定程序
    expect              获取匹配信息匹配成功则执行expect后面的程序动作
    send exp_send       用于发送指定的字符串信息
    exp_continue        在expect中多次匹配就需要用到
    send_user           用来打印输出 相当于shell中的echo
    exit                退出expect脚本
    eof                 expect执行结束 退出
    set                 定义变量
    puts                输出变量
    set timeout         设置超时时间
    interact        允许用户交互
    转载自:https://www.cnblogs.com/mingyunrangwozoudaoxianzai/p/11208887.html
    #远程执行shell脚本 注意,一定要有tag
    #!/bin/bash
    ssh user@$ip> /dev/null 2>&1 << tag
    touch /usr/local/test.txt
    exit
    tag
    echo finished

    /usr/bin/expect <<-EOF
    #中间写expect脚本
    EOF

    10.启动项目 不输出打印信息

    #启动项目 不输出打印控制台信息
    nohup ./startup.sh >/dev/null 2>&1 &

     11.查看pid并杀掉进程

    #!/bin/bash
    prevPid="`ps -ef | grep "java -jar xxx.jar" | grep -v grep |awk '{print $2}' `"
    [ $prevPid ]&&echo ${prevPid}&&kill ${prevPid}
    echo 'kill prev java process'
    echo 'run new one ...'
    java -jar xxx.jar  >> xxx.log 2>&1 &

    linux中双引号("")、单引号('')、反单引号(``)区别

    双引号只是解决变量空格问题,不会将命令转为字符,而单引号中的内容则全部是字符串。返单引号的作用是将命令的返回值引用起来。

     12.shell脚本交互

    #1.简单使用echo
    echo ${your pwd} | nohup ./startup.sh >/dev/null 2>&1 &
    #2.使用Spawn
    spawn需要先安装tcl等组件,在shell中,先expect,再send

    & 表示任务在后台执行
    &&表示前一条命令执行成功时,才执行后一条命令
    | 表示管道,上一条命令的输出,作为下一条命令参数
    || 表示上一条命令执行失败后,才执行下一条命令
    ; 各命令的执行给果,不会影响其它命令的执行

     13.关闭防火墙

    sudo systemctl stop firewalld #临时关闭
    sudo systemctl disable firewalld #然后reboot 永久关闭
    sudo systemctl status  firewalld #查看防火墙状态。
  • 相关阅读:
    According to TLD or attribute directive in tag file, attribute end does not accept any expressions
    Several ports (8080, 8009) required by Tomcat v6.0 Server at localhost are already in use.
    sql注入漏洞
    Servlet—简单的管理系统
    ServletContext与网站计数器
    VS2010+ICE3.5运行官方demo报错----std::bad_alloc
    java 使用相对路径读取文件
    shell编程 if 注意事项
    Ubuntu12.04下eclipse提示框黑色背景色的修改方法
    解决Ubuntu环境变量错误导致无法正常登录
  • 原文地址:https://www.cnblogs.com/lcmlyj/p/11282121.html
Copyright © 2011-2022 走看看