1+6 linux deploy 记录
apt-get install nodejs npm curl wget python3 zip unzip
npm install pm2 -g
PS1='${debian_chroot:+($debian_chroot)}[033[01;32m]u[033[01;31m]@[033[01;36m]h[033[00m]:[033[01;34m]W[033[00m]$ '
apt-get install nodejs npm curl wget python3 zip unzip
npm install pm2 -g
PS1='${debian_chroot:+($debian_chroot)}[033[01;32m]u[033[01;31m]@[033[01;36m]h[033[00m]:[033[01;34m]W[033[00m]$ '
main.sh
aria2c --enable-rpc --rpc-allow-origin-all&./alist server --no-prefix
从192.168.1.1test文件夹下复制全部文件到本地test文件夹下,
并保留修改时间最近的3个sql文件,删除其他的sql文件
@echo off&setlocal enabledelayedexpansion
xcopy /F /d \\192.168.1.1\test\*.* F:\test\
pushd F:\test\
set n=0
for /f "delims=" %%a in ('dir /a-d-h /b /o-d *.sql') do (
if !n! geq 3 del "%%~a"
set /a n+=1
)
popd
/f 复制时显示源文件名和目标文件名。
/d [:MM-DD-YYYY] 仅复制指定日期或之后更改的源文件。 如果未包含 MM-DD-YYYYY 值,xcopy则复制比现有目标文件更新的所有源文件。 此命令行选项允许更新已更改的文件。
在cmd执行命令前会对脚本进行预处理,其中有一个过程是变量识别过程,在这个过程中,如果有两个%括起来的如%value%类似这样的变量,就会对其进行识别,并且查找这个变量对应的值,再而将值替换掉这个变量,这个替换值的过程,就叫做变量扩展,然后再执行命令。
但如果出现动态的情况会怎样?在cmd执行中,发生动态的一种情况是在 for语句中进行变量赋值。
开启了变量延迟,在for循环中每次赋予str的值才会被传递下去,但这里的str变量符必须要写成!str!
Pushd 命令
改变当前目录到指定目录,并保存当前的目录在堆栈顶端
Popd 命令
改变当前目录,跳转到堆栈顶端保存的目录,并将堆栈顶端的目录删除
delims= 用来告诉for每一行应该拿什么作为分隔符
用%%a代替循环中的每一行(每个文件名)
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于
set /a 是指定一个变量等于一串运算字符
/a 仅显示具有指定属性的目录和文件的名称
d - 目录
h - 隐藏文件
s - 系统文件
可以使用这些值的任何组合,但不要使用空格分隔值。 (可选)可以使用冒号 (:) 分隔符,也可以使用连字符 (-) 作为前缀来表示“not”。 例如,使用 -s 属性不会显示系统文件
/b 显示目录和文件的裸列表,没有其他信息
/o[[:]<sortorder>] 根据 sortorder 对输出进行排序,它可以是以下值的任意组合
d - 按日期/时间,最早
-使用前缀反转排序顺序
配合vbs脚本
:: yesterdays date
@echo off
set day=-1
echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s)
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2)
for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "result=%%a"
del "%temp%\%~n0.vbs"
set "YYYY=%result:~0,4%"
set "MM=%result:~4,2%"
set "DD=%result:~6,2%"
set "data=%yyyy%-%mm%-%dd%"
echo Yesterday was "%data%"
pause
apt-get install npm
npm install pm2 -g
pm2 start --name recorder "/root/live/BililiveRecorder.Cli run '/mnt/bilibili'"
pm2 ps
# "recorder" 是上面运行 pm2 start 时传入的 --name 参数
pm2 start recorder
pm2 stop recorder
pm2 restart recorder
pm2 logs recorder
pm2 delete recorder
concat() 方法用于连接两个或多个数组
箭头函数不绑定this,默认去上一层作用域去找this,有用处
var 全局定义变量,变量会给到window
学方老师昨天直播推荐的正则表达式30分钟入门教程
//匹配ip地址
((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
后向引用用于重复搜索前面某个分组匹配的文本
零宽断言用于查找在某些内容(但并不包括这些内容)之前或之后的东西(指定一个位置)
负向零宽断言只是想要确保某个字符没有出现,但并不想去匹配它
\d{3}(?!\d)匹配三位数字,而且这三位数字的后面不能是数字
\b((?!abc)\w)+\b匹配不包含连续字符串abc的单词。
同理,我们可以用(?<!exp),零宽度负回顾后发断言来断言此位置的前面不能匹配表达式exp:
(?<![a-z])\d{7}匹配前面不是小写字母的七位数字。
一个复杂的例子:(?<=<(\w+)>).*(?=<\/\1>)匹配不包含属性的简单HTML标签内里的内容。
听方老师讲2022年前端,vercel,figma公司
Figma-UI设计器 知乎-Figma是什么
听了一点js面试题。
for(var i=1;i<4;i++){
setTimeout(function(){
console.log(i);
},1000);
}
i为全局变量,会先执行完循环(js是单线程机制,先执行同步代码,最后执行异步代码,setTimeout是异步调用),
此时i的值已经为4,之前每次循环放入异步队列中的函数就会依次打印出i的值,即连续打印3次4
解决方法:
for(var i=1;i<4;i++){
(function(j){
setTimeout(function(){
console.log(j);
},1000*j);
})(i);
}
Git是什么?
Git是分布式版本控制系统
使用当前目录作为Git仓库并初始化
git init
使用指定目录作为Git仓库进行初始化
git init newrepo
git init命令只做一件事,就是在项目根目录下创建一个.git子目录,用来保存版本信息
git add filename
git add *
git commit -m "代码提交信息"
如果不使用-m,会出现编辑器来让你写自己的注释信息
提交暂存区所有修改,使用-a标识
git commit -a -m "代码提交信息"
-a不会造成新文件被提交,只能修改
从服务器克隆一个库
git clone ssh://example.com/~/www/project.git
修改之后可以推送到服务器
git push ssh://example.com/~/www/project.git
下面命令表示,当前分支自动与唯一一个追踪分支进行合并
git pull
从非默认位置更新到指定的url
git pull http://git.example.com/project.git
$a = 1
$str = "hello world"
Set-Variable a 1
Set-Variable str "helloworld"
ipconfig /release
ipconfig /renew
set /a yyyy=%date:~0,4%,mm=1%date:~5,2%%%100,dd=1%date:~8,2%%%100
rar a E:\%yyyy%.%mm%.%dd%.zip E:\%yyyy%.%mm%.%dd%
rem ----邮件内容-----
set body=%yyyy%.%mm%.%dd%
rem ----邮件主题----
set s=%yyyy%.%mm%.%dd%
rem ----收件邮箱-----
set
rem ----发件邮箱-----
set
rem ----邮箱秘钥-----
set
rem ----附件-----
set attach=%yyyy%.%mm%.%dd%.zip
set debug=-debug -log blat.log -timestamp
rem ----执行发送-----
E:
Blat -body %body% -s %s% -attach %attach% -t %t% -server smtp.126.com -f %f% -u %f% -pw %pw% -base64 -charset utf8 %debug% -try 3
下载安装Java11(官方地址需要登录)
https://www.xitongzhijia.net/soft/244376.html
下载lspatch.jar
https://github.com/LSPosed/LSPatch/releases
下载哔哩漫游、哔哩哔哩
https://github.com/yujincheng08/BiliRoaming/actions
放在同一文件夹
Powershell运行(app.apk是模块)
java -jar lspatch.jar bilibili.apk -m app.apk --v1 false
启动
service cron restart/start/stop
crontab
显示出当前用户cron服务的详细内容。
crontab –l
打开默认的编辑当前用户cron服务的编辑器
crontab –e
分钟 (0-59)
小時 (0-23)
日期 (1-31)
月份 (1-12)
星期 (0-6)//0代表星期天
后代选择器
.div p{}
子代选择器
.div > p{}
子代只包括儿子,可有多个
交集选择器
p.red{}
p标签下red类
emmet语法
生成普通标签
div + Tab
生成带类名标签
.red + Tab
生成带id标签
#red + Tab
类名+id标签
p.red#one + Tab
生成儿子,子代选择器
ul>li
复合:p.red#one>p.blue#one
生成内部文本,大括号{}
ul>li{内容}
多个标签
ul>li*5
hover伪类选择器 hover:悬停; 盘旋
a:hover{}
背景颜色
background-color:red
background-color:transparent 透明