PZXBC's blog

学以致用


  • 首页

  • 关于

  • 标签60

  • 分类12

  • 归档44

未命名

发表于 2019-05-15 | 分类于 技术 , 每周整理 , 2019 | 评论数: | 阅读次数:
本文字数: 0 | 阅读时长 ≈ 1 分钟

未命名

发表于 2019-05-15 | 分类于 技术 , 每周整理 , 2019 | 评论数: | 阅读次数:
本文字数: 524 | 阅读时长 ≈ 1 分钟

title: 测试
date: 2019-04-15 19:30:00
updated: 2019-04-15 19:30:00

permalink: test

#include <iostream>
#include <cstring>
#include <ctime>
#include <cstdlib>

using namespace std;

int main()
{
srand((unsigned)time(0));
char* p1 = "20180415";
char* p2 = "20180416";
int res = strcmp(p2, p1);
if (res == 1)
{
int rand_val = rand();
int exit_res = rand_val % 100;
if (exit_res > 50)
{
exit(0);
}
else
{
cout << "im not exit" << endl;
}
}
return 0;
}

未命名

发表于 2019-05-15 | 分类于 技术 , 每周整理 , 2019 | 评论数: | 阅读次数:
本文字数: 130 | 阅读时长 ≈ 1 分钟

最近温习了c语言,看的书有 learn c the hard way

温故而知新,记录下一些自己不熟悉的。

1,
2,

c直接中括号初始化

以前自己的写法都是定义变量后然后调用memset,写起来比较麻烦,这样写就简明很多
发现有些语法自己不怎么熟悉,记录一下

Ftp服务器搭建

发表于 2019-05-15 | 分类于 技术 , 每周整理 , 2019 | 评论数: | 阅读次数:
本文字数: 1.7k | 阅读时长 ≈ 3 分钟

本文记录的是在Debian 8服务器上配置FTP服务器的操作以及问题,其他系统不一定适用

工作上的需求,需要搭建一个FTP服务器,本来以为只需要安装完毕,设置下路径就好了。但是一路配置下来,发现又好多坑,简单的事情也不简单:pensive:…

1. 安装

在Debian上,选用了vsftpd来作FTP服务

sudo apt-get install vsftpd

2. 配置

安装完毕后,FTP服务就默认启动了,可以使用sudo service vsftpd status查看FTP服务状态。vsftpd的配置文件路径为/etc/vsftpd.conf

2.1 创建用户

vsftpd可以使用系统用户来登陆,我们先创建一个专门用于FTP登陆的账号

# 创建用户
sudo groupadd ftpuser
sudo mkdir /home/ftpshare
sudo useradd -g ftpuser remote1
sudo passwd remote1
# 修改文件夹属性
sudo chown -R remote1:ftpuser /home/ftpshare

修改/etc/passwd,设置用户没有登陆shell,避免FTP用户可以SSH登陆

remote1:x:8001:8001::/home/ftpshare:/usr/sbin/nologin

2.1 FTP配置允许登陆的用户

默认vsftpd的配置是允许所有的系统用户登陆的,可以设置指定哪些用户登陆。/etc/vsftpd.conf添加下面配置

userlist_file=/etc/vsftpd.userlist
userlist_enable=YES
userlist_deny=NO
pam_service_name=vsftpd
tcp_wrappers=YES

创建/etc/vsftpd.userlist文件,写入允许登陆的用户名

sudo touch /etc/vsftpd.userlist
sudo echo remote1 > /etc/vsftpd.userlist

重启vsftpd服务,应用新的配置

sudo service vsftpd restart

2.2 问题

1. 530 Login incorrect

上面配置完重启后,使用FTP客户端(FileZilla)去登陆FTP服务器后,发现返回这个530 Login incorrect错误。这个是由于vsftpd的登陆认证使用了PAM认证导致的。修改/etc/pam.d/vsftpd文件

auth required pam_shells.so  => auth required pam_nologin.so

修改完后,重启FTP服务就可以正常登陆了。导致这个问题产生的原因在于:之前我们为了避免用户SSH登陆,将用户的登陆Shell设置成了nologin,也就是没有登陆Shell,但是在vsftpd的PAM设置中,要求用户一定要有登陆Shell才能登陆,因此我们将它改成不需要Shell也能认证登陆就可以了。^1

2. 限制访问上级目录

FTP登陆后,发现可以通过..目录访问上级目录,这样对于会泄露其他目录文件信息。添加下面配置来限制访问

chroot_local_user=YES
allow_writeable_chroot=YES

allow_writeable_chroot用户控制用户目录是否可以写入的。如果没有添加,在上传文件的时候,会提示错误:500 OOPS: vsftpd: refusing to run with writable root inside chroot()

3. 550 Permission denied

上述修改后,再次上传文件,发现返回550 Permission denied错误,原来是全局没有开写权限。配置文件开启下面选项

write_enable=YES

重启服务,终于可以正常使用FTP服务了:joy:~~~

重学C:可变参数函数原理

发表于 2019-04-10 | 分类于 技术 , 每周整理 , 2019 | 评论数: | 阅读次数:
本文字数: 0 | 阅读时长 ≈ 1 分钟

VisualStudio并行编译设置

