目录

工欲善其事

实践出真知

活跃标签: linux java mysql 待分类 js springboot win10 电路 vue macOS nginx esp32 windows git docker idea maven esp8266 python Arduino

存档:

时间戳 [ 转换 ] 日期

JavaScript实现Date( ) ——日期格式化的三种常用方法 - 掘金 (juejin.cn) 在线时间戳转换器 - 码工具 (matools.com)

[ js ] 字符串中提取数字

强制类型转换 适用于要提取的数字在字符串的前端. let str = "1412.123abd" console.log(parseInt(str),parseFloat(str)); // 输出1412 1412.123 遍历拼接 缺点:获取所有的数字,即使是不需要的数字段也会被拼接. 这里是用parseInt(i)>=0判断是否为数字,若使用isNaN(),会把空字符串和空格当做0处理. let str="%1086143iluhugufu086"; let num=""; for(i of str){ if(parseInt(i)>=0){ //parseInt返回的是数字或者NAN,只要大于0,即使数字 num += i; } } console.log(num); // 1086143086 会拼接所以的数字 正则表达式 let str ="%1086143iluhugufu086"; let num= str.replace(/[^0-9]/ig,""); let numArr = str.match(/\d+/g); let decimalArr = st....

nas上docker安装 [qbittorrent] 有更新!

下载种子就得装qbittorrent迅雷虽然好用,但是不能向资本主义低头 找个镜像 linuxserver/qbittorrent 搞VueTorrent UI 进入GitHub仓库,打开Release页面 VueTorrent 下载最新版本的zip文件 解压放到某个目录下,一会docker配置的时候会用 配置Docker 基础设置 重启策列:容器退出时总是虫嗪启动 存储空间:记得配置为可读写 配置文件:/config 下载地址:/downloads vueTorrent地址:/vuetorrent 端口: TCP:16681 UDP:16681 TCP:8080 环境变量: WEBUI_PORT=8080 保存启动 登录密码:admin/adminadmin 设置使用vueTorrent的UI:设置-》WEBUI -》use alternative WEBUI 勾选并配置路径即可

[ Bash ] 命令进阶 有更新!

实时执行命令 while :; do clear; ls -lh; sleep 1; done 中间为执行命令,后端是间隔时间 实时脚本 如下,批量启动脚本命令 for j in *; do nohup java -jar $j --spring.profiles.active=test > $j.log 2>&1 & done

[vue] process.env环境变量

process 对象是一个全局变量,提供了有关当前 Node.js 进程的信息并对其进行控制。 process.env 属性会返回包含用户环境的对象。 本文介绍如何配置使用process.env环境变量。 原理 采用nodejs顶层对象中process基础类下process.env属性,返回包含用户环境的对象。根据各个环境的配置文件区分和控制。 node环境变量 node环境变量指nodejs执行环境的环境变量。 此处的nodejs指的是webpack的编译环境。 通过npm script中的set属性设置 //package.json "scripts": { "dev": "set NODE_ENV=develop && set PORT=8085 && webpack-dev-server --inline --progress --config build/webpack.dev.conf.js ", "build": "node build/build.js" }, 在webpack编译过程中获取 //webpack.dev.conf.js ....

[ Bash ] 命令进阶:日常脚本

写了一些用到的脚本 文件夹切割 split.sh 文件重命名 rename.sh ffmpeg视频校验 ffg.sh 查找错误的视频 ffmpg.sh 移动有错误的视频 mvbad.sh

[ Bash ] 命令进阶:获取字符串长度的七种方法

