#remote #ssh #environments #dev #shell #directory #forward

app slink

简单的基于 SSH 的远程开发环境

6 个版本

使用旧的 Rust 2015

0.2.2 2018 年 12 月 12 日
0.2.1 2018 年 12 月 12 日
0.1.2 2018 年 11 月 27 日
0.1.1 2018 年 5 月 11 日

#1643开发工具

MIT 许可证

26KB
545

export SLINK_HOST=remote-devbox.mydomain.com

# sync the current directory to the remote machine:
slink sync up

# Run a command on the remote machine in the synced directory:
slink run "ls -la"

# SSH into the machine and change to the synced directory:
slink go

# Forward ports 8080 and 4443 on your local machine to the same ports on your
# remote machine:
slink forward 8080 4443

# Forward port 80 on your local machine to 80 on the remote machine -- slink
# will automatically prompt for sudo as necessary
slink forward 80

Slink 被设计为简化远程开发环境的创建和使用。它允许你将远程机器视为本地机器的镜像;它会同步目录,保持相同的目录结构,在远程机器上打开与你的 PWD 镜像的 shell,等等。它通过 SSH、rsync 和 scp 抽象化,提供了一个简单的界面来与远程开发环境交互,并通过单个缓存的 SSH 连接来多路复用所有连接以提高性能。

Slink 假设你希望远程机器能够有效地镜像本地机器的目录结构:预期是,你将远程机器视为你的本地机器,但可能在不同的硬件、不同的操作系统等。

命令

  • slink go:SSH 到机器,切换到 PWD 的镜像(如果存在)。
  • slink run <命令>:在机器上运行命令。自动分配 PTY,以便交互式命令能够正确工作。
  • slink forward <端口...>:从本地机器转发端口到远程机器上的相同端口。
  • slink sync up:通过 rsync 将当前目录同步到远程机器,如果位于 $HOME,则保持从 $HOME 的相对路径,否则从根目录。
  • slink sync down:与 sync up 相反。
  • slink upload <文件>:将文件上传到远程机器,如果位于 $HOME,则从 $HOME 的相对位置上传,否则从根目录上传。还有一个可选的 --to <文件> 标志,可以将本地文件上传到远程机器上的任意路径。
  • slink download <文件>:与upload相反。有一个可选的--from标志,可以从远程的任意路径下载文件。

主机配置

要为Slink设置默认主机,请编辑您的.bashrc(或.zshrc,或与您的shell相关的文件)以导出SLINK_HOST环境变量。从那时起,所有新的shell会话都将默认使用该主机。例如

Bash或Zsh

# In your .bashrc or .zshrc:
export SLINK_HOST=remote-devbox.mydomain.com

Fish

# In your config.fish
set -x SLINK_HOST remote-devbox.mydomain.com

在单个shell会话中,您可以使用相同的语法来更改整个shell会话的默认主机

Bash或Zsh

# In any shell session:
export SLINK_HOST=remote-devbox.mydomain.com

Fish

# In any shell session:
set -x SLINK_HOST remote-devbox.mydomain.com

环境变量也可以轻松地设置单个命令的主机

Bash或Zsh

SLINK_HOST=other-devbox.mydomain.com slink go

Fish

env SLINK_HOST=other-devbox.mydomain.com slink go

在之前的版本中,Slink使用配置文件来存储当前主机。虽然这使得使用单个机器作为远程变得非常简单,但使得管理多台机器变得痛苦,尤其是如果您尝试在多个shell会话中同时管理它们,或者在使用自动化包装脚本时使用Slink。环境变量设置起来几乎一样简单,但使得管理多台机器变得更加简单。

依赖关系

~4.5MB
~86K SLoC