目录

李石三 的个人博客

记录精彩的程序人生

Linux 网络查看命令ip

linux的ip 命令和ifconfig 类似,但前者功能更强大,并旨在取代后者。使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务。ifconfig是net-tools中已被废弃使用的一个命令,许多年前就已经没有维护了。iproute2套件里提供了许多增强功能的命令,ip命令即是其中之一。 设置和删除命令 要给你的机器设置一个IP地址,可以使用下列ip命令: $ sudo ip addr add 192.168.0.193/24 dev wlan0

Mockjs在Vue项目中使用 有更新!

先放一下 Mockjs 官网地址 首先安装mockjs npm install mockjs 我们可以使用数据模板生成模拟数据 Mock.mock( rurl?, rtype?, template ) ) // 或者 Mock.mock( rurl, rtype, function( options ) ) Mock.mock( rurl, rtype, template ) 表示当拦截到rurl和rtype的ajax请求时,将根据数据模板template生成模拟数据,并作为响应数据返回。 Mock.mock( rurl, rtype, function( options ) ) 记录用于生成响应数据的函数。当拦截到匹配 rurl 和 rtype 的 Ajax 请求时,函数 function(options) 将被执行,并把执行结果作为响应数据返回。 其中: rurl 可选 表示要拦截的url,可以使字符串,也可以是正则 rtype 可选 表示要拦截的ajax请求方式,如get、post template 可选 数据模板,可以是对象也可以是字符串 function(opt....

Java开启代理

String proxyHost = "127.0.0.1"; String proxyPort = "19180"; System.setProperty("http.proxySet", "true"); // 对http开启代理 System.setProperty("http.proxyHost", proxyHost); System.setProperty("http.proxyPort", proxyPort); // 对https也开启代理 System.setProperty("https.proxyHost", proxyHost); System.setProperty("https.proxyPort", proxyPort);

对Promise中的resolve,reject,catch的理解 有更新!

