TracyLJC 2018-11-20
你可曾想过在 IOS 设备上运行 Linux 系统?或者用 shell 来传输文件、编写脚本,又或者使用 Vi 来开发代码?
Here is a good news,现在有了一个叫 iSH 的东西,你可以使用它在 IOS 设备上来进行上述操作。
iSH 是一个使用 usermode x86 模拟器将 Linux shell 引入 IOS 设备的工具,基于 Alpine Linux,该程序占用空间小,具备一定的安全性且易于上手,几乎没有各种广告、插件之类的东西干扰用户。
流程
想要在 IOS 设备上安装 iSH,首先需要安装 TestFlight,有了它呢就能在设备上安装测试版的程序了,美滋滋。
装完 TestFlight 后,跳转到这个链接:https://testflight.apple.com/join/97i7KM8O,然后点击“开始测试”,如图所示,就可以打开 TestFlight 并收到加入 iSH 测试版的邀请了。
通过 TestFlight 安装 iSH
一旦安装了 iSH,就可以在 IOS 设备上正常打开了,程序会有 ash shell,但是可以使用 APK 包管理器执行相关命令以及安装其他的包。
iSH 安装完成
当然,iSH 才刚刚上线不久,并且只能在模拟器下运行,所以并不是所有的 Linux 程序都能使用(一些满脑子骚操作的朋友们克制一下自己)。但是仍然有搞头,例如 SSH 还是可用的。iSH 提供了一些用户可能在 Linux 中用到的基础程序,例如 Vi,wget,zip/unzip,tar 等。(这些都可以在文末的内置命令列表中查看)
wget 和 Vi 的使用界面
使用 APK 在 iSH 中安装软件
Alpine Linux 使用 APK 包管理器来进行相应程序的安装。
APK 的操作很简单,可用于搜索、安装、罗列、删除包等一系列操作。
输入 apk info,列出当前已安装的软件包。
输入 apk search [package_name],搜索需要添加的新包。例如,若需要搜索 PHP,则输入 apk search php。
输入 apk add [package_name],安装新的包,例如,安装 php,可输入 apk add php,若要安装 Python,则输入 apk add python。
在 iSH 中安装 php 和 python
最后,若需要删除已安装的包,则可输入 apk del [package_name],例如,删除 php,只需输入 apk delete php。
在 iSH 和 iCloud 之间传输文件
现在,有了 iSH 就可以通过 IOS 设备进行实际的开发以及测试工作了,因此,通过 iCloud 将文件传输至 iSH 也是非常容易的。
安装了 iSH 后,系统的文件管理中会创建一个新的路径,以便用户能够随时访问 iSH 文件系统,并且能够通过该文件夹将文件发送至其他位置,例如 iCloud Drive,手机内存或 Dropbox 中。
文件系统的位置
如果想要从 iSH 中传输文件,只需要选择该文件,然后点击“发送”以及“另存为”就可以了。
比较遗憾的是,目前这种文件传输还是单向的,iSH 还是只出不进的状态。不过用户也可以使用 wget 将文件传输至 iSH。
/bin/命令可用汇总
arch ash base64 bbconfig busybox cat chgrp chmod chown conspy cp date dd df dmesg dnsdomainname dumpkmap echo ed egrep false fatattr fdflush fgrep fsync getopt grep gunzip gzip hostname ionice iostat ipcalc kbd_mode kill link linux32 linux64 ln login ls lzop makemime mkdir mknod mktemp more mount mountpoint mpstat mv netstat nice pidof ping ping6 pipe_progress printenv ps pwd reformime rev rm rmdir run-parts sed setpriv setserial sh sleep stty su sync tar touch true umount uname usleep watch zcat
/usr/bin/可用命令汇总
awk basename beep blkdiscard bunzip2 bzcat bzip2 cal chvt cksum clear cmp comm cpio crontab cryptpw cut dc deallocvt diff dirname dos2unix du dumpleases eject env expand expr factor fallocate find flock fold free fuser getconf getent groups hd head hexdump hostid iconv id install ipcrm ipcs killall ldd less logger lsof lsusb lzcat lzma lzopcat md5sum mesg microcom mkfifo mkpasswd nc nl nmeter nohup nproc nsenter nslookup od passwd paste patch pgrep pkill pmap printf pscan pstree pwdx readlink realpath renice reset resize scanelf seq setkeycodes setsid sha1sum sha256sum sha3sum sha512sum showkey shred shuf smemcap sort split ssl_client strings sum tac tail tee test time timeout top tr traceroute traceroute6 truncate tty ttysize udhcpc6 unexpand uniq unix2dos unlink unlzma unlzop unshare unxz unzip uptime uudecode uuencode vi vlock volname wc wget which whoami whois xargs xxd xzcat yes