在 iOS 上也可以愉快地玩 Linux了



iSH[1] 是一个可以运行在 iOS 上的 Linux shell,使用了用户模式的 x86 仿真和 syscall 转换技术。
iSH 作为一个开源[2]项目已经存在差不多 3 年了,一个星期之前我们终于可以通过 App Store[3] 下载它了。

熟悉键盘

安装 apk
从 App Store 下载的 iSH,不带 apk(Alpine Linux 下的包管理工具),如果想安装各种程序,比如 Python,我们需要先安装它,
$ wget -qO- http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86/apk-tools-static-2.10.5-r1.apk | tar -xz sbin/apk.static && ./sbin/apk.static add apk-tools && rm sbin/apk.static

安装成功!
另外根据命令cat /etc/os-release确认操作系统为 Alpine Linux v3.12
安装 Python3 及 pip
$ apk add python3

Python 3.8.5 成功安装,接下来下载安装 pip,
$ wget https://bootstrap.pypa.io/get-pip.py$ python3 get-pip.py
必要的时候添加下镜像,否则可能 timeout,
$ python3 get-pip.py -i https://mirrors.aliyun.com/pypi/simple/

wget: can't execute 'ssl_client': No such file or directory
使用 wget 下载 https 网站内容的时候会报错,
$ wget https://github.com/elisescu/tty-share/files/4048523/tty-share.lin.zipConnecting to github.com (192.30.255.112:443)wget: can't execute 'ssl_client': No such file or directorywget: error getting response: Resource temporarily unavailable
这是因为 busybox 自带的 wget 不支持 https,建议安装新的 wget,
$ apk add wget

必要的时候再执行如下命令,
$ apk add --update ca-certificates openssl && update-ca-certificates
安装 tty-share[4]
最后再介绍一个实用工具,tty-share,有了它,你可以把你的iSH共享给小小伙伴,大家一起玩,或者你自己通过电脑控远程制你的iSH。
这是一个非常简单的命令行工具,可以远程访问UNIX终端会话。它使用的是PTY系统,因此它可以在任何UNIX系统(Linux,OSX)上运行。因为它是用GO编写的,所以该工具将是一个没有依赖性的二进制文件,并且也可以在您的ARM Raspberry Pi上使用。
关于它的最重要的部分是它不需要在远程端进行设置。我需要给终端提供远程访问(bash / shell会话)的是二进制工具,并且远程人只需要在浏览器中打开一个秘密URL。
tty-share的特点,
开源
免安装
跨平台
实时同步
可以多人同时访问
该项目包含两个命令行实用程序:tty-share和tty-server。
tty-share用于要共享终端的机器,它连接到服务器以生成一个秘密URL,通过该URL可以在浏览器中查看终端。
该服务器的实例在http://tty-share.com上运行,因此如果您想自己托管它,则只需要tty-server二进制文件即可。
在别的电脑上编译 Linux/x86 版本的 tty-share
$ git clone https://github.com/elisescu/tty-share$ cd tty-share$ GOOS=linux GOARCH=386 go build .
传到 iSH 上,并运行
$ chmod +x tty-share$ ./tty-share

然后就可以在浏览器里愉快玩耍 iSH 了。
参考资料
[1]
iSH: https://ish.app/[2]
iSH@GitHub: https://github.com/ish-app/ish[3]
App Store: https://apps.apple.com/us/app/ish-shell/id1436902243[4]
tty-share: https://github.com/elisescu/tty-share
到顶部