查看当前git的仓库地址
git remote show origin
复制代码
127.0.0.1查看charles代理请求时 用下面的地址
http://localhost.charlesproxy.com
复制代码
node js是什么?
一个基于Chrome V8引擎的[JavaScript]运行环境,使用了一个[事件驱动]、非阻塞式I/O模型,
让JavaScript 运行在[服务端]的开发平台,它让JavaScript成为与[PHP]、[Python]、[Perl]、[Ruby]
等服务端语言平起平坐的[脚本语言]
复制代码
npm是什么
NPM的全称是Node Package Manager,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。
复制代码
查看npm版本号
npm -v
复制代码
查看node版本号
node -v
复制代码
vite是什么?
vite是下一代[前端]开发与构建工具。 [1][ ]() Vite意在提供开箱即用的配置,同时它的[插件]
API和[JavaScript ]API 带来了高度的可扩展性,并有完整的类型支持。
复制代码
Viper是什么?
Viper 是 Go 应用程序现代化的、完整的解决方案,能够处理不同格式的配置文件,
让我们在构建现代应用程序时,不必担心配置文件格式。
几乎所有的后端服务,都需要一些配置项来配置我们的服务,一些小型的项目,配置不是很多,
可以选择只通过命令行参数来传递配置。但是大型项目配置很多,通过命令行参数传递就变得很麻烦,
不好维护。标准的解决方案是将这些配置信息保存在配置文件中,由程序启动时加载和解析。
Go 生态中有很多包可以加载并解析配置文件,目前最受欢迎的是 Viper 包。
复制代码
什么是Express
Express 是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能。
复制代码
查看nginx版本号
nginx -v
复制代码
查看nginx版本(管理员权限)
sudo nginx -v
复制代码
群辉启动nginx
nginx
//加sudo是用管理员权限启动
sudo nginx
复制代码
linux文件权限修改详细教程
常用方法
chmod 777 文件夹或文件名
//带sudo是以管理员权限运行
sudo chmod 777 error_default.log
复制代码
访问群辉ddns网络地址 xxx.synology.me自动跳转到dsm网页的原因
/etc/nginx/nginx.conf文件中。
nginx 服务器server节点下80端口配置了如下代码
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
gzip on;
location ~ ^/volume(?:X|USB|SATA|Gluster)?\d+/ {
internal;
root /;
open_file_cache off;
include conf.d/x-accel.*.conf;
}
include conf.d/alias.*.conf;
include /usr/syno/share/nginx/conf.d/www.*.conf;
include conf.d/www.*.conf;
location = /webdefault/images/logo.jpg {
alias /usr/syno/share/nginx/logo.jpg;
}
error_page 403 404 500 502 503 504 /dsm_error_page;
location /dsm_error_page {
internal;
root /usr/syno/share/nginx;
rewrite (.*) /error.html break;
allow all;
}
location ^~ /.well-known/acme-challenge {
root /var/lib/letsencrypt;
default_type text/plain;
}
include conf.d/.location.webstation.conf*;
location / {
etag off;
root /var/tmp/nginx/html;
rewrite (.*) /redirect.html break;
}
}
复制代码
其中/var/tmp/nginx/html/redirect.html中做了如下操作,所以能自动跳转到DSM网页
<!DOCTYPE html>
<html>
<body>
<input type="hidden" id="http" name="http" value="10086">
<input type="hidden" id="https" name="https" value="10010">
<input type="hidden" id="prefer_https" name="prefer_https" value="false">
</body>
<script type="text/javascript">
var protocol=location.protocol;
var port=location.protocol === "https:" ? 10010 : 10086;
var URL=protocol+"//"+location.hostname+":"+port+"/";
location.replace(URL);
</script>
</html>
复制代码
启动vi编辑器编辑文件
sudo vi nginx.conf
//增加你自己的配置
/volume1/homes/634534398/ginVueAdmin/dist
复制代码
nginx修改配置文件后重载
sudo nginx -s reload
复制代码
MAC电脑查看端口号被占用并杀死相应的进程
通过终端命令
命令 lsof -i tcp:port (port替换成端口号,比如6379)可以查看该端口被什么程序占用,
并显示PID,方便KILL(kill pid)
1.查看端口被哪个程序占用
sudo lsof -i tcp:port
如: sudo lsof -i tcp:8082
2.看到进程的PID,可以将进程杀死。
sudo kill -9 PID
如:sudo kill -9 3210
复制代码
利用ssh上传下载文件到linux服务器
在linux下一般用scp这个命令来通过[ssh]传输文件。
1、从服务器上下载文件
scp username@servername:/path/filename /var/www/local_dir(本地目录)
例如scp [email protected]:/var/www/test.txt
#把192.168.0.101上的/var/www/test.txt 的文件下载到/var/www/local_dir(本地目录)
2、上传本地文件到服务器
scp /path/filename username@servername:/path
例如scp /var/www/test.php [email protected]:/var/www/
#把本机/var/www/目录下的test.php文件上传到192.168.0.101这台服务器上的/var/www/目录中
3、从服务器下载整个目录
scp -r username@servername:/var/www/remote_dir/(远程目录) /var/www/local_dir(本地目录)
例如:scp -r [email protected]:/var/www/test /var/www/
4、上传目录到服务器
scp -r local_dir username@servername:remote_dir
例如:scp -r test [email protected]:/var/www/
#把当前目录下的test目录上传到服务器的/var/www/ 目录
注:目标服务器要开启写入权限。
复制代码
MAC电脑用FileZilla进行与linux电脑之间的文件传输
复制代码
go-gin下配置vueweb目录
package main
import (
"github.com/gin-gonic/gin"
)
func main(){
r := gin.Default()
//下行image是前端显示路径,后面的参数是相对于服务器的具体文件夹。
r.StaticFS("/image", http.Dir("./static/image"))
r.StaticFS("/assets", http.Dir("./dist/assets"))
r.StaticFS("/gva", http.Dir("./dist/gva"))
r.StaticFS("/js", http.Dir("./dist/js"))
r.StaticFile("/", "./dist/index.html")
r.Run(":8080")
}
复制代码
gin静态资源加载
Static只能展示文件,比如展示图片等
StaticFS可以连目录也一起展示
- `router.Static` 指定某个目录为静态资源目录,可直接访问这个目录下的资源,url 要具体到资源名称。
- `router.StaticFS` 比前面一个多了个功能,当目录下不存 index.html 文件时,会列出该目录下的所有文件。
- `router.StaticFile` 指定某个具体的文件作为静态资源访问。
func main() {
router := gin.Default()
router.Static("/assets", "./assets")
router.StaticFS("/more_static", http.Dir("my_file_system"))
router.StaticFile("/favicon.ico", "./resources/favicon.ico")
// 监听并在 0.0.0.0:8080 上启动服务
router.Run(":8080")
}
复制代码
在 Mac、Linux、Windows 下Go交叉编译
Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下。
Mac 下编译 Linux 和 Windows 64位可执行程序
GOOS=linux GOARCH=amd64 go build -o test main.go//这个执行成功了,可能是运气把?
1 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
2 CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
3 go build -o server main.go //编译带输出文件文件名
复制代码
Linux 下编译 Mac 和 Windows 64位可执行程序
1 CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
2 CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
复制代码
Windows 下编译 Mac 和 Linux 64位可执行程序
1 SET CGO_ENABLED=0
2 SET GOOS=darwin
3 SET GOARCH=amd64
4 go build main.go
5
6 SET CGO_ENABLED=0
7 SET GOOS=linux
8 SET GOARCH=amd64
9 go build main.go
复制代码
GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)
GOARCH:目标平台的体系架构(386、amd64、arm)
交叉编译不支持 CGO 所以要禁用它
上面的命令编译 64 位可执行程序,你当然应该也会使用 386 编译 32 位可执行程序
很多博客都提到要先增加对其它平台的支持,但是我跳过那一步,上面所列的命令也都能成功,
且得到我想要的结果,可见那一步应该是非必须的,或是我所使用的 Go 版本已默认支持所有平台。
复制代码
查看MAC端口占用及关闭
- 查看端口被哪个程序占用
sudo lsof -i tcp:port\
如: sudo lsof -i tcp:8082
复制代码
- 2.根据进程的PID,将进程杀死。
sudo kill -9 PID\
如:sudo kill -9 3210
复制代码
查看linuxcpu信息
cat /proc/cpuinfo
复制代码
cpu信息解读
processor :系统中逻辑处理核的编号。对于单核处理器,则课认为是其CPU编号,对于[多核]处理器则可以是物理核、
或者使用超线程技术虚拟的逻辑核
vendor_id :CPU制造商
cpu family :CPU产品系列代号
model:CPU属于其系列中的哪一代的代号
model name:CPU属于的名字及其编号、标称主频
stepping :CPU属于制作更新版本
cpu MHz :CPU的实际使用主频
cache size :CPU二级缓存大小
physical id :单个CPU的标号
siblings :单个CPU逻辑物理核数
core id :当前物理核在其所处CPU中的编号,这个编号不一定连续
cpu cores :该逻辑核所处CPU的物理核数apicid :用来区分不同逻辑核的编号,系统中每个逻辑核的此编号必然不同,此编号不一定连续
fpu :是否具有浮点运算单元(Floating Point Unit)
fpu_exception :是否支持浮点计算异常
cpuid level :执行cpuid指令前,eax寄存器中的值,根据不同的值cpuid指令会返回不同的内容
wp :表明当前CPU是否在内核态支持对用户空间的写保护(Write Protection)
flags :当前CPU支持的功能
bogomips :在系统内核启动时粗略测算的CPU速度(Million Instructions Per Second)
clflush size :每次刷新缓存的大小单位
cache_alignment :缓存地址对齐单位
address sizes :可访问地址空间位数
复制代码
查看cpu架构
//执行一下命令,查看cpu架构
arch
uname -m
uname -a
dpkg --print-architecture
复制代码
x86_64就是amd64
linux sudo -i 命令
**sudo -i**
sudo -i是Linux终端命令下改变用户对命令使用权限的命令,例如,在Linux命令终端中,开始为“user@ubuntu:~$”,当使用该命令后,会出现输入密码的提示,之后输入密码,就会变为“root@ubuntu:~#”,这样就是改变了用户对一些命令的权限。
复制代码
linux如何启用root并修改密码?
- 在下面文件中,找到PermitRootLogin prohibit-password并将后面的参数改为yes,保存退出。
/etc/ssh/sshd_config
sudo vim /etc/ssh/sshd_config
找到并用#注释掉这行:PermitRootLogin prohibit-password
新建一行 添加:PermitRootLogin yes
重启服务
#sudo service ssh restart
解读一下这两句话吧!
PermitRootLogin yes
允许root登录,设为yes。
PermitRootLogin prohibit-password
允许root登录,但是禁止root用密码登录
很明显这行是需要被注释掉的!!!
复制代码
- 修改root密码
输入下面命令修改root默认密码:
synouser --setpw root xxxxxx 后面的xxxxx 更换成你自己的密码。
输入 reboot 重启群晖
复制代码
群辉ftp root登录配置
# vi /etc/ftpusers
将文件里面的root去掉,重启群辉即可。
复制代码
linux查看某个服务是否存在
ps -ef |grep vsftpd
复制代码
群辉检查端口占用情况并关闭
检查端口占用情况
netstat -anp |grep 8888
关闭
kill -9 pid(上一步查出来的进程号)
复制代码
nohup命令详解
- 介绍
nohup英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。
复制代码
- 语法格式
nohup Command [ Arg … ] [ & ]
复制代码
- 示例
nohup /root/runoob.sh &
复制代码
群辉nginx配置
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
gzip on;
location / {
etag off;
root /volume1/homes/634534398/ginVueAdmin/dist;
rewrite (.*) /index.html break;
}
location /assets/ {
root /volume1/homes/634534398/ginVueAdmin/dist/;
}
location /gva/ {
root /volume1/homes/634534398/ginVueAdmin/dist/;
}
location /js/ {
root /volume1/homes/634534398/ginVueAdmin/dist/;
}
location /api {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
rewrite ^/api/(.*)$ /$1 break; #重写
proxy_pass http://127.0.0.1:8888;
}
}
复制代码
自动覆盖群辉nginx命令
由于群辉重启后,nginx配置会被重置,所以我们重启后可以手动执行以下命令,使群辉nginx配置用我们自己的。
//地址填写你自己的群辉地址
cp /var/services/homes/634534398/ginVueAdmin/nginx.conf /etc/nginx/
nginx -s reload
复制代码