--user-data-dir="D:\自定义文件夹"
例如:
1 | "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir="F:\\ChromeX" |
1 | --user-data-dir //用户数据目录 |
2 | --disk-cache-size //缓存大小(自己定义) |
3 | --disk-cache-dir //上网缓存目录 |
视图中选“大纲”,在大纲视图中,将该段文字选定,设为一级标题。
最近打开Excel文件或者只启动Excel都会出现一个空白的未保存的sheet1.xls文件,在网上搜了一波,终于找到原因。最终原因就是因为电脑装了MySQL导致的。。。
打开Excel,在文件 - 选项 - 加载项 - 管理处选择COM加载项,点击转到… 取消勾选MySQL For Excel即可。
]]>以下是win10默认的环境变量设置,先直接复制过去
1 | %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0; |
1 | C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Intel\Intel® Management Engine Components\iCLS;C:\Program Files\Intel\Intel® Management Engine Components\iCLS;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0;%SYSTEMROOT%\System32\OpenSSH;C:\Program Files (x86)\Intel\Intel® Management Engine Components\DAL;C:\Program Files\Intel\Intel® Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel® Management Engine Components\IPT;C:\Program Files\Intel\Intel® Management Engine Components\IPT;C:\Program Files\Git\cmd;C:\DD\software\apache-maven-3.2.5\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Intel\WiFi\bin;C:\Program Files\Common Files\Intel\WirelessCommon;C:\Program Files\Java\jdk1.8.0_144\bin;C:\Program |
首先进入到/etc/systemd/system目录
1 | cd /etc/systemd/system |
使用vim创建一个新文件,假设我们的项目叫sduserver
1 | vi sduserver.service |
内容:
1 | [Unit] |
2 | Description=sduserver |
3 | After=network.target |
4 | Wants=network.target |
5 | |
6 | [Service] |
7 | Type=simple |
8 | ExecStart=/usr/lib/jvm/java-1.8.0/bin/java -jar /home/package/sduserver.jar |
9 | ExecStop=/bin/kill -s QUIT |
10 | Restart=always |
11 | |
12 | User=root |
13 | Group=root |
14 | [Install] |
15 | WantedBy=multi-user.target |
上面的代码仅需要改三处即可:
Description=后面是你自己项目的名字
ExecStart=紧跟的是jdk的绝对目录
ExecStart这一行最后一部分是jar包的绝对目录
修改之后,按Esc键,然后输入:wq即可保存。
运行下面代码可以设置服务为开机启动
1 | systemctl enable sduserver |
运行下面代码可以禁止服务开启启动
1 | systemctl disable sduserver |
其他命令:
运行下面代码可以启动服务
1 | systemctl start sduserver |
运行下面代码可以停止服务
1 | systemctl stop sduserver |
运行下面代码可以重启服务
1 | systemctl restart sduserver |
将服务器重新启动,然后观察项目是否启动即可。
]]>请求 http://www.yourdomain.com/
转发到 http://www.yourdomain.com:8080/
1 | sudo yum install -y epel-release |
2 | sudo yum -y update |
1 | sudo yum install -y nginx |
安装成功后,默认的网站目录为: /usr/share/nginx/html
默认的配置文件为:/etc/nginx/nginx.conf
自定义配置文件目录为: /etc/nginx/conf.d/
如果你的服务器打开了防火墙,你需要运行下面的命令,打开80和443端口。
1 | sudo firewall-cmd --permanent --zone=public --add-service=http |
2 | sudo firewall-cmd --permanent --zone=public --add-service=https |
3 | sudo firewall-cmd --reload |
1 | [root@localhost ~]# nginx -t |
2 | nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok |
3 | nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful |
1 | ... |
2 | server{ |
3 | ... |
4 | #...默认转发至8080端口 Satrt |
5 | location / { |
6 | proxy_pass http://localhost:8080; |
7 | } |
8 | #...默认转发至8080端口 End |
9 | location /nginx_status |
10 | { |
11 | stub_status on; |
12 | access_log off; |
13 | } |
14 | ... |
15 | } |
16 | ... |
17 | } |
1 | nginx -t |
1 | nginx -s reload |
1.启动 Nginx
1 | systemctl start nginx |
2.停止Nginx
1 | systemctl stop nginx |
3.重启Nginx
1 | systemctl restart nginx |
4.查看Nginx状态
1 | systemctl status nginx |
5.启用开机启动Nginx
1 | systemctl enable nginx |
6.禁用开机启动Nginx
1 | systemctl disable nginx |
1 | service mysql stop |
1 | vim /etc/my.cnf |
1 | service mysql restart |
1 | mysql -uroot |
1 | use mysql; |
1 | update mysql.user set authentication_string=password('新密码') where user='root'; |
1 | flush privileges; |
1 | vim /etc/my.cnf |
1 | mysql -uroot -p新密码 |
2 | 如:mysql -uroot -p20200202 |
2020-01-05 22:22:22
]]>1 | Windows: %APPDATA%\Code |
2 | Linux: $HOME/.config/Code |
3 | macOS: $HOME/Library/Application Support/Code |
1 | Windows: %USERPROFILE%.vscode\extensions |
2 | Linux: ~/.vscode/extensions |
3 | macOS: ~/.vscode/extensions |
1 | pipeline { |
2 | agent { |
3 | docker { |
4 | image 'lenyuadmin/hexo' |
5 | } |
6 | |
7 | } |
8 | stages { |
9 | stage('检出') { |
10 | steps { |
11 | checkout([$class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]], userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]]) |
12 | } |
13 | } |
14 | stage('环境') { |
15 | steps { |
16 | echo '构建中...' |
17 | sh 'npm config set registry http://mirrors.cloud.tencent.com/npm/' |
18 | sh 'npm install' |
19 | sh 'hexo -v' |
20 | echo '构建完成.' |
21 | } |
22 | } |
23 | stage('生产') { |
24 | steps { |
25 | echo '生产中...' |
26 | sh 'hexo clean' |
27 | sh 'hexo g' |
28 | echo '生产完成.' |
29 | } |
30 | } |
31 | stage('部署') { |
32 | steps { |
33 | echo '部署中...' |
34 | dir(path: 'public') { |
35 | sh 'ls' |
36 | sh 'git init' |
37 | sh 'git config user.name $USER_NAME' |
38 | sh 'git config user.email $USER_EMAIL' |
39 | sh 'git add -A' |
40 | sh 'git commit -m \'init\'' |
41 | sh 'git push -u -f "$USER_PROJECT" master:master' |
42 | } |
43 | echo '部署完成' |
44 | } |
45 | } |
46 | } |
47 | } |
1 | USER_NAME = 你的昵称 |
2 | |
3 | USER_EMAIL = 你的邮箱 |
4 | |
5 | USER_PROJECT = 提交的地址 |
6 | |
7 | USER_PROJECT地址的规则是 |
8 | https://子账号名:子账号的密码@项目https地址 |
1 | deploy: |
2 | type: git |
3 | repo: repo: https://令牌用户名:访问令牌@e.coding.net/mcontext/mContext/Blog.git |
4 | branch: master |
令牌用户名和访问令牌在 头像->个人设置->访问令牌
1 | pipeline { |
2 | agent any |
3 | stages { |
4 | stage('检出') { |
5 | steps { |
6 | checkout([$class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]], |
7 | userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]]) |
8 | } |
9 | } |
10 | stage('构建') { |
11 | steps { |
12 | echo '构建中...' |
13 | sh 'node -v' |
14 | sh 'npm install -g hexo-cli' |
15 | sh 'npm install hexo --save' |
16 | sh 'npm install -g hexo-generator-searchdb' |
17 | sh 'npm install -g' |
18 | echo '构建完成.' |
19 | } |
20 | } |
21 | stage('测试') { |
22 | steps { |
23 | echo '单元测试中...' |
24 | sh 'hexo clean' |
25 | sh 'hexo g ' |
26 | echo '单元测试完成.' |
27 | } |
28 | } |
29 | stage('部署') { |
30 | steps { |
31 | echo '部署中...' |
32 | sh 'npm install hexo-deployer-git --save' |
33 | sh 'hexo deploy' |
34 | echo '部署完成' |
35 | } |
36 | } |
37 | } |
38 | } |
1 | sh -c "$(wget --secure-protocol=TLSv1 https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)" |
1 | sudo apt-get install nodejs |
1 | sudo apt-get install git |
1 | npm install -g hexo |
1 | hexo init 文件夹的名字(假设为BLOG) |
2 | cd BLOG |
3 | npm install //安装依赖 |
1 | cd BLOG |
2 | git config --global user.name "username" // username为你自己的github用户名 |
3 | git config --global user.email "email@example.com" |
为了用于保存hexo的代码,防止hexo代码遗失,并方便不同平台博客编辑的同步,可以将hexo的代码保存到github上,方式是新建一个仓库,并进行并联
1 | git remote add origin git://github.com... |
修改BLOG目录下的_config.yml里面的Deployment部分为
deploy:
type: git
repo: git@github.com:username/username.github.io.git
branch: master
常用命令
1 | hexo g //generate ,编译成静态文件 |
2 | hexo d //deploy, 部署网站 |
3 | hexo s //server, 本地运行 |
4 | hexo c //clean, 清空generate生成器的文件 |
新建博文
1 | hexo new post "newPost" |
1 | hexo generate |
2 | hexo deploy |
3 | hexo server //本地查看 |
本人使用的是 yilia
访问自己的博客:https://username.github.io/ (username为自己的用户名)
Hexo经验
使用hexo g有时会出现
TypeError: Cannot read property ‘compile’ of undefined
解决的方法降低使用的hexo的版本,打开package.json
1 | "dependencies": { |
2 | "hexo": "^3.1.0", //这里修改为 3.1.1 |
3 | "hexo-deployer-git": "^0.1.0", |
4 | "hexo-generator-archive": "^0.1.2", |
5 | "hexo-generator-category": "^0.1.2", |
6 | "hexo-generator-index": "^0.1.2", |
7 | "hexo-generator-tag": "^0.1.1", |
8 | "hexo-renderer-ejs": "^0.1.0", |
9 | "hexo-renderer-jade": "^0.2.0", |
10 | "hexo-renderer-less": "^0.1.3", |
11 | "hexo-renderer-marked": "^0.2.4", |
12 | "hexo-renderer-stylus": "^0.3.0", |
13 | "hexo-server": "^0.1.2" |
14 | } |
修改好hexo的版本后再npm install更新下版本就可以了
]]>1 | git config --global user.email "ingressjinyu@gmail.com" |
2 | git config --global user.name "mContext" |
1 | git config --global credential.helper store |
1 | git config --global http.https://github.com.proxy http://127.0.0.1:1080 |
setx /m Path "%PATH%;D:\BlogGit\node-v12.13.1-win-x64;D:\BlogGit\PortableGit"
另存为bat,以管理员身份运行
]]>开始——>设置–>搜索”启用或关闭 Windows 功能“,点击弹出”Windows 功能“对话框.
在弹出”Windows 功能“对话框中,找到”Windows Subsystem for linux“/“适用于Linux的Windows子系统“条目,点击选中其前面的复选框。
点击确定等待下载安装完成后重启.
如果 Microsoft Store 应用不可用,则可以通过单击以下链接下载并手动安装 Linux 发行版:
官网链接: https://aka.ms/wsl-ubuntu-1804百度网盘链接: https://pan.baidu.com/s/1p5ZzYTeQTko-V4_dwYl_Rw 提取码: uf8k
将下载的appx文件后缀名改为zip后解压到”D:\WSLUbuntu”,
在目录中的exe文件上右键以管理员身份运行
使用 PowerShell 安装发行版。 只需导航到包含上面下载的发行版的文件夹,并在该目录中运行以下命令,其中 app_name 是发行版文件的名称。
1 | Add-AppxPackage .\app_name.appx |
首次运行新安装的分发版时,会打开一个控制台窗口,其中指出需要等待一两分钟时间来完成安装。
安装完成后,系统会提示创建新的用户帐户(及其密码)。
1 | sudo passwd root |
1 | D:\WSLUbuntu\ubuntu1804.exe config --default-user root |
1 | net stop LxssManager |
2 | net start LxssManager |
启动的时候,在命令行中输入bash就可以启动.
另外存放在linux系统,点击exe也可以启动.两种方式启动的默认路径不一样.
如果安装了多个发行版,默认启动的发行版可以指定.指定方式为
使用wslconfig /l查看所有的发行版.
使用wlsconfig /s 发行版名,指定默认发行版.
1 | ray@mContext:~/blog$ lsb_release -a |
2 | No LSB modules are available. |
3 | Distributor ID: Ubuntu |
4 | Description: Ubuntu 18.04.3 LTS |
5 | Release: 18.04 |
6 | Codename: bionic |
1 | cp /etc/apt/sources.list /etc/apt/sources.list.bak |
参考:https://developer.aliyun.com/mirror
用你熟悉的编辑器打开:/etc/apt/sources.list
替换默认的archive.ubuntu.com为mirrors.aliyun.com
例如:Vim编辑器
1 | sudo vi /etc/apt/sources.list |
2 | :% s/archive\.ubuntu\.com/mirrors.aliyun.com/g |
1 | sudo apt update && sudo apt upgrade |
在Win10 LTSC 2019之前,卸载可以用lxrun工具,但是LTSC 2019抛弃了这个工具.因此你可以在别的地方看到很多说重装linux子系统要用lxrun的.这都是老黄历,不要采信.
前面提了一句,这个所谓安装其实只是注册.因而卸载的时候只要解除注册就可以.解除注册还是用刚才提到的wslconfig
因而卸载过程为:在命令行输入“wslconfig /u 发行版名” ,解除注册.然后删掉相应的文件夹即可.
1 | C:\Users\hanaxilo\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\ |
1 | C:\Users\hanaxilo>wslconfig ? |
2 | 对 Windows 上的 Linux 子系统进行操作管理 |
3 |
|
4 | 用途: |
5 | /l, /list [/all] |
6 | 列出已注册的分发版。 |
7 | /all - 有选择地列出所有分发版,包括 |
8 | 当前正在安装或卸载的分发版。 |
9 |
|
10 | /s, /setdefault <DistributionName> |
11 | 将该分发版设为默认。 |
12 |
|
13 | /t, /terminate <DistributionName> |
14 | 终止分发。 |
15 |
|
16 | /u, /unregister <DistributionName> |
17 | 取消分发版注册。 |
18 |
|
19 | /upgrade <DistributionName> |
20 | 将分发版升级至 WslFs 文件系统格式。 |
1 | [package.json] js-sequence-diagrams changed the way of adding version number |
I try to open HexoEditor/package.json and change
“js-sequence-diagrams”: “^1000000.0.6”,
into
“js-sequence-diagrams”: “0.0.1-security”,
then npm install successfully
https://github.com/zhuzhuyule/HexoEditor/issues/69
extract:fsevents: sill extract fsevents@^1.0.0 extracted to XXXXXXXX
解决
删除node_module
1 | npm cache clean --force |
2 | |
3 | npm install fsevents@1.2.9 --save |
4 | |
5 | sudo usermod -s /usr/bin/zsh $(whoami) |
6 | |
7 | sudo usermod -s /bin/bash $(whoami) |
8 | |
9 | alias |
10 | |
11 | alias gitpush = 'git add . && git commit -m "update" && git push origin master' |
12 | alias hgs = 'hexo g && hexo s' |
13 | alias hgd = 'hexo clean && hexo deploy' |
1 | npm config set prefix "D:/BlogGit/npmCache/npm_global" |
2 | npm config set cache "D:/BlogGit/npmCache/npm_cache" |
1 | npm install -g cnpm --registry=https://registry.npm.taobao.org |
1 | npm config set registry https://registry.npmjs.org |
1 | npm config set registry https://registry.npm.taobao.org |
1 | npm config get registry |
修改ssh服务配置文件
sudo vi /etc/ssh/sshd_config
调整PermitRootLogin参数值为yes
同上,修改ssh服务配置文件,两种情况:
1) 将PermitEmptyPasswords yes前面的#号去掉2) 将PermitEmptyPasswords 参数值修改为yes,如下图:
无论哪种,最后PermitEmptyPasswords参数值为yes
以上两种配置,均需要重启ssh服务
service sshd restart # 或者/etc/initd.d/sshd restart
为了安全起见,FreeBSD默认情况下是不允许root用户进行SSH远程登录的,需要进行以下操作才可以进行Root用户的ssh远程登录。
首先vi编辑/etc/inetd.conf,去掉ssh前的#注释,保存后:wq退出 (开启监听ssh服务)
编辑/etc/rc.conf, 最后加入:sshd_enable=”yes”即可
激活sshd服务:
#/etc/rc.d/sshd start
检查服务是否启动,在22端口应该有监听。
# check port number 22#netstat -an # 或#netstat -tnlp
最后,编辑ssh配置文件
#vi /etc/ssh/sshd_config
在/etc/ssh/sshd_config最后中加入
PermitRootLogin yes #允许root登录PermitEmptyPasswords no #不允许空密码登录PasswordAuthentication yes # 设置是否使用口令验证。
修改完配置文件后,重新启动sshd服务器(/etc/rc.d/sshd restart)即可。
补充:
nano /root/.ssh/authorized_keys
no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Please login as the user "ubuntu" rather than the user "root".';echo;sleep 10" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek4FPQJABENkrUiLVP61LObdFAZXvs2EpCf/nBQCRg4ykMNg+8TC9lb7jC65zfIrTUcNcwongDb43k6miSKu1M8fdqXDpcb8CdDRaKpM2wP8l+hTaJ2aWycXmGJ7lZKQPiwNUOhbrOLNEtDmOI9eiVlz7See98LVLW+6AwfzNA8Cu4riDTvEMQr/WQ9NLrS3BZE1TAAswJi9lGDfTgEvfh4Ji+eI/xTXrjkkwjerkjk3jrkwejrkjwe9wASXob4rbV12TXjQIcMKaRGQAGrwOHu0nM2ibfTdgqjrTAG03CXKzQhF09LdxKlT7GpYe0oVU2R1kjkejwQp howtoing.com
删除ssh-rsa 前面的no-port….
]]>1 | (function(){ |
2 | $("#side").remove(); |
3 | $("#comment_title, #comment_list, #comment_bar, #comment_form, .announce, #ad_cen, #ad_bot").remove(); |
4 | $(".nav_top_2011, #header, #navigator").remove(); |
5 | $(".p4course_target, .comment-box, .recommend-box, #csdn-toolbar, #tool-box").remove(); |
6 | $("aside").remove(); |
7 | $(".tool-box").remove(); |
8 | $("main").css('display','content'); |
9 | $("main").css('float','left'); |
10 | window.print(); |
11 | |
12 | $("tool-box").remove(); |
13 | })(); |
系统属性–>高级–>性能选项(设置)–>视觉效果–>平滑屏幕字体边缘
1 | public class ViewHolder { |
2 | // I added a generic return type to reduce the casting noise in client code |
3 | @SuppressWarnings("unchecked") |
4 | public static <T extends View> T get(View view, int id) { |
5 | SparseArray<View> viewHolder = (SparseArray<View>) view.getTag(); |
6 | if (viewHolder == null) { |
7 | viewHolder = new SparseArray<View>(); |
8 | view.setTag(viewHolder); |
9 | } |
10 | View childView = viewHolder.get(id); |
11 | if (childView == null) { |
12 | childView = view.findViewById(id); |
13 | viewHolder.put(id, childView); |
14 | } |
15 | return (T) childView; |
16 | } |
17 | } |
在getView里这样
1 | @Override |
2 | public View getView(int position, View convertView, ViewGroup parent) { |
3 | |
4 | if (convertView == null) { |
5 | convertView = LayoutInflater.from(context) |
6 | .inflate(R.layout.banana_phone, parent, false); |
7 | } |
8 | |
9 | ImageView bananaView = ViewHolder.get(convertView, R.id.banana); |
10 | TextView phoneView = ViewHolder.get(convertView, R.id.phone); |
11 | |
12 | BananaPhone bananaPhone = getItem(position); |
13 | phoneView.setText(bananaPhone.getPhone()); |
14 | bananaView.setImageResource(bananaPhone.getBanana()); |
15 | |
16 | return convertView; |
17 | } |
优点:
因广播数据在本应用范围内传播,你不用担心隐私数据泄露的问题。
不用担心别的应用伪造广播,造成安全隐患。
相比在系统内发送全局广播,它更高效。
缺点:
它只能够在同一个进程使用,如果本应用是多进程的。必须保证发送者和接收者是在同一个进程内。
它只能够动态注册和取消。
先通过LocalBroadcastManager获取实例
1 | LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(this); |
然后通过函数 registerReceiver来注册监听器
1 | registerReceiver(newBroadcastReceiver() { |
2 | |
3 | |
4 | public void onReceive(Context context, Intent intent) { |
5 | |
6 | // TODO Handle the received local broadcast |
7 | |
8 | } |
9 | |
10 | }, newIntentFilter(XXXX)); |
通过 sendBroadcast 函数来发送广播
1 | lbm.sendBroadcast(newIntent(XXXX)); |
优点:
支持跨进程
receiver可以是静态注册也可以是动态注册。
只有指定的包名的应用程序才能够接收到数据,所以安全性较高。
缺点:
如果一旦反编译,很容易伪造广播,造成安全隐患
在系统内发生全局广播,它效率较低
它只能够满足一个应用的需求,不能够同时指定多个
1 | Intent intent = new Intent(); |
2 | intent.setPackage("应用包名"); |
3 | intent.setAction("消息action"); |
4 | sendBroadcast(intent); |
优点:
可以指定到具体某一个receiver,安全性更高
receiver可以是静态注册也可以是动态注册。
缺点:
使用实例:
1 | Intent intent = new Intent(); |
2 | |
3 | intent. setComponent(newComponentName("包名", "Receiver类名")); |
4 | |
5 | intent.setAction("消息action"); |
6 | |
7 | sendBroadcast(intent); |
如果担心反编译后,权限被窃取,限制失效。可以在声明权限时,提高权限的leverl为签名验证,即只有相同签名的应用且有该权限才能够接收,这样就能够满足产品簇的问题。
使用实例:
1 | AndroidManifest.xml |
2 | |
3 | <permission android:description="@string/XXX" |
4 |
|
5 | android:label="XXXX" |
6 |
|
7 | android:name=" com.test.permission" |
8 |
|
9 | android:protectionLevel=" signature"> |
10 | |
11 | <receiver |
12 |
|
13 | android:name="XXXX" |
14 |
|
15 | android:permission="com.test.permission" > |
16 | |
17 | <intent-filter > |
18 | |
19 | <actionandroid:name="XXXXX" /> |
20 | |
21 | </intent-filter> |
22 | </receiver> |
Java:
1 | Intent intent = new Intent(); |
2 | |
3 | intent.setAction("消息action"); |
4 | |
5 | sendBroadcast(intent, "com.test.permission"); |
注意:如果要求安全级别较高,使用签名验证机制即使优点又是缺点。目前还没有找到更好的方法,能够满足多个指定应用都能够接收消息,且安全级别不会受到伪造或窃取的风险。
原文:http://blog.csdn.net/mingli198611/article/details/17762149
]]>1 | $ hexo new "My New Post" |
More info: Writing
1 | $ hexo server |
More info: Server
1 | $ hexo generate |
More info: Generating
1 | $ hexo deploy |
More info: Deployment
]]>