
你知道你可以运行命令行吗? Linux 在 iOS 设备上?你可能会问,“我为什么要使用短信应用?” iPhone“这确实是个好问题。但如果你读过 Opensource.com,你可能已经知道答案了:用户。” Linux 希望能够在任何设备上使用它,并希望使用自己的设置。
但最重要的是,他们渴望解决复杂的问题。
我有一台已经使用了 2 年的 iPad XNUMX Mini,它仍然非常适合阅读电子书和执行其他任务。 但是,我还想使用它通过我的一组程序和脚本访问应用程序的命令行,没有它们我就无法工作。 我需要一个我习惯的环境,以及我的标准开发环境。 这就是我如何实现这一目标的。
连接到键盘
使用手机或平板电脑的屏幕键盘通过命令行进行编程非常不方便。我建议连接外接键盘,可以通过蓝牙连接,也可以使用相机适配器连接有线键盘(我选择了后者)。将 Kinesis Advantage 分体式键盘连接到 iPhone 6 你会得到一个类似……的奇怪装置 从经典 暗影狂奔。
在 iOS 上安装 shell
启动一个功能齐全的系统 Linux iOS 系统上有两种选择:
- 使用安全外壳协议 (SSH) 连接到计算机 Linux
- 使用 Alpine 运行虚拟系统 Linux iSH 是开源软件,但必须使用苹果公司专有的 TestFlight 应用进行安装。
此外,还有两款开源终端模拟器应用程序,允许您在受限环境中使用开源工具。这是最简化的方案——您实际上并不运行任何程序。 Linux以及这些工具 Linux使用这些应用程序时存在严重的局限性,但您可以获得部分命令行功能。
在讨论复杂的解决方案之前,我将了解最简单的方法。
选项 1:沙箱外壳
最简单的方法之一是安装 iOS 应用程序 。 它 沙盒命令 shell,支持 80 多个命令,价格为 2.7 美元。 它与 Python 3.7、Python XNUMX、Lua、C、Clang 等捆绑在一起。
具有大致相同的功能 ,被开发人员描述为“屏幕输入平台的测试用户界面”。 a-Shell 源已发布 ,它正在积极开发中,提供文件系统访问,并附带 Lua、Python、Tex、Vim、JavaScript、C 和 C++,以及 Clang 和 Clang++。 它甚至允许您 pip 安装 Python 包。
选项 2:SSH
下载应用程序之后,更进一步的方法是设置 SSH 客户端。长期以来,我们一直可以使用众多适用于 iOS 的 SSH 客户端应用程序连接到运行中的服务器。 Linux 或者 BSD。使用 SSH 的优势在于服务器可以运行任何发行版和任何软件。您可以远程工作,工作内容会直接传输到 iOS 设备上的终端模拟器。
是一个流行的付费 SSH 应用程序 。 如果您忽略设备的小屏幕,那么使用此软件类似于通过任何其他命令行连接到服务器。 Blink Terminal 看起来很棒,有许多现成的主题,并且能够创建自己的主题,包括自定义和添加新字体的能力。
选项 3:启动 Linux
使用 SSH 连接到服务器 Linux — 这是访问命令行的一种好方法,但它需要外部服务器和网络连接。这虽然不是什么大问题,但也不能完全忽略,所以你可能需要配合使用。 Linux 没有服务器。
如果这是您的情况,那么您需要更进一步。 是一项专有服务,用于在开发的应用程序在 Apple App Store 中发布之前安装它们。 您可以从 App Store 安装 TestFlight 应用程序,然后使用测试应用程序。 TestFlight 中的应用程序允许有限数量的 Beta 测试人员(通常最多 10 名)在有限的时间内与他们一起工作。 要下载测试应用程序,您需要从设备转到通常位于测试应用程序开发人员网站上的链接。
阿尔卑斯山的发布 Linux iSH
是一个开源 TestFlight 应用程序,可启动具有现成发行版的虚拟机 (只需付出一点努力,您就可以运行其他发行版)。
重要功能: 实验应用。 由于 iSH 目前是一个测试应用程序,因此不要期望持续可靠的运行。 TestFlight 申请有时间限制。 我当前的构建只能持续 60 天。 这意味着 60 天后我将被淘汰,必须重新参加下一轮 iSH 测试。 此外,我将丢失所有文件,除非我使用 iOS 上的文件导出它们或将它们复制到 Git 主机或 。 换句话说: 不要指望这会继续有效! 不要将任何对您重要的东西放入系统中! 备份到单独的位置!
安装iSH
从安装开始 从应用程序商店。 然后安装iSH, 从应用程序网站。 还有另一种使用AltStore的安装方法,但我没有尝试过。 或者,如果您有付费开发者帐户,则可以从 GitHub 下载 iSH 存储库并自行安装。
使用该链接,TestFlight 将在您的设备上安装 iSH 应用程序。 与任何其他应用程序一样,屏幕上会出现一个图标。
包管理
iSH 使用 Alpine 运行 x86 模拟器。 LinuxAlpine 是一个很小的发行版,大小不到 5 MB。这是我第一次使用 Alpine,所以一开始觉得它的极简风格会很烦人,但实际上我非常喜欢它。

