用SSH来操作github

最近用github很频繁。
是的,产品经理也要用github。

用客户端登陆被嘲讽了。
而且其实客户端很局限,能用的功能比较少,决定还是用命令行来搞定。

这一步全是参考github的官方文档,我把关键的文档链接贴出来:

https://help.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh

嗯,以上

今晚读到了分支管理这里,成果是终于把公司的wiki clone到本地了。以后可以在本地编辑文档再用命令行push上去了。

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

给服务器开通BBR

Google developed a TCP Congestion Control Algorithm (CCA) called TCP Bottleneck Bandwidth and RRT (BBR) that overcomes many of the issues found in both Reno and CUBIC (the default CCAs). This new algorithm not only achieves significant bandwidth improvements, but also lower latency. TCP BBR is already employed with google.com servers, and now you can make it happen–so long as your Linux machine is running kernel 4.9 or newer.

搭建FTP服务器

详细过程有点懒得写,链接一个教程
https://www.howtoforge.com/tutorial/ubuntu-vsftpd/
这里踩到第一个坑是被动模式
因为有防火墙,一定要被动模式才能连通
被动模式是这么一回事

开启被动模式在filezilla的log中会看到:
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px ‘Helvetica Neue’; color: #008000; background-color: #ffffff} span.Apple-tab-span {white-space:pre}

Response: 227 Entering Passive Mode (H1,H2,H3,H4,P1,P2).

这里的P1*256+P2,就是当前被动模式的随机端口号

防火墙中开启设定好的端口范围,再重启一下vsftp服务
搞定了

采用zsh作为mac的默认shell

mac升级Catalina后,默认的shell是zsh,以前是bash
本人本来就是新手小白,就算用了很久的bash,每次命令行输入都要上网查一下
这次将就mac,换成了据说很厉害的zsh
笔记如下:
先查看一下电脑上都有些什么shell:
cat /etc/shells
再看看当前再运行什么shell:
echo $SHELL
确实还在用bash
改成zsh:
chsh -s /bin/zsh
完毕

SSH创建密钥登陆远程服务器

网上教程太多了,这里简单做个笔记好了:
在本地terminal输入:
ssh-keygen
生成密钥对
要不要给密钥加密,我选择的是加密
输入了一个超长超难的密码,“就不告诉你密码系列”,图个开心
然后把密钥上传到服务器就好
上传方法是,本地terminal输入:
ssh-copy-id user@host
输入成功后可以到服务器上把ssh配置修改为不允许密码登陆
方法是,登入服务器找到ssh配置文件,通常在/etc/ssh/ssh_config
在文件内找到
# PasswordAuthentication yes
去掉注释后把yes改成no
完毕

工作稍微空闲继续搞机

前情提要:
国内的一个服务器始终无法搭建apache,反复尝试发现是IDC屏蔽了80端口。浪费了我大量时间(竖个中指)
现在终于通过配置apache的config,可以经过81端口访问web服务。
需求:
我打算拿这个服务器来做个图床。
流程是:网页端拖拽上传图片,系统按相应规则重命名图片,储存并建立目录,目录存储在数据库中。
这次就试着在github上去建立个repo,从头到尾自己做练练手看看。
repo地址:
https://github.com/hawken-im/myImgHost

第一步,因为是往自己的服务器上传,需要一个好的验证方式,我选择用github的api来做第三方授权登陆。查找了官方文档。主要在这里讲了:
https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow

有了官方文档做参考,现在就去github里看看还有没有现成的代码可以用

update:
需求变更:
经过研究,python不适合写web前端,我这个小需求也没必要整个什么Django框架。于是回到自己熟悉的PHP,又经过研究,PHP确实有点大势已去,没有重新捡起来的动力。于是又去研究Javascript,发现倒还可以用,可是我从来没用过,不是很想给自己挖新坑。
最后的结论是:我将在本地写上传脚本,直接从本地将图片上传至服务器并更新服务器端的数据库。一切从简。

update:
再次改变实现方法:
建立了FTP服务器
将图片上传到服务器上某文件夹内
为了安全不直接上传到web文件夹
写一个自动同步的shell脚本,同步图片到web文件夹

关于终身学习

很多人认为大学就是人这辈子最后学习的场所了,最多也是到博士。
仔细想想大学也就4年吧?上大学的时候是不是觉得4年时间还挺长的?
现在工作了,发现时间怎么变快了。一不小心工作的时间都够上2、3个大学了。

一个交互小问题

网页上,很多时候不愿意跳转到新窗口。
但是UI上好像没有特别的规范,哪种按钮或超链接是跳转到新窗口,哪种是本地打开。
为了保险起见,因为有些并不愿意跳转走的页面,返回去很麻烦。
很多时候就是右键,自己选择在新窗口中(新Tab中)打开。
不知怎么样明确地让用户知道这个链接是在新窗口中打开?