如SecureCRT一般,WindTerm是一款多协议、多功能、跨平台的终端仿真协议程序,用于Windows/Mac/Linux等环境登录UNIX/Linux服务器主机。与其他终端工具相比,最大特点就是开源、无论商业或者非商业应用均免费,特别适合一般小型公司使用
如WinTerm官方所言“WindTerm is a partial open source project, and the source will be gradually opened.”,目前它是部分开源,其他代码逐步计划开源。

WindTerm的主要功能:

  • 支持 SSH、Telnet、Tcp、Shell、Serial
  • 支持 SSH v2、Telnet、Raw Tcp、串行、Shell 协议。
  • 会话认证时支持 SSH 自动执行。
  • 支持 SSH ControlMaster。
  • 支持 SSH ProxyCommand 或 ProxyJump。
  • 支持 SSH 代理转发。
  • 支持使用密码、公钥、键盘交互、gssapi-with-mic 的 SSH 自动登录。
  • 支持 X11 转发。
  • 支持直接/本地端口转发、反向/远程端口转发和动态端口转发。
  • 支持 XModem、YModem 和 ZModem。
  • 集成 sftp、scp 客户端,支持下载、上传、删除、重命名、新建文件/目录等。
  • 集成本地文件管理器,支持移动到、复制到、复制自、删除、重命名、新建文件/目录等。
  • 支持 Windows Cmd、PowerShell 和 Cmd、PowerShell 作为管理员。
  • 支持 Linux bash、zsh、powershell core 等。
  • 支持 MacOS bash、zsh、powershell core 等。

更多:https://github.com/kingToolbox/WindTerm/blob/master/README.md

官网:https://github.com/kingToolbox/WindTerm

下载:https://github.com/kingToolbox/WindTerm/releases

阅读全文 »

本次对Hexo的修改,主要完成如下两个功能:

  • 第一,Hexo的分类默认使用名称按照字典排序,我希望是自己可以方便指定分类序号,从而按序号排序显示;
  • 第二,Hexo的分类名称需要直接写在Post文档categories的字段,后续如果需要修改某个分类名称,需要修改多个文档,我希望是给每个分类起个别名,Post文档中使用该别名,在特定的文档中定义别名和真实名称的映射关系,然后Hexo生成静态页面时,Hexo自动对别名进行替换。
阅读全文 »

本博客是由Hexo来编译发布的,这里记录下Hexo首次安装和重新下载博客代码之后重置环境的方法。

首次安装Hexo

第一步,安装Node.js。我们可以使用腾讯电脑管家,搜索nodejs来安装。或者到Node.js的官方网站下载来安装。

访问官方网站:https://nodejs.org
直接下载链接:https://nodejs.org/dist/v20.17.0/node-v20.17.0-x64.msi

下载完毕之后,双击安装即可,这里不再赘述。

第二步,设置Node.js使用国内源。命令如下:

1
2
3
4
5
## 设置为腾讯源
npm config set registry http://mirrors.cloud.tencent.com/npm/

## 查看数据源
npm config get registry

第三步,使用如下命令安装Hexo

1
npm install -g hexo

安装过程如下图所示:

第四步,Hexo完毕之后,我们建立一个新的博客系统。

首先,我们创建一个空的目录,来存放工程文件。比如 d:/mancode/DemoBlog

然后,使用如下命令建立工程文件,并且启动脚手架演示页面。(如果提示错误,使用管理员来启动cmd)

1
2
3
hexo init .
hexo g
hexo s

使用浏览器,访问 http://localhost:4000 ,如果出现如下页面,则说明创建脚手架工程成功。

重置开发环境

从上步创建脚手架工程来看,DemoBlog目录下有个node_modules目录,这里存储了Hexo运行所需的NodeJs模块,很多也很大,所以一般我们不会将node_modules这个目录提交到SVN或者Git。

那这里有个问题,我们在其他机器上下载项目之后,如何重建node_modules目录呢?
我们使用如下命令来重新下载依赖并存在node_modules目录,所下载的模块是依据package.json文件来确定的:

1
npm install

说明一个问题

在我重新下载依赖时,出现了这么一个问题:

