在 iOS 上启动 Linux 命令行

在 iOS 上启动 Linux 命令行

您知道可以在 iOS 设备上运行 Linux 命令行吗? 您可能会问,“为什么我应该在 iPhone 上使用短信应用程序?” 公平的问题。 但如果您阅读 Opensource.com,您可能知道答案:Linux 用户希望能够在任何设备上使用它,并希望自己对其进行自定义。

但最重要的是,他们渴望解决复杂的问题。

我有一台已经使用了 2 年的 iPad XNUMX Mini,它仍然非常适合阅读电子书和执行其他任务。 但是,我还想使用它通过我的一组程序和脚本访问应用程序的命令行,没有它们我就无法工作。 我需要一个我习惯的环境,以及我的标准开发环境。 这就是我如何实现这一目标的。

连接到键盘

通过手机或平板电脑的屏幕键盘使用命令行进行编程非常不方便。 我建议连接外部键盘,可以通过蓝牙连接,也可以使用相机连接适配器连接有线键盘(我选择了后者)。 当您将 Kinesis Advantage 分体式键盘连接到 iPhone 6 时,您会得到一个奇怪的设备,类似于 企业网络平台 从经典 角色扮演 暗影狂奔。

在 iOS 上安装 shell

要在 iOS 上运行功能齐全的 Linux 系统,有两种选择:

  • 连接到 Linux 计算机的安全 shell (SSH)
  • 使用 Alpine Linux 和 iSH 运行虚拟系统,iSH 是开源的,但必须使用 Apple 专有的 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。

如果这是您的情况,那么您需要更进一步。 TestFlight 是一项专有服务,用于在开发的应用程序在 Apple App Store 中发布之前安装它们。 您可以从 App Store 安装 TestFlight 应用程序,然后使用测试应用程序。 TestFlight 中的应用程序允许有限数量的 Beta 测试人员(通常最多 10 名)在有限的时间内与他们一起工作。 要下载测试应用程序,您需要从设备转到通常位于测试应用程序开发人员网站上的链接。

使用 iSH 运行 Alpine Linux

信息系统 是一个开源 TestFlight 应用程序,可启动具有现成发行版的虚拟机 高山Linux (只需付出一点努力,您就可以运行其他发行版)。

重要功能: 实验应用。 由于 iSH 目前是一个测试应用程序,因此不要期望持续可靠的运行。 TestFlight 申请有时间限制。 我当前的构建只能持续 60 天。 这意味着 60 天后我将被淘汰,必须重新参加下一轮 iSH 测试。 此外,我将丢失所有文件,除非我使用 iOS 上的文件导出它们或将它们复制到 Git 主机或 通过SSH。 换句话说: 不要指望这会继续有效! 不要将任何对您重要的东西放入系统中! 备份到单独的位置!

安装iSH

从安装开始 TestFlight 从应用程序商店。 然后安装iSH, 收到安装链接 从应用程序网站。 还有另一种使用AltStore的安装方法,但我没有尝试过。 或者,如果您有付费开发者帐户,则可以从 GitHub 下载 iSH 存储库并自行安装。

使用该链接,TestFlight 将在您的设备上安装 iSH 应用程序。 与任何其他应用程序一样,屏幕上会出现一个图标。

包管理

iSH 在 Alpine Linux 上运行 x86 模拟器。 Alpine 是一个小型发行版,大小不到 5MB。 这是我第一次与 Alpine 合作,所以我认为极简主义会很烦人,但实际上我真的很喜欢它。

在 iOS 上启动 Linux 命令行
Alpine 使用包管理器 apk文件,这甚至比 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-completion

Alpine 的极简主义思想通常意味着一些打包在其他发行版中的程序将被分成几个更小的包。 这还意味着您可以按照您想要的方式自定义和减小系统的大小。

有关安装 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 或 iPhone。 现在再次打开 iSH,除了消息“欢迎来到 Alpine!” 以及有关从 apk 启动的信息,您将看到标准的 Fish 登录欢迎消息: 欢迎来到鱼,友好的互动外壳. 万岁!

在 iOS 上启动 Linux 命令行

设置 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

除了男人我用华丽 tldr 页面项目,它提供了简化且社区驱动的手册页。

我使用 pip 安装它:

pip install tldr

团队 tldr 当遇到新页面的请求时,连接到网络以检索页面。 如果您需要知道如何使用命令,您可以编写类似的内容 tldr curl 并获得简单的英语描述以及如何使用该命令的良好示例。

当然,所有这些安装工作都可以使用自动化 点文件 或安装脚本,但事实上这并不真正符合 Alpine 的理念——严格定制最小安装以满足您的需求。 再说,也花了这么长时间,不是吗?

更多信息

iSH Wiki 有一个页面“什么有效” 报告当前正在运行哪些软件包。顺便说一句,它看起来像 npm 现在无法运行.

另一个维基页面解释了如何 访问 iSH 文件 从 iOS 文件应用程序。 这是移动和复制文件的方法之一。

您还可以安装 Git(是的! apk add git )并将您的工作推送到远程存储库或通过 SSH 将其传输到服务器。 当然,您可以从 GitHub 下载并运行任意数量的优秀开源项目。

有关 iSH 的更多信息,请访问以下链接:

由于宣传

维德西纳 报价 Linux 上的虚拟服务器 或Windows。 我们独家使用 品牌设备,自行设计的同类最佳服务器控制面板,也是俄罗斯和欧盟最好的数据中心之一。 赶快下单吧!

在 iOS 上启动 Linux 命令行

来源: habr.com

添加评论