nyagos解析ssh_config

2022-05-01 • 预计阅读时间 1 分钟

近期在工作中要管理的linux主机有点多,但是更多的场景是在windows下使用.导致不能利用如 fish-shell 那种ssh自动补全. 发现一个NYAGOS - The hybrid Commandline Shell between UNIX & DOS的shell.支持用 lua 来增加一些特性.而且提供按照程序增加自动补全功能. 写下了面这段代码,就可以实现如 fish-shell 的那种利用 tab 自动补全了.

nyagos.complete_for["ssh"] = function(args)
	if #args == 2 then
		local server_list = {}
		local ssh_config_file = nyagos.env.userprofile .. "\\.ssh\\config"
		local f = io.open(ssh_config_file, 'r')
		if f then
			local line = f:read("*l")
			while line do
				if line:find("Host ") == 1 and line:find("*") == nil then
					local host = line:gsub("Host ", "")
					table.insert(server_list, host)
				end
				line = f:read("*l")
			end
			f:close()
			return server_list
		else
			return nil
		end
	end
end

nyagos 相对于 powershell 少了许多特性,更贴近原生的 cmd= .目前来说胜在启动速度快.做为一个专门处理 ssh 相关的 shell 来说还是不错的.

devlua

wentao

写点代码,解决点问题。

PowerShell ssh Host 自动补全

shaarli书签导出