最近在后台服务部署的时候遇到几个Linux的相关知识点,在这里总结一下:
1、在一个Linux系统上打包文件之后发送到另一个Linux操作系统
- tar -zcvf filename.tar.gz filename(要压缩哪个文件)
- scp -P 端口号 -r filename.tar.gz 接收端用户名@IP地址: '接收端保存文件的名称'
2、通过xmanager启动Linux上的图形界面程序进而一键安装mysql(非常方便)
- 安装并启动xmanger
- 通过xshell连接Linux操作系统
- export LANG=en_us
- export DISPLAY=本机IP地址:0.0
- 解压安装包:tar -zxvf xxx.tar.gz
- ./解压后的文件,弹出页面执行安装即可
3、在windows上面编写的 .sh脚本在Linux系统上不能直接运行,需要修改编码
- :set ff=unix
4、nacos对中文支持不太友好,因为nacos读取编码,是以utf8读取的,但是直接启动,没有指定编码,那么会用系统编码读取配置文件,但是系统编码是gb18030,所以读取会乱码,导致yaml配置文件格式发生变化,所以服务起不来。
nacos可视化页面中只支持配置yaml文件,而yaml文件对格式要求比较严格,properties对格式要求没那么严格。所以在启动时需要加一个条件:
- java -jar -Dfile.encoding=utf-8 xxx.jar
5、将系统的当前时间设置为2020年11月1日8点30分(管理员权限下)
- date -s "20201101 8:30:00"
- clock -w
6、BigDecimal 类型数据四舍五入保留两位。
BigDecimal bigDecimal = avgLoadPowerInfo.getAvgLoadPowerInfo();
bigDecimal = new BigDecimal(String.valueOf(bigDecimal)).setScale(2, BigDecimal.ROUND_HALF_UP);
7、unix_timestamp 函数,它的返回值是一个无符号的整数,用来把时间比较转换为一个无符号整数的比较。
select something
from table
where FETIME > UNIX_TIMESTAMP(sysdate() - interval 3 minute)
8、chmod 修改文件的权限
chmod 777 /bin/* (读、写、执行权限)
9、chown命令
-
chown
需要超级用户root
的权限才能执行此命令 -
chown user -R /home
// 将home下的所有文件设置为user拥有
10、查看某个进程的端口号
- ps -ef|grep 进程
- netsta -tlp |grep 查出来的pid(进程号)
11、查看进程所在的目录
- ll /proc/端口号
12、使用fernflower反编译之后再编译;
- 把要反编译的
.jar
修改成.zip
- java -jar fernflower.jar classes.zip zzCode/,即可得到全为java的jar文件,用压缩软件解压后导入idea即可
13、数据库锁表问题解决方案
14、添加事物操作