在 iPad 上运行 Linux 命令行在 iPad 上运行 Linux 命令行在 iPad 上运行 Linux 命令行在 iPad 上运行 Linux 命令行
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

在 iPad 上运行 Linux 命令行

iOS 上的 Linux 命令行?是的你可以。

您知道可以在 iOS 设备上运行 Linux 命令行吗?您可能会问,“为什么我要在我的小 iPhone 上使用基于文本的应用程序?”好,可以。这是一个非常合理的问题。但如果您正在阅读 Opensource.com,您可能知道答案:Linux 用户希望能够使用任何设备,并且他们还希望使用自己的自定义设置。

最重要的是,他们想要挑战。

我有一台已经使用了 7 年的 iPad 2 Mini,在阅读电子书和执行其他任务时仍然可以正常工作。但我也想用它来访问应用程序的命令行以及我似乎离不开的程序和脚本套件。我想要我习惯的环境,以及我的标准开发环境。我是这样做的。

连接到键盘

使用命令行在手机或平板电脑的屏幕键盘上进行编程并不是很有趣。我建议通过蓝牙或使用相机连接套件适配器连接外部键盘来连接有线键盘(我的偏好)。将我的 Kinesis Advantage 分体式键盘插入 iPhone 6 会产生一些奇怪的光学效果,就像经典角色扮演游戏 Shadowrun 中的公司 Cyberdeck。

在 iOS 上获取 shell

在 iOS 上运行完整的 Linux 系统有两种选择:

  • 通过安全 shell (SSH) 进入 Linux 计算机
  • 使用 Alpine Linux 和 iSH 运行虚拟化系统,iSH 是开源的,但必须使用 Apple 专有的 TestFlight 应用程序安装

或者,有两个开源终端仿真器应用程序可以在受限环境中提供开源工具。这是最受限制的选项 — 它并不真正让您运行 Linux,但您正在运行 Linux 工具。使用这些应用程序在设备上执行的操作受到严格限制,但它们确实为您提供了一些命令行功能。

在探索更具挑战性的解决方案之前,我将先介绍最简单的方法。

选项 1:沙盒 shell

最简单的入门方法之一是使用 iOS 应用程序 LibTerm。这是一个沙盒开源命令行 shell,在 0 美元的应用程序中捆绑了 80 多个命令。它附带 Python 2.7、Python 3.7、Lua、C、Clang 等。

类似的还有 a-Shell,被描述为“基于屏幕的平台的基于文本的用户界面”。 a-Shell 是开源的,正在积极开发中,授予对文件系统的访问权限,并随 Lua、Python、Tex、Vim、JavaScript、C 和 C++,以及 Clang 和 Clang++ 一起提供。它甚至允许您使用 pip 安装 Python 包。

选项 2:随处使用 SSH

下载应用程序的第一步是配置 SSH 客户端。很长一段时间以来,都可以使用 iOS 上的众多 SSH 客户端应用程序之一来连接到运行 Linux 发行版或 BSD 的服务器。使用 SSH 的优点是您的服务器可以运行带有您喜欢的任何软件的任何发行版。您远程工作,您的输出将通过管道传输到 iOS 设备的终端模拟器。

Blink shell 是一款流行的付费开源 SSH 应用程序。在小屏幕之外,使用此软件类似于通过任何其他命令提示符连接到服务器。 Blink 的终端看起来很漂亮,包含许多主题,并且能够创建您自己的主题,包括自定义和添加新字体。

选项 3:运行 Linux

使用 SSH 连接到运行 Linux 的服务器是访问提示符的好方法,但它确实需要访问外部服务器和连接。这并不是最严重的进入障碍,但也不能完全忽略,您可能希望使用没有此服务器要求的 Linux。

如果这是你的情况,你就必须在最前沿突破一些东西。 TestFlight 是一项专有服务,用于在将开发中的应用程序提交到 Apple App Store 之前对其进行部署。您可以从商店下载 TestFlight 应用程序,然后注册一些测试应用程序。 TestFlight 中的应用程序在有限的时间内允许有限数量的外部 Beta 测试人员(通常最多 10,000 名)。要下载测试应用程序,您必须直接从设备访问链接,该链接通常可以在测试应用程序开发人员的网站上找到。

使用 iSH 运行 Alpine Linux

iSH 是一款开源 TestFlight 应用程序,可通过开箱即用的 Alpine Linux 发行版运行虚拟机(但您可以通过更多修改来运行其他发行版)。

