什么是 iSH?
官方介绍 iSH 是一个运行在 iOS 上的 Linux Shell,用来在ARM架构的 iOS 设备上模拟 X86 架构。也就是说不光是 IPad 可以安装,IPhone 上也可以安装运行 iSH,直接在 IOS 设备上运行 Linux 环境,而且免费!
如果你正在使用的电脑是 Mac,那么可以把 iSH 比作你电脑上面的终端。
iSH 官方地址:https://ish.app
iSH 能做什么?
iSH 运行的 Linux 环境的发行版本是 Alpine Linux。这是一个社区开发的面向安全应用的轻量级 Linux 发行版,比较适合用作 Docker 镜像、路由器、防火墙、VPNs、VoIP 盒子以及服务器的操作系统。
Alpine Linux 官方地址:https://www.alpinelinux.org
这个发行版本有以下特点:
- 小巧:基于musl libc 和 busybox,和 busybox 一样小巧,最小的 Docker 镜像只有 5MB
- 安全:面向安全的轻量发行版
- 简单:提供 APK 包管理工具,软件的搜索、安装、删除、升级都非常方便
- 适合容器使用:由于小巧、功能完备,非常适合作为容器的基础镜像
安装 iSH
iSH 目前已经上架了苹果的应用商店,可直接搜索 ish
下载。
直接下载进行安装即可。
也可以去 iSH 的官网进行下载。
iSH 官方地址:https://ish.app
打开软件之后会进入到下面的页面,可以看到,现在我们就可以在这个命令行窗口输入 Linux 命令了。
- 打开软件后,默认用户为 root 用户,默认的路径是 /root
- 这个按钮相当于电脑上的 Tab 键,用于命令自动补全
- 这个按钮相当于电脑上的 Control 键,Control + C 标识终止进程,Control + L 清屏
- 这个按钮相当于电脑上的 ESC 键,用于在 Vi、Vim 中默认的转换
- 这个按钮相当于电脑上的上下左右键,用来查看历史命令
- 这个按钮是 iSH 的软件设置
- 这个按钮是粘贴操作
- 这个按钮是将下面键盘收起的操作
在 iSH 的软件设置中,我们可以在 Appearance 中对控制台的主题、字体进行设置,还可以在 App Icon 中选择 iSH 的应用图标。如果想保持屏幕常亮,还可以打开 Disable Screen Dimming 选项。
iSH 安装完成后,我们打开苹果IOS设备中的文件
,就可以看到 iSH 的系统文件夹了。这样我们就可以和 iSH 做文件的相互传输【比如在配置 iSH 的步骤中我写了个初始化脚步就可以通过文件来上传到 iSH 的系统目录】。
配置 iSH
iSH 使用的 apk 命令进行软件管理,刚刚安装 iSH,我们需要修改 apk 命令的软件源,默认国外的源太慢了。
# 备份原配置 mv /etc/apk/repositories /etc/apk/repositories.backup # 创建新配置 echo -e "https://mirrors.aliyun.com/alpine/v3.11/main""\n""https://mirrors.aliyun.com/alpine/v3.11/community""\n""https://mirrors.ustc.edu.cn/alpine/v3.11/main""\n""https://mirrors.ustc.edu.cn/alpine/v3.11/community" > /etc/apk/repositories # 软件源更新 apk update
之后可以自己安装一些常用的软件,比如 git、vim、openssh、zsh等。
配置 iSH、安装常用软件的步骤还是有些繁琐,为了给大家节省时间,我已经写好了初始化 iSH 的脚本,大家只需要将下载好的脚本通过 IOS 文件软件上传到 iSH 的 /root 目录,然后执行
sh ish-init.sh
。脚本获取方式:微信公众号【薛伟同学】,后台回复:【iSH初始化脚本】,注意脚本执行过程中不要让设备屏幕熄灭。
经过本人的测试还有查看官方仓库,iSH 这个东西很遗憾不能支持 Docker。
美化 iSH
首先我们可以打开设置里面的 Appearance,将主题设置为 Dark 模式。
接下来我们可以和其他 Linux 系统一样,使用 Oh My Zsh 来美化命令行。
支持多种主题,美化效果如下:
总结
iSH 是一个免费运行在 iOS 上的 Linux Shell,可以安装在 IPad 和 IPhone 上面,所使用的发行版本 Alpine Linux 非常的精简。但是 iSH 使用的 Alpine Linux 还并不是完整版本的,部分功能做了阉割,但是在上面运行一些简单的 Python 脚本还是绰绰有余。
我个人觉得最有价值的是 iSH 安装了 openssh 之后,可以使用 ssh 命令远程连接服务器,充当跳板角色,作为远程开发或者应急使用还是很不错的!
当 iSH 当做跳板使用 ssh 远程登录服务器的时候,如果是自己的服务器,省略操作可以为服务器设置免密登录还有别名。