求字符串操作在shell脚本中很常用,下面归纳、汇总了求字符串的几种可能方法: 利用${#str}来获取字符串的长度 li13@DESKTOP-OH700S9:~$ str="ABCDEF" li13@DESKTOP-OH700S9:~$ echo ${#str} 6 li13@DESKTOP-OH700S9:~$ 利用awk的length方法 li13@DESKTOP-OH700S9:~$ echo ${str}|awk '{print length($0)}' 6 li13@DESKTOP-OH700S9:~$ 备注: 最好用{}来放置变量 也可以用length($0)来统计文件中每行的长度 利用awk的NF项来获取 li13@DESKTOP-OH700S9:~$ echo $str |awk -F "" '{print NF}' 6 li13@DESKTOP-OH700S9:~$ 备注: -F为分隔符,NF为域的个数,即单行字符串的长度 利用wc的-L参数来获取字符串的长度 li13@DESKTOP-OH700S9:~$ echo ${str}|wc -L 6 li13@D....

linux shell脚本中常用判断 [If Else 语句] 有更新!

Bash 支持 if-else 语句,以便你可以在 shell 脚本中使用逻辑推理。 通用的 if-else 语法如下: if [ expression ]; then ## 如果条件为真则执行此块,否则转到下一个 elif [ expression ]; then ## 如果条件为真则执行此块,否则转到下一个 else ## 如果以上条件都不成立,则执行此块 fi 正如你所注意到的: elif 用于 “否则如果” 类型的条件。 if-else 条件始终以 fi 结尾。 使用分号 ; 和 then 关键字 在展示 if 和 else-if 的示例之前,我先分享一下常见的比较表达式(也称为测试条件) 1、字符串判断 条件当满足以下条件时为真 "str1" = "str2"str1 与 str2 相同 "str1" == "str2"str1 与 str2 相同 "str1" != "str2"str1 与 str2 不同 -z "str1"str1 为空字符串 2、数字的判断 条件当满足以下条件时为真 str1 -lt str2str1 < str2( str1 小于 str2)....

[ Bash ] 命令进阶:修改文件/字符串名

basename是一个命令行程序,可用于删除指定的文件和目录的后缀 basename命令支持两种语法格式,分别是basename NAME [SUFFIX]和basename OPTION... NAME...。 最基本的的用法是在文件的绝对路径获取文件名并打印文件名。basename命令会自动删除目录分隔符后缀/。 默认情况下,每行输出以换行符结尾。如果要以NUL结尾,请使用-z/--zero选项。 多个文件 basename命令可以接受多个文件名称作为参数。如果要指定多个参数请使用-a/--multiple选项调用命令,然后使用空格分隔文件列表。 例如要获取<a href="https://www.myfreax.com/etc-passwd-file/">/etc/passwd</a>和<a href="https://www.myfreax.com/etc-shadow-file/">/etc/shadow</a>的文件名,请运行命令basename -a /etc/passwd /etc/shadow。 删除文件扩展名 要从文件....

[docker] 容器内服务开机自启动实现方案(以ssh服务为例) 有更新!

搞了个ubuntu奖项安装ssh服务,但是会发现当容器重启后,ssh服务并不能跟着重启,需要手动进入容器执行命令才可以重启。虽然,docker容器内服务自启可以使用Dockerfile的方法,但是使用Dockerfile的方法会有一定的弊端,这里就不多讲了。 1、正常我们在linux操作系统内设置服务自启动的方法一般都是使用systemctl。 systemctl enable ssh 2、但是,一般在docker容器内我们一般不这么干,因为容器内没有systemctl权限…… 3、我们依然还是使用脚本的形式将ssh设为自启,只不过这个的这个脚本和我们使用Dockerfile的脚本不一样。 4、在 /root 目录下新建一个 start_ssh.sh文件,并给予该文件可执行权限。 touch /root/start_ssh.sh vim /root/start_ssh.sh chmod +x /root/start_ssh.sh 5、start_ssh.sh 脚本的内容,如下: #!/bin/bash LOGTIME=$(date "+%Y-%m-%d %H:%M:%S") ech....

Docker 基本用法(镜像的下载和使用) 有更新!

拉取镜像 docker pull centos:centos7 查看镜像 docker images 运行容器 docker run -itd --name centos-test centos:centos7 查看进程 docker ps 启动容器 docker start {ID|NAME} 进入容器操作 docker exec -it {ID|NAME} /bin/bash 复制文件 docker cp {ID|NAME}:/XXX ./XXX 删除容器和镜像 docker stop {ID|NAME} # 停止容器 docker rm {ID|NAME} # 删除容器 docker rmi {ID|NAME} # 删除镜像 镜像导出 涉及的命令有export、import、save、load 提交 root@hcss-ecs-c875:~/foo# docker commit --help Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] Create a new image from a c....

Linux删除 [ history ] 历史命令记录

在Linux系统的终端中,会一直保存着命令的执行记录,在共用的服务器环境下,有时候,这些信息不想让其他人知道,我们就需要在操作完成之后去清除这些痕迹。 全部清除 history -c 执行之后,再次敲入history,发现已经看打不到之前的命令了,但是,你别以为问题就此解决了,系统中还有一个地方保存着这些记录,~/.bash_history文件,所以,根除的方法应该是 rm -rf ~/.bash_history history -c 部分清楚 删除指定行的历史记录 history -d [指定行号] 更多参数 root@hcss-ecs-c875:~/foo# history -h -bash: history: -h: invalid option history: usage: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...] root@hcss-ecs-c875:~/foo#

[ maven ] 打包打入 application.yml 文件 有更新!

好好的springBoot项目找不到mysql url,仔细一看端口也不对,之前是好好的 target里没有 resources文件夹下的文件?? 配置 pom.xml <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> <include>**/*.yml</include> </includes> <filtering>false</filtering> </resource> </resources> 发现也不起作用! 最后解决方法,把 resources文件夹添加到idea资源中重新clean 再编译一下就行了。。

运维时刻 [ Linux ] 脚本入门 有更新!

开头 vim script.sh 用 vim 编写脚本 #!/bin/bash 脚本使用的解释器,通常用幻数 "#!" 指定 #AUTHOR 脚本作者 #DATE 脚本创作时间 #MAIL 脚本作者联系方式 #VERSION 脚本的版本 判断 判断进程是否运行 命令: ps aux | grep 进程名 | grep -v grep 进程存在则输出信息,不存在则没输出 ps -ef | grep 进程名 | grep -v grep | wc -l 进程存在则输出行数(也就是数量),不存在则输出0 其中以上两者输出的不同是由于后者加上了wc命令用于计算,这里-l计算行数。除此之外,ps的参数aux和-ef的区别就在于显示进程的风格(aux是BSD风格,而-ef是System V风格)和信息不同(COMMADN列如果过长,aux会截断,而-ef不会),但如果我们只是用来查看程序是否在运行则无所谓,两者效果一样。 解析: |表示管道,左端写入,右端读出; grep为搜索命令,-v 表示反向查询,grep -v grep表示去除包含grep的项; wc -l表示显示行数; ps及以下参数查....

[ Linux ] 配置Java环境变量 详解 有更新!

当你手动安装JDK环境,或部署一台新电脑时解压的jdk需要写到/etc/profile才能每次开机时给你加载! 现在我们一起写一个自动配置Java运行环境的脚本,目的是在你jdk解压目录运行脚本,拿到当前路径配置的/etc/profile中 Java环境变量Linux配置如下: export JAVA_HOME=/usr/local/jdk1.8.0_261(您的 JDK 版本) export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib export PATH=$JAVA_HOME/bin:$PATH 我们需要将这一段代码写到/etc/profile最后面。 Java环境变量Win配置如下: rem* 管理员身份运行 %1 start "" mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&ex....

[ MySQL ] 8.0 修改 only_full_group_by 默认分组问题 有更新!

如果查数据时 报错 sql_mode=only_full_group_by 这种情况是因为你的mysql不支持多select分组,进行如下配置即可: 查询版本: SELECT VERSION(); 8.0.12 方法一:直接修改数据库配置 首先,打开数据库,输入 select @@global.sql_mode; # 返回值如下 > ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION # 果里面包含 ONLY_FULL_GROUP_BY,那么就重新设置,在数据库中输入以下代码,去掉ONLY_FULL_GROUP_BY即可 SET GLOBAL sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION'; 但是,当我们再一次重新启动数据库时,可能会恢复原样,还是会出现ONLY_FULL_GROUP_BY的报错,这就需要我们再一次修改数据库配置。 方法....

[ win10/11 ] 配置输入法,快捷输入时间 有更新!

位置:时间和语言/语言和区域选项 /微软拼音/词库和自学习/用户自定义短语 注意:好像我这一版的系统不能编辑,时间编码如下。其他功能自己探索吧 %yyyy%-%MM%-%dd% %HH%:%mm%:%ss%

[ MySql ] 查找大表和清理

查看整个库的大小 select concat(round(sum(data_length / 1024 / 1024), 2), 'MB') as data from information_schema.tables where table_schema = 'schemaName'; 查看表的大小 select TABLE_NAME, concat(round(data_length / 1024 / 1024), 'MB') 'size' from information_schema.tables where table_schema = 'schemaName' order by DATA_LENGTH desc 这里的单位是MB可以自己改,我这边是按照从大到小的顺序排列的。找到表后 可使用 truncate 或delete 删除

在Win11上折腾 [ wsl ] 跑Linux系统 有更新!

首先就是检查配置 检查系统版本 对于 x64 系统:版本 1903 或更高版本,采用 内部版本 18362 或更高版本 对于 ARM64 系统:版本 2004 或更高版本,采用 内部版本 19041 或更高版本 低于 18362 的版本不支持 WSL 2。 使用 Windows Update 助手更新 Windows 版本 检查是否开启VT虚拟化 在任务管理器->性能中查看 如果没有启用需要更改BIOS设置 检查相关Windows功能是否开启 win+Q键搜索->启用或关闭windows功能 win11需要检查是用与Linux的Windows子系统选项是否开启 在管理员权限下打开powershell,执行以下命令后重启电脑 PS C:\Users\Administrator> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 部署映像服务和管理工具 版本: 10.0.22000.653 映像版本: 10.0.22000.2295....

win10和win11 壁纸模糊解决办法(针对jpg格式) 有更新!

1、右键开始菜单,选择“运行”,输入 regedit ,点确定。 2、在弹出的注册表编辑器左侧栏,依次展开以下目录。 计算机\HKEY_CURRENT_USER\Control Panel\Desktop 3、窗口右侧空白处,右键选择新建一个DWORD(32位)值。 4、将其重命名为JPEGImportQuality,双击打开它,数值数据改为100。 5、重启电脑后,先随便找一张图片,右键选择“设为桌面背景”。 6、找到真正要用的JPG图片,再右键设为桌面壁纸,画质压缩就不会那么严重了。 注意,第五步和第六步非常重要,目的是清空覆盖Themes下缓存。很多人重启完电脑,发现之前设置的壁纸还是模糊,就觉得改注册表没用。其实主要原因是没做上面两步,桌面壁纸显示文件还是原来那个。 值得一提的是,Win10和Win11壁纸对于PNG格式图片,也会压缩。不过,由于PNG本身编码关系,经过同样压缩,画质下降基本看不出来。因此,你也可以考虑用高分辨率的PNG格式设置壁纸,缓解模糊问题。