iSH是一个使用usermode x86模拟器将Linux shell引入IOS设备的工具,基于Alpine Linux,该程序占用空间小,具备一定的安全性且易于上手。不过目前iSH还处于测试阶段,部分功能还不完善。
由于目前iSH还是beta版,所以想要在IOS设备上安装iSH,首先需要安装APP–TestFlight,它可以帮助开发人员测试Beta版App。TestFlight运行环境要求: iOS 8 或更高版本的 iPhone、iPad 或 iPod touch。
安装步骤:
(1)在苹果应用市场App Store搜索TestFlight,获取-安装。安装好后打开,如下图所示。
(2)复制链接: https://testflight.apple.com/join/97i7KM8O ,在Safari浏览器打开,浏览器会自动跳转打开TestFlight,在弹出的对话框中点击“开始测试”(Start Testing),如上图所示,就可以收到加入iSH测试版的邀请了。
(3)安装iSH
安装完毕后,出现iSH界面:
Alpine为轻型的Linux发行版,Alpine 的意思是“高山的”,阿尔卑斯山。Alpine Linux网站首页注明“Small!Simple!Secure!Alpine Linux is a security-oriented,lightweight Linux distribution based on musl libc and busybox.”概括了以下特点:
1、小巧:基于Musllibc和busybox,和busybox一样小巧,最小的Docker镜像只有5MB;
2、安全:面向安全的轻量发行版;
3、简单:提供APK包管理工具,软件的搜索、安装、删除、升级都非常方便。
4、适合容器使用:由于小巧、功能完备,非常适合作为容器的基础镜像。
iSH自带了多功能键盘:
上图中的四个图标分为是:TAB键、Shift键、ESC键以及可以滑动的方向键,结合手机的键盘,基本可以满足shell的一些操作。
常用命令:
apk update 更新源
apk info 列出当前已安装的软件包
apk search <query> 搜索可安装包
apk add <package> 安装软件包
apk upgrade 升级软件包
apk list [--installed] 列出所有的软件包信息
apk del <package> 删除软件包
chmod 修改文件权限
chown 修改文件归属
...
(1)更新国内源
Alpine的源文件为:/etc/apk/repositories,默认的源地址为:http://dl-cdn.alpinelinux.org/,可以将其更新为国内源。
法一 编辑源文件,输入命令
vi /etc/apk/repositories
采用国内阿里云的源,将其文件内容修改为:
# http://dl-cdn.alpinelinux.org/alpine/v3.11/main/
# http://dl-cdn.alpinelinux.org/alpine/v3.11/community/
https://mirrors.aliyun.com/alpine/v3.11/main/
https://mirrors.aliyun.com/alpine/v3.11/community/
编辑好后按ESC退出,输入:wq
保存修改并退出
法二:如果不能熟练使用vi编辑器,可以使用如下命令来修改:
echo "https://mirrors.aliyun.com/alpine/v3.11/main/" > /etc/apk/repositories
echo "https://mirrors.aliyun.com/alpine/v3.11/community/" >> /etc/apk/repositories
(2)更新源:
apk update
apk upgrade
(3)安装gcc
使用如下命令可在Alpine容器中进行gcc的安装
apk add build-base(gcc的一个依赖文件)
apk add gcc
注意:安装过程中屏幕不可以待机,请耐心等待,否则会安装失败
安装成功确认:使用-v可以确认已安装的gcc版本信息
gcc –v
(4)安装gdb
apk add gdb
安装成功确认:使用-v可以确认已安装的gdb版本信息
gdb –v
现在,有了iSH就可以通过IOS设备进行实际的开发以及测试工作了,因此,通过iCloud将文件传输至iSH也是非常容易的。
安装了iSH后,系统的文件管理中会创建一个新的路径,以便用户能够随时访问iSH文件系统,并且能够通过该文件夹将文件发送至其他位置,例如iCloud Drive,手机内存或Dropbox中。
打开 文件 应用app,添加iSH文件系统位置,如下:
如果想要从iSH中传输文件,只需要选择该文件,然后点击“发送”以及“另存为”就可以了。目前这种文件传输还是单向的,iSH还是只出不进的状态(主目录在/root目录下)。不过用户也可以使用wget将文件传输至iSH。
参考资料:
你可曾想过在iOS上跑Linux?
iSH官网
iSH github