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

加载更多搜索结果...

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

如何在 iOS 上运行 Linux Shell

iSH 是一个在 iOS 上运行 Linux shell 的活跃项目。它提供了一个 Alpine Linux 环境,带有 apk 包管理器。该应用程序依赖于用户模式 x86 仿真。

您可以从 App Store 下载 iSH。默认情况下,新安装包括功能齐全的 apk。现有应用程序用户可能需要按照文档中的步骤手动安装 apk。

入门

首先从 App Store 安装 iSH。启动该应用程序,您将直接进入 Alpine Linux 终端环境。

您可以开始运行熟悉的 Linux 命令!您可以使用 BusyBox 提供的所有 Unix 实用程序,包括 cat、grep、ls、sed 和 wget。

iSH 提供了自己的键盘图标条,使触摸屏终端的使用更加简单。条带左侧的四个按钮分别是 Tab、Control、Escape 和箭头键。朝您希望光标导航的方向滑动箭头键按钮。

右侧的三个按钮打开设置界面,从 iOS 剪贴板粘贴文本并隐藏键盘。隐藏键盘后,点击任意位置将其带回。

iSH 设置

“设置”菜单可让您自定义一些选项。外观页面允许您设置字体并在浅色和深色主题之间切换。在“应用程序图标”页面上,您可以从多个应用程序图标中进行选择。此选项可让您将 iSH 与 iOS 主屏幕上其他应用程序的视觉风格相匹配。

外部键盘让您控制 iSH 如何处理通过蓝牙或 USB 适配器连接的物理键盘。除了 iOS 的内置重新映射选项之外,您还可以将选项和反引号键重新映射到 iSH 元和转义键。通过启用“使用外部键盘隐藏”设置,您可以在使用外部键盘时隐藏 iSH 的图标条。

文件系统

iSH 支持使用多个文件系统。前往设置菜单中的“文件系统”页面来管理它们。首先,您会看到一个包含内置 Alpine 安装的“默认”文件系统。

按“浏览文件”在 iOS 的文件应用程序中打开文件系统。这有助于您快速将文件从 iSH 复制到 iOS 设备上的其他位置。

您可以使用“导出”选项导出整个文件系统。可以使用主文件系统页面上的“导入”按钮将文件系统导入 iSH。

文件系统的实际用例是允许您运行多个独立安装。目前,只有与 iSH 原始版本相似的最小 Alpine 镜像可以使用。

您可以尝试 Alpine 的“迷你根文件系统”——下载它,导入它并按“从这个文件系统启动”以使用文件系统重新启动 iSH。通过选择其菜单项并再次选择“从该文件系统启动”来切换回默认文件系统。

添加包

您可以使用常规 apk 命令来管理 iSH 环境中的包。

# Update the package lists
apk update

# Upgrade existing installed packages
apk upgrade

# Install SSH
apk add openssh

# Remove SSH
apk del openssh

请注意,iSH 默认使用它自己的包存储库。这允许应用程序通过确保它是完全独立的来通过 App Store Review。

如果愿意,您可以切换到官方的 Alpine Linux 存储库。这使您可以访问完整的 Alpine 软件列表。许多软件包在主 Alpine 存储库中的版本比 iSH 存储库中提供的版本更新。

grep -v "file:///ish/apk/" /etc/apk/repositories | dd of=/etc/apk/repositories bs=4194304
echo https://dl-cdn.alpinelinux.org/alpine/v3.12/main >> /etc/apk/repositories
echo https://dl-cdn.alpinelinux.org/alpine/v3.12/community >> /etc/apk/repositories

运行上面的命令,将 iSH 的 /ish/apk 伪文件系统的内容替换为 Alpine Linux 提供的存储库。然后你需要运行 apk update 来获取新的包列表。

使用 SSH

您可以使用 apk add openssh 安装 OpenSSH。

客户端将立即工作——试试 ssh me@myserver。

要将您的 iOS 设备用作 SSH 服务器,请运行以下命令:

ssh-keygen -A
passwd
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
sshd

这将生成 SSH 主机密钥并提示您为 root 用户设置密码。 sshd 可执行文件被调用以启动 SSH 服务器。您现在可以作为 root 用户连接到您的设备。

iSH 默认不支持自启动服务。您可以通过将 /etc/inittab 的第三行编辑为 ::sysinit:/sbin/openrc 来设置它。接下来运行 rc-update add sshd 使 SSH 服务器在您启动 iSH 会话时自动启动。

运行 Web 服务器

如 SSH 示例所示,iSH 使用您设备的网络堆栈。您可以托管一个网络服务器,您可以在其他设备上浏览该服务器。

运行 apk install apache2 添加 Apache。使用 httpd 启动 Apache 进程。接下来,在网络浏览器中访问你的 iOS 设备的 IP 地址——你应该看到 Apache 的默认“It works!”文本。

iSH 目前不支持后台运行。这意味着您无法在使用 iPhone 时切换到 Safari 浏览网页。在 iPad 上,可以在分屏视图中打开浏览器——iSH 在屏幕的一侧保持活动状态。

Apache 可以用通常的方式配置。您将在 /etc/apache2/httpd.conf 找到它的配置文件。默认文档根目录(提供网页的位置)是 /var/www/localhost/htdocs。

现在怎么办?

您现在正在 iOS 设备上运行 Alpine Linux 环境。添加对您的工作有意义的包。有越来越多的工作软件列表,其中包括 Unix 主食和完整的编程语言。 Node.js、Python、PHP、Ruby 和 Git 都可以运行。

并非每个包都可以使用。发出未经翻译的系统调用的软件将崩溃。由于 iSH 是一个模拟器,性能有时也可能低于标准。

如果您想使用图形应用程序,您可以运行 VNC 服务器。 iSH wiki 中提供了详细步骤。图形工作负载的性能限制将变得清晰,但在技术上是可行的。该过程涉及安装 xorg-server,设置无头配置,然后添加 .xinitrc 文件来定义要使用的窗口管理器。使用轻量级窗口管理器(如 i3)可以获得最佳结果。

结论

iSH 看起来将成为开发人员和系统管理员必备的 iOS 应用程序。已经有像 a-Shell 这样提供基本 Unix 工具的优质应用程序,以及像 Termius 这样的 SSH 客户端,它可以让你连接到远程 Linux 机器。 iSH 是迄今为止最完整的解决方案,它提供了一个支持越来越多的流行软件列表的 Linux 环境。

借助 iPhone 或 iPad 上的 iSH,无论您身在何处,都可以使用熟悉的 x86 Linux 软件。将它与外接键盘配对,您便拥有了一款可以真正取代笔记本电脑的便携式生产力设备。

©2015-2025 艾丽卡 support@alaica.com