0%

想更新物品数量,本来是9,需要减5,并且更新时间
SQL写成这样
UPDATE user_borrow_goods SET num=num-5 AND update_time=1535363307 WHERE id=133;
结果 num成了0,update_time没变
原因在于更新多个字段应该有逗号分隔
正确的写法是
UPDATE user_borrow_goods SET num=num-5 AND update_time=1535363307 WHERE id=133;
num为什么变成0了呢?
SQL执行的时候把等号右边部分当作整体了,即
UPDATE user_borrow_goods SET num=(num-5 AND update_time=1535363307) WHERE id=133;
(num-5 AND update_time=1535363307)的值是多少呢?
num原值是9,update_time原值是0,表达式就变为
(9-5 AND 0=1535363307)
(4 AND 0)
0
结果是0
补充:AND是逻辑与,结果只有0或1;=号在这里是判断是否相等,不是赋值符号

docker run ubuntu echo hello docker
docker pull nginx
#本地的8080端口映射到容器的80端口
docker run -p 8080:80 -d nginx
curl 127.0.0.1:8080
docker ps
#文件拷贝到容器
vi index.html
docker ps
docker cp index.html 05f67f3f819d://usr/share/nginx/html
docker stop 05f67f3f819d
docker run -p 8080:80 -d nginx
curl http://localhost:8080

docker commit -m 'fun' 24dc41701283 nginx-fun
docker images
删除镜像
docker rmi 9f139d4af874

docker stop 24dc41701283

docker ps -a
docker rm 2cbeef6445dc
基础镜像,类比基本类
vi Dockerfile
    FROM alpine:latest
    MAINTAINER xhs
    CMD echo "Hello Docker!"
docker pull alpine
docker build -t hello_docker .
docker images
docker run hello_docker
#建Dockerfile 自己创建镜像
vi Dockerfile 
    FROM ubuntu
    MAINTAINER xhs
    RUN apt-get update
    RUN apt-get install -y nginx
    COPY index.html /var/www/html
    ENTRYPOINT ["/usr/sbin/nginx", "-g", "daemon off;"]
    EXPOSE 80
    
docker build -t xhs/hello-nginx .
docker images
docker run -d -p 80:80 xhs/hello-nginx
curl localhost

FROM 基础镜像
RUN 执行命令
ADD  包括网络文件
COPY 拷贝文件或目录
CMD 执行入口
ENTRYPOINT
没有指定ENTRYPOINT,就用CMD,指定了,CMD后字符串成为ENTRYPOINT的参数
WORKDIR 路径
ENV 环境变量
USER 
VOLUME 挂载卷
EXPOSE 暴露端口
Dockerfile每一行都产生一个新层

容器层可读可写

镜像层只读

相同层可以共享

volume
独立容器之外的持久化存储

docker run -d --name nginx -v /usr/share/nginx/html nginx
docker inspect nginx

ls /var/lib/docker/volumes/e1b94b6addbba7267594c8dbbc6c83534da02d292090e3781f49447fc4e02727/_data
cd /var/lib/docker/volumes/e1b94b6addbba7267594c8dbbc6c83534da02d292090e3781f49447fc4e02727/_data
cat index.html
[root@localhost _data]# echo "it's 2018" > index.html

[root@localhost ~]# docker exec -it nginx /bin/bash
root@88840db4e4c2:/# cd /usr/share/nginx/html/
root@88840db4e4c2:/usr/share/nginx/html# cat index.html 
it's 2018
root@88840db4e4c2:/usr/share/nginx/html# 

#本地的目录挂载到容器里
docker run -p 80:80 -d -v $PWD/html:/usr/share/nginx/html nginx

mkdir vol3
cd vol3/
mkdir data
docker create -v $PWD/data:/var/mydata --name data_container ubuntu
docker run -it --volumes-from data_container ubuntu /bin/bash

root@775022803f20:/# mount | grep mydata
/dev/mapper/centos-root on /var/mydata type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
root@775022803f20:/# cd /var/mydata/
root@775022803f20:/var/mydata# ls
ls: cannot open directory '.': Permission denied
root@775022803f20:/var/mydata# cd data
bash: cd: data: No such file or directory
root@775022803f20:/var/mydata# touch whatever.txt
touch: cannot touch 'whatever.txt': Permission denied

解决Permission denied 
su -c "setenforce 0"
chcon -Rt svirt_sandbox_file_t /path/to/volume
https://stackoverflow.com/questions/24288616/permission-denied-on-accessing-host-directory-in-docker

Registry
镜像库

host 宿主机
registry 仓库

docker search 
docker pull
docker push

#国内的库
daocloud
时速云
阿里云