一个重要的警告:这是实验性的。由于 iSH 目前是测试应用,因此不要指望永久或稳定的服务。 TestFlight 应用程序有时间限制。我当前的构建可以持续 60 天。这意味着 60 天后,我将被锁定并必须重新加入 iSH 的下一个测试阶段。此外,除非我使用 iOS 上的文件导出文件或将它们备份到 Git 主机或使用 SSH,否则我将丢失文件。需要明确的是:不要依赖于此来继续工作!不要在这里放任何重要的东西!在其他地方备份您的工作!

安装iSH

首先通过 App Store 安装 TestFlight。然后通过其网站获取安装链接来安装 iSH。还有另一种使用AltStore的安装方法,但我没有尝试过。或者,如果您有付费开发者帐户,则可以从 GitHub 下载 iSH 的存储库并自行部署。

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

管理包

iSH 在 Alpine Linux 上运行 x86 模拟器。 Alpine 是一个小于 5MB 的小型发行版。这是我第一次运行 Alpine,我以为我会对这样一个最小的发行版感到沮丧,但实际上我真的很喜欢它。

(李·图斯曼,CC BY-SA 4.0)

Alpine 使用 apk 包管理器,它甚至比 apt 或 pacman 更简单。

要安装包:

apk add package

要删除包:

apk del package

使用以下命令查找其他命令和信息:

apk --help

更新包管理器:

apk update
apk upgrade

获取文本编辑器

Alpine 的默认文本编辑器是 Vi,但我更喜欢 Vim,所以我安装了它:

apk add vim

如果您愿意,可以安装 Nano 或 Emacs。

换外壳

我不了解你,但我需要鱼壳。其他人更喜欢 Bash 或 Zsh。但阿尔派使用的是灰! Ash 是 Dash shell 的一个分支,它本身也是原始 ash 或 Almquist shell 的一个分支。它是为速度而设计的。我决定用速度来换取我在 Fish shell 中了解和喜爱的内置自动完成、颜色、Vim 键控制和语法突出显示。

安装鱼:

apk add fish

如果您想要 Bash 及其补全和手册页,则需要安装它们和一些额外的东西:

apk add bash bash-doc bash-completion

Alpine 的极简主义思想通常意味着一些在其他发行版中将是单个包的程序被分成多个较小的包。这也意味着您可以按照自己的需要定制和精简系统。

您可以在本教程中找到有关安装 Bash 的更多详细信息。

更改默认外壳

安装fish后,您可以暂时切换到它并通过输入fish并放入shell中进行尝试。但我想让 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 设置为默认值,请将该行更改为:

root:x:0:0:root:/root:/usr/bin/fish

然后保存并退出。

我确信有一个很好的方法来重新获取 shell,以便您可以立即开始使用它。但我不确定,因此我建议返回应用浏览器,强制退出 shell,并关闭并重新启动您的 iPad 或 iPhone。重新开放 iSH,现在,除了“欢迎来到 Alpine!”有关开始使用 apk 的消息和信息,您将看到默认的 Fish 登录欢迎消息:欢迎来到 Fish,友好的交互式 shell。万岁!

(李·图斯曼,CC BY-SA 4.0)

设置 Python 和 pip

我决定添加 Python(版本 3.x),不仅是因为我可以编写代码,还因为我依赖于多个 Python 程序。安装它:

apk add python3

尽管 Python 2.x 已弃用,但您仍然可以安装它:

apk add python

安装 Python 包管理器、pip 和 setuptools:

python3 -m ensurepip --default-pip

安装和设置包管理器需要一些时间,所以只需等待。

然后,您可以下载网络传输工具curl:

apk add curl

阅读手册

Fish 使用基于手册页的内置自动完成功能。与其他命令行用户一样,我依赖 man 手册,而 Alpine 并未附带安装它。因此,我将它与 less 寻呼机一起安装:

apk add man man-pages less less-doc

除了 man 之外,我还使用了很棒的 tldr 页面项目,它提供了简化的、社区驱动的手册页。

我是用pip安装的:

pip install tldr

tldr 命令会在遇到新页面请求时连接到网络以获取页面。如果您需要学习如何使用命令,只需键入 tldr curl 即可获得简单的英语解释以及如何使用该命令的良好示例。

当然,您可以使用点文件或安装脚本自动执行所有这些安装工作,但这并不真正属于 Alpine 完全按照您的规范自定义最小安装的方式。而且,并没有花那么长时间,不是吗?

了解更多

iSH wiki 包含一个“什么有效”页面,其中包含有关当前有效的软件包的报告。值得注意的是,npm 目前似乎无法工作。

另一个 wiki 页面解释了如何从 iOS 文件应用程序访问 iSH 文件。这是移动和传输文件的一种方法。

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

有关 iSH 的更多信息,请参阅以下链接:

  • iSH网站
  • 红迪网子版块
  • GitHub 问题
  • 维基百科
©2015-2025 艾丽卡 support@alaica.com