跳到主要内容

· 阅读需 3 分钟
star

PowerShellMicroSoft 开发的一款跨平台的任务自动化解决方案,由命令行 Shell、脚本语言和配置框架构成。PowerShell 支持 KornShell 的核心语法,习惯 bash 的朋友非常容易切换到 PowerShell,所以 PowerShellWindows 上非常受欢迎的命令行工具。

1. 配置profile

PowerShell 支持个性化配置,同时定义了很多变量来方便用户对 profile 进行配置。

变量说明
$PROFILE当前用户,当前主机
$PROFILE.CurrentUserCurrentHost当前用户,当前主机
$PROFILE.CurrentUserAllHosts当前用户,所有主机
$PROFILE.AllUsersCurrentHost所有用户,当前主机
$PROFILE.AllUsersAllHosts所有用户,所有主机

 查看变量对应值

$PROFILE | Get-Member -Type NoteProperty

 测试文件是否存在

Test-Path -Path $PROFILE.AllUsersAllHosts

 新建文件,注意需要管理员权限

New-Item -ItemType File -Path $PROFILE.AllUsersAllHost -Force

 修改文件

notepad $PROFILE.AllUsersAllHosts

 在 profile 里新增代理配置如下,这样启动 PowerShell 时默认会将 http://127.0.0.1/10809 作为 Https 的代理。

添加代理
$ENV:HTTPS_PROXY='http://127.0.0.1:10809'

2. scp免密拷贝

 发布站点到服务器时,需要将本地打包好的内容拷贝到远程服务器上。PowerShell 支持 scp 命令,可以参考github使用一文,将本地的 pub key 加到远程服务器的信任 key 中,这样拷贝时不用输入密码。

cat ~/.ssh/id_rsa.pub | ssh [email protected] 'cat >> ~/.ssh/authorized_keys'

 在 profile 里面定义下面两个变量:

$SSH_PUB_KEY='添加到远程服务器信任的key'
$REMOTE_SERVER='远程服务器的地址'

docusaraus编译生成的站点可以通过下面命令完成部署。

scp -i $SSH_PUB_KEY -r build/ $REMOTE_SERVER

3. 修改启动PowerShell时的默认路径

 可以通过以下方式修改 PowerShell 的启动路径。

  • 进入目录: C:\Users\yourusername\Documents\WindowsPowerShell,其中 yourusernam 替换成你的系统用户

  • 创建一个配置文件,例如:Microsoft.PowerShell_profile.ps1

  • 在文件中添加以下内容,location 后面填写你希望的目录

Set-location D:\xxx

署名-非商业性使用-禁止演绎 4.0 国际

· 阅读需 6 分钟
star

Github是风靡全球的代码托管平台,它托管了无数的开源项目,可以说是一个宝藏网站。

1. 账号申请

 前往官网申请账号即可,仅需要一个邮箱。

2. 添加ssh

 本地和服务器通过 ssh 协议进行通信,所以需要添加 ssh,才可以向服务器推送代码。

2.1 生成ssh key

 先下载Git Bash,打开 Git Bash,执行以下命令,其中 ed25519key 的类型,ssh-keygen 支持的其他类型有:dsaecdsaesdsa-skrsa 等。后面邮箱用你注册 Github 的邮箱地址即可。

ssh-keygen -t ed25519 -C "[email protected]"

 在生成的 key 的过程中,会提示你指定 key 名字,如果不指定,默认为 ed25519。如果你打算生成多个 key,就需要指定文件名称。

 生成 key 之后,需要将 key 加入到 ssh-agent 里面,只有这样本地 ssh 在和 github 通信的时候,才知道用哪个 key 进行通信。第一条命令是启动 ssh-agent,第二条命令是将生成的 key 添加到 ssh-agent 里面。

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
警告

 这里需要注意,ssh-agent 不会自动启动。下次重启之后,又需要手动启动 ssh-agent,并且添加文件,非常麻烦。这里可以在 C:\Users\tiago.ssh 目录下,新增一个 config 文件,内容如下:

Host *
AddKeysToAgent yes
IdentityFile ~/.ssh/id_ed25519