[root@localhost ~]# docker search whalesay
INDEX       NAME                                      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/docker/whalesay                 An image for use in the Docker demo tutorial    632                  
docker.io   docker.io/mendlik/docker-whalesay         Docker whalesay image from training materi...   7                    [OK]
docker.io   docker.io/caibar/whalesay                 Builds automatizados.                           1                    [OK]
docker.io   docker.io/milanfort/whalesay              Modified docker/whalesay image that output...   1                    
docker.io   docker.io/nikovirtala/whalesay            Tiny Go web service to print Moby Dock ASC...   1                    [OK]
docker.io   docker.io/ojenge/whalesay                 from docker/whalesay                            1                    
docker.io   docker.io/sabs1117/whalesay               Whalesay with fortune phrases.                  1                    


docker run docker.io/docker/whalesay cowsay 上午好

docker tag docker.io/docker/whalesay xhs/whalesay

docker images

docker push xhs/whalesay

#登录
docker login 


#从mastercheckout
git checkout master common/xxx.txt
#显示log树
git log --pretty=format:"%h %s" --graph
#删除文件远程分支没生效, add时加 --all 参数
git add --all delete_log_indices.sh es.sh

#在一个未上线的需求分支commit了另一个需求的代码
#先找到上次的commit id, 用 soft 参数 reset
git reset --soft 5b10152
文件变成未commit状态,然后再checkout 到master建新分支提交
1.git 未 commit 前三种状态,
Untracked files, 用 git add 将文件包含到待提交清单中,会在暂存区域生成快照,
Chanes to be commited
Changes not staged for commit, 修改了但未暂存,未暂存部分不会被提交

2.git commit 那个框,
选择文件点 revert 可以回退到未修改的状态

3.git stash
把修改存到暂存区
git stash pop
取出来

4.git pull 
新建分支先拉dev 的代码
不要在 dev 上写代码

5.把错误的代码提到远程dev了,回退到上个版本

选择要回退的版本,右键

回退后
git push origin dev --force
不要再拉了

6. git diff meeting-room-bug dev --stat
对比分支的差别

7.以后如果你们的git 报错了  就是 unlink  file '.git/..... 然后输入什么都不管用的情况  试着输入这个命令试试
git  gc  --auto 
是释放本地的被占用的文件资源

