nyagos解析ssh_config

2022-05-01 • 更新于 2023-04-27 • 预计阅读时间 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 来说还是不错的.

devluanyagos

wentao

写点代码,解决点问题。

PowerShell ssh Host 自动补全

shaarli书签导出