记录一次在vps上安装并配置v2ray的过程。
Telegram-cli自动化
安装Telegram-cli
先把仓库源码clone下来(更换为kenorb-contrib,源仓库无法build):
1 | git clone --recursive https://github.com/kenorb-contrib/tg.git && cd tg |
再安装相关依赖 (ubuntu/debian):
1 | sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev libpython-dev libpython3-dev libgcrypt-dev zlib1g-dev lua-lgi make -y |
然后,开始编译:
1 | ./configure |
换源后不会出现以下依赖问题,可忽略
这一步可能会出问题,如果在执行./configure
时报错zlib error
, 则应通过安装zlib依赖来解决:
1 | sudo apt install zlib1g-dev |
如果是报openssl error
, 则是因为openssl的api升级了,可通过安装如下指定版本号的libssl来解决:
1 | sudo apt install libssl1.0-dev |
使用
可通过执行如下代码启动Telegram-cli客户端,注意,要在科学上网环境下执行!
1 | bin/telegram-cli -k tg-server.pub |
如果没有配置好科学上网环境,启动之后是用不了的,可以通过proxychains
让命令行走代理(proxychains的配置之前有讲过,可以翻一下之前的文章):
1 | proxychains bin/telegram-cli -k tg-server.pub |
第一次启动,会让你输入手机号,别忘了+86国际区号哦,然后一路验证。验证完成后就可以使用了,这里列出一些常用语法:
1 | msg <peer> sometext #例如:msg @somebody hello |
自动化
利用Linux下的crontab设置如下定时任务,可完成定时发消息的任务
1 | telegram-cli_PATH/bin/telegram-cli -W -e "msg <peer> sometext" |
Linux下启用命令行代理
首先是配置一个科学上网的环境,可以通过安装目前比较流行的V2ray或ShadowsocksR来实现。其次,需要让命令行中执行的程序的流量走代理通道,这个可以通过安装proxychains来实现。最后,开始享受你的愉快探索之旅吧!
python中的变量
python中分好多变量,全局变量、局部变量、静态变量(类变量)、实例变量,整得人有点懵,今天就腾出时间给它来一次总结。
树莓派入门
树莓派(Raspberry Pi)是一款基于ARM的微型电脑主板,旨在促进落后地区学生计算机编程教育。虽然树莓派只有一个卡片大小,但是计算机该有的功能它一样具备,加之它能耗小能够长时间待机,而且价格便宜,因此树莓派不少搞机人士的青睐。
本文主要介绍一下,我购买树莓派4b的基本配置及其用途,当然,还会现身说法,讲述一下我踩过的坑。
当range为空时的for循环
我们知道在python中for循环常常和range函数一起用,如for i in range(100):
,其中range函数有由三个参数控制,起始值、终止值、步长,返回的是一个可迭代对象,该对象并非列表,而且是左开右闭的,也就是右边的数是不取的,比如range(2,3),那么能取到的值只能是2。
在素数判断中,我们判断一个数是否是素数,我们需要对这个取余,从2开始一直到这个数的平方根,如果出现余数为零的情况则判断它不是素数。那问题来了, 如果判断的数从2开始,那该从range(2,2)里遍历,注意到没有range(2,2)的左右边界是相等的,那么它会返回结果包含哪些数呢?还是会报错?
python函数中的参数传递
python函数中传入数值或者字符串等不可变类型时,在函数内修改传入参数的值,传入的参数的在原始值并不会跟着变,但是当你传入的是列表、字典等可变类型的数据时,在函数内修改他们的值,这些变量的原始值会跟着一块变。
循环语句中的break、continue和else
python中循环语句有两大类 ,for循环和while循环。for循环常用于循环次数已知的情况,而且常常和range函数搭配使用;而while循环常用于循环次数未知的情况,利用条件判断来进行循环,只要条件为真则进行下去。
else、break和continue是常常搭配循环语句一起使用的,其中break和continue常常和if语句构成一个判断来改变循环的执行情况;else则是当循环体正常结束(break没有发生)时,提供一个最终的判断执行,通俗地说就是“直到……才”。
python可哈希对象
一个对象在其生命周期内,如果保持不变,就是hashable(可哈希的),常见的可哈希的数据类型有数值、字符串、列表;而内容可更改的,比如列表、字典、集合等则不是。