8.删除tag
git tag | grep -- 'to8tooa-2\.[0-9]\.[0-9]\.[0-9]\w*' | xargs git tag -d 
git tag | grep -- 'to8tooa-3\.[0-9]\.[0-9]\.[0-9]\w*' | xargs git tag -d 
git tag -d ]
git tag -d oaflow-1.5.4.7-201606011100-liya
git tag -d to8tooa-201702130925-liya
git fetch --tag
9.
删除远程分支:
git push origin :reson-local
批量删除远程的tag:
git tag | grep -- 'to8tooa-3\.[0-8]\.[0-9]\.[0-9]*' | xargs git push origin --delete tag 
批量删除本地的tag:
git tag | grep -- 'to8tooa-1\.[0-9]\.[0-9]\.[0-9]\w*' | xargs git tag -d 
删除本地所有的tag:
rm -rf .git/refs/tags/*
拉取远程的tag:
git fetch --tag

10.删除本地分支
git branch | grep 'watson-a' | xargs git branch -d
git branch | grep 'watson-a' | xargs git branch -D
D是强制删除,不要轻易用 -D,避免误删!
11.删除远程分支
(1)用 grep 命令 筛选要删除的分支,重定向到文件里
git branch -a | grep "remotes/origin" | cut -nb 18-50 > branch.txt
(2)手动打开branch.txt,剔除不用删除的分支,把行首替换为git push origin :
保存,构造好命令类似这样:
git push origin :seven-local
git push origin :seven-optimize
git push origin :watson-company-finance

(3)把构造好的命令粘贴到控制台
12.不小心 add 了很多不要的文件
git status > reset.txt
手动修改reset.txt,只保留文件名
cat reset.txt |xargs git reset HEAD
把oa 目录下的 reset.txt 删除

13.还原master 
问题:git pull 没带分支名,结果把其他分支的东西都拉过来了。
还原:master 不能reset,因为master是保护分支。
只能复制最新的代码覆盖旧的,再提到master上。

14.git reset origin/dev --hard
强制用远程的分支覆盖本地的
15.不小心在master分支修改了代码,而且切不回本地分支
可以先暂存到master,然后切回本地分支,合master代码,然后再回master释放,然后切就可以了
16.没打base就merge了代码,可以让其他人帮忙打base再上master 
17.根目录下的exclude  /index.php
18.撤销 merge 到master的代码,未push
git reset origin/master --hard

19.查修改记录
git blame E:\oa\basic\modules\flow\models\flow\Leave.php

20.重置到master
git reset origin/master --hard
git push origin dev --force
21.把master重置要某个tag

git push origin master --force

22.删除远程tag
git push origin --delete tag to8tooa-4.9.2.5-2017121121942-crispan
git push origin --delete tag v2.98-2.0.1.8.0.7.3.1.1.0.4.6-201807311704-watson
23.本地分支重置到某个 commit 
重置前先备份  git checkout -b watson-vr-interface.bak
commit 是按时间排序的,所以中间有了别人的代码的话,要重置到之前的commit
git bash git log 查记录,可以看到中文
然后 
24.比对两个tag区别
git diff to8tooa-5.1.5.7-201802010954-watson to8tooa-5.1.5.8-201802010958-watson --stat
25.clone 时设置代理
git clone -c http.proxy=http://192.168.1.142:3128/ https://github.com/domnikl/DesignPatternsPHP.git
git clone -c http.proxy=http://192.168.1.142:3128/  https://github.com/NoNeil/ProxySetting.git
git clone -c http.proxy=http://192.168.1.142:3128/  https://github.com/symfony/demo.git 
26.
git symbolic-ref --short -q HEAD
27.
 git tag | tail -1 
28.
git merge 和 git merge --no-ff
29.从远处分支新建分支
查看远程分支
git branch -a
git checkout -b watson-a remotes/origin/watson-a
30.
#删除
git push origin --delete tag v2.98-2.0.1.8.0.7.3.1.1.0.4.6-201807311704-watson
31.
#误删的文件,杀毒软件
git status > file.txt
编辑file,只剩下一行行的文件名
 cat file.txt |xargs git checkout --  
32.查看关联的远程仓库
git remote -v
git remote add origin ssh://git@192.168.1.1/home/git/test.git
git remote remove origin
33.生成公钥
ssh-keygen

看Linux内核版本,Docker 要求 CentOS 系统的内核版本高于 3.10
uname -r
yum -y install docker-io
systemctl restart docker
运行hello-world
docker run hello-world

docker常用命令

版本
docker version
查看镜像
docker images
拉取镜像
docker pull
创建镜像 
docker build
运行镜像
docker run hello-world
查看进程
docker ps
docker ps -a
拷贝
docker cp index.html 17addaweri58c://usr/share/nginx/html
启动nginx
docker run -p 8080:80 -d daocloud.io/nginx
停止
docker stop 17addaweri58c
保存更改
docker commit -m 'fun'
docker commit -m 'fun' easfieir nginx-fun
删除
docker rmi asdfieirwiwqri
docker rm asfdiewiirrwei
搜索镜像
docker search --filter=stars=3 lnmp

配置加速器


[root@localhost ~]# vi /etc/docker/daemon.json 
{
  "registry-mirrors": ["https://e2dszuyu.mirror.aliyuncs.com"]
}
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
[root@localhost ~]# 

# 如果是想把光标所在行置于屏幕中央,是 zz。它不移动光标,而是重绘屏幕,以使光标所在行位于屏幕中间位置。
# 水平和垂直分割打开多个文件
vim -o 
vim -O // 垂直
# 模式匹配
:%s/\(\w\{1,}\)/metadata.\1 = fileInfo.\1/gc
#去重
:sort
:g/^\(.\+\)$\n\1/d

#粘贴格式问题
:set paste
#不要折行显示
:set nowrap
有利于竖向编辑
1.
复制到缓存器

"ayy
表示复制一行到 "a 缓存

2.正则表达式后向引用

() 表示要后向引用,第一个括号的是 \1 ,但在 vim 里要注意 () 要转义,例如,给某些单词加上 “”

:%s/\(\w\{4,10}\)/”\1”/gc

表示 \w\{4,10} 的结果加上 “” 
\w\{8}
vim 里表示 匹配数量是 \{m,n} ,光写 {m,n} 是不行的

正则帮助 :help pattern.txt

总结,如果正常的正则表达式不起作用,考虑加转义 \

3.纵向编辑
Ctrl + v
4.命令行模式 复制 202 co 209 复制第 202 行到 209 行
10,20 co 209 10到20行复制到209行
标签
移到起始行,输入 ma
移到结束行,输入 mb
移到粘贴行,输入 mc
然后 :’a, ‘b co ‘c
m 是剪切,de 是删除
5.精确匹配查找单词
如果你输入 "/the",你也可能找到 "there"。要找到以 "the" 结尾的单词,可以用:
/the\> "\>" 是一个特殊的记号,表示只匹配单词末尾。类似地,"\<" 只匹配单词的开头。
这样,要匹配一个完整的单词 "the",只需:/\
6.匹配空格 \s\+
行尾空格 \s\+$
数据库表-》映射
%s/\s\+$//gc
%s/^/”/gc
%s/$/”,/gc
%s/\s\+/”=>”/gc



7.两个空格以上
\s\{2,\}/’/gc
 
8.利用反向引用构造键值对
初始状态
visitDate,
visitCompany,
visitContact,
visitType,
visitContent,
visitAttach,
sendUid,
替换表达式
:’<,’>s/\(\w\{2,\}\)/\1:\1/gc

visitDate:visitDate,
visitCompany:visitCompany,
visitContact:visitContact,
visitType:visitType,
visitContent:visitContent,
visitAttach:visitAttach,
sendUid:sendUid,
9.
每行前面插入行号如下
:%s/^/\=line(".")/
可视区域插入从1开始的编号
 :'<,'>s/^/\=line('.') - line("'<") + 1/ 

10.删除相同行
:sort
:g/^\(.\+\)$\n\1/d
:g/^\(.\+\)$\n\1/d
11.删除空行
:g/^\s*$/d

11、匹配 10.10.10.29
\(\d\+\.\)\+\d\+
先在fehelper(chrome浏览器插件)上写

12、搜索不区分大小写
末尾加上 \c
比如搜Process, 输入  /process\c

13、默认情况下mapleader不设置,特殊字符串""表示\
比如使用 nerdtree commenter 注释  先按 ESC, 再按下 1\cc  就注释一行
14、显示隐藏行号
set nonu

科目三视频链接

https://kuaibao.qq.com/s/20180424V1D6IB00?refer=kb_sec_share&from=timeline

https://m.youku.com/video/id_XMzExOTg1Njc3Mg==.html?spm=a2h0k.8191393.bodydiv.5%212~5%214~A&source=http%3A%2F%2Fwww.soku.com%2Fm%2Fy%2Fvideo%3Fq%3D%25E4%25B8%259C%25E5%2591%25A84%25E5%258F%25B7%25E9%2581%2593&from=singlemessage&isappinstalled=0&ishttps=1

https://m.youku.com/video/id_XMzExMjA3NDA2OA==.html?spm=a2h0k.8191393.bodydiv.5%212~5%214~A&from=s7.8-1.2&source=http%3A%2F%2Fwww.soku.com%2Fm%2Fy%2Fvideo%3Fq%3D%25E4%25B8%259C%25E5%2591%25A8%25E7%25A7%2591%25E7%259B%25AE%25E4%25B8%25892%25E5%258F%25B7&ishttps=1


        //把LS \x2028 去掉
        $sjs['yeji'] = preg_replace("/[\x{2028}]+/u",'',$sjs['yeji']);

apt-get install libpcre3-dev     libssl-dev perl make build-essential curl
cd /root/openresty-1.13.6.2
./configure
make
make install

curl 127.0.0.1
有以下信息说明安装成功

Welcome to OpenResty!
If you see this page, the OpenResty web platform is successfully installed and working. Further configuration is required.

For online documentation and support please refer to openresty.org.
Commercial support is available at openresty.com.

Thank you for flying OpenResty.

s弯道

  1. 调整车身,大部分在车道内,从中间入,注意回正

  2. 车头左角压线的时候向左一圈,保持车头左角压着线走,出外面了就加90度调回来,然后松开。如果90度没什么变化就打死

  3. 左角压左侧线的时候回正

  4. 右角1/3处压线的时候向右一圈,保持那个点压线,不够就向右加90或打死

  5. 看不见线了回到向右一圈的位置

注意点:

  1. 不能中途停车

  2. 右角1/3处,如果提前了后轮可能压线,如果过了就打死



侧方停车,车位在车右边

流程343

3

  1. 开始前进,人在中间车走直,前方横虚线中间那根正对人

  2. 车头盖接近横虚线的时候身子往前探,看到直角后在后视镜下方就停车

  3. 向车位方向打一圈,挂倒车档

4

  1. 看左边后视镜,第一个直角出来后身子往左往前看

  2. 看到第二个直角出来后回正,眼睛依然看着后视镜,

  3. 左后轮底端靠近车库黄线的时候向左边打死

  4. 车轮底端进线后看车头左端凹处,进线内后停车,

3

  1. 拨转向灯,挂前进档,出车位

  2. 看到竖线出现在车头中间的时候回正加一圈

  3. 走直后回正

 

注意点,4的2,3点很紧凑,不要看方向盘,连贯做回正和向左打死的动作

控制好车速,因为方向变换的时候车速也会因阻力变化而变化

时间,90秒,倒车开始算,出车位过感应线停止计算,一般不会超