目录

工欲善其事

实践出真知

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

存档:

[ 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格式设置壁纸,缓解模糊问题。

Java 模板引擎 [ Velocity ] 有更新!

Velocity 中加载 vm 文件的三种方式: a. 加载classpath目录下的vm文件 Properties p = new Properties(); try { // 加载classpath目录下的vm文件 p.setProperty("resource.loader.file.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); // 定义字符集 p.setProperty(Velocity.INPUT_ENCODING, "UTF-8"); // 初始化Velocity引擎,指定配置Properties Velocity.init(p); } catch (Exception e) { throw new RuntimeException(e); } 这种方式只能读取本jar包中的vm文件。初始化成功后,使用:Velocity.getTemplate( *templateFilePath* );加载文件! b. 根据绝对路径加载 Properties p = ne....

如何使用Desktop.ini自定义文件夹

文件夹通常显示标准文件夹图标。 Desktop.ini文件的常见用途是将自定义图标或缩略图分配给文件夹。 还可以使用 Desktop.ini 创建 一个信息提示 ,该提示显示有关文件夹的信息并控制文件夹行为的某些方面,例如为文件夹中的文件夹或项目指定本地化名称。 使用以下过程使用 Desktop.ini 自定义文件夹的样式: 使用 PathMakeSystemFolder 将文件夹设置为系统文件夹。 这会设置文件夹上的只读位,以指示应启用为Desktop.ini保留的特殊行为。 还可以使用 attrib +sFolderName 从命令行将文件夹设为系统文件夹。 为文件夹创建Desktop.ini文件。 应将其标记为 隐藏 和 系统 ,以确保对普通用户隐藏它。 请确保创建的 Desktop.ini 文件采用 Unicode 格式。 这是存储可向用户显示的本地化字符串所必需的。 创建Desktop.ini文件 Desktop.ini文件是一个文本文件,可用于指定文件系统文件夹的查看方式。 [.ShellClassInfo] 节允许通过向多个条目分配值来自定义文件夹的视图: 值说明 Con....

[ ffmpeg ] 校验视频文件的错误

校验文件并输出错误日志 ffmpeg -v error -i ./video.mp4 -f null - 2>error_.log