termscp/docs/zh-CN/man.md

30 KiB
Raw Blame History

操作指南 🎓

用法

termscp启动时可以使用以下选项:

termscp [options]... [protocol://user@address:port:wrkdir] [local-wrkdir]

  • -P, --password <password> 登陆密码
  • -c, --config 打开termscp时打开配置页面
  • -q, --quiet 禁用日志
  • -t, --theme <path> 导入自定义主题
  • -v, --version 打印版本信息
  • -h, --help 打开帮助

termscp有两种不同的启动模式不带参数时termscp将显示登录表单页用户可以填写连接到远程服务端所需的参数。

或者用户可以提供一个url作为参数跳过认证页直接与远程服务器进行连接。

如果提供了url参数你也可以提供本地主机的起始工作目录。

地址参数

地址参数的格式如下:

[protocol://][username@]<address>[:port][:wrkdir]

让我们通过一些例子熟悉这个特殊语法,它很好上手,你会很快习惯并且替代其他工具......

  • 使用默认协议(在配置中定义连接到192.168.1.31,如果没有提供端口,则为所选协议的默认端口(取决于你的配置);用户名是系统当前用户名

    termscp 192.168.1.31
    
  • 使用默认协议(在配置中定义连接到192.168.1.31,用户名为root

    termscp root@192.168.1.31
    
  • 使用scp连接到192.168.1.31, 端口号为4022; 用户名为 omar

    termscp scp://omar@192.168.1.31:4022
    
  • 使用scp连接到192.168.1.31, 端口号为4022; 用户名为 omar。工作目录为 /tmp

    termscp scp://omar@192.168.1.31:4022:/tmp
    

AWS S3 地址参数

出于显而易见的原因Aws S3 对 CLI 地址参数有不同的语法,但我设法使其与通用地址参数尽可能相似:

s3://<bucket-name>@<region>[:profile][:/wrkdir]

例如

s3://buckethead@eu-central-1:default:/assets

如何输入密码

你可能已经注意到url参数中没有办法直接附加密码你可以通过以下三种方式提供密码

  • -P, --password 不推荐直接在参数中填写明文密码。强烈不推荐这种方法因为它非常不安全因为你可能会把密码保留在shell历史记录中
  • 通过 sshpass: 你可以通过 sshpass 传入密码, 例如: sshpass -f ~/.ssh/topsecret.key termscp cvisintin@192.168.1.31
  • 提示输入密码:如果你不使用前面的任何方法,你会被提示输入密码,就像 scpssh 等比较经典的工具上一样。

文件浏览

termscp中的文件资源管理器是指你与远程建立连接后可以看到的面板。 面板由3个部分组成是的就这三个

  • 本地资源管理器面板它显示在你的屏幕左侧显示localhost的当前目录文件列表。
  • 远程资源管理器面板:它显示在你屏幕的右边,显示远程主机的当前目录文件列表。
  • 查找结果面板:根据你搜索文件的位置(本地/远程),它将取代对应资源管理器面板。这个面板显示与你执行的搜索查询相匹配的条目。

为了切换面板,你需要输入 <LEFT> 来移动远程资源管理器面板,<RIGHT> 来移动回本地资源管理器面板。当在查找结果面板时,你需要按<ESC>来退出面板,回到前一个面板。

快捷键

按键 命令 助记词
<ESC> 断开远程连接;回到登录页
<TAB> 在日志面板和管理器面板之间切换
<BACKSPACE> 返回上一次目录
<RIGHT> 切换到远程管理器面板
<LEFT> 切换到本地管理器面板
<UP> 在当前列表中向上移动光标
<DOWN> 在当前列表中向下移动光标
<PGUP> 在当前列表中光标上移8行
<PGDOWN> 在当前列表中光标下移8行
<ENTER> 进入文件夹
<SPACE> 上传 / 下载选中文件
<A> 是否显示隐藏文件 All
<B> 按..排序 Bubblesort?
<C> 复制文件(夹) Copy
<D> 创建文件夹 Directory
<E> 删除文件(同 DEL Erase
<F> 文件搜索 (支持通配符) Find
<G> 跳转到指定路径 Go to
<H> 显示帮助 Help
<I> 显示选中文件(夹)信息 Info
<L> 刷新当前目录列表 / 清除选中状态 List
<M> 选中文件 Mark
<N> 使用键入的名称新建文件 New
<O> 编辑文件;参考文本编辑器文档 Open
<Q> 退出termscp Quit
<R> 重命名文件 Rename
<S> 另存为... Save
<U> 进入上层目录 Upper
<V> 使用默认方式打开文件 View
<W> 使用指定程序打开文件 With
<X> 运行命令 eXecute
<Y> 是否开启同步浏览 sYnc
<DEL> 删除文件
<CTRL+A> 选中所有文件
<CTRL+C> 终止文件传输

处理多个文件

你可以同时操作多个文件,按<M>选定它们,或者按<CTRL+A> 全选当前工作目录中的所有文件。一旦一个文件被标记为选择,它将在左边显示一个 "*"。在这种模式下,只有选定的文件会被处理,而当前光标高亮显示的项目会被忽略。在查找结果面板中,也可以对多个文件进行处理。 在处理多个文件时,所有的操作都是可用的,但请注意,有些操作的工作方式略有不同。让我们深入了解一下:

  • 复制: 当你复制一个文件时,你会被提示输入完整目标路径名。当处理多个文件时,这个名称指的是所有这些文件将被复制到的目标目录。
  • 重命名: 和复制操作类似, 但是会移动文件到目标路径。
  • 保存为: 和复制操作类似, 但是会写入文件到目标路径。

同步浏览

启用时,同步浏览将允许你在两个面板之间同步导航操作。这意味着,每当你在一个面板上改变工作目录时,同样的动作会在另一个面板上重现。如果你想启用同步浏览,只需按下<Y>;按两次就可以禁用。当启用时,同步浏览的状态将在状态栏上显示为ON

目前,每当你试图访问一个不存在的目录,你不会被提示创建它。这点可能会在未来的更新中改进。

打开/打开方式

打开和打开方式的功能是由 open-rs提供的。 执行视图命令(<V>)时,关联该文件类型的系统默认应用程序会被调用以打开当前文件。这依赖于操作系统默认的服务,所以要确保你的系统中至少安装了一个这样的服务:

  • Windows 用户: 无需额外操作,程序内部会调用 start 命令。
  • MacOS 用户: 同样无需额外操作,程序内部会调用系统内置的 open 命令。
  • Linux 用户: 以下程序之一需要被安装:
    • xdg-open
    • gio
    • gnome-open
    • kde-open
  • WSL 用户: wslview 是必要的,你需要安装 wslu.

Q: 我可以使用V命令编辑远程文件吗 A: 不可以,至少不能在 "远程管理面板 "上直接操作。你必须先把它下载到本地目录这是由于当你打开一个远程文件时该文件会被下载到一个临时目录中但没有办法监控这个文件的状态同时也无法得知你用来打开它的程序何时被关闭。也就是说termscp无法获知你何时完成对该文件的编辑。


书签

在termscp中你可以保存常用的服务器随后可以从termscp的主界面中快速连接到这些服务器。termscp也会在历史记录中保存你最后连接的16个主机。这个功能保留了连接到某个远程服务器的所有参数只需在登录页下方的Tab中选中书签即可。

书签会尝试被保存在以下路径:

  • $HOME/.config/termscp/ -- Linux/BSD
  • $HOME/Library/Application Support/termscp -- MacOs
  • FOLDERID_RoamingAppData\termscp\ -- Windows

对于书签(不包括服务器连接历史记录)而言,也可以保存用于验证的密码。注意默认情况下不保存密码,必须在保存新书签时通过提示指定密码。

如果您担心为您的书签保存的密码的安全性,请阅读以下章节👀

请按照以下步骤新建书签:

  1. 在认证页中输入待连接服务器的参数
  2. <CTRL+S>
  3. 输入书签名称
  4. 选择是否保留密码
  5. <ENTER> 提交

无论何时你想使用以前保存的连接,只需按下<TAB>导航到书签列表,然后按<ENTER>将书签参数加载到表格中。

Bookmarks

我的密码安全吗?

这是当然 😉。 如前所述,书签与密码一起保存在你的配置目录中。密码显然不是纯文本,它们是用AES-128加密的。这够不够安全?绝对够 (BSD和WSL用户除外😢)

WindowsLinuxMacOS上,如果可能的话(但应该是),密码会被分别存储在Windows Vault系统钥匙串Keychain中。这实际上是超级安全的,并且是由你的操作系统直接管理的。

请注意如果你是一个Linux用户你真的应该阅读下面的章节👀,因为你的系统可能没有启用或支持钥匙串功能

另一方面,在BSDWSL上,用于加密密码的密钥是存储在你的驱动器上的(在$HOME/.config/termscp。那么仍然有可能检索到密钥来解密密码。幸运的是密钥的位置保证了你的密钥不能被与你不同的用户读取但是是的我仍然不会为暴露在互联网上的服务器保存密码😉

Linux Keyring

我们都喜欢Linux因为它给了用户自由。作为一个Linux用户你基本上可以做任何你想做的事情但这也有一些缺点比如说不同的发行版之间往往没有标准的应用程序。这也涉及到钥匙串。 这意味着在Linux上你的系统可能没有安装钥匙串。不幸的是我们用来处理钥匙存储的库需要一个在D-BUS上公开org.freedesktop.secrets的服务,而最糟糕的事实是,只有两个服务在公开它。

  • 如果你使用GNOME作为桌面环境例如ubuntu用户那么你是幸运的因为钥匙串已经由gnome-keyring提供,一切都应该已经准备就绪了。
  • 对于其他桌面环境的用户,有一个很好的程序,你可以用它来获得钥匙串,这就是KeepassXC我在我的Manjaro中使用它带KDE一切都很正常。唯一的问题是你必须设置它与termscp一起使用但这很简单。要开始使用KeepassXC请阅读更多[这里]#keepassxc-setup-for-termscp
  • 如果你不想安装任何这些服务呢?好吧,这没有问题! termscp依然能正常工作但它会将密钥保存在一个文件中就像它通常为BSD和WSL做的那样。
用于 termcp 的 KeepassXC 设置

参照以下步骤为termscp配置keepassXC

  1. 安装KeepassXC
  2. 进入工具栏的 "工具">"设置"。
  3. 选择 "秘密服务集成 "并切换 "启用KeepassXC freedesktop.org secret服务集成"
  4. 创建一个数据库,如果你还没有:在工具栏的 "数据库">"新数据库"
  5. 从工具条上 "数据库" > "数据库设置"
  6. 选择 "secret服务集成 "并切换 "在此组下暴露条目"
  7. 7.在列表中选择你希望termscp secret保存到的组。记住这个组可能被任何其他应用程序通过DBUS存储密钥。

Aws S3 凭证

为了连接到 Aws S3 存储桶,您显然必须提供一些凭据。 基本上有两种方法可以实现这一点,而且您可能已经注意到您不能通过身份验证表单来做到这一点。 因此,您可以通过以下方式为 s3 提供凭据:

  1. 使用您的凭证文件:只需通过aws configure 配置AWS cli您的凭证应该已经位于~/.aws/credentials。 如果您使用的配置文件不同于“默认”,只需在身份验证表单的配置文件字段中提供它。

  2. 环境变量: 您始终可以将您的凭据作为环境变量提供。 请记住,这些凭据将始终覆盖位于 credentials 文件中的凭据。 下面看看如何配置环境:

    这些应该始终是强制性的:

    • AWS_ACCESS_KEY_ID: aws 访问密钥 ID通常以 AKIA... 开头)
    • AWS_SECRET_ACCESS_KEY: 秘密访问密钥

    如果您配置了更强的安全性,您可能也需要这些:

    • AWS_SECURITY_TOKEN: 安全令牌
    • AWS_SESSION_TOKEN: 会话令牌

⚠️ 您的凭据是安全的termscp 不会直接操作这些值! 您的凭据直接由 s3 crate 使用。 如果您对安全有一些担忧,请联系 Github 上的库作者 ⚠️


配置

termscp支持一些用户定义参数这些参数可以通过配置来修改。 termscp有一个TOML文件和一些其他的目录所有的参数都会被保存在这些目录中但是不用担心你不必手动编辑这些文件因为我为termscp制作了可交互的用户界面。

termscp和书签一样只需要保证这些路径是可访问的

  • $HOME/.config/termscp/ -- Linux/BSD
  • $HOME/Library/Application Support/termscp -- MacOs
  • FOLDERID_RoamingAppData\termscp\ -- Windows

要访问配置你只需在termscp的主界面上按<CTRL+C>

这些参数可以自定义:

  • Text Editor使用的文本编辑器。默认情况下termscp将为你找到默认的编辑器通过这个选项你可以强制使用一个编辑器vim)。也支持GUI编辑器,除非它们从父进程中nohup。所以,如果这是你的问题:是的,你可以使用notepad.exe,然而,Visual Studio Code不工作
  • Default Protocol默认协议是termscp中默认使用的文件传输协议。这适用于登录页和地址中的CLI参数。
  • Show Hidden Files:选择是否应默认显示隐藏文件。你可以在运行时按 A 来切换是否显示隐藏的文件。
  • Check for updates:如果设置为 yestermscp将通过Github API检查是否有新版本的termscp。
  • Prompt when replacing existing files?: 如果设置为 yes则在文件传输会导致目标主机上的现有文件被替换时termscp 将提示您确认。
  • Group Dirs:选择在文件浏览器中是否对文件夹进行分组。如果选择 Display first,目录将根据设置的方法排序,但仍显示在文件之前;如果选择 Display last,则正好相反。
  • Remote File formatter syntax:在远程资源管理器中为每个文件显示文件信息的语法。参见资源管理器格式
  • Local File formatter syntax:在本地资源管理器中显示每个文件的文件信息的语法。参见资源管理器格式
  • Enable notifications?: 如果设置为 Yes,则会显示通知。
  • Notifications: minimum transfer size: 如果传输大小大于或等于指定值,将显示传输通知。 接受的值格式为 {UNSIGNED} B/KB/MB/GB/TB/PB

SSH Key Storage

配置选项还包括termscp为SFTP/SCP客户端提供的一个必要功能SSH密钥存储。

你可以从配置中切换到到 SSH Keys tab页来访问SSH密钥存储在那里你可以

  • 添加新密钥:只需按下<CTRL+N>,你将被提示创建一个新的密钥。提供主机名/ip地址和与该钥匙关联的用户名最后会打开一个文本编辑器PRIVATE SSH key粘贴到文本编辑器中保存并退出。
  • 删除现有密钥:只要在你想删除的密钥上按下<DEL><CTRL+E>,就可以从 termscp 中永久删除该密钥。
  • 编辑现有密钥:只需在你想编辑的密钥上按下<ENTER>,就可以修改私钥。

问:等等,我的私钥受密码保护,也是可以用的吗? 答当然可以。termscp中提供的认证密码对用户名/密码认证和RSA密钥认证都有效。

资源管理器格式

可以为文件浏览器配置自定义的格式,本地和远程主机允许进行单独设定,所以你可以使用两种不同的语法。这些字段的名称为 File formatter syntax (local)File formatter syntax (remote),将定义文件条目如何在文件资源管理器中显示。 格式化的语法如下 {KEY1}... {KEY2:LENGTH}... {KEY3:LENGTH:EXTRA} {KEYn}...。 花括号内的每个键将被替换成相关的属性,而括号外的所有内容将保持不变。

  • 键名是固定的,必须是下面的关键字之一
  • 长度指定了为显示该字段而保留的长度。静态属性不支持这个参数GROUP、PEX、SIZE、USER
  • Extra只被一些特定字段支持也是可选的。请看各字段详细描述来判断是否支持Extra参数。

以下是自定义格式支持的键名:

  • ATIME: 最后访问时间(默认语法为%b %d %Y %H:%MExtra参数可以指定时间显示语法例如{ATIME:8:%H:%M}
  • CTIME: 创建时间(语法为%b %d %Y %H:%MExtra参数可以指定时间显示语法例如{CTIME:8:%H:%M}
  • GROUP: 所属组
  • MTIME: 最后修改时间(语法为%b %d %Y %H:%MExtra参数可以指定时间显示语法例如{MTIME:8:%H:%M}
  • NAME: 文件名超过24个字符的部分会被省略
  • PEX: 文件权限UNIX格式
  • SIZE: 文件大小(目录不显示)
  • SYMLINK: 超链接(如果存在的话-> {FILE_PATH})。
  • USER: 所属用户

如果留空,将使用默认的格式化语法。{NAME:24} {PEX} {USER} {SIZE} {MTIME:17:%b %d %Y %H:%M}


主题

Termscp为你提供了一个很棒的功能可以为应用程序中的几个组件配置颜色。 如果你想自定义termscp有两种可用的途径

  • 配置菜单
  • 导入一个配置文件

为了从termscp创建你的私人定制你所要做的就是从auth活动页进入配置<CTRL+C>,然后<TAB>两次。你现在应该已经移到了 themes 面板。

在这里你可以用<UP><DOWN>移动来选择你想改变的样式,如下图所示:

Themes

termscp支持传统的十六进制#rrggbb和RGBrgb(r, g, b)语法来表示颜色,但也接受 css颜色(如crimson😉。还有一个特殊的关键词是Default,意味着使用的颜色将是基于情景的默认前景或背景颜色(文本和线条的前景色,以及容器的背景色,你猜是什么)。

如前所述你也可以导入主题文件。你可以从themscp提供的主题中获取灵感或直接使用其中的一个位于这个代码仓库的themes/目录下运行themscp以导入它们 termscp -t <theme_file>。最后,如果一切正常,它应该提示你主题已经成功导入。

样式

你可以在下面的表格中找到每个样式字段的描述。 请注意,样式在配置页面不起作用,以保证它总是可以访问,以防你把一切都弄乱了。

我的主题无法加载

这可能是由于最近的更新破坏了主题。 每当我向主题添加新密钥时,保存的主题都不会加载。 要解决此问题,有两个真正的快速修复解决方案:

  1. 重新加载主题:每当我发布更新时,我也会修补“官方”主题,因此您只需再次从存储库下载它并通过 -t 选项重新导入主题

    termscp -t <theme.toml>
    
  2. 修复您的主题:如果您使用自定义主题,那么您可以通过 vim 进行编辑并添加缺少的键。 主题位于 $CONFIG_DIR/termscp/theme.toml,其中 $CONFIG_DIR 是:

    • FreeBSD/GNU-Linux: $HOME/.config/
    • MacOs: $HOME/Library/Application Support
    • Windows: %appdata%

    对于您刚刚安装的版本,在 BREAKING CHANGES 下的 CHANGELOG 中报告了丢失的键。

登录页

字段 描述
auth_address IP地址输入框的颜色
auth_bookmarks 书签面板的颜色
auth_password 密码输入框的颜色
auth_port 端口输入框的颜色
auth_protocol 协议选项组的颜色
auth_recents 历史记录面板的颜色
auth_username 用户名输入框的颜色

文件传输页

字段 描述
transfer_local_explorer_background 本地资源浏览器的背景色
transfer_local_explorer_foreground 本地资源浏览器的前景色
transfer_local_explorer_highlighted 本地资源浏览器的边框和高亮色
transfer_remote_explorer_background 远程资源浏览器的背景色
transfer_remote_explorer_foreground 远程资源浏览器的前景色
transfer_remote_explorer_highlighted 远程资源浏览器的边框和高亮色
transfer_log_background 日志面板的背景色
transfer_log_window 日志面板的窗口颜色
transfer_progress_bar_partial 进度条完成部分颜色
transfer_progress_bar_total 进度条背景色颜色
transfer_status_hidden 状态栏 "hidden" 标签的颜色
transfer_status_sorting 状态栏 "sorting" 标签的颜色;同时适用于文件排序对话框
transfer_status_sync_browsing 状态栏 "sync browsing" 标签的颜色

Misc

以下这些样式会在程序不同的位置起作用:

字段 描述
misc_error_dialog 报错信息的颜色
misc_info_dialog 信息对话框的颜色
misc_input_dialog 输入对话框的颜色(比如拷贝文件时)
misc_keys 键盘输入文字的颜色
misc_quit_dialog 退出窗口的颜色
misc_save_dialog 保存窗口的颜色
misc_warn_dialog 警告窗口的颜色

文本编辑器

Termscp有很多功能你可能已经注意到了其中之一就是可以查看和编辑文本文件。不管文件是在本地主机还是在远程主机上termscp都提供了在你喜欢的文本编辑器中打开文件的功能。 如果文件位于远程主机上,该文件将首先被下载到你的临时文件目录中,然后,只有在对该文件进行了修改的情况下,才会重新上传至远程主机上。

多说一句,你只能编辑文本文件;二进制文件是不可以的。

如何配置文本编辑器?

文本编辑器是通过awesome crate自动查找的如果你想改变默认的文本编辑器请在termscp配置中改变它。阅读更多


日志

termscp会为每个会话创建一个日志文件该文件在

  • $HOME/.config/termscp/termscp.log -- Linux/BSD
  • $HOME/Library/Application Support/termscp/termscp.log -- MacOs
  • FOLDERID_RoamingAppData\termscp\termscp.log -- Windows

日志不会滚动,只是在每次启动 termscp 后被截断,所以如果你想报告一个问题并想附上你的日志文件,再次启动 termscp 之前请先将日志文件保存在一个安全的地方。日志文件总是以trace级别报告所以它有点冗长。我知道你可能有一些关于日志文件的问题所以我做了一个Q/A

有没有可能降低日志级别?

不可以,原因很简单:当一个问题发生时,你必须能够知道是什么原因造成的,而唯一的办法就是在日志文件中设置记录最多的细节。

如果日志级别设置为trace会产生很大的文件吗

应该不会除非你从不退出termscp但我认为这很可能发生。一个长的会话可能会产生高达10MB的日志文件我说的是一个长的会话但我认为一个正常的会话不会超过2MB。

我不希望有日志记录,我可以把它关掉吗?

可以的。只要用-q or --quiet选项启动termscp。你可以用别名来启动termscp从而使这个选项一直生效。记住日志是用来诊断故障的所以在每个开源项目的背后都应该有这样的互动反馈保留日志文件可能是你支持项目的途径😉。我不想让你感到内疚,只是想提一句。

日志是安全的吗?

如果你担心安全问题,日志文件不包含任何普通的密码,所以不用担心,它暴露的信息与同级文件 书签 报告的信息相同。

通知

termscp 将针对这些类型的事件发送桌面通知:

  • 传输完成 传输成功完成后将发送通知。
    • 仅当传输总大小至少为配置中指定的 Notifications: minimum transfer size 时才会显示通知。
  • 传输失败:一旦传输因错误而失败,将发送通知。
    • 仅当传输总大小至少为配置中指定的 Notifications: minimum transfer size 时才会显示通知。
  • 更新可用每当有新版本的termscp 可用时,都会显示通知。
  • 更新已安装每当安装了新版本的termscp 时,都会显示通知。
  • 更新失败:每当更新安装失败时,都会显示通知。

如果您希望保持关闭通知,您只需进入设置并将 Enable notifications? 设置为 No😉 如果您想更改最小传输大小以显示通知,您可以使用键 Notifications: minimum transfer size 更改配置中的值,并将其设置为更适合您的任何值🙂