常用操作合集二
我正在参加「金石计划4.0」
写在前面
在工作中,我们可能会遇到一些问题,然后通过自己得一顿操作,最终把问题解决了。
可能在一两天之内,我们还是会记得解决这些问题的方法,但是过了一段时间之后,基本上都忘光了。
所以这里,我们应该要养成一个良好的习惯,把每次遇到的问题,如何解决的,都记录下。下次再看文档,这样就想起来了。
<<千与千寻>>有些事情是不可能忘记的,只是一时想不起来
下面,就分享一下,我遇到的一些问题,和相关的解决方法。
可能以前也有分享过一篇,有兴趣的小伙伴,可以查看这里:常用操作合集
1.nginx gzip
2.window创建空文件(不带后缀名)
- 打开CMD命令窗口
- 切换到需要生成.gitkeep文件的目录下面,用CD命令
- 输入命令行 type null>.gitkeep
3.idea安装新插件以后双击不能启动,删除新插件恢复运行
idea2019.03
新插件Iedis2.0
插件位置
C:\Users\Administor\.IntelliJIdea2019.3\config\plugins
删除这个目录下的插件即可。
3.根据dockerfile中的条件更改基础镜像
使用combination of ARG and FROM in Dockerfile。
您可以在FROM语句中使用ARG中声明的变量。
ARG APP_IMAGE=alpine:latest
FROM ${APP_IMAGE}
CMD /path/to/mycode
也可以使用--build-arg option of docker build command覆盖此值。
docker build -t myapp:v1 --build-arg APP_IMAGE=busybox:latest .
4.python设置国内镜像源
直接下载,速度慢
pip install pandas
使用国内镜像源下载,速度快
pip install pandas -i pypi.tuna.tsinghua.edu.cn/simple/
清华源: https://pypi.tuna.tsinghua.edu.cn/simple/
阿里云: http://mirrors.aliyun.com/pypi/simple/
清华大学: https://pypi.tuna.tsinghua.edu.cn/simple/
5.maven安装依赖到本地
mvn install:install-file
-Dfile=kingbase8-8.6.0.jar
-DgroupId=com.kingbase
-DartifactId=kingbase8
-Dversion=8.6.0
-Dpackaging=jar
6.mysql日志找回删除记录
vi /etc/mysql/conf.d/mysql.cnf
[mysql]
default-character-set=utf8
[mysqld]
lower_case_table_names=1
server_id=1
log_bin=mysql-bin
binlog_format=ROW
通过mysqlbinlog将二进制日志转成sql
mysqlbinlog --database=seqb --set-charset=utf8 --base64-output=decode-rows -v /var/lib/mysql/mysql-bin.000001 --start-datetime="2022-09-02 05:00:00" --stop-datetime="2022-09-02 05:59:59" -r delete20220902.sql
--database:指定数据库
--set-charset:指定编码
--base64-output:去掉脚本中的row-format
--start-datetime:指定开始时间
--stop-datetime:指定结束时间
注:以上命令中包含多个二进制文件,会将多个二进制文件中的指定内容输出到delete20220902.sql
中
7.依赖下载到nexus
例如:准备一个package.json文件
{
"name": "vue",
"version": "1.0.0",
"description": "",
"dependencies": {
"@vue/compiler-sfc": "^2.7.5"
}
}
例如:我要下载
@vue/compiler-sfc
依赖
第一步:下载依赖
npm install --registry=https://registry.npm.taobao.org
第二步:安装node-tgz-downloader
,全局安装
npm install node-tgz-downloader -g
全局安装过,下次就不再需要安装了。
第三步:下载依赖
download-tgz package-lock package-lock.json
显然,会下载失败,但是我们已经拿到了具体的下载路径。
那我们直接在浏览器,打开这个链接,即可帮我们下载下来。
第四步:上传到nexus
可以看到,已经上传成功。
8.下载arm等其他架构的docker镜像包
- 拉取的时候,指定平台镜像
docker pull --platform=arm64 nginx:latest
--platform:该参数是用于拉取指定平台的镜像,也是实验性功能,在开启manifest功能后就会出现。通过该参数可以手动指定需要的CPU平台镜像,而不用自动去识别。
- 下载成功后,可以通过inspect查看docker镜像架构
docker inspect nginx:latest
amd跑arm镜像,可能会报错:
The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64) and no specific platform was requested
- 设置 "experimental": true
重启docker
- 用docker version查看,确认是否启动
docker version
docker build构建: docker使用buildx构建多平台(x86,arm64)构架镜像
# 导出到本地只能构建一个镜像,本地不支持同时导出manifest lists
#arm64
docker buildx build -t 镜像名:版本号-arm64 --platform linux/arm64 . --load
#x86_64(amd64)
docker buildx build -t 镜像名:版本号-amd64 --platform linux/amd64 . --load
9.Springboot启动参数说明
springboot项目启动的时候可以直接使用java -jar xxx.jar这样。下面说说参数的一些讲究
- 1.-DpropName=propValue的形式携带,要放在-jar参数前面
java -Dxxx1=test1 -Dxxx2=test2 -jar xxx.jar
取值:System.getProperty("xxx1")
- 2.参数直接跟在命令后面
java -jar xxx.jar processType=1 processType2=2
取值:参数就是jar包里主启动类中main方法的args参数,按顺序来
- 3.springboot的方式,--key=value方式,要放在xxx.jar后面
java -jar xxx.jar --xxx=test
取值:spring的@value("${xxx}")
- 4.jvm参数可以放在中间
java -jar -Xms6144m -Xmx6144m xxx.jar
日志记录
- nohup追加日志
之前的日志处理:
nohup command > myout.file 2>&1 &
导致每次用service重启,myout.file中还没有压缩备份的日志丢失
修改为:
nohup command >> myout.file 2>&1 &
日志文件将在现有文件基础上追加,不在出现丢失
使用
>>
,即可实现
10.Springboot启动配置读取顺序
在SpringBoot应用启动时,将会按照下面的顺序来进行属性的加载:
(1) 首先加载启动命令中传入的参数;
(2) 加载SPRING_APPLICATION_JSON中的属性。SPRING_APPLICATION_JSON是以JSON格式配置在系统环境变量中的内容;
(3) 加载java:comp/dev中的JNDI属性;
(4) 加载Java的系统属性,可以通过System.getProperties()获取到的内容;
(5) 加载操作系统的环境变量;
(6) 加载random.*配置的随机属性;
(7) 加载位于当前应用jar包之外,针对不同{profile}环境的配置文件内容,比如application-{profile}.properties或者YAML定义的配置文件;
(8) 加载位于当前应用jar包之内,针对不同{profile}环境的配置文件内容,比如application-{profile}.properties或者YAML定义的配置文件;
(9) 加载位于当前应用jar包之外的application.properties和YAML配置内容;
(10) 加载位于当前应用jar包之内的application.properties和YAML配置内容;
(11) 加载含有@Configuration注解的类,通过@PropertySource注解定义的属性;
(12) 最后加载应用的默认属性,使用SpringApplication.setDefaultProperties定义的内容。
加载的优先级按照以上顺序由高到底,数字越小的优先级越高,越先被加载。
11.shell脚本里面,启动时遇到了$'\r': command not found错误
sh提示“no such file or directory”
用vi/vim打开脚本,设置文件格式为unix。
vi start.sh
:set ff=unix
:wq
ps: 如果想设置为windows格式,则:set ff=dos
set fileformat=dos
#或者
set ff=dos
没有linux环境的,可以使用NotePad++
这些工具进行替换
在Notepad++的右下角可以看到当前文档的格式为Unix(LF),即完成了将文档Windows格式向Linux格式的转换。
12.dm数据库无法修改字段类型
可以删了,再重新添加得方式(有数据得,需要临时字段保存原来得数据)
13.git导出日志到文件,excel等
- txt
保存到一个文件中
git log > log.txt
保存详细修改方法
git log -p > log.txt
过滤某个人的修改方法
git log --author user > log.txt
过滤某个人的详细修改方法
git log --author user -p > log.txt
- cvs
::记录日志
git log --date=iso --pretty=format:"%h","%an","%ad","%s" --encoding="GBK" > log.csv
在.bat文件中,%需要转义
git log --date=iso --pretty=format:"%%h","%%an","%%ad","%%s" --encoding="GBK" > log.csv
选项 说明
%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者(author)的名字
%ae 作者的电子邮件地址
%ad 作者修订日期(可以用 -date= 选项定制格式)
%ar 作者修订日期,按多久以前的方式显示
%cn 提交者(committer)的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期,按多久以前的方式显示
%s 提交说明
14.docker修改容器编码为utf-8
- 直接在容器中设置
locale //看下当前默认语言是否是utf-8,默认是:POSIX
locale -a //看下系统有没有装utf-8语言
如果没有装utf-8的话,需要单独的装下。
修改 etc/profile文件:
echo "export LANG=en_US.utf8">> /etc/profile
echo "export LC_ALL=en_US.utf8">> /etc/profile
使环境变量生效:
source /etc/profile
再次输入 locale 发现已经设置成功了
- 修改镜像里面的默认语言
ENV LANG en_US.utf8
ENV LC_ALL en_US.utf8
15.win下修改配置导致docker启动失败
Docker桌面会在未检测部分配置项是否正确的情况下就保存,导致崩溃然后无法再次打开。
如果遇到这种情况,先不要急着删除重装,可先尝试修改配置json文件恢复。
通常关于镜像源等配置在 C:\Users\用户名\.docker
目录下
重新编辑
daemon.json
文件即可。重启docker,如果还是无法重启,那就重启电脑,解决一起问题。
好了,以上就是我个人的实操了。可能有些不对,大家伙,轻点喷!!!
个人理解,可能也不够全面,班门弄斧了。
好了,今天就先到这里了!!!^_^
如果觉得有收获的,帮忙点赞、评论、收藏
一下,再走呗!!!