linux&unix-sftp免密登录
sftp user@ip
发起连接方 把自己的公钥内容添加到 被连方的$HOME/.ssh/authorized_keys里
在配置ssh自动传输的时候注意,
.ssh目录的属主、属组使用当前用户与用户组,
.ssh目录的权限请保持700,
authorized_keys的权限为644,
id_rsa的权限为600,
id_rsa.pub的权限为644,
同时检查用户$HOME目录权限必须为755。
探雨林古茶,闻驿路梨花
阔别多年的边疆行重新出发,目前规划的路线基本在7天内完成, 选了与广东同纬度的西双版纳作为目的地,上baidu和bing搜出的结果不如人意,怀念google的时代,后来想起ditu.google.cn能用,在边境地区找了几个乡,然后把乡名弄到微博上查,找到一篇小西双版纳公众号文章,刷了一遍公众号,并且加了公众号维护人的微信,请教探讨一番就决定走“西定-章朗-曼佤-曼帕-巴达-曼迈-曼夕-打洛”这条山间路线。其实这几个地方都有乡村公路相连,而走以前村民走过的山路是另一番乐趣。
侬好,上海2017
2016年的主题是建筑,今年是浦江两岸,主要是受到在亚洲第一粮仓搞的城市空间展览的启发,了解到上海去年9月开始实施黄浦江两岸滨江改造,经过本次实地考察已完成大半,还有部分仍在施工,江岸线太长走路太累,单车刚好合适,建议骑私家自行车,共享单车有些滨江带(如虹口,杨浦段)不让上。
手绘骑行图
自底向上介绍:徐汇滨江(目前已经修通西岸艺术中心-日晖港段,号称是最美跑道,除了跑步,还有篮球场,攀岩墙,滑板,玩扁带,甚至玩非洲鼓)-黄浦滨江(目前修到南浦大桥底),建议在陆家浜或者董家渡坐轮渡到对岸浦东滨江,等老码头那一段也修好了,可以继续骑到复兴东渡口(这样可完美避开游客密集的外滩),东岸的老白渡、东昌滨江都已经修得很漂亮,人车分流到位,慢骑不影响观景,然后一路沿江走,到泰东路渡口摆渡回北岸(因为南岸后面到民生路渡口那段都没修好),骑行虹口滨江、杨浦滨江,在丹东路渡口可以看到那个亚洲第一粮仓。
六片山
之前看了朋友的视频:六片山水库游泳,在网上搜知原来那片山被广州驴友称为广州九寨沟,而那几个分布其中的水库被称为天池,驴友果然脑洞大开。六片山在广州户外比较小众,但是山水风景相得益彰,路线较短只有12KM,非常适合周末出走,所以趁国庆的尾巴去探索这新奇有趣的山水。
根据网上攻略在永泰地铁站B2出口出,向后走约50M到磨刀坑村,从村的二手衣服回收站旁上山,一路水泥阶梯路,在分叉路口皆有户外俱乐部留下的飘带作为导向标示,只要细心留意都能发现,虽然也走错了几小段。开头没多久也就遇到三口之家亲子游,到了一个水塘,然后再来到一个最大的水库,水质清澈,就是那栋烂尾楼太碍眼,不过烂尾楼里面还是可以摆拍废墟风格的模特照,一个人就无聊转了一番烂尾楼,看到远处有车队进入,估计是来垂钓或者野泳的。环了大水库到了另一头遇到第二队人马(中年户外群),他们刚游完水上岸吃午饭。
然后沿着山脊走,左侧是大水库,右侧是南湖高尔夫俱乐部,中年团太慢,而且大家的下山目的地不同,走一段之后分道扬镳了,我继续寻找朋友视频所示的水库,一路向东北方走,突然到了一片断崖开阔地,看到龙洞那边筲箕窝雷达站,然后找到上切的路没多久又看到广州新中轴线,接着一路走看到三人团和一个骑车的,终于在高压电塔看到到湖底的字眼就知道下山就是传说中的水库。从高处俯瞰水库,看到不少人在游泳,下去一看原来一群来自前苏联国家的在华工华师读汉语的留学生。
刚开始我是拒绝游泳的,因为刚走完山路得歇会,撩了一回妹子后,就脱了下水游,管他呢,及时行乐(whatever,seize the day)!
很多朋友说一个人出来玩不会觉得无聊吗?我觉得独游之意在于自由探索山水与结交新友之乐也。
发展心理学——儿童与青少年
半个月速读了这本大纲级别的发展心理学——儿童与青少年,讲述备孕怀孕出生一直到18岁的心理发展,一方面反思自己是怎样走过来的,另一方面学习经验日后有用。
其中印象深刻的是成就动机部分,成就动机是指克服困难和取得优异成绩的意愿,它是从掌控动机发展而来。高成就动机青少年的父母有三种品质:(1)温情,接纳,及时表扬孩子的成就;(2)给儿童设定一定的标准加以指导,对过程进行监督并确保其完成任务;(3)给予儿童一定的独立和自主空间,小心翼翼地帮助年幼的孩子使之尽可能独立完成任务,给予年长的孩子发言权,让他们决定如何最好地应对挑战、达到目标。
过程导向的表扬——对儿童在发现和形成好的问题解决策略的过程中付出的努力加以赞许会使儿童倾向于形成学习目标(提升自身能力),就是说表扬具体的过程和事情,而不是空洞的一句“你真聪明”,并尽量避免将表扬与外在奖励过度挂钩。即在面临新任务时,他们认为任务的解决是最重要的目标,而非展现自己的聪明才智。
一项新任务最初的失败只是告诉他们需要实事求是指出问题所在,寻找新的方法,要想达成目标还要在哪方面努力,这样就会使他们不致放弃和表现得无助。
loong-water-phoenix-fire
loong-water-phoenix-fire(龙水凤火,也是广州户外徒步俗称的火龙线),自去年这个时候开始自己摸索这条线路,网上攻略版本很多,走过的人也很多,之所以看上这条线路是因为它离市区最近,而且地铁六号线的开通,只需搭配mobike解决最后1公里就能到达起点和终点,实属一条难得的线路,山上小道较为原始就显得更可贵了,是一条周末市内出游的好路线。
告别西部边境地区长途越野多年,心中对野外仍充满渴望,去年今日先瞎走火炉山转了半天,然后国庆10.3就走了一次火凤,再10.6尝试带朋友走火龙失败了,10.7就从龙眼洞出发完整地沿山脊线大绕了筲箕窝水库到凤凰山,最终探明整条路线,10.15带朋友从水坝过走了一次简单版火龙线。
今年9.2趁台风前来倒走一次龙凤火,从龙眼洞进(龙头),天河白云7号界碑,然后过采石场(此处有悬崖要爬壁,可以带妹子体验小惊险),上到雷达站公路,再到侵华日军碉堡遗址,杓麻山顶,接着就沿山脊线绕水库,期间要切过三段机耕路,最易迷路的地方属于公鱼岭,好在去年10.7时有几位越野跑爱好者一同在公鱼岭休息顺带也指路给我,然后他们飞快地离开我视野范围。上凤凰山顶那段号称绝望坡,下的时候不觉得,上的时候深感。
从凤凰山顶下来途径猪仔山,这边就是天河黄埔的界碑段,一路就是下坡路很好走,就是有点伤膝盖。下来上涂屋村过广汕路对面就是火炉山东北门入口。不想走火炉山的话,可以在村口骑辆Mobike到附近1km的柯木塱地铁站回家。
火炉山那边挑战不大,一个小时可以走完南北穿越到岑村,南段最吸引人的地方是可俯瞰广州第二中轴线。
看地形图,左侧为龙(龙头在龙眼洞,山脊就是龙脊,龙尾在绝望坡,龙身几乎包围着水库,龙从水中出),右侧为凤(凤头在凤顶,身躯尾巴就是猪仔山、火炉山,凤凰火中涅槃),龙凤形如八卦阴阳,此乃风水宝地!以此作为第三条中轴线的北起点,沿着科韵路一路南下,经过信息港金融城,琶洲,大学城并一路延伸至南沙,将是广州未来十年的发展之地,第一中轴线越秀山市府起义路海珠广场天字码头作为政治中心,第二中轴线是天河中信体育中心珠江新城广州塔一线是现在的经济金融中心,未来就是在第三中轴线–新科技新金融线。
均为紫色线条所示,左青龙,右火凤,第三中轴线
awk and sed
好记性不如烂笔头,记录目前用过awk和sed的功能,另外解析个中含义,达到知其所以然的效果。
awk
多行变一行:
awk '{a=a" "$1}/ rn/{print a;a=""}' inputfile > outputfile
a是字符串变量,在读多行文件,把每一行的第一个字段内容在a后面拼接到a(顺序输出),当行出现 rn 标识的时候,输出a, 然后 a=””则是把a赋值为空。如此循环把文件内容读完。
awk '{a=a?$1" "a:$1}/^ Ccy/{print a;a=""}' inputfile > outputfile
awk '{if(a){a=$1" "a} else{a=$1}}/^ Ccy/{print a;a=""}' inputfile > outputfile
上面两句意思一样,判断变量是否为非空,非空就执行 a=$1”[空格]”a, 空就执行a=$1, 如此形成倒序输出。一般第一次a肯定是空的,就把每一行的第一个字段内容写入a,后面a就不空了,就执行 a=$1”[空格]”a,遇到Ccy就结束,输出a, 然后a赋值为空。
关联查询,类似sql关联查询输出
awk 'FNR==NR{a[$2]=$4;next}{if(a[$6]) {print $0,a[$6]} else{print $0,"rn=""\047"1"\047"}}' file2 file1 > outputfile
NR,表示awk开始执行程序后所读取的数据行数;
FNR,与NR功用类似,不同的是awk每打开一个新文件,FNR便从0重新累计。
数组变量a是给file2用 ,,将文件file2字段4($4)内容赋值给a[$2],$2就是键(下标),$4就是值,
FNR==NR为真,读第一个文件file2,{a[$2]=$4;next}就是循环地把file2文件每行的$4内容赋值给数组a[$2],$2是下标。
FNR==NR为假,读第二个文件file1, {if(a[$6]) {print $0,a[$6]} else{print $0,”rn=””\047”1”\047”}},
file1的$6和file2的$2 是关联的对象,类似sql的内外键,二者相等,因为现在读的是file1,此时数组a下标用file1的$6表示。
这里先判断数组a[$6]是否存在,即是file2文件的$4是否存在,存在则输出;
否则赋值 “rn=””\047”1”\047”(rn=’1’,这是字符串,所以前后都有双引号), \047代表单引号’,$0是文件file1每行内容。
全文扫描匹配的行做插入
awk ‘BEGIN{FS=””}{if(/(Maturity=)/){print substr($0,1,18)”-“”$19$20”-“$21$22”T00:00:00\047”}else{print $0}}’ filein > fileout
匹配带关键字Maturity= 的行,然后把那行的日期表达格式改一下,从20180419 改成2018-04-19T00:00:00,后面\047还是’, 不是这个关键字的行就照常输出。
FS:Field Separator,字段分隔符
sed
一行拆成多行
sed -n ‘/[头标识]/,/[尾标识]/p’ [input-file] > [output-file]
例如:
sed -n '/GerneratedPK=/,/\//p' inputfile > outputfile
转义字符\/ ,代表/ 。
替换
sed "s/\/>/ rn='1'/g" inputfile > outputfile
把所有的 />替换为 rn=’1’, 转义字符\/>
类似地,
sed "s/TradeID/TradeId/g" infile > outfile
添加内容
sed "s/^/BEGIN &/g" inputfile > outputfile
在每一行头部加入BEGIN
How to Config Travis-CI
Github 提供的Personal Access Token与帐号密码以及SSH Keys同样具有Github写入能力,因此只要使用Travis CI提供的加密工具来加密这个Token即可。
方案原理
Travis CI使用一对Key Pair中的Public Key加密你提供的github Token得到一个Secure Token(将它写在 .travis.yml 中,而在Build的时候Travis会使用Private Key解密Secure Token获取最初提供的Github Personal Access Token。
具体的操作步骤:
1、生成一个Github Personal Access Token。前往 Github 帐号 Settings 页面,在左侧选择 Personal Access Token,然后在右侧面板点击 “Generate new token” 来新建一个 Token。需要注意的是,创建完的 Token 只有第一次可见,之后再访问就无法看见(只能看见他的名称),因此要保存好这个值。
2、使用Travis CI命令行工具加密 GitHub 的 Personal Access Token。
这个工具是一个gem包,因此需要Ruby环境,Ubuntu等系统下面,执行命令:
apt-get isntall ruby
apt-get isntall ruby-dev。
3、安装 Travis CI 命令行工具
gem install travis
4、加密 Personal Access Token
travis encrypt -r <GitHub用户名>/<GitHub仓库名> GH_TOKEN=XXX
5、将这条命令输出的结果就是secure token,将它复制到 .travis.yml 文件下:
env:
global:
- GH_REF: github.com/<GitHub用户名>/<GitHub仓库名>.git
- secure: "XXXXXX"