1
Error: Cannot find module 'finalhandler'

该问题的处理方法:删除package-lock.json和node_modules目录里的finalhandler,然后再次执行npm install。

参考资料

我们通常使用scp在服务器之间的copy数据,但需要每次输入账户密码才能完成copy。

比如我们欲将test.cpp文件从192.168.9.130拷贝到192.168.128服务器,一般执行流程如下图所示:

有时我们需要在脚本中自动将某些数据传输到另外一台机器上,每次输入密码则不那么方便,所以我们需要实现scp服务器间免密拷贝数据。

实现scp服务器间的密码拷贝数据,其方法一般有如下两步:

第一步,在本机生成SSH公私钥;

第二步,将本机生成的公钥拷贝到目标机器上,然后将公钥内容加入对应账号的 /home/{user}/.ssh/authorized_keys 文件内;

阅读全文 »

OpenSSH有两种认证方式:基于口令认证和基于密钥认证。
基于口令的认证相对简单,仅需在SSH客户端登录时输入密码即可。在某些场景,比如登录公司服务器,一般需要我们通过每人的密钥登录。
本文基于我经常使用的SecureCRT和WindTerm两个SSH客户端工具,分别介绍如何使用密钥登录。

阅读全文 »

OpenSSH有两种认证方式:基于口令认证和基于密钥认证。
基于口令的认证相对简单,仅需在SSH客户端登录时输入密码即可。在某些场景,比如登录公司服务器,一般需要我们通过每人的密钥登录。
本文基于我经常使用的SecureCRT和WindTerm两个SSH客户端工具,分别介绍如何使用密钥登录。

阅读全文 »

OpenSSH是SSH(Secure SHell)协议的免费开源实现,SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。OpenSSH是用于远程登录、命令执行以及文件传输的SSH协议的完整实现,它支持SSH协议的V1.3、V1.5和V2。自OpenSSH-V2.9 以来,默认的SSH协议是V2,使用RSA 钥匙。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据,并由此来代替原来的类似服务。

程序主要包括了几个部分:

  • ssh - rlogin与Telnet的替代方案。
  • scp、sftp - rcp的替代方案,将文件复制到其他电脑上。
  • sshd - SSH服务器。
  • ssh-keygen - 产生RSA或DSA密钥,用来认证用。
  • ssh-agent、ssh-add - 帮助用户不需要每次都要输入密钥密码的工具。
  • ssh-keyscan - 扫描一群机器,并记录其公钥。

在Centos、Ubuntu或者Debian等发行版上,我们可以使用yum或者apt提供的软件源直接安装。本文主要讲解的是使用源代码+手工编译+手工安装的方式来编译安装OpenSSH。

阅读全文 »

上文 supervisor基本使用方法教程,我们重点了supervisor的基本使用方法,并未对它进行过多的展开。我们知道supervisor有三个重要的部分 supervisord、supervisorctl、inet_http_server 组成,但我认为隐藏在三部分后面的配置文件,才需要重点关注和学习,毕竟它控制着所有的表现属性。为了比较好的掌握supervisor的使用,本文我们对supervisor的配置文件进行重点分析。

阅读全文 »

Supervisor is a client/server system that allows its users to monitor and control a number of processes on UNIX-like operating systems.

Supervisor是一个在类UNIX系统上,监控控制大量进程的客户端/服务端系统。其主要功能包括程序自动启动、程序奔溃后自动重启,指定进程数目等等。本文是Supervisor安装、配置和使用的简单教程。

阅读全文 »

在Linux先编译软件基本都是采用configure文件生成makefile,或者,cmake生成makefile文件两种方式。它们生成的makefile文件,一般默认不支持-g调试选项。
但我们使用这种方式编译出来的静态库时,如果程序运行中core在静态库中,我们看不到有用的相关信息。所以有必要编译出debug版本。

阅读全文 »

glibc是标准C库的GNU实现。我们采用C/C++所写的程序,运行时基本都依赖与它。如果我们想看当前机器glibc的源代码,首先需要知道当前机器glibc的版本号,然后到glibc的官网下载对应版本的源代码。

阅读全文 »