Windows 作为 SSH Server ,相对于 Linux 似乎(大概率是我没有了解到)少了一些实用工具:

类似 screen 或者 tmux 的,提供命令在 SSH 断开之后依然运行的工具
类似 ranger 的,用户友好的命令行文件管理工具

有一台 Windows 的个人文件服务器,偶尔会用 ffmpeg 压一下片,希望可以使用 SSH 直接执行命令而不是用远程桌面打开一个命令行窗口,上面提到的第 1 点尤其关键。目前的解决方案是使用 WSL1 的 screen
延伸一下。像 Windows Server 也有无桌面体验的版本,PowerShell 也比 Bash 强大得多,纯命令行的 Windows 应该也是十分强大易用才对。想请教一下各位,如何“优雅地”使用纯命令行的 Windows ?有一些实用的工具或者小窍门吗?对纯命令行 Windows 有使用经验的各位,学习曲线又是怎样的呢?

MSYS2 就有 tmux 。

  1. 可以参考官方文档 docs.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_remote_jobs?view=powershell-7.2
  2. github.com/gokcehan/lf

我现在用的是 Windows Terminal + Git Bash 体验良好

没有,实用主义为上

不会就查文档就完了

windows 这么多年了 都不支持 ssh , 依旧是 rdp 那一套 还是很烦

原来 PowerShell 里面已经有了相关的机制,非常感谢!

有不使用 RDP, 向远程 Windows 传输文件的方案吗?
如果远程的 Windows 没有安装 SSH, 有 Windows 自带的方法吗?

开 powershell 的远程就行了。我记得 alias 好像是 etsn ,不过可能要先设一堆 winrm 相关的东西。之前在域里面搞过,感觉跟 linux 的 ssh 没啥区别。体验是一样的,就跟在本地开的 powershell 一样。

win10 早就自带 ssh 了啊

Windows 很早就开始支持 ssh 了,而且默认开启 ssh 客户端,ssh 服务点也只需要在设置里安装即可使用

我说的是 ssh 服务端, 不是 ssh.exe 鱼哦

我说的就是 ssh server ,设置可选功能里即可开启

感谢感谢 马上去开

有没有跟 bash 一样体验的 terminal ?尤其是支持 ctrl-R 的

现在 powershell 已经原生支持 ctrl-R 了

我个人觉得,Windows 下用命令行,最大的问题有两个:

  1. 绝大多数普通用户对 Windows 下的命令行,尤其是 PowerShell 命令不熟悉,然后知道了几个 Linux 命令就自以为是资深专家了。
  2. 喜欢做横向对比。本来就不是同一个东西,却非要找出个相同点来。

再说回 OP 的问题。
关于 1 ,这个可以用 job 实现类似 screen 的功能,详见 Get-Help about_remote_job -Online
关于 2 ,我觉得 PowerShell 本身就已经完全可以对文件做一些常规操作了,包括查看、分类、统计、筛选、复制 /移动 /删除等,如果不习惯 tab 补全,PowerShell 对这些常用的命令都内置了 alias 。

PowerShell 我觉得最烦躁的就是命令过长! 别跟我说 TAB 补全,写脚本的时候头都要大。

其实早就支持了,从 1809 版本就内置 openssh,只是默认没有启用。

#7 你要找的是不是 Copy-Item 带 -FromSession 的版本?

纯命令行的 Windows 我都是直接用 Jenkins 扔个 agent 服务上去,然后用 Jenkins 写脚本就完事了,快乐。
还有就是你可以自己写个后台服务挂在 Windows 启动时,然后用那个后台服务执行命令,也很快乐。
命令行文件管理 cmd 里面已经提供得够多了,Powershell 更多……

winddows 病毒防不胜防,我不会拿来做 host 。

可以先 ssh 到 poweshell ,用 wsl 命令进入 linux ,再 screen ,ssh 到 localhost……

windows 支持使用 SSH 直接登录,开启 ssh server 可选功能即可。
然后使用 remotessh 开发。

没有啥优不优雅的...只是和 linux 习惯不一样的问题,powershell 都不熟难道还指望马上写 scripts ?以前这么多 windows server 都用的远程桌面管理吗...怎么可能,学一下 windows server 运维大概就知道是什么套路了