软件篇
Snipast
- 下载地址
- 一个简单但强大的截图工具,也可以让你将截图贴回到屏幕上。
Office Tool Plus
- 下载地址
- Office Tool Plus 基于 Office 部署工具 (ODT) 打造,可以很轻松地部署 Office
UsbEAm Hosts Editor
- 下载地址
- 羽翼城大佬开发的多平台hosts修改工具
- 左下角选择要加速的应用>检测延迟>选中
SwitchHosts
一个管理、快速切换Hosts小工具,开源软件
支持远程 hosts,直接从指定网址读取 hosts 内容,方便多台机器同步 hosts 设置
清除DNS缓存方法
- 在 Windows 下命令行执行:ipconfig /flushdns
- 在 macOS 下执行命令:sudo killall -HUP mDNSResponder
- 如果你使用 Chrome 浏览器,那么可以访问:chrome://net-internals/#dns,然后点击「Clear host cache」按钮来清空浏览器里的 DNS 缓存。
Everything
- 强大文件搜索工具
Typora
不多介绍,牛逼的markdown 工具
记录下markdown语法
生成目录
[TOC]
代办
- [] TODO
- [x] OK
- TODO
- OK
分割线
***
etc
删除线 文字的两端加上两个波浪线 ~~ 即可
删除下划线 HTML 的 标签来实现
带下划线文本
脚注
[^要注明的文本]
创建脚注格式类似这样 [^RUNOOB]
[^RUNOOB]: 菜鸟教程 !
字体
1
2
3
4
5
6*斜体文本*
_斜体文本_
**粗体文本**
__粗体文本__
***粗斜体文本***
___粗斜体文本___斜体文本
斜体文本
粗体文本
粗体文本
粗斜体文本
粗斜体文本无序列表
+ - *
有序列表使用数字并加上 . 号来表示
Sublime
发现左上角提升未注册
百度教程
激活注册
改hosts:
百度hosts文件的位置,用记事本或者notepad++打开编辑。加上下面这段代码:
1
2
3
4
5
6
7127.0.0.1 www.sublimetext.com
127.0.0.1 sublimetext.com
127.0.0.1 sublimehq.com
127.0.0.1 license.sublimehq.com
127.0.0.1 45.55.255.55
127.0.0.1 45.55.41.223
0.0.0.0 license.sublimehq.com输入注册码:
一定要改一下hosts在输入注册码,否则可能失败。菜单栏->enter license,复制粘贴下列全部粘贴至打开的对话框。
1
2
3
4
5
6
7
8
9
10
11
12
13----- BEGIN LICENSE -----
Member J2TeaM
Single User License
EA7E-1011316
D7DA350E 1B8B0760 972F8B60 F3E64036
B9B4E234 F356F38F 0AD1E3B7 0E9C5FAD
FA0A2ABE 25F65BD8 D51458E5 3923CE80
87428428 79079A01 AA69F319 A1AF29A4
A684C2DC 0B1583D4 19CBD290 217618CD
5653E0A0 BACE3948 BB2EE45E 422D2C87
DD9AF44B 99C49590 D2DBDEE1 75860FD2
8C8BB2AD B2ECE5A4 EFC08AF2 25A9B864
------ END LICENSE ------接下来应该是显示激活成功,激活成功后可将之前hosts文件添加内容删掉
设置软件不更新:
菜单栏->preferences->settings,在右侧代码框里添加下面这句代码
1
"update_check":false
注意添加的位置
插件安装(优先下载一个插件包,是一个名字叫“Package Control”的文件,所有的插件都是通过插件包下载的)
- 看教程似乎有被墙的样子,需要离线安装,我这边似乎是修改了hosts可以正常下载package。
MobaXterm
一款很强大的终端工具
1
2
3
4
51. 功能十分强大,支持SSH,FTP,串口,VNC,X server等功能;
2. 支持标签,切换也十分方便;
3. 众多快捷键,操作方便;
4. 有丰富的插件,可以进一步增强功能;
5. 有收费版,但免费版已够用
Cmder
学习
配置相关
配置环境变量
将
Cmder.exe
所在文件路径添加到系统环境变量的Path
下配置右键快捷启动,以管理员身份打开
cmd
,执行以下命令。1
2// 设置任意地方鼠标右键启动Cmder
Cmder.exe /REGISTER ALL
谷歌访问
- Pigcha
插件篇
国内copy谷歌商店https://www.gugeapps.net/
save all resources
Chrome扩展程序一键下载所有资源文件并保留文件夹结构。
Video Octopus
对各种网页视频进行下载,而且支持不同格式网页视频的嗅探,支持批量下载保存,功能强大,实用性强
SingleFile
将一个完整的页面保存到单个 HTML 文件中
简悦
阅读模式插件 http://ksria.com/simpread/
工具篇
nvm
- node版本管理工具。
- 安装前确保已卸载安装的node。
- 安装后控制台输入
nvm install 1.xx
或nvm install latest(最新版)
- 需要
nvm use 1.xx
开启node的使用,node -v
与npm -v
检测安装情况。 - 配置npm下载源
npm config set registry https://registry.npm.taobao.org
拓展
1 | 设置nvm下载node的地址`nvm node_mirror https://npm.taobao.org/mirrors/node ` |
报错
1 | C:\Users\tiger>nvm install v14.17.3 |
nvm命令
1 | 1. nvm arch :显示node是运行在32位还是64位。 |
npm安装vue-cli
npm install vue-cli -g
下载的是vue-cli2- 创建项目
vue init xxx
- 创建项目
npm install @vue/cli -g
下载vue-cli3- 创建项目
vue create xxx
- 创建项目
node安装
centos下安装
1
2https://www.cnblogs.com/zhi-leaf/p/10979629.html
https://www.cnblogs.com/tengqf/articles/14220444.html选择安装位置
1
cd /usr/local/node
下载
1
wget https://npm.taobao.org/mirrors/node/v12.16.1/node-v12.16.1-linux-x64.tar.gz
解压
1
tar -xvf node-v12.16.1-linux-x64.tar.gz
进入到node-v12.16.1-linux-x64.tar.gz,执行一下命令安装Node.js的依赖组件
1
2cd node-v12.16.1-linux-x64.tar.gz
yum install gcc gcc-c++重命名node-v12.16.1-linux-x64.tar.gz文件夹为Node.js
1
2cd .. //先返回上一级目录
mv node-v12.16.1-linux-x64.tar.gz NodeJs部署bin文件并建立软连接(类似于Windows中配置环境变量)
ln指令用于创建关联
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16进入到/usr/local/node/NodeJs/bin, dir看到node npm npx
执行以下命令
ln -s /usr/local/node/NodeJs/bin/node /usr/bin/node
ln -s /usr/local/node/NodeJs/bin/npm /usr/bin/npm
ln -s /usr/local/node/NodeJs/bin/npx /usr/bin/npx
切换到根路径 检验一下node
上面是针对那几个链接了一下,下面可以针对bin文件夹,
因为以 -g 全局安装的插件都在 node 安装目录 bin 文件下,bin 下都是命令语句,为了可以在任何目录都可以使用命令,我们将此文件夹加入环境变量。
1.查看环境变量echo $PATH
2.编辑vim /etc/profile
// 在文档最后,添加:
# node
export NODE_HOME=/usr/local/node/NodeJs
export PATH=$PATH:$NODE_HOME/bin
3.使生效source /etc/profile
git
centos下安装
如果是cetos7以及以上版本的,推荐使用yum安装,方便。
如果是cetos7以下的,请使用git源码编译安装git。
使用yum安装git
yum -y install git
使用git源码安装git
配置基本信息
1
2
3
4git config --global user.email "git注册邮箱"
git config --global user.name "git Name"
查看
git config --list初始化 > 添加 > 提交 > github上创建一个远端库>关联本地与远端
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17git init
git add .
git commit -m 'xxx'
git commit 不加后面的会进入vim编辑模式
https://blog.csdn.net/bianliuzhu/article/details/81905343
https方式
git remote add origin https://github.com/username/github上创建库.git
git push --set-upstream origin master
(git push -u origin master)
出现认证弹窗,认证授权即可(https方式)
git pull origin xxx
ssh方式
https://blog.csdn.net/qq_36667170/article/details/79094257
git remote rm origin 删除关联的origin的远程库
nginx
-
- 推荐稳定版,下载下来解压就可以看到exe程序了。
高性能的HTTP和反向代理web服务器
使用
1
2
3
4
5
6
7
8
9
10# 命令方式
start nginx.exe #启动nginx
# 直接双击运行ngnix.exe
#启动成功访问http://localhost/可以看到欢迎界面
nginx -s reload #重启服务
nginx -s stop #停止服务
#### linux下
/usr/local/nginx/sbin/nginx -s reload配置
nginx.conf
文件1
# 注意location中路径是'/'反斜杠,文件夹上直接复制过去的是'\'
centos下使用
nginx依赖安装
1、安装gcc
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境。
1
2###查看gcc版本
gcc -v一般阿里云的centOS7里面是都有的,没有安装的话会提示命令找不到
1
yum -y install gcc
2、pcre、pcre-devel安装
pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库。1
yum install -y pcre pcre-devel
3、zlib安装
zlib库提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip,所以需要安装。1
yum install -y zlib zlib-devel
4、安装openssl
openssl是web安全通信的基石,没有openssl,可以说我们的信息都是在裸奔。1
yum install -y openssl openssl-devel
安装nginx
1、下载nginx安装包
1
wget http://nginx.org/download/nginx-1.9.9.tar.gz
2、把压缩包解压到当前目录
1
tar -zxvf nginx-1.9.9.tar.gz
3、切换到cd /当前目录/nginx-1.9.9/下面
1
2
3./configure
make
make install4、编译完成之后,所有的配置都会在/usr/local/nginx的目录下面
1
2
3
4
5
6
7
8### 查找安装路径
whereis nginx
#### 启动
/usr/local/nginx/sbin/nginx (无参数) 启动 (-s stop)关闭 (-s reload)重启
### 进入
cd /usr/local/nginx/sbin
###启动nginx
./nginx5、查看nginx服务是否启动成功
1
2ps -ef | grep nginx
如果能看到两个相邻ID的进程,说明启动成功6、访问你的服务器IP
参考:
mysql
关系型数据库
mysql服务常见命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
221.mysql -v
2.登录数据库时,你可以看到对应mysql数据库的版本信息
3.rpm -qa | grep mysql
登录mysql以username角色
mysql -u `username` -p
查看mysql位置
rpm -qal |grep mysql
查看mysql运行状态
systemctl status mysqld.service
启动mysql
systemctl start mysqld.service
结束
systemctl stop mysqld.service
重启
systemctl restart mysqld.service
开机自启
systemctl enable mysqld.service
退出mysql
mysql>quit
查看mysql版本
mysql>select version();linux下命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16# 解压缩相关
tar -zcvf 压缩
tar -zxvf 解压
zip -q -r 压缩包名.zip 目录/文件名
unzip 解压zip
###rpm软件包形式的管理虽然方便,但是需要手工解决软件包的依赖关系。很多时候安装一个软件安装一个软件需要安装1个或者多个其他软件,手动解决时,很复杂,yum解决这些问题。Yum是rpm的前端程序,主要目的是设计用来自动解决rpm的依赖关系
rpm -ivh xxx.rpm 安装软件
rpm -ivh 包名(支持*):安装rpm包
rpm -e 包名(不支持*):卸载rpm包
rpm -q < rpm package name>查询一个包是否被安装
rpm -qa | grep xxx 查询所有xxx是否安装
yum -y install 包名(支持*) :自动选择y,全自动
yum install 包名(支持*) :手动选择y or n
yum remove 包名(不支持*)centos下安装使用
安装前检查(我在安装时mariadb并没有卸载也欧克了,mysql服务器上原本就没有)
由于MySQL在CentOS7中收费了,所以已经不支持MySQL了,取而代之在CentOS7内部集成了mariadb,而安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB。
1
2
3
4
5
6先检查是否有安装其他版本的mysql:
rpm -qa | grep mysql
检查是否有安装mariadb
rpm -qa|grep mariadb
有则卸载
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64安装mysql官方yum源
mysql repo下载地址
https://dev.mysql.com/downloads/
1
2
3
4
5
6
7
8###下载
wget -i -c https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
###安装
rpm -ivh install mysql80-community-release-el7-1.noarch.rpm
会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo
###更新 yum
yum clean all
yum makecache使用 yum安装mysql
1
2
3
4
5
6
7
8
9
10第一步: 查看mysql yum仓库中mysql版本
yum repolist all | grep mysql
可以看到 MySQL 5.5 5.6 5.7为禁用状态 而MySQL 8.0为启用状态
第二步 使用 yum-config-manager 命令修改相应的版本为启用状态最新版本为禁用状态,根据需要安装的版本修改。
以下只是演示(我们这里使用不作修改,使用8)
yum-config-manager --disable mysql80-community #关闭8.0版本
yum-config-manager --enable mysql57-community #开启5.7版本
或者可以编辑 mysql repo文件
cat /etc/yum.repos.d/mysql-community.repo
将相应版本下的enabled改成 1 即可安装
1
yum install mysql-community-server
启动
1
systemctl start mysqld.service
获取初始密码、修改密码
1
2
3
4
5
6#会得到初始密码
> cat /var/log/mysqld.log | grep password
#会提示输入密码
> mysql -u root -p
#注意位数和种类至少大+写+小写+符号+数字
>ALTER USER 'root'@'localhost' IDENTIFIED BY 'Qwer1234?';忘记密码重置密码
[重置密码解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)]
1
2
3>vim /etc/my.cnf #注:windows下修改的是my.ini
>skip-grant-tables# 在[mysqld]后面任意一行添加skip-grant-tables用来跳过密码验证的过程;设置完密码记得删除
>systemctl restart mysqld.service #重启mysql ,就可以免密码登陆了,然后进行修改密码远程登录
默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,添加一个新的帐户,mysql8和原来的版本有点不一样,8的安全级别更高,所以在创建远程连接用户的时候,不能用原来的命令(同时创建用户和赋权):
必须先创建用户(密码规则:mysql8.0以上密码策略限制必须要大小写加数字特殊符号)再赋值:
创建用户设置密码
1
2
3
4### 记录下我愚蠢的一幕。。。其实命令没问题,主要是没理解这里面的含义,@前面那个 tiger是用户名 @后面是主机名。
【create user tiger@'%' identified by 'Tiger123?';】
### 正确
create user 'tiger'@'localhostName' identified by 'Tiger123?';进行权限赋值
1
grant all privileges on *.* to tiger@'localhostName' with grant option;
最后刷新
1
flush privileges;
重启mysql
1
systemctl restart mysqld
开启防火墙3306端口
1
由于用的云服务器直接去其控制台上开放即可,命令参考下面centos部分的命令(注意centos7与centos6命令有区别)。
将mysql加入开启启动项,并启动mysql进程
1
2systemctl enable mysqld.service
systemctl start mysqld.service修改编码支持utf-8
1
2mysql> status
mysql8好像默认就是utf8mb4参考
2.CentOS7.5 安装 Mysql8.0.19的教程图文详解
上面2个教程差别在一个是在线yum源下载,一个是在外面把mysql下载好上传到服务器上解压安装,2里面有个命令解释有问题,
alter user 'root'@'%' identified with mysql_native_password by 'root'
作用是插入用户并修改mysql加密规则。这个博客里提到了修改mysql密码设置规范,以及一个未验证的
因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉
话。博客ui不错,离线式安装
这个博客远程访问、修改密码讲的比较详细
离线安装式、修改mysql的字符集,统一编码设置
在线安装
遇到的一些问题
连接不上mysql报错:
Client does not support authentication protocol requested by server
原因:mysql9.0版本以上换了加密算法,node还不支持,mysql8 之前的版本中加密规则是 mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password。
解决方法:
1
2
3
4
5
6# 修改密码并设置永不过期
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Qwer1234?' PASSWORD EXPIRE NEVER;
# 修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Qwer1234?';
# 刷新权限
FLUSH PRIVILEGES;查看结果
1
2use mysql
select user,host,plugin from user where user='root';参考:
https://blog.csdn.net/weixin_43111077/article/details/108811949
https://www.cnblogs.com/tourey-fatty/p/12522784.html
express项目运行在服务器上时,接口访问提示错误
ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'localhost' (using password: YES)
问题,似乎用不了创建的tiger账户,必须用root账户后端项目运行才正常。。。原因找到了,创建的tiger账户主机名不叫
localhost
,叫%
。。。 一切都要源自创建tiger账户的那个操作。。。
centos
-
1
2
3
4
5
6
7
8
9
10
11CentOS 7提供的ISO镜像文件:
DVD ISO 标准安装版,推荐使用(安装这个好像都不用手动分区)
Everything ISO 对完整版安装盘的软件进行补充,集成所有软
Minimal ISO 精简版,自带的软件最少
CentOS-7.x-1406-x86_64-DVD.iso 标准安装版
CentOS-7.x-1406-x86_64-NetInstall.iso 网络安装镜像
CentOS-7.x-1406-x86_64-Everything.iso 对完整版安装盘的软件进行补充,集成所有软件
CentOS-7.x-1406-x86_64-GnomeLive.iso GNOME桌面版
CentOS-7.x-1406-x86_64-KdeLive.iso KDE桌面版
CentOS-7.x-1406-x86_64-livecd.iso 光盘上运行的系统,类拟于Windows PE
CentOS-7.x-x86_64-Minimal-1503-01.iso 精简版,自带的软件最少 目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16/ 是根节点, ~ 是 home
如果以root账号登陆
~ 是 /root/
/ 是 /
如果以 name 登陆
~ 是 /home/name/
/ 是 /
端口占用
netstat -lnp|grep 88
查看具体进程
ps 1777
干掉进程
kill -9 1777命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26df -h 查看硬盘分区情况
su 获取管理员权限(登录)
ip addr 获取ip地址
pwd 显示工作路径
ll
ls 查看目录中的文件
ls -l 显示文件和目录的详细资料
ls -a 显示隐藏文件
mkdir dir1 dir2 同时创建两个目录
rm -f file1 删除一个叫做 'file1' 的文件'
rmdir dir1 删除一个叫做 'dir1' 的目录'
cat /etc/redhat-release 查看系统版本
=====防火墙相关=====
firewall-cmd --state 查看防火墙状态
systemctl stop firewalld.service 停止firewall
systemctl disable firewalld.service 禁止firewall开机启动
firewall-cmd --list-ports 查看开放的端口
firewall-cmd --zone=public --add-port=9200/tcp --permanent 开启防火墙端口
命令含义:
–zone #作用域
–add-port=9200/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
注意:添加端口后,必须用命令firewall-cmd --reload重新加载一遍才会生效
firewall-cmd --zone=public --remove-port=9200/tcp --permanent 关闭防火墙端口
vim
命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14vim /etc/gitlab/gitlab.rb
external_url 'http://10.0.4.9:8888'
启动Vim后,vim在 Normal 模式下。
让我们进入 Insert 模式,请按下键 i
如果你想返回 Normal 模式,请按 ESC 键。
:w 保存文件但不退出vi
:w file 将修改另外保存到file中,不退出vi
:w! 强制保存,不推出vi
:wq 保存文件并退出vi
:wq! 强制保存文件,并退出vi
q: 不保存文件,退出vi
:q! 不保存文件,强制退出vi
:e! 放弃所有修改,从上次保存文件开始再编辑参考
gitlab
gitlab是一个开源的git仓库管理软件,并提供web界面,方便管理git仓库。
gitlab推荐4核4g内存。
命令
1
2
3
4
5
6
7
8
9sudo gitlab-ctl start # 启动所有 gitlab 组件;
sudo gitlab-ctl stop # 停止所有 gitlab 组件;
sudo gitlab-ctl restart # 重启所有 gitlab 组件;
sudo gitlab-ctl status # 查看服务状态;
sudo gitlab-ctl reconfigure # 启动服务;
sudo vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
sudo gitlab-ctl tail # 查看日志;
sudo gitlab-rake gitlab:env:info 查看各组件版本信息安装过程
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
481.编辑安装源
vim /etc/yum.repos.d/gitlab-ce.repo #进入vim编辑模式
输入
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
2.更新本地yum安装gitlab
yum makecache
yum install gitlab-ce
3.端口配置
vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.147.128:82'
nignx['listen_port']=82
4.配置更新再启动gitlab
gitlab-ctl reconfigure #要个7.8分钟,我在云服务器上卡了好久似乎是内存只有2g导致的,action run循环
gitlab-ctl status # 查看服务状态
gitlab-ctl restart # 启动服务
5.把端口添加到防火墙
firewall-cmd --zone=public --add-port=82/tcp --permanent
firewall-cmd --reload
6.访问登录
>进入gitlab-rails控制台
>sudo gitlab-rails console
>查找切换账号
>u=User.where(id:1).first
>修改密码
>u.password='更改后的密码'
>再次确认密码
>u.password_confirmation='更改后的密码'
>保存
>u.save!
特此感谢这位大佬的教程,中间尝试了
1.cd /opt/gitlab/bin
sudo ./gitlab-rails console production
第二步就夭折了ERROR: "rails console" was called with arguments ["production"] (Thor::InvocationError)
2.啥默认账号 root 密码5iveL!fe
https://blog.csdn.net/yzd524850313/article/details/113118193体验
1
2
3
4
5
6
7
8
9
10
11
12
13
14## 语言切换
preferences里选择中文(翻译不完整)
## 头像显示不出来
原因:因为GitLab默认使用了Gravatar的头像
解决方式:
1.查看GitLab默认使用的URLvim /var/opt/gitlab/gitlab-rails/etc/gitlab.yml
2.更改GitLab默认使用的头像引用URL
vim /var/opt/gitlab/gitlab-rails/etc/gitlab.yml
修改url
plain_url: http://sdn.geekzu.org/avatar/%{hash}?s=%{size}&d=identicon
ssl_url: https://sdn.geekzu.org/avatar/%{hash}?s=%{size}&d=identicon
3.退出重启
gitlab-ctl restart
参考:https://blog.csdn.net/redsoft_mymuch/article/details/115654869生成ssh密匙(方便代码拉推,http方式会要输入登录账号密码)
1
ssh-keygen #回车几下即可,默认都是在C:\Users\用户名\.ssh下面,接着就是复制生成的公匙到gitlab ssh设置上
gitlab-ci
从gitlab的8.0版本开始,gitlab就全面集成了gitlab-ci,并且对所有项目默认开启。
只要在项目仓库的根目录添加
.gitlab-ci.yml
文件,并且配置了Runner(运行器),那么每一次合并请求(MR)或者push都会触发CI pipeline。
gitlab-runner
gitlab-runner是
.gitlab-ci.yml
脚本的运行器,gitlab-runner是基于gitlab-ci,的API进行构建的相互隔离的机器(或虚拟机)。
gitlab-runner
最好不要和gitlab
安装在同一台机器上。考虑到gitlab-runner
的资源消耗问题和安全问题,也不建议这两者安装在同一台机器上。gitlab-runner
安装版本要和gitlab
对应。后续流程,安装
runner
,注册runner
,启动runner
,配置.gitlab-ci.yml
文件。Gitlab Runner安装方式有两种,一种是直接二进制文件安装,一种是基于docker镜像安装。 # ubuntu18.04下配置安装源 curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.deb.sh | sudo bash # 更新下源 sudo apt-get update # 安装 sudo apt-get install gitlab-ci-multi-runner # 注册 gitlab-ci-multi-runner register 会出现一系列选项 --------------------------------- Please enter the gitlab-ci coordinator URL:输入 ci 地址 Please enter the gitlab-ci token for this runner:输入 ci token Please enter the gitlab-ci description for this runner:输入 runner 名称 Please enter the gitlab-ci tags for this runner:设置 tag #这个很重要,在项目构建流程yaml文件里面指定tag,就是匹配使用哪个tag的runner Whether to run untagged builds:选择 true ,代码上传后会能够直接执行 Whether to lock Runner to current project:直接回车,不用输入任何口令 Please enter the executor:runner 类型,这里我们选择的是 shell -------------------------------- # 检查gitlab的CI/CD页面有我们创建的绿色runner吗 如果出现灰色的runner说明runner虽然注册上来但是不可用, 1.当gitlab与runner安装在同一台机器时就会出现这种情况,所以请尽量分开。 2.进行注册的时候,这个config.toml 出现有问题,建议进入容器把这个文件删除了,之后再次注册runner。 路径/etc/gitlab-runner # 删除文件 rm -rf config.toml cd /usr/bin gitlab-runner register 之后再次查看config.toml,就会有正常信息了。 参考:https://www.jianshu.com/p/ced7fb1d436b https://cloud.tencent.com/developer/article/1010595 https://blog.csdn.net/yejingtao703/article/details/83065591 https://zhuanlan.zhihu.com/p/47492668
You are not allowed to push code to protected branches on this project. 原因:新装的gitlab。GitLab一些分支默认被保护,仅仅拥有master级别的用户才能提交到保护分支,而master分支默认是保护分支,其他用户需要通过合并issue请求来提交上去。 解决办法:修改权限即可1
2
- 测试时发现一个推送问题启动命令 gitlab-runner --debug <command> #调试模式排查错误特别有用。 gitlab-runner <command> --help #获取帮助信息 gitlab-runner run #普通用户模式 配置文件位置 ~/.gitlab-runner/config.toml sudo gitlab-runner run # 超级用户模式 配置文件位置/etc/gitlab-runner/config.toml1
2
- 命令注册命令 gitlab-runner register #默认交互模式下使用,非交互模式添加 --non-interactive gitlab-runner list #此命令列出了保存在配置文件中的所有运行程序 gitlab-runner verify #此命令检查注册的runner是否可以连接,但不验证GitLab服务是否正在使用runner。 --delete 删除 gitlab-runner unregister #该命令使用GitLab取消已注册的runner。 #使用令牌注销 gitlab-runner unregister --url http://gitlab.example.com/ --token t0k3n #使用名称注销(同名删除第一个) gitlab-runner unregister --name test-runner #注销所有 gitlab-runner unregister --all-runners1
2服务管理 gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner # --user指定将用于执行构建的用户 #`--working-directory 指定将使用**Shell** executor 运行构建时所有数据将存储在其中的根目录 gitlab-runner uninstall #该命令停止运行并从服务中卸载GitLab Runner。 gitlab-runner start #该命令启动GitLab Runner服务。 gitlab-runner stop #该命令停止GitLab Runner服务。 gitlab-runner restart #该命令将停止,然后启动GitLab Runner服务。 gitlab-runner status #此命令显示GitLab Runner服务的状态。当服务正在运行时,退出代码为零;而当服务未运行时,退出代码为非零。1
2VMware Workstation Pro 16 ZF3R0-FHED2-M80TY-8QYGC-NPKYF VMware Workstation Pro 15 FG78K-0UZ15-085TQ-TZQXV-XV0CD ZA11U-DVY97-M81LP-4MNEZ-X3AW0 YU102-44D86-48D2Z-Z4Q5C-MFAWD1
2
3
4
5
6
7
8
### VMware
- [下载](https://www.vmware.com/cn/products/workstation-pro.html)
- 密匙【杂谈】windows10配置make命令https://blog.csdn.net/C2681595858/article/details/85554359 windows下使用make https://www.cnblogs.com/jixiaohua/p/11724218.html win10 make命令的安装 https://blog.csdn.net/weixin_38383877/article/details/1036121311
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
- `bios`开启AMD虚拟化技术`amd-v`
- 参考:https://seriouszyx.com/archives/9/
### windows下使用make命令
- make命令一种构建工具。
- window下使用make命令需要安装`MinGW32`,一个Windows平台C/C++、ADA及Fortran编译器。
- [下载MinGW](http://sourceforge.net/projects/mingw/files/Installer/mingw-get-inst/)
- 设置安装目录`C:\MinGW`
- 选择需要安装组件,这里选择`mingw32-make`相关的
- 设置MinGW环境变量,我的电脑>高级系统设置,选择高级>环境变量,然后再Path里增加` ;C:\MinGW\bin`
- cmd运行`gcc -v` 查看版本验证结果
- 里面bin目录下有个`mingw32-make.exe`,修改为`make.exe`,cmd运行`make -v`验证
- MinGW32只能编译32位程序,要想编译64位,需要安装MinGW-w64,参考 [MinGW-w64离线安装](https://blog.csdn.net/ZHAOJUNWEI08/article/details/86602120),在线安装可能无法访问。
- [make命令学习](http://www.ruanyifeng.com/blog/2015/02/make.html)
- 参考1
2
3
4
5
6
7
8
9
### 删除文件提示找不到
创建如下bat脚本 把要删除的文件拖到这个脚本上
```bat
DEL /F /A /Q \\?\%1
RD /S /Q \\?\%1
一些软件下载源
1 | 官网 |
1 | Linux家族有三个软件源系统: |
渡口
github访问技巧
修改host地址
镜像地址:
github.io打不开
- dns解析问题,将 DNS 修改为 114.114.114.114(换一个dns解析服务供应商)。
- 科学上网。
- 站长之家查询博客的IP地址,直接修改对应hosts上。
- https://blog.csdn.net/qq_45836474/article/details/107875540
github进阶玩法
github1s.com
在线编辑github代码
443端口被Vmware-hosted占用
解决方法
关闭网络连接里虚拟机的适配器,干掉对应进程
应该还可以通过服务
services.msc
里直接干掉vmware相关服务来达到目的
1 | netstat -ano ##系统当前所有的端口使用情况 |
vue项目部署
要会使用离线安装包安装方式,避免因为安装包版本不同导致跑不起来的问题
服务环境
centOS 7.6.1810
nginx v1.9.9
mysql v8.0.26
node v12.16.1
前端服务部署
运行环境安装
nginx/1.9.9
- 安装参考上面工具篇nginx
vue配置
注意输出路径,及vue-router的配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50vue.config.js
module.exports = {
// 基本路径
publicPath: '/',
// 构建时的输出目录
outputDir: 'dist/blog',
// 放置静态资源的目录
assetsDir: 'static',
// html 的输出路径
indexPath: 'index.html',
//文件名哈希
filenameHashing: true,
// 是否在保存的时候使用 `eslint-loader` 进行检查。
lintOnSave: true,
// 是否使用带有浏览器内编译器的完整构建版本
runtimeCompiler: false,
// babel-loader 默认会跳过 node_modules 依赖。
transpileDependencies: [
/* string or regex */
],
// 是否为生产环境构建生成 source map?
productionSourceMap: false,
// 设置生成的 HTML 中 <link rel="stylesheet"> 和 <script> 标签的 crossorigin 属性。
crossorigin: '',
// 在生成的 HTML 中的 <link rel="stylesheet"> 和 <script> 标签上启用 Subresource Integrity (SRI)。
integrity: false,
// 调整内部的 webpack 配置
configureWebpack: {
},
chainWebpack: () => {},
// 配置 webpack-dev-server 行为。
devServer: {
open: process.platform === 'darwin',
host: '0.0.0.0',
port: 8080,
https: false,
hotOnly: false,
proxy: {
'/api': {
target: 'http://app.rmsdmedia.com',
changeOrigin: true,
secure: false,
pathRewrite: {
'^/api': '',
},
}
}
}
}nginx配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14修改下nginx.conf文件中的某个server
server {
listen 80;
server_name localhost;
location / {
root html/blog;
index index.html index.htm;
#解决history模式下刷新问题
try_files $uri $uri/ @router;
}
location @router {
rewrite ^.*$ /index.html last;
}
}
后端服务部署
后端用的express写的,需要node环境
运行环境安装
node
node安装
node服务配置
(linux下shell断开连接后进程可能关闭,需要有个人来守护它)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21//安装pm2
npm install -g pm2
//配置pm2环境变量
在安装node时,把bin文件给配到环境变量里去就欧克了
// 启动进程
pm2 start index.js
// 停止进程
pm2 stop index.js
// 查看进程
pm2 list
// 启动服务并命名
pm2 start "vendors/server/app.js" --name yapi
// 后续就可以直接通过这个name操作
pm2 info yapi
pm2 stop yapi //停止服务
pm2 restart yapi //重启服务
参考:https://segmentfault.com/a/1190000012186563
pm2日志如果在项目中有console,默认会存到/root/.pm2/logs/项目名s-out-0.log
mysql
- 参考上面工具篇mysql
项目本地地址与生产地址配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36利用process.env配置环境变量控制
-----------------------
Windows配置
-----------------------
临时配置
直接在cmd环境配置即可
#查看是否存在
set NODE_ENV
#如果不存在则添加环境变量
set NODE_ENV=production
#环境变量追加值 set 变量名=%变量名%;变量内容
set path=%path%;C:\web;C:\Tools
#某些时候需要删除环境变量
set NODE_ENV=
永久配置
右键(此电脑) -> 属性(R) -> 高级系统设置 -> 环境变量(N)...
----------------------
linux下配置环境变量
-----------------------
#node中常用的到的环境变量是NODE_ENV,首先查看是否存在
echo $NODE_ENV
# 所有用户都生效
vim /etc/profile
# 当前用户生效
vim ~/.bash_profile
# 在文件末尾添加如下格式的环境变量
export path=$path:/home/download:/usr/local/
export NODE_ENV = product
最后修改完成后需要运行如下语句令系统重新加载
# 修改/etc/profile文件后
source /etc/profile
# 修改~/.bash_profile文件后
source ~/.bash_profile
参考:https://www.jb51.net/article/126838.htm需要注意的是连接数据库问题
优化
配置生产与开发环境
为了解决开发环境地址与生产环境地址不一样,每次都需要手动修改。
主要思想:判断当前环境,设置不同的值。
创建
.env.prod
与.env.development
文件 ,package.json
中script
新增一句生产打包的命令。1
2
3
4
5
6
7
8
9
10
11
12--.env.prod--
NODE_ENV=production
VUE_APP_TYPE=prod
VUE_APP_HOST=http://http://1.117.157.44:3001
--.env.development--
NODE_ENV=development
VUE_APP_TYPE=dev
VUE_APP_HOST=http://127.0.0.1:3001
--package.json--
"prod": "vue-cli-service build --mode prod"请求配置共同前缀(服务走nginx代理情况下)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16本地配置
proxy: {
'/api': {
target: 'http://app.rmsdmedia.com',
changeOrigin: true,
secure: false,
pathRewrite: {
'^/api': '',
},
},
//多个服务情况下
'/api2': {
target: '<other_url>',
},
}
服务器nginx.conf配置修改Vue打包后文件的接口地址配置
1
2
3
4
5
6
7
8核心:独立生成一个可修改配置文件
1)在static上设置一个config.js,把配置的参数设置成 window 下的全局变量。(存在风险,有安全问题)
2)使用 generate-asset-webpack-plugin 插件,生成一个静态文件,然后通过请求的方式,获取需要的数据。(https://www.cnblogs.com/wurijie/p/11904060.html)
参考:
https://www.cnblogs.com/webhmy/p/9517680.html
https://www.cnblogs.com/matd/p/11412428.html
https://blog.csdn.net/qq_44472722/article/details/100160948
使用gzip压缩
前端安装低版本
npm install compression-webpack-plugin@6.1.1
前端修改vue.config.js文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23const webpack = require('webpack')
const CompressionWebpackPlugin = require('compression-webpack-plugin')
const productionGzipExtensions = ['js', 'css']
configureWebpack: {
plugins: [
// 开启gzip压缩
new CompressionWebpackPlugin({
algorithm: 'gzip',
test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
threshold: 10240,
minRatio: 0.8,
}),
// 控制chunk
new webpack.optimize.LimitChunkCountPlugin({
maxChunks: 5, //控制打包生成js的个数
minChunkSize: 100,
}),
],
}
参考:
https://blog.csdn.net/qq1248409755/article/details/108968279服务端修改nginx配置(开启gzip动态压缩)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18server {
gzip on;
gzip_min_length 1k;
gzip_comp_level 5;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
}
参考:https://www.cnblogs.com/zigood/p/12504401.html(注意文章中的gzip_static on需要nginx模块支持)
https://zhuanlan.zhihu.com/p/69864841
Nginx服务器实现数据静态压缩的方法
https://www.jb51.net/article/69193.htm
前端打包gzip + nginx开启静态gzip
https://www.jianshu.com/p/06b44ba366ab
拓展:
https://www.cnblogs.com/tugenhua0707/p/10841267.html报错
TypeError: Cannot read property ‘tapPromise‘ of undefined
原因似乎是版本问题,默认
npm install compression-webpack-plugin --save-dev
是最新版本,使用低版本打包就ok了。1
2
3
4
5
6
7
8卸载当前版本
npm uninstall compression-webpack-plugin
安装低版本
npm install compression-webpack-plugin@6.1.1
再次打包
npm run build
参考:https://blog.csdn.net/Dark_programmer/article/details/118803760多页面开发和代码分割chunkhttps://blog.csdn.net/weixin_44309374/article/details/109220488
前后对比(反向优化,时间还长了,主要是有个字体加载太久了)
eslint与prettier自动格式化
先上目前使用的完整配置,需要安装eslint、prettier、vetur、beautify
1 | { |
以下是在配置上面东西的参考
1 | 其实从2.0.4版本开始,eslint扩展就移除了autoFixOnSave配置项。因为保存自动修复成为了vscode的Code Action on Save的一部分,需要在editor.codeActionsOnSave配置项中进行配置,下面的配置对所有提供自动修复的提供方都有效 |
1 | 自定义设置 VSCode代码颜色设置 |
https的配置
1 | https://blog.csdn.net/tianjixiaoqiang6/article/details/98860865 |
VSCODE个性化配置
添加背景图片
下载vscode插件
background
,找到此插件的setting.json
[文件>首选项>设置>拓展> plugin background],添加配置如下。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22// 启用插件
"background.enabled": true,
//使用默认图片,设置为否
"background.useDefault": false,
//自己定制背景图,最多3个,特别注意,文件路径是file:///+文件路径
"background.customImages": ["file:///C:/Users/tiger/Pictures/sw.jpg"],
// 多张background.styles 单张 background.style
"background.styles": [
//第一张图的样式
{
"content": "''",
"pointer-events": "none",
"position": "absolute",
"z-index": "99999",
"width": "100%",
"height": "100%",
"background-position": "center",
"background-repeat": "no-repeat",
"background-size": "100%,100%",
"opacity": 0.1
}
]此扩展会修改vscode部分文件会报
code安装似乎已损坏
,安装另一个插件即可解决Fix VSCode Checksums
,安装完后打开命令面板,快捷键 Ctrl + Shift + P,输入命令Fix Checksums : Apply
,重启vscode即可。参考
1
https://blog.csdn.net/qq_41136216/article/details/105546446
进阶版(整个vscode背景)
1
2
3下载vscode插件background-cover
这个就不需要去配置setting.json文件了,直接右下角鼠标点击根据其提供的选项操作了需要注意的是卸载。。
1
2
3
4
5
6
7
8如果没有node环境,需要在 settings.json 中设置 {"background.enabled": false} ,然后再删除插件。如果直接删除插件会有遗留,就需要重装vscode了。
1.删除安装插件
win+R 输入 %userprofile% 找到 .vscode 文件夹,将其删除
2.删除用户信息和缓存信息
win+R 输入 %appdata% 删除 Code 和 Visual Studio Code 文件夹
送上vscode卸载指南:https://blog.csdn.net/qq_29339467/article/details/104074758设置vscode以管理员身份运行
1
https://www.cnblogs.com/zhumengyang/p/13580970.html
vuepress
Vue 驱动的静态网站生成器
一款主题推荐
https://vuepress-theme-reco.recoluan.com/
日历插件
- 需求
node
Path模块
path.join()方法可以连接任意多个路径字符串。要连接的多个路径可做为参数传入。
path.join()方法在接边路径的同时也会对路径进行规范化path.resolve()方法可以将多个路径解析为一个规范化的绝对路径。其处理方式类似于对这些路径逐一进行cd操作。
__dirname 代表当前所在文件路径
__filename代表当前所在文件名称
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36// 若以 / 开头,不会拼接到前面的路径(因为拼接到此已经是一个绝对路径);
// 若以 ../ 开头,拼接前面的路径,且不含最后一节路径;
// 若以 ./ 开头 或者没有符号 则拼接前面路径;
const path = require('path')
const test1 = path.resolve('a/b','/c/d')
const test2 = path.resolve('/a/b','/c/d')
const test3 = path.resolve(__dirname,'/c/d')
const test4 = path.resolve(__dirname,'./c/d')
const test5 = path.resolve(__dirname,'../c/d')
// C:\c\d
// C:\c\d
// C:\c\d
// C:\Users\tiger\Desktop\dev\c\d
// C:\Users\tiger\Desktop\c\d
console.log('resolve解析为绝对路径>>>>')
console.log(test1)
console.log(test2)
console.log(test3)
console.log(test4)
console.log(test5)
console.log('join拼接>>>>>')
const a = path.join('a/b','/c/d')
const b = path.join('/a/b','/c/d')
const c = path.join(__dirname,'/img/so');
const d = path.join(__dirname,'./img/so');
const e = path.join(__dirname,'../img/so');
console.log(a)
console.log(b)
console.log(c)
console.log(d)
console.log(e)
// a\b\c\d
// \a\b\c\d
// C:\Users\tiger\Desktop\dev\img\so
// C:\Users\tiger\Desktop\dev\img\so
// C:\Users\tiger\Desktop\img\so
一些代码片段
1 | 禁用右键菜单 选中 拖拽 |