命令 1 last用于显示用户最近登录信息,包括用户名、登录时间、登录来源等信息 单独执行last命令,将会读取/var/log/wtmp的文件,并把该文件内容记录的登入系统的用户名单全部显示出来。 last -na | head -n <显示列数>或-<显示列数>:设置列出名单的显示列数 -a:把从何处登入系统的主机名称或 IP 地址,显示在最后一行 命令 2 过滤当前目录下以 1024 开头的文件,并统计这些文件的数量 ls | egrep ^1024 | wc -l ls:用于显示目录内容列表 egrep:用于在文件内查找指定的字符串 ^1024是一个正则表达式,用于匹配以数字 1024 开头的文件。egrep命令将在输入中查找匹配这个模式的行 命令 3 过滤当前目录下以 1024 开头的文件,并显示这些文件的大小以及总用量 ls | egrep ^1024 | xargs du -ch xargs:xargs 命令是给其他命令传递参数的一个过滤器 du:显示每个文件和目录的磁盘使用空间 -c:除了显示个别目录或文件的大小外,同时也显示所有目录或文件....
JavaScript实现Date( ) ——日期格式化的三种常用方法 - 掘金 (juejin.cn) 在线时间戳转换器 - 码工具 (matools.com)
强制类型转换 适用于要提取的数字在字符串的前端. 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....
下载种子就得装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 勾选并配置路径即可
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 ....
写了一些用到的脚本 文件夹切割 split.sh 文件重命名 rename.sh ffmpeg视频校验 ffg.sh 查找错误的视频 ffmpg.sh 移动有错误的视频 mvbad.sh
求字符串操作在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....
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)....
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。 删除文件扩展名 要从文件....
搞了个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....
在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#
好好的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 再编译一下就行了。。
开头 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及以下参数查....
当你手动安装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....
如果查数据时 报错 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的报错,这就需要我们再一次修改数据库配置。 方法....
位置:时间和语言/语言和区域选项 /微软拼音/词库和自学习/用户自定义短语 注意:好像我这一版的系统不能编辑,时间编码如下。其他功能自己探索吧 %yyyy%-%MM%-%dd% %HH%:%mm%:%ss%
查看整个库的大小 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 删除
首先就是检查配置 检查系统版本 对于 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....
1、右键开始菜单,选择“运行”,输入 regedit ,点确定。 2、在弹出的注册表编辑器左侧栏,依次展开以下目录。 计算机\HKEY_CURRENT_USER\Control Panel\Desktop 3、窗口右侧空白处,右键选择新建一个DWORD(32位)值。 4、将其重命名为JPEGImportQuality,双击打开它,数值数据改为100。 5、重启电脑后,先随便找一张图片,右键选择“设为桌面背景”。 6、找到真正要用的JPG图片,再右键设为桌面壁纸,画质压缩就不会那么严重了。 注意,第五步和第六步非常重要,目的是清空覆盖Themes下缓存。很多人重启完电脑,发现之前设置的壁纸还是模糊,就觉得改注册表没用。其实主要原因是没做上面两步,桌面壁纸显示文件还是原来那个。 值得一提的是,Win10和Win11壁纸对于PNG格式图片,也会压缩。不过,由于PNG本身编码关系,经过同样压缩,画质下降基本看不出来。因此,你也可以考虑用高分辨率的PNG格式设置壁纸,缓解模糊问题。
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....