• 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 #查看防火墙状态。
  • 相关阅读:
    怎么才能快捷的使用Beyond Compare
    Navicat遇到1130错误该如何处理
    做软件开发对这几款软件应该不陌生
    有什么方法可以快速找出文本的异同
    怎么给数据库管理工具设置数据同步
    程序员常常会用到的几款文本编辑器
    Java经典案例之-判断兔子的数量(斐波那契数列)
    菲波那切数列案例演示(递归方法)
    Java反射机制
    位运算,算术、逻辑运算详解-java篇
  • 原文地址:https://www.cnblogs.com/lcmlyj/p/11282121.html
Copyright © 2020-2023  润新知