速查表

xiaohai 2021-06-17 11:51:53 4033人围观 标签: 随笔 
简介速查表是自己整理了一份在工作中常用的一些资料,包含了自己在日常开发中需要常常用到的相关技术。可以给读者进行参考。
[TOCM]

[TOC]

一、操作快捷键

1.1、操作系统快捷键

1.1.1、Windows系统操作快捷键
- Win+R:打开运行窗口
- Alt+Tab:切换窗口
- Win+Tab:选择窗口
- Ctrl+Tab:切换窗口标签
- Cmd+calc:调用计算器
- Cmd+notepad:调用记事本
- Cmd+notepad++:调用Notepad++
- Win+pause:快速打开控制面板,就可以看到控制面板了,pause键在home键上面;
- Win+d:回到桌面,且已打开窗口最小化,win+m也可最小化所有窗口
- Win+L:锁定屏幕,不用大写,这里大写只是因为小写l容易与|竖线混淆,设置密码锁屏后需密码解锁
- Win+e:打开此电脑(即我的电脑)
- Ctrl+Shift+Esc:任务管理器
- Ctrl +d (或 Delete):将选中的文件(选定项)移动到回收站
- Win+Shift+m,将最小化的窗口还原到桌面,与回到桌面对应
- Win++:开启放大镜,win+-可缩小
- F11:浏览器全屏

1.2、编辑器快捷键

