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查看进程
找出进程ID1.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 <
touch/usr/local/test.txt
exit
tag
echo finished
/usr/bin/expect <
#中间写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 #查看防火墙状态。