.then()的时候到底是在then什么… 首先要理解…Promise是一个对象,有then()方法的对象 then()的入参是一个函数,通常在promise链中,入参是 一个返回promise的函数 ,这句话好像有点拗口,就是说入参是一个函数,这个函数会return一个promise对象。 如何破坏promise链 如果有这样一个promise链: p1().then(p2).then(p3) .then((data) => { console.log('data: ' + data); }) .catch((error) => { console.log('error: ' + error); }); function p1() { let p1 = new Promise((resolve, reject) => { console.log('p1 resolved'); resolve(123); }); return p1; } function p2() { let p2 = new Promise((resolve, reject) => { co....

给vue项目ESLint 规则详细

'rules': { "comma-dangle": ["error", "never"], //是否允许对象中出现结尾逗号 "no-cond-assign": 2, //条件语句的条件中不允许出现赋值运算符 "no-console": 2, //不允许出现console语句 "no-constant-condition": 2, //条件语句的条件中不允许出现恒定不变的量 "no-control-regex": 2, //正则表达式中不允许出现控制字符 "no-debugger": 2, //不允许出现debugger语句 "no-dupe-args": 2, //函数定义的时候不允许出现重复的参数 "no-dupe-keys": 2, //对象中不允许出现重复的键 "no-duplicate-case": 2, //switch语句中不允许出现重复的case标签 "no-empty": 2, //不允许出现空的代码块 "no-empty-character-class": 2, //正则表达式中不允许出现空的字符组 "no-ex-assign": 2, //在try catch语句....

vue项目出现error Unexpected ‘debugger‘ statement no-debugger

问题描述: 项目中使用debugger/console报错 error Unexpected ‘debugger’ statement no-debugger error Unexpected ‘debugger’ statement no-debugger 解决办法: 找到项目中的 package.json 文件 找到 eslintConfig 配置参数 在 eslintConfig 下的 rules 添加 “no-debugger”: “off”, “no-console”: “off”, 重启项目 "eslintConfig": { "root": true, "env": { "node": true }, "extends": [ "plugin:vue/essential", "eslint:recommended" ], "parserOptions": { "parser": "babel-eslint" }, "rules": { "no-debugger":"off", "no-console":"off" } },

macOS开启高性能模式 有更新!

性能模式会更改您的 Mac 的系统参数。这些更改会更好地利用您的硬件来满足服务器应用程序的要求。 装有 macOS Server 且需要运行高性能服务的 Mac 可以开启性能模式,以便将更多系统资源专用于服务器应用程序。 OS X El Capitan 10.11 及更高版本 要在 OS X El Capitan 10.11 及更高版本中开启性能模式,请使用 nvram 命令来调整 boot-args NVRAM 变量。如果您重置 NVRAM,该设置也将被清除。 以下命令会显示 boot-args NVRAM 变量。如果您看到 serverperfmode=1,则说明性能模式已开启。 nvram boot-args 如果性能模式尚未开启,您可以在 boot-args NVRAM 变量中使用以下命令来设置 serverperfmode=1,从而启用该模式: sudo nvram boot-args="serverperfmode=1 $(nvram boot-args 2>/dev/null | cut -f 2-)" 要关闭性能模式,请使用以下命令: sudo nvram bo....

阿里云OSS图片基本操作整理 有更新!

OSS图片支持拼接url实现图片缩略图,配置如下: 按百分比缩放: https://dulebot.oss-cn-shenzhen.aliyuncs.com/sys/loginbg.jpg?x-oss-process=image/resize,p_12 将原图指定按短边缩略 100x100 https://dulebot.oss-cn-shenzhen.aliyuncs.com/sys/loginbg.jpg?x-oss-process=image/resize,m_lfit,h_200,w_200

js 将字符串保存成txt文件

function exportRaw(name, data) { var urlObject = window.URL || window.webkitURL || window; var export_blob = new Blob([data]); var save_link = document.createElementNS("http://www.w3.org/1999/xhtml", "a") save_link.href = urlObject.createObjectURL(export_blob); save_link.download = name; var ev = document.createEvent("MouseEvents"); ev.initMouseEvent("click", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); save_link.dispatchEvent(ev); }

private修饰的方法可以通过反射访问,那么private的意义是什么? 有更新!

在一个类中,为了不让外界访问到某些属性和方法,通常将其设置为private,用正常的方式(对象名.属性名,对象名.方法名)将无法访问此属性与方法,但有没有其他方法可以访问呢?答案是有的,这就是java反射带来的便利。利用反射访问类的私有属性及方法如下: public class Reflect { private String name; private int age; private Reflect(int age) { this.age = age; } private void speak(String name) { System.out.println("My name is" + name); } public Reflect(String name) { this.name = name; } } 首先,我们要了解三个反射包中的类: Constructor:代表类的单个构造方法,通过Constructor我们可执行一个类的某个构造方法(有参或者无参)来创建对象时。 Method:代表类中的单个方法,可以用于执行类的某个普通方法,有参或无参,并可以接收返回值。 Fie....

js 将文本以文件的形式上传到服务器 有更新!

let file; const properties = {type: 'text/plain'}, data = this.code; try { file = new File([data], "file.txt", properties); } catch (e) { file = new Blob(data, properties); } const formData = new FormData() formData.append('file', file, key) postAction(this.url.uploadUrl, formData).then(res => { if (res.success) { } });

图解 Git 各种用法,简单明了,一目了然!

基本用法 上面的四条命令在工作目录、暂存目录(也叫做索引)和仓库之间复制文件。 git add *files* 把当前文件放入暂存区域。 git commit 给暂存区域生成快照并提交。 git reset -- *files* 用来撤销最后一次git add *files*,你也可以用git reset 撤销所有暂存区域文件。 git checkout -- *files* 把文件从暂存区域复制到工作目录,用来丢弃本地修改。 你可以用 git reset -p, git checkout -p, or git add -p进入交互模式。 也可以跳过暂存区域直接从仓库取出文件或者直接提交代码。 img* git commit -a相当于运行 git add 把所有当前目录下的文件加入暂存区域再运行。git commit. git commit *files* 进行一次包含最后一次提交加上工作目录中文件快照的提交。并且文件被添加到暂存区域。 git checkout HEAD -- *files* 回滚到复制最后一次提交。 约定 后文中以下面的形式使用图片。 绿色的5位字符表示....

js正则表达式

获取字符串中间的内容 'cin>>123123;'.match(/cin>>(\S*);/); 输出: 123123

java8 小技巧保证分组groupingBy后排序不变

解决方法 添加两个参数 LinkedHashMap 和 Collectors.toList(),最主要的就是将HashMap 替换成 LinkedHashMap Collectors.groupingBy(Person::getAge, LinkedHashMap::new, Collectors.toList())

js异步请求fetch

Fetch上传文件(不需要设置headers) 实例代码:其它参数可不加把文件放在body中就行 // 上传文件 function uploadFile(f, name) { const fd = new FormData() fd.append('file', f, name) fetch('/jeecg-boot/leading/upload', { method: 'POST', body: fd, cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached credentials: 'same-origin', // include, same-origin, *omit mode: 'cors', // no-cors, cors, *same-origin redirect: 'follow', // manual, *follow, error referrer: 'no-referrer', // *client, no-referrer headers: { 'user-a....

centos7 home目录空间释放添加到指定分区 有更新!

备份home目录 cd /home tar czvf /home.tgz /home 这样,会在/下生成名叫home.tgz的压缩包,您可以在扩大/home目录后将这个包 解回到新的/home目录中  cd / tar zxvf /home.tgz -C /  如果/home中确实没有什么有用的数据,这一步也可以省略。 在配置中删除home vim /etc/fstab # # /etc/fstab # Created by anaconda on Mon Sep 14 10:59:58 2020 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos_llilei-root / xfs defaults 0 0 UUID=f9d37ca9-9024-40e5-9587-b02....

mysql 创建表标准语句

create table IF NOT EXISTS `test_user` ( id int auto_increment, username varchar(255) null, password varchar(255) null, mobile varchar(255), primary key (`id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 comment '权限测试用的表';

mysql

拯救数据库方法 alter table tableName discard tablespace;# 卸载表空间 # 拷贝 idb文件后 alter table tableName import tablespace ;# 导入表空间

mysql 聚合函数 (个人收集的)

sum(列名) 求和 max(列名) 最大值 min(列名) 最小值 avg(列名) 平均值 first(列名) 第一条记录 仅Access支持 last(列名) 最后一条记录 仅Access支持 count(列名) 统计记录数 注意和count(*)的区别 group_concat() #统计group by之后的相同字段

JS 的 URL 的编码或解码方法

URL的合法字符 URL的合法字符表示再浏览器的地址栏中不会被转义的字符,有两种: URL元字符:分号(;),逗号(’,’),斜杠(/),问号(?),冒号(:),at(@),&,等号(=),加号(+),美元符号($),井号(#) 语义字符:a-z,A-Z,0-9,连词号(-),下划线(_),点(.),感叹号(!),波浪线(~),星号(*),单引号(),圆括号(()`) 当输入的字符不符合以上的字符时,浏览器就会把该字符转义,规则:根据操作系统的默认编码,将每个字节转为百分号(%)加上两个大写的十六进制字母。 比如:当再浏览器地址栏中输入 www.baidu.com/q=你好时,会被转义成例如 www.baidu.com/q=%E6%98%A5%E8%8A%82类似的字符串,浏览器才会读取。 JavaScript的四个URL编码/解码方法: encodeURI 将元字符和语义字符之外的字符都进行转义,一般用于知道该URL只用于完整的URL时使用 encodeURIComponent 将除了语义字符之外的字符进行转义,包括元字符,因此,它的参数通常是URL的路径或参数值,而不是....

python 激活环境的进入和退出

创建 conda create -n cling 激活 source bin/activate 切换环境 conda activate cling 退出 conda deactivate

GitHub 基本的基本用法

git使用 cd existing_folder git init git remote add origin http://112.126.100.212:8099/liguanglei/children-pg-ow.git git remote add origin http://112.126.100.212:8099/liguanglei/children-pg-backstage.git git add . git commit -m "Initial commit" git push -u origin master

js 三种在浏览器储存数据的方法

三种本地存储方式 cookie 前言 网络早期最大的问题之一是如何管理状态。简而言之,服务器无法知道两个请求是否来自同一个浏览器。当时最简单的方法是在请求时,在页面中插入一些参数,并在下一个请求中传回参数。这需要使用包含参数的隐藏的表单,或者作为URL参数的一部分传递。这两个解决方案都手动操作,容易出错。cookie出现来解决这个问题。 作用 cookie是纯文本,没有可执行代码。存储数据,当用户访问了某个网站(网页)的时候,我们就可以通过cookie来向访问者电脑上存储数据,或者某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密) 如何工作 当网页要发http请求时,浏览器会先检查是否有相应的cookie,有则自动添加在request header中的cookie字段中。这些是浏览器自动帮我们做的,而且每一次http请求浏览器都会自动帮我们做。这个特点很重要,因为这关系到“什么样的数据适合存储在cookie中”。 存储在cookie中的数据,每次都会被浏览器自动放在http请求中,如果这些数据并不是每个请求都需要发给服务端的数据,浏览器这设置自....

js 中页面跳转的几种方式和区别 有更新!

location.href常见的几种形式 self.location.href;//当前页面打开URL页面 window.location.href;//当前页面打开URL页面 this.location.href;//当前页面打开URL页面 location.href;// 当前页面打开URL页面 parent.location.href;//在父页面打开新页面 top.location.href;//在顶层页面打开新页面 注:①如果页面中自定义了frame,那么可将parent、self、top换为自定义frame的名称,效果是在frame窗口打开url地址。 ②此外,window.location.href=window.location.href;和window.location.Reload();都是刷新当前页面。区别在于是否有提交数据。当有提交数据时,window.location.Reload()会提示是否提交,window.location.href=window.location.href;则是向指定的url提交数据. ③用window.open()打开新页面 但是....

Spring boot实现监听Redis key失效事件

开启redis key过期提醒 修改redis相关事件配置。找到redis配置文件redis.conf,只需修改配置文件redis.conf中的:notify-keyspace-events** Ex**,默认为notify-keyspace-events "", 查看“notify-keyspace-events”的配置项,如果没有,添加“notify-keyspace-events Ex”,如果有值,添加Ex,重启redis。 相关参数如图: K:keyspace事件,事件以__keyspace@<db>__为前缀进行发布; E:keyevent事件,事件以__keyevent@<db>__为前缀进行发布; g:一般性的,非特定类型的命令,比如del,expire,rename等; $:字符串特定命令; l:列表特定命令; s:集合特定命令; h:哈希特定命令; z:有序集合特定命令; x:过期事件,当某个键过期并删除时会产生该事件; e:驱逐事件,当某个键因maxmemore策略而被删除时,产生该事件; A:g$lshzxe的别名,因此”AKE”意味着所有....

Docker安装RabbitMQ

查看镜像 docker search rabbitmq:management 拉取镜像 docker pull docker.io/macintoshplus/rabbitmq-management 查看镜像 docker images 制作容器并启动 docker run -d --hostname fuyi-rabbit --name rabbitmq -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guest -p 15672:15672 -p 5672:5672 c20 参数说明 -d #后台运行 -- homename fuyi-rabbit #主机名 RABBITMQ_DEFAULT_USER=guest #可视化界面登录用户名 RABBITMQ_DEFAULT_PASS=guest #可视化界面登录密码 -p 15672:15672 #端口映射 c20 #镜像ID 启动成功 docker ps -a 登录访问 http://ip:15672/ 用户名密码为 : guest

linux 查询出指定文件并删除

linux查找符合条件的文件并删除 找到根目录下所有的以test开头的文件并把查找结果当做参数传给rm -rf命令进行删除: find / -name “test*” |xargs rm -rf find / -name “test*” -exec rm -rf {} ; rm -rf $(find / -name “test”) 如果想指定递归深度,可以这样: find / -maxdepth 3 -name “*.mp3” |xargs rm -rf find / -maxdepth 3 -name “test*” -exec rm -rf {} ; rm -rf $(find / -maxdepth 3 -name “test”) 这样只会查找三层目录中符合条件的文件并删除掉!

Linux下hydra的使用 有更新!

Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] Parameter: -R 继续从上一次进度接着破解 -S 大写,采用SSL链接 -s 小写,可通过这个参数指定非默认端口 -l 指定破解的用户,对特定用户破解 -L 指定用户名字典 -p 小写,指定密码破解,少用,一般是采用密码字典 -P 大写,指定密码字典 -e 可选选项,n:空密码试探,s:使用指定用户和密码试探 -C 使用冒号分割格式,例如“登录名:密码”来代替-L/-P参数 -M 指定目标列表文件一行一条 -o 指定结果输出文件 -f 在使用-M参数以后,找到第一对登录名或者密码的时候中止破解 -t 同时运行的线程数,默认为16 -w 设置最大超时的时间,单位秒,默认是30s -v / -V 显示详细过程 server 目标ip service 指定服务名....

linux 进程常用命令 有更新!

查看进程启动时间 ps -o lstart -p PID 删除指定名字的说有进程 ps -ef | grep $1 | grep -v grep | cut -c 9-15 | xargs kill -s 9

linux 安装mvn环境

1、下载 wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz 也可以在浏览器去maven官网下载需要的版本,这里安装的是二进制包,所以选择“-bin.tar.gz”结尾的包 2、解压 tar -xf apache-maven-3.6.3-bin.tar.gz -C /usr/local/ mv /usr/local/apache-maven-3.6.3/ /usr/local/maven3.6/ 3、加入环境变量 在/etc/profile文件最下方加入新的一行 export PATH=$PATH:/usr/local/maven3.6/bin 添加完后,执行 source /etc/profile,让配置生效 验证: 执行 which mvn 显示/usr/local/maven3.6/bin/mvn就说明配置成功了 4、JAVA环境 运行maven需要Java环境----系统安装有jdk,并且在系统中配置了JAVA_....