1.2.1、PHPStorm
- Shift+Ctrl+N:根据文件名搜索文件
- Shift+Ctrl+Alt+N:搜索当前文件中的函数
- Shift+Ctrl+向上/向下:移动代码块
- Ctrl+F12:当前文件的所有方法
- Ctrl+X:删除当前行
1.2.2、VS Code
- Shift+Alt+F:格式化代码
- Shift+Alt+X:打开扩展
- Shift+Ctrl+n:多窗口
- Ctrl+`:打开命令行
- Ctrl+Shift+P:显示所有命令
- Ctrl+p:搜索文件
- Ctrl+Shift+F:搜索文件内容
- Ctrl+Shift+E:显示文件目录
- Ctrl+Alt+V:markdown中粘贴图片(需要安装扩展)
1.2.3、IDEA
- Alt+Insert:调用添加getter、setter、toString等方法的快捷键

二、服务器

2.1、Linux命令

网络命令

netstat -an  #查看网络状态

netstat -an|grep 80 #查看8080端口连接情况

netstat -nat | grep -i "80" | wc -l #统计80端口连接数

ps -ef | grep httpd | wc -l #统计httpd协议连接数

netstat -na | grep ESTABLISHED | wc -l #统计已连接上的,状态为“established'  

netstat -na | grep ESTABLISHED | awk '{print$5}' | awk -F : '{print$1}' |sort |uniq -c | sort -r  #查出每个IP地址连接数 

nslookup www.baidu.com #查询域名DNS解析

匹配命令

grep -C 5 foo file 显示file文件里匹配foo字串那行以及上下5行
grep -B 5 foo file 显示foo及前5行
grep -A 5 foo file 显示foo及后5行

防火墙命令

systemctl status firewalld #查看防火墙状态

systemctl stop firewalld #停止防火墙

systemctl disable firewalld #关闭开机启动

systemctl enable firewalld #开机启动

centos同步时区

timedatectl set-timezone Asia/Shanghai #设置成上海时区

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #拷贝时区到/etc

centos7同步时间

yum -y install ntp ntpdate #安装ntp工具

ntpdate cn.pool.ntp.org #同步时间

hwclock --systohc #将时间写入硬件

timedatectl #查看时间和时区信息

Centos8同步时间
centon8不能再直接通过yum安装ntpdate,centos8需要使用:chrony

yum install -y chrony #安装

#加入开机启动和开启
systemctl enable chronyd
systemctl start chronyd

#修改配置文件/etc/chrony.conf,将第一个配置修改为:pool ntp.ntsc.ac.cn iburst

chronyc -a makestep #手动同步,返回200 OK即为成功

2.2、Git

本地没有仓库

# 本地仓库操作
git init  #初始化仓库
git add . #添加当前目录下所有文件到仓库中
git commit -m '提交信息' #提交信息

# 需要同步到远程仓库,这里使用github
git remote add origin 远程仓库的地址    #添加远程仓库
git push -u origin master #推所有文件到远程仓库

本地已经有仓库

git remote add origin 远程仓库的地址    #添加远程仓库
git push -u origin master #推所有文件到远程仓库

常用命令
1、初始化仓库

git init

2、新增文件到仓库中

git add .  #增加当前目录下所有文件到仓库
git add readme.md #增加单个文件到仓库
git add readme.md api.doc #增加多个文件到仓库

3、提交文件到仓库

git commit -m "描述信息"

4、查看状态

git status

5、推送到远程仓库

git push -u origin master

6、推送

git push

7、拉取

git pull

8、查看分支

git branch

9、强制覆盖

git fetch --all
git reset --hard origin/master #后面的版本一定要指定
git pull

git强制覆盖本地命令(单条执行):

git fetch --all && git reset --hard origin/master && git pull

2.3、Docker

Docker相关命令

docker images #查看所有镜像

docker rm 容器名称 #删除停止的容器

docker rmi 镜像名称 #删除镜像

docker ps #查看运行的容器

docker ps -a #查看所有容器

docker exec -it 容器ID /bin/bash #进入容器

docker exec -it 容器ID /bin/sh #进入容器

docker build -t 镜像名称:版本号 .  #Dockerfile编译镜像

docker login xxx.xxx.xxx.xxx:port #登录Docker仓库

docker tag 镜像名称:版本号 xxx.xxx.xxx.xxx:port/镜像地址:标签名称 #镜像打标签

docker push xxx.xxx.xxx.xxx:port/镜像地址:标签名称 #推送镜像到仓库

docker pull xxx.xxx.xxx.xxx:port/镜像地址:标签名称 #拉取镜像

docker images|grep none|awk '{print $3}'|xargs docker rmi #批量删除标签为None的镜像

docker-compose相关命令
这些命令一定是在docker-compose.yml文件目录下执行

docker-compose up #启动

docker-compose up -d #启动后台运行

docker-compose up -d --build #重新编译

docker-compose stop #停止

docker-compose down #停止并删除

docker-compose ps #查看运行的容器

docker-compose exec 容器名称 bash   #进入容器

注意事项

  • 应用内部的开发地址要使用0.0.0.0,否者访问不到
  • 宿主机防火墙如果关闭后后需要重启Docker服务
  • Docker内部链接可以直接使用容器名称

三、编程语言

3.1、PHP

1、二维数组排序

array_multisort(array_column($studentList, 'is_online'), SORT_DESC, array_column($studentList, 'sort_num'), SORT_DESC, $studentList);

2、

3.2、Golang

1、string、int、int64互相转换

import "strconv"  //先导入strconv包

// string到int
int, err := strconv.Atoi(string)

// string到int64
int64, err := strconv.ParseInt(string, 10, 64)

// int到string
string := strconv.Itoa(int)

// int64到string
string := strconv.FormatInt(int64,10)

2、获取时间

// 获取当前时间
dateTime := time.Now()
fmt.Println(dateTime)

// 获取年 月 日 时 分 秒 纳秒
year := time.Now().Year() //年

fmt.Println(year)

month := time.Now().Month() //月
fmt.Println(month)

day := time.Now().Day() //日
fmt.Println(day)

hour := time.Now().Hour() //小时
fmt.Println(hour)

minute := time.Now().Minute() //分钟
fmt.Println(minute)

second := time.Now().Second() //秒
fmt.Println(second)

nanosecond := time.Now().Nanosecond() //纳秒
fmt.Println(nanosecond)

// 获取当前时间戳
timeUnix := time.Now().Unix()         //单位秒
timeUnixNano := time.Now().UnixNano() //单位纳秒

fmt.Println(timeUnix)
fmt.Println(timeUnixNano)


// 将时间戳格式化
fmt.Println(time.Now().Format("2006-01-02 15:04:05"))

// 时间戳转为 go 格式的时间
var timeUnix int64 = 1562555859
fmt.Println(time.Unix(timeUnix,0))
// 之后可以用Format 比如
fmt.Println(time.Unix(timeUnix, 0).Format("2006-01-02 15:04:05"))

// str 格式化时间转时间戳
t := time.Date(2014, 1, 7, 5, 50, 4, 0, time.Local).Unix()
fmt.Println(t)

3、时间计算

// 获取今天 0 点 0 时 0 分的时间戳
currentTime := time.Now()
startTime := time.Date(currentTime.Year(), currentTime.Month(), currentTime.Day(), 0, 0, 0, 0, currentTime.Location())
fmt.Println(startTime)
fmt.Println(startTime.Format("2006/01/02 15:04:05"))


// 获取今天 23:59:59 秒的时间戳
currentTime := time.Now()
endTime := time.Date(currentTime.Year(), currentTime.Month(), currentTime.Day(), 23, 59, 59, 0, currentTime.Location())
fmt.Println(endTime)
fmt.Println(endTime.Format("2006/01/02 15:04:05"))

// 获取 1 分钟之前的时间
m, _ := time.ParseDuration("-1m")
result := currentTime.Add(m)

fmt.Println(result)
fmt.Println(result.Format("2006/01/02 15:04:05"))

// 获取 1 小时之前的时间
m, _ := time.ParseDuration("-1h")
result := currentTime.Add(m)
fmt.Println(result)
fmt.Println(result.Format("2006/01/02 15:04:05"))

// 获取 1 分钟之后的时间
m, _ := time.ParseDuration("1m")
result := currentTime.Add(m)

fmt.Println(result)
fmt.Println(result.Format("2006/01/02 15:04:05"))

//获取 1 小时之后的时间
m, _ := time.ParseDuration("1h")
result := currentTime.Add(m)
fmt.Println(result)
fmt.Println(result.Format("2006/01/02 15:04:05"))


// 计算两个时间戳
afterTime, _ := time.ParseDuration("1h")
result := currentTime.Add(afterTime)

beforeTime, _ := time.ParseDuration("-1h")
result2 := currentTime.Add(beforeTime)

m := result.Sub(result2)
fmt.Printf("%v 分钟 n", m.Minutes())

h := result.Sub(result2)
fmt.Printf("%v小时 n", h.Hours())

d := result.Sub(result2)
fmt.Printf("%v 天n", d.Hours()/24)

// 判断一个时间是否在一个时间之后
stringTime, _ := time.Parse("2006-01-02 15:04:05", "2019-12-12 12:00:00")
beforeOrAfter := stringTime.After(time.Now())

if true == beforeOrAfter {
    fmt.Println("2019-12-12 12:00:00在当前时间之后!")
} else {
    fmt.Println("2019-12-12 12:00:00在当前时间之前!")
}


// 判断一个时间相比另外一个时间过去了多久
startTime := time.Now()
time.Sleep(time.Second * 5)

fmt.Println("离现在过去了:", time.Since(startTime))

3.3、Python

四、数据库

4.1、Mysql

1、多字段查询

select * from user_course where (user_id,course_id) in select user_id,course_id from user_order_course;

2、

4.2、MongoDB

1、根据时间删除数据

db.getCollection("watch_offline_logs").remove({"created_at" : { $lt : "2019-08-01 00:00:00" }})

2、创建用户

db.createUser(
    {
        user:"root",
        pwd:"xthk78479",
        roles:[
            {role:"root", db:"admin"}
        ]
    }
)

3、创建索引

//match是匹配字段,project是显示字段,sort是排序字段
db.getCollection("quality_statics_city_comment_day").createIndex(
    {"comment_template_id": 1,"city_id": 1},
    {name: "quality_statics_city_comment_day_index_1",sparse: true});

4、聚合查询

db.getCollection("quality_statics_class_comment_day").aggregate([{
    $match: {
        date: 20200531,
        is_default_grade: 1,
        comment_rate: {
            $lt: 60
        }
    }
}, {
    $project: {
        _id: 0,
        "日期": "$date",
        "班级ID": "$class_id",
        "教师姓名": "$teacher_name",
        "年级": "$grade_titles",
        "科目": "$subject_title",
        "城市": "$city_title",
        "班型": "$class_type_title",
        "评价率": "$comment_rate"
    }
}, {
    $sort: {
        "评价率": 1
    }
}])

5、聚合查询之分段查询

db.getCollection("quality_statics_teacher_comment_day").aggregate([{
    $match: {
        date: 20200604
    }
}, {
    $project: {
        "count_field": 
        {
            $switch: {
                branches: [
                    {
                        case: {
                            $eq: ["$satisfaction", 100]
                        },
                        then: "100"
                    },
                    {
                        case: {
                            $and: [{
                                $gte: ["$satisfaction", 95]
                            }, {
                                $lte: ["$satisfaction", 100]
                            }]
                        },
                        then: "[95,100)"
                    },
                    {
                        case: {
                            $and: [{
                                $gte: ["$satisfaction", 90]
                            }, {
                                $lte: ["$satisfaction", 95]
                            }]
                        },
                        then: "[90,95)"
                    },
                    {
                        case: {
                            $and: [{
                                $gte: ["$satisfaction", 85]
                            }, {
                                $lte: ["$satisfaction", 90]
                            }]
                        },
                        then: "[85,90)"
                    },
                    {
                        case: {
                            $and: [{
                                $gte: ["$satisfaction", 80]
                            }, {
                                $lte: ["$satisfaction", 85]
                            }]
                        },
                        then: "[80,85)"
                    },
                    {
                        case: {
                            $eq: ["$satisfaction", 0]
                        },
                        then: "0"
                    },
                ],
                default: "(0,80)"
            }
        }
    }
}, {
    $group: {
        _id: "$count_field",
        "总数": {
            $sum: 1
        }
    }
}, {
    $sort: {
            "_id":1
    }
}])