Alpine 使用包管理器 ,这甚至比 apt 或 pacman 更容易。
如何安装该包:
apk add package如何删除包:
apk del package如何查找其他命令和信息:
apk --help包管理器更新:
apk update
apk upgrade安装文本编辑器
Alpine 的默认文本编辑器是 Vi,但我更喜欢 Vim,所以我安装了它:
apk add vim如果需要,您可以安装 Nano 或 Emacs。
换壳
我不了解你,但我需要 。 其他人更喜欢 или 。 然而,阿尔派使用的是灰! Ash 是 Dash shell 的一个分叉,它本身也是原始 ash 的一个分叉,或者 。 她的首要任务是速度。 我决定用速度来换取内置的自动完成、颜色、Vim 键控制和语法突出显示,这些都是我喜欢并从 Fish shell 中了解的。
鱼的安装:
apk add fish如果您需要 Bash 及其自动补全和手册页,请安装它们:
apk add bash bash-doc bash-completionAlpine 的极简主义思想通常意味着一些打包在其他发行版中的程序将被分成几个更小的包。 这还意味着您可以按照您想要的方式自定义和减小系统的大小。
有关安装 Bash 的更多信息,请参阅 .
更改默认外壳
安装fish后,您可以通过输入临时切换到它 fish 并进入外壳。 但我想让fish成为默认的shell和命令 chsh,我在其他发行版上使用过,但不起作用。
首先我们找出fish安装在哪里:
which fish这是我得到的:
/usr/bin/fish 接下来,将登录 shell 更改为 Fish。 您可以使用任何方便的编辑器。 如果您是初学者,请安装 Nano(使用命令 apk add nano)这样就可以编辑配置文件并通过CTRL+X保存,确认并退出。
但我用的是 Vim:
vim /etc/passwd我的第一行是这样的:
root:x:0:0:root:/root:/bin/ash要使 Fish 成为默认 shell,请将此行更改为以下内容:
root:x:0:0:root:/root:/usr/bin/fish然后保存文件并退出。
我确信有办法可以更改 shell 路径以便立即使用。但我不知道具体方法,所以我建议返回应用程序浏览器,强制退出 shell,为了安全起见,最好关闭并重启 iPad 或 iPad。 iPhone再次打开 iSH,现在,除了“欢迎使用 Alpine!”消息和有关从 APK 启动的信息外,您还会看到标准的 fish 登录欢迎消息: 欢迎来到鱼,友好的互动外壳. 万岁!

设置 Python 和 pip
我决定添加 (版本3.x),不仅仅是为了写代码,还因为我使用了几个Python程序。 让我们安装它:
apk add python3尽管Python 2.x已经过时,但您可以安装它:
apk add python让我们安装名为 pip 的 Python 包管理器 :
python3 -m ensurepip --default-pip安装和配置包管理器需要一些时间,所以只需等待。
然后您可以下载一个通过网络传输文件的工具 :
apk add curl阅读手册
Fish 使用基于手册页的内置自动完成功能。 和其他命令行用户一样,我使用手册 man,但它没有安装在 Alpine 中。 所以我用终端寻呼机安装了它 :
apk add man man-pages less less-doc除了男人我用华丽 ,它提供了简化且社区驱动的手册页。
我使用 pip 安装它:
pip install tldr 团队 tldr 当遇到新页面的请求时,连接到网络以检索页面。 如果您需要知道如何使用命令,您可以编写类似的内容 tldr curl 并获得简单的英语描述以及如何使用该命令的良好示例。
当然,所有这些安装工作都可以使用自动化 或安装脚本,但事实上这并不真正符合 Alpine 的理念——严格定制最小安装以满足您的需求。 再说,也花了这么长时间,不是吗?
更多信息
iSH Wiki 有一个页面“” 报告当前正在运行哪些软件包。顺便说一句,它看起来像 .
另一个维基页面解释了如何 从 iOS 文件应用程序。 这是移动和复制文件的方法之一。
您还可以安装 Git(是的! apk add git )并将您的工作推送到远程存储库或通过 SSH 将其传输到服务器。 当然,您可以从 GitHub 下载并运行任意数量的优秀开源项目。
有关 iSH 的更多信息,请访问以下链接:
由于宣传
维德西纳 报价 или Windows我们仅使用 ,自行设计的同类最佳服务器控制面板,也是俄罗斯和欧盟最好的数据中心之一。 赶快下单吧!
来源: habr.com
