您知道可以在 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 应用程序
具有大致相同的功能
选项 2:SSH
下载应用程序的另一个步骤是设置 SSH 客户端。 很长一段时间以来,我们已经能够使用 iOS 的众多 SSH 客户端应用程序中的任何一个来连接到运行 Linux 或 BSD 的服务器。 使用 SSH 的优点是服务器可以运行任何软件的任何发行版。 您可以远程工作,工作结果只需传输到 iOS 设备上的终端模拟器即可。
选项 3:启动 Linux
使用 SSH 连接到 Linux 服务器是访问命令行的好方法,但它需要外部服务器和网络连接。 这不是最大的障碍,但不能完全忽略,因此您可能需要在没有服务器的情况下运行 Linux。
如果这是您的情况,那么您需要更进一步。
使用 iSH 运行 Alpine Linux
重要功能: 实验应用。 由于 iSH 目前是一个测试应用程序,因此不要期望持续可靠的运行。 TestFlight 申请有时间限制。 我当前的构建只能持续 60 天。 这意味着 60 天后我将被淘汰,必须重新参加下一轮 iSH 测试。 此外,我将丢失所有文件,除非我使用 iOS 上的文件导出它们或将它们复制到 Git 主机或
安装iSH
从安装开始
使用该链接,TestFlight 将在您的设备上安装 iSH 应用程序。 与任何其他应用程序一样,屏幕上会出现一个图标。
包管理
iSH 在 Alpine Linux 上运行 x86 模拟器。 Alpine 是一个小型发行版,大小不到 5MB。 这是我第一次与 Alpine 合作,所以我认为极简主义会很烦人,但实际上我真的很喜欢它。
Alpine 使用包管理器
如何安装该包:
apk add package
如何删除包:
apk del package
如何查找其他命令和信息:
apk --help
包管理器更新:
apk update
apk upgrade
安装文本编辑器
Alpine 的默认文本编辑器是 Vi,但我更喜欢 Vim,所以我安装了它:
apk add vim
如果需要,您可以安装 Nano 或 Emacs。
换壳
我不了解你,但我需要
鱼的安装:
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 登录欢迎消息: 欢迎来到鱼,友好的互动外壳. 万岁!
设置 Python 和 pip
我决定添加
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
并获得简单的英语描述以及如何使用该命令的良好示例。
当然,所有这些安装工作都可以使用自动化
更多信息
iSH Wiki 有一个页面“
另一个维基页面解释了如何
您还可以安装 Git(是的! apk add git
)并将您的工作推送到远程存储库或通过 SSH 将其传输到服务器。 当然,您可以从 GitHub 下载并运行任意数量的优秀开源项目。
有关 iSH 的更多信息,请访问以下链接:
由于宣传
维德西纳 报价
来源: habr.com