生成的 key 实际是一对,包括公钥和私钥,需要将公钥(~/.ssh/id_ed25519.pub 文件里面的内容)添加到 githubSSH 里面。

 这里简单介绍一下 ssh 的公钥认证的原理,在介绍它之前,需要先了解非对称加密算法,介绍非对称加密算法的文章很多,这里只需要知道非对称算法的几个特点:

  1. 非对称算法有两个密钥,一个叫公钥,故名思意就是可以公开的密钥;一个是私钥,只有自己知道。
  2. 对于用公钥进行加密的数据,只有通过私钥才能进行解密。
  3. 用私钥对数据进行签名,可以用公钥来验证。

 公钥认证分为这样几个步骤:

  1. 客户端先生成密钥对(例如前面使用 ssh-keygen
  2. 将公钥拷贝到服务端(将 pub 文件添加到 github)
  3. 服务端将拷贝的公钥标记为信任的 key
  4. 服务端验证客户端是否拥有对应的私钥。

 验证的过程,SSHV1协议和SSHV2协议有一些差异:

SSHV1:

 服务端用公钥对一段数据进行加密,客户端收到之后,用私钥进行解密,并且返回给服务端这段数据的校验和。(利用非对称算法的第2点)

SSHV2:

 客户端对一段基于 sessionId 的数据进行签名,服务端接收到数据之后利用公钥来验证是否是对应私钥的签名。(利用非对称算法的第3点)

3. 新建仓库

 在github上点击创建仓库按钮,按照指引创建即可。

4. 将本地仓库推送到远端

4.1 本地git仓库创建

 如果本地仓库已经存在,可以跳过。

git init -b main
git add .
git commit -m "First commit"

4.2 将本地仓库推送到远端

 执行以下命令,完成推送。

git remote add origin  <REMOTE_URL>
git remote -v
git push origin main
提示

ssh key 已经添加,但还是提示没有权限,可以检查 ssh-agent 是否启动。

署名-非商业性使用-禁止演绎 4.0 国际

· 阅读需 3 分钟
star

Atom 是一款免费、开源充满黑科技的文本编辑器,最近开发一些 nodejs 的项目时,尝试了一下这款编辑器,记录下使用过程,方便以后查阅,也希望能帮助到有需要的朋友。

1. 下载与安装

Atom官方网站github首页有详细的安装教程,这里就不再赘述。

2. 设置代理

 因为网络封锁的原因,有时需要代理才能下载某些插件,搭建代理的方式可以参考建站全攻略。先关闭 Atom,打开终端,执行下面命令。

apm config set http-proxy http://127.0.0.1:10886

3. 插件安装

Atom 是一款轻量级的编辑器,只安装了使用最频繁的插件,如果想作为 ide,需要手动安装一些插件,在 FileSettingsInstall 里面可以搜索需要安装的插件,下面列举一些非常常用的插件。

  • atom-beautify 代码格式化

  • platformio-ide-terminal 打开终端的插件

  • vim-mode,如果搜不到,可以使用apm命令进行安装 apm install vim-mode

  • file-templates 文件模板,在写文档时,md 文件中很多内容都是重复的,可以通过模板来创建新的文件。不过这个插件并不是通过文件的后缀名来匹配模板,而是创建的时候手动的指定从哪个模板创建。

  • ascii_tree,通过 ascii 码生成树形结构,非常适合展示目录结构。先使用 +- 号显示目录结构,选中文本,点击插件生成即可。

root
+-- dir1
+--file1
+-- dir2
+-- file2

署名-非商业性使用-禁止演绎 4.0 国际

· 阅读需 4 分钟
star

很多人买房会选择贷款,但很少有人知道房贷是如何计算的。最近在做房贷计算的小程序,恶补了一下知识,作为记录。

1. 基本概念

 计算房贷有四个核心的参数:

1.1 贷款本金

 贷款本金就是你打算借多少钱,例如小明计划购入婚房,向银行贷款了1000000,那么这个1000000就是贷款本金。

1.2 贷款利率

 利率就是你付给银行利息与贷款本金的比率。例如2022年的贷款基准利率是4.9%。这里需要注意,通常说的利率是年利率,但是贷款一般是按月进行归还的,计算的时候使用的是月利率。所以需要用年利率除以12得到月利率。

1.3 贷款期数

 贷款期数就是多久还清,贷款期数一般是按月计算,例如20年就是240期,30年就是360期。

1.4 还款方式

 还款方式分为两种:等额本息和等额本金。等额本息指你每期还款数一样,等额本金指你每一期还的本金一样。等额本金开始还的多,后面越来越少;等额本息还的一样多,直到还完。

2. 计算公式

2.1 等额本息

每月还款额=贷款本金×[月利率×(1+月利率)^还款月数]÷[(1+月利率)^还款月数-1]
总支付利息:总利息=还款月数×每月月供额-贷款本金
每月应还利息=贷款本金×月利率×〔(1+月利率)^还款月数-(1+月利率)^(还款月序号-1)〕÷〔(1+月利率)^还款月数-1〕
每月应还本金=贷款本金×月利率×(1+月利率)^(还款月序号-1)÷〔(1+月利率)^还款月数-1〕
总利息=还款月数×每月月供额-贷款本金

2.2 等额本金

每月月供额=(贷款本金÷还款月数)+(贷款本金-已归还本金累计额)×月利率
每月应还本金=贷款本金÷还款月数
每月应还利息=剩余本金×月利率=(贷款本金-已归还本金累计额)×月利率。
每月月供递减额=每月应还本金×月利率=贷款本金÷还款月数×月利率
总利息=还款月数×(总贷款额×月利率-月利率×(总贷款额÷还款月数)*(还款月数-1)÷2+总贷款额÷还款月数)

署名-非商业性使用-禁止演绎 4.0 国际