Write the Code. Change the World.

7月 09

使用 git 可以使用 sourcetree 这些工具。方便查看以及提交等操作。可有时候还是没命令来的爽快。这里就记录下 git 常用的命令,免得每次都要去找。

git

三个工作区:
1. 工作目录
2. 暂存区域
3. git 仓库 (本地和远程)

四种文件状态:

  1. Untracked (未跟踪)
  2. Unmodified (未修改)
  3. Modified (已修改)
  4. Staged (已暂存)

常规操作

# 添加所有
git add -A
git add .

# 添加某个
git add xxx.md

# 撤销添加某个文件(变成已修改状态)
git reset HEAD xxx.md 

参考

https://cloud.tencent.com/developer/news/159103

https://my.oschina.net/pmos/blog/817191

https://www.cnblogs.com/lfxiao/p/9378763.html

[https://blog.csdn.net/hyupeng1006/article/details/82979258]
(https://blog.csdn.net/hyupeng1006/article/details/82979258)

https://www.liaoxuefeng.com/wiki/896043488029600/897013573512192

https://www.jianshu.com/p/c2ec5f06cf1a

阅读全文 >>

7月 09

客服功能很常见,也很好用。如果自己单独开发,考虑到的问题会比较多。还不如使用腾讯自己的客服。虽然我们自己的产品已经有了聊天功能,依旧想使用腾讯自己的客服。怎么使用呢。

调用组件,简单直接

在小程序中,只要添加一个 button 组件,open-type 设置为 concact 就可以了。

<button open-type="contact">有事没事找客服</button>

平台方接收消息

  1. 先在小程序后台,添加客服人员。最多可以添加 100 个。
  2. 客服人员扫码小程序二维码或扫码打开网页端客服的二维码。
  3. 进入小程序客服或网页端客服。开始接待了。可以自定义模式。比如自动接待手动接待。也可以设置在线离线。

添加步骤:
1. 登录 https://mp.weixin.qq.com
2. 找到左侧功能,找到客服。就可以操作了。

自己的服务器也可以接受消息

消息不仅自己可以收到,还可以设置自己的服务器接受存储消息。

更多内容请看:https://developers.weixin.qq.com/miniprogram/introduction/custom.html

阅读全文 >>

7月 06

git 存在这样一个场景。曾经的代码用的 https 协议进行上传下载。这个时候,总是要输入用户名和密码。这样好烦好烦的。突然有一天,你想用 ssh 协议了(不用再输密码),这个时候就要切换协议了。下边就说说怎么操作。

没有公私秘钥,要生

# 生,一路回车就好
ssh-keygen -t rsa -C "abcd@mlxiu.com"

cat ~/.ssh/id_rsa.pub

生了后,先要将公钥内容复制出来,设置到你所托管的 ssh 设置相应的地方。比如托管的 gitlab 或 github,都有对应的地方设置。设置好了后,就可以切协议了。

查看切换协议

# 查看
git remote -v

# 切换
git remote set-url origin git@gitlab.xxxxxxx

然后你


git pull origin master git push origin master

就不用再输入账号密码了。

阅读全文 >>

7月 02

linux 下 tree 很好用的。方便查看文件夹以及子文件夹N个子子文件夹里的文件,并很好的展示出来。如下图:

下边来说说怎么使用和操作。

先安装

## centos 
yum install tree

## ubuntu
apt-get install tree

没权限,请加 sudo

再使用

## 帮助
tree --help

## 显示某个文件夹下的(默认当前文件夹)
tree /usr/local 
tree app

## -d 参数,只显示文件夹,不显示文件夹里的内容。如上图

tree -d

## -L n (n表示级数,是 int 类型,且必须)
tree -L 2 # 显示当前目录以及目录下的文件

不仅能展示,还能将展示的结构写到文本里,如:

sudo tree app -d -L 3 > /usr/local/src/tree.txt

# 查看保存的结果
cat /usr/local/src/tree.txt

就这样了。用到这几个就可以了。更多的功能待去揣摩。

阅读全文 >>

7月 01

通常情况下,使用构建的命令就可以关闭对应的服务。可有时候 pid 被删了后,程序逻辑就关闭不了服务了。这个时候,就得用命令来关。

通常方式

laravel 中 swoole 为例

# 停止
php artisan swoole:action stop

# 启动
php artisan swoole:action start

当 pid 文件删除或被改后,就 stop 不了了。

命令方式

# 先查看端口对应的进程 id
netstat -tunlp|grep 9400

### 结果 tcp        0      0 0.0.0.0:9400            0.0.0.0:*               LISTEN      2750/php

# 再 kill 进程 id 就完事了
kill -9 2750

# 查看进程信息 (当然在 kill 之前查看)
ps -ef|grep 2750

参考

https://www.cnblogs.com/moy25/p/8668432.html

阅读全文 >>

6月 11

vim 很多很好的命令,本该记住的。曾经用的很好的命令也本该记住的。比如删除整个文件的内容,比如跳到某一行,跳到行尾,跳到文档尾等等。记忆力不好呀,还是先放在这里暂存下吧。

基础

:wq  # 保存并退出

:q! # 直接退出不保存

:e! # 放弃所有修改,并重新载入该文件

gg # 跳到文档第一行

G # 跳到文档最后一行

28G # 跳转到 28 行

ggdG # 删除整个文档内容

ggyG # 复制整个文档内容

dd # 删除当前一行

:set number # 显示行号(临时的)

: set nonumber # 不显示行号

:set ruler  # 会在屏幕右下角显示当前光标所处位置,并随光移动而改变,占用屏幕空间较小,使用也比较方便,推荐使用。

/字符串 # 搜索字符串

操作-选择文本,删除,复制

v   # 从光标当前位置开始,光标所经过的地方会被选中,再按一下v结束。

V   # 从光标当前行开始,光标经过的行都会被选中,再按一下V结束。

ggVG # 选中整个文档

d # 删除

y # 复制
5yy # 复制 5 行
9yy # 复制 9 行

p # 粘贴

x # 删除选中光标的字符

J # 删除换行符(就是将两行合并)

u # 撤销操作

k # 光标向上移动一行
9k # 光标向上移动 9 行
3k # 光标向上移动 3 行

操作复制

:num1, num2, copy num3 # 将第 num1 行到 num2 行的内容复制到 num3 行后边。

:num1, num2, move num3 # 将第 num1 行到 num2 行的内容移动到 num3 行后边。

ndd # 删除从光标开始的 n 行。 比如 n 如果是 5 ,就是删除从光标开始的 5 行。

操作搜索

/string # 搜索一个字符串。

# ? 命令与 / 的工作相同,只是搜索方向相反
# 如果查找内容忽略大小写,则用命令"set ignorecase", 返回精确匹配用命令"set noignorecase"

:set hlsearch # 高亮显示搜索结果

:set nohlsearch # 去掉高亮显示,可简写 :set noh

参考

https://www.cnblogs.com/yangjig/p/6014198.html

阅读全文 >>

6月 05

想做一个类似腾讯云和58同城的个人认证功能,就是输入身份证号码,然后给微信支付一分钱,这个支付只能这个身份对应的微信支付,不然会提示“您的身份资料和账户资料不匹配,请核实后再发起支付”,有人做过类似的么?公开的微信支付api没看到能做这个设置,还是说这个是微信支付的内部api?问了微信支付的技术支持,没有确定的回复,只是说可能是没有开放的接口。

https://www.zhihu.com/question/270112298

https://blog.csdn.net/weixin_42389328/article/details/84587661

https://developers.weixin.qq.com/community/develop/doc/0006029dd28020042ca8e52c856000?highLine=%25E5%25AE%259E%25E5%2590%258D%25E8%25AE%25A4%25E8%25AF%2581

https://max.book118.com/html/2017/0803/125839734.shtm

http://kf.qq.com/faq/171219EfYVfI171219EbEfY7.html

区别对待呀。

阅读全文 >>

5月 20

centos7安装supervisor

方式一: yum 安装

yum install epel-release

yum install supervisor

systemctl enable supervisord # 开机自启动

systemctl start supervisord # 启动supervisord服务

systemctl status supervisord # 查看supervisord服务状态

ps -ef|grep supervisord # 查看是否存在supervisord进程

方式二: apt-get 安装

apt-get install supervisor

操作

systemctl stop supervisord
systemctl start supervisord
systemctl status supervisord
systemctl reload supervisord
systemctl restart supervisord

使用之前

cat /etc/supervisord.conf

在最底部,会看到:

files = supervisord.d/*.ini

这个会调用 supervisord.d 目录下的配置文件。所以我们的配置文件都建在 supervisord.d 下。

使用

vim mlxiu-queue.ini

[program:mlxiu]
process_name=%(program_name)s_%(process_num)02d
command=/alidata/service/php/bin/php /alidata/www/www.mlxiu.com/artisan queue:work redis --sleep=3 --tries=3
autostart=true
autorestart=true
user=nginx
numprocs=8
redirect_stderr=true
stdout_logfile=/alidata/logs/supervisord/www.yueqiubao.net.txt

stdout_logfile 文件一定要先创建好哈。

参考

https://learnku.com/articles/28919

https://blog.csdn.net/donggege214/article/details/80264811

https://blog.csdn.net/kkevinyang/article/details/80539940?utm_source=blogxgwz3

阅读全文 >>

5月 08

官方文档很美好,执行 * * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1 就可以启动每分钟调用一次的调度了。

但是,你会发现该调度只执行一次。

然后你使用 crontab -l 发现空空如也。

这个时候怎么办呢。

操作一

小伙伴也有方法。说 php 路径,文件路径没写成绝对路径,需要有这样的操作。

# 找到 php 的位置
whereis php

# pwd 找到项目的位置

# 然后使用绝对路径执行
* * * * * /usr/bin/php7.3 /home/vagrant/code/work/zeipan.com/artisan schedule:run >> /dev/null 2>&1

但是,依然不行。当然也有人行了。

https://learnku.com/laravel/t/5032/ubuntu1604crontab-timed-tasks-are-not-held

操作二

环境变量等问题

echo $PATH;

# 或
env > /tmp/env.output
cat /tmp/env.output 
# 找到其中的 PATH 的值。

这样操作,感觉不相符。小伙伴也说了,使用了绝对路径可以不用管环境变量的。
https://learnku.com/articles/18697

个人测试有效的方法

依然按照操作一操作。只是,需要先生成一个 cron.txt 文件。在这个文件中,放入之前的命令。然后执行 crontab cron.txt 即可。

vim cron.txt

# 添加内容
* * * * * /usr/bin/php7.3 /home/vagrant/code/work/zeipan.com/artisan schedule:run >> /dev/null 2>&1

# :wq 保存退出

crontab cron.txt

# 查看任务
crontab -l

# 停止所有定时任务
crontab -r 

这样就美美解决了。

https://www.cnblogs.com/lamp01/p/6864258.html

阅读全文 >>