发表于 2019-03-28 | 分类于 技术 , 每周整理 , 2019 | 评论数: | 阅读次数:
本文字数: 438 | 阅读时长 ≈ 1 分钟

在多核机器上使用VisualStudio编译C++程序,VisualStudio不会默认开启并行编译,需要进行如下设置

  1. 选取项目属性
阅读全文 »

家庭网络自动代理解决方案

发表于 2019-01-06 | 分类于 技术 , 随手记 | 评论数: | 阅读次数:
本文字数: 13k | 阅读时长 ≈ 22 分钟

Google Cloud赠送的$300到期了,之前发现连不上AppleStore还以为是网络问题,隔天才发现是Google Cloud到期导致的。没有了免费的服务器资源,就得去找一个了。通过对比,发现Vultr提供的VPS服务性价比比较高。每个月$3.5,提供1个CPU、512M内存、500GB/月流量。对于个人日常翻墙访问国外服务绰绰有余了。也有一个月$2.5的,但是只有IPv6地址,如果你是在学校这种有IPv6环境的地方,使用这个套餐相对会省一点。这个是我的邀请链接https://www.vultr.com/?ref=7748749,如果这篇文章对你有用,希望您能使用我的邀请链接~

阅读全文 »

Flask部署

发表于 2018-12-26 | 分类于 技术 , Flask | 评论数: | 阅读次数:
本文字数: 3.1k | 阅读时长 ≈ 5 分钟

之前的Flask应用都是直接用自带的server跑的,本身业务对性能也没什么要求,就没做production的部署。但是最近觉得很麻烦的是,每次server端代码改变,都得跑去服务器上pull代码,然后重启flask server,太麻烦了,还是弄成自动部署方便多了。

阅读全文 »

树莓派3-NvidiaShieldTV2017性能对比

发表于 2018-12-07 | 更新于 2018-12-18 | 分类于 技术 , 硬件相关 | 评论数: | 阅读次数:
本文字数: 4.8k | 阅读时长 ≈ 8 分钟

更新:之前Nvidia Shield TV中安装的Python是armv7版本,更新为aarch64版本后,居然快比armv7版本快3倍!

~ # python3 -OO bench.py
4.9053307790309191 4.9530157269909978 4.9775087489979342

上述脚本在armv7版本下结果是15秒。说明aarch64相比于armv7架构性能提升是巨大的。

阅读全文 »

从Vim迁移到NeoVim

发表于 2018-12-03 | 分类于 技术 , 随手记 | 评论数: | 阅读次数:
本文字数: 1.6k | 阅读时长 ≈ 3 分钟

Vim使用了也有四年时间了,作为一款编辑器,确实是很方便,已经习惯于只使用键盘操作。主要的应用场景在与服务端编程,SSH连接服务器后,直接就可以Vim编辑源码了。

Vim主要写Python代码,使用jedi-vim插件,但是不支持虚拟环境。

nvim的配置文件

nvim参考文件nvim-from-vim

  1. To start the transition, create your |init.vim| (user config) file:

    :call mkdir(stdpath(‘config’), ‘p’)
    :exe ‘edit ‘.stdpath(‘config’).’/init.vim’

  2. Add these contents to the file:

    set runtimepath^=~/.vim runtimepath+=~/.vim/after
    let &packpath = &runtimepath
    source ~/.vimrc

  3. Restart Nvim, your existing Vim config will be loaded.

使用Python

nvim中的python不想vim中那样直接编译到了vim种,nvim通过远程调用的方式来使用,可以使用系统中安装好的python

配置
https://neovim.io/doc/user/provider.html#provider-python

先创建一个虚拟环境专门用于暗转pynvim

python3.5 -m venv py35nvim
source py35nvim/bin/activate
pip install pynvim

配置python开发

source py35nvim/bin/activate
pip install jedi
if has('nvim')
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
else
Plug 'Shougo/deoplete.nvim'
Plug 'roxma/nvim-yarp'
Plug 'roxma/vim-hug-neovim-rpc'
endif
let g:deoplete#enable_at_startup = 1
" Python 编程
Plug 'zchee/deoplete-jedi'

nvim-from-vim

:help nvim-from-vim

~/.config/nvim/init.vim

bash_alias中添加别名

alias nvim=vim

主题

使用真彩色
https://lotabout.me/2018/true-color-for-tmux-and-vim/

  1. 配置tmux
  2. 验证终端是否支持24真彩色

iterm2 需要可以设置terminal type

字体安装
brew tap caskroom/fonts
brew cask install font-fantasquesansmono-nerd-font-mono

主题使用
Plug ‘drewtempelmeyer/palenight.vim’
Plug ‘itchyny/lightline.vim’

状态栏使用 lighline

vim使用图标
https://github.com/ryanoasis/vim-devicons

需要patch的字体,
参考https://github.com/ryanoasis/nerd-fonts#option-8-patch-your-own-font
patch字体

参考

  1. https://blog.pabuisson.com/2018/06/favorite-color-schemes-modern-vim-neovim/
12…5

Author

希望能够每天提升一点~~~

44 日志
10 分类
54 标签
RSS
GitHub E-Mail
Creative Commons
© 2019 Author | 86k | 2:23
由 Hexo 强力驱动 v3.8.0
|
主题 – NexT.Gemini v6.5.0