苹果ios手机ipad安装配置ish终端shell工具

简介

官方介绍 iSH 是一个运行在 iOS 上的 Linux Shell,用来在ARM架构的 iOS 设备上模拟 X86 架构。也就是说不光是 IPad 可以安装,IPhone 上也可以安装运行 iSH,直接在 IOS 设备上运行 Linux 环境,而且免费!

如果你正在使用的电脑是 Mac,那么可以把 iSH 比作你电脑上面的终端。

iSH 官方地址

安装

AppStore里搜索ish 或手机打开链接

配置

基本操作

操作按钮

  1. 这个按钮相当于电脑上的 Tab 键,用于命令自动补全

  2. 这个按钮相当于电脑上的 Control 键,Control + C 标识终止进程,Control + L 清屏

  3. 这个按钮相当于电脑上的 ESC 键,用于在 Vi、Vim 中默认的转换

  4. 这个按钮相当于电脑上的上下左右键,用来查看历史命令

  5. 这个按钮是 iSH 的软件设置

  6. 这个按钮是粘贴操作

  7. 这个按钮是将下面键盘收起的操作

  8. 回车

shell命令

bash 复制代码
# 更新
apk update
apk upgrade
# 安装软件
apk add xxxx
# 卸载
apk del xxxx

安装ssh

为了方便后续操作先安装ssh用电脑链接

bash 复制代码
#更新
apk update
#安装ssh
apk add openssh
# 生成keygen
ssh-keygen -A
# 设置root密码
passwd
# 允许通过ssh访问root。
# 输入不便可其它工具如微信发送到手机复制粘贴命令
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
# 启动sshd注此步骤Ish 会申请网络连接权限, 需要点击允许
/usr/sbin/sshd

局域网电脑终端链接手机吧ssh root@${ios_ip}

配置免密ssh 登录(不建议)

创建.ssh 目录

mkdir .ssh

cd .ssh/

将公钥写入authorized_keys

echo ${id_rsa.pub_key} >> authorized_keys

强制后台运行

你发现手机息屏后远程ssh就断开了,因为ish只要在后台就停止,我们通过让它持续定位来保证后台运行
cat /dev/location > /dev/null &

这时iSH会向你申请获取位置的权限。一定要选"始终允许"!(如果没有这个选项,请在设置->隐私->位置里设置为"始终允许")。

但是再次开机之后就不会在运行了,可以将该命令加入自启动配置实现,参考下面内容

配置国内源

bash 复制代码
# 备份原配置
mv /etc/apk/repositories /etc/apk/repositories.backup
# 配置阿里源
echo -e "https://mirrors.aliyun.com/alpine/v3.11/main""\n""https://mirrors.aliyun.com/alpine/v3.11/community""\n""https://mirrors.ustc.edu.cn/alpine/v3.11/main""\n""https://mirrors.ustc.edu.cn/alpine/v3.11/community"  > /etc/apk/repositories
# 软件源更新
apk update
#安装vim
apk add vim
# 安装git
apk add git

其它参考源

bash 复制代码
#清华
sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
# 阿里云源
http://mirrors.aliyun.com/alpine/v3.12/main
http://mirrors.aliyun.com/alpine/v3.12/community
# 中科大源
http://mirrors.ustc.edu.cn/alpine/v3.12/main
http://mirrors.ustc.edu.cn/alpine/v3.12/community

固化配置

ish重启会重置源、关闭ssh,用脚本添加自启进行固化。

创建名为auto-config.sh 脚本
这里注意要用ash,因为iSH默认使用的是ash

bash 复制代码
#!/bin/ash      
#备份原来的源文件
cp /etc/apk/repositories /etc/apk/repositories.backup
#清空现在的源文件
echo "" > /etc/apk/repositories
#在文件中追加国内源
echo "https://mirrors.tuna.tsinghua.edu.cn/alpine/v3.14/main" >> /etc/apk/repositories
echo "https://mirrors.tuna.tsinghua.edu.cn/alpine/v3.14/community" >> /etc/apk/repositories
#启动ssh
/usr/sbin/sshd

脚本加入启动

/etc/profile文件末尾done 后一行加入一条语句source /root/auto-config.sh,让iSH在启动时加载脚本,重新打开软件查看更新源、ssh远程登录是否正常。

美化ish

ish默认使用的ash下载zshoh my zsh进行美化

bash 复制代码
#安装zsh
apk add zsh git
#配置 git 的 http.postBuffer,因为默认为1M,clone的文件较大就会经常失败
git config --global http.postBuffer 524288000 # 这里设置为500M
# 浅克隆(仅拉取最新版本如果手机内存小可以使用,否还是建议完整克隆)
#git clone https://github.com/ohmyzsh/ohmyzsh.git --depth 1
​
# 完整克隆
git clone https://github.com/ohmyzsh/ohmyzsh.git
# 进入tools目录安装ohmyzsh
cd ohmyzsh/tools
sh install.sh

修改默认为zsh

vim /etc/passwd

将root所在行的ash改为zsh。这样就可以永久使默认shell为zsh了。

注意:假如按教程创建了上面自启动脚本,需要修改脚本里默认的ashzsh

安装其它工具(按需)

neofetch查看系统信息

bash 复制代码
#安装neofetch
apk add neofetch
#查看iSH系统信息
neofetch

iperf3测试内网Wi-Fi网速

bash 复制代码
#安装iperf3
apk add iperf3
#单线测试命令
iperf3 -c 192.168.1.101 -b 10000m -u
#多线测速命令
iperf3 -c 192.168.1.101 -b 10000m  -u -P 2

python3启动Web服务

bash 复制代码
#python3会用当前目录作为网站的根目录,其中80是服务端口号
python3 -m http.server 80
#使用如下命令可以后台运行(理论上也是持续获取定位)
while true; do python3 -m http.server 80 > /dev/null 2> /dev/null; done &

scp传输文件

scp file root@10.0.0.14:/root

10.0.0.14:手机ip

然后用手机文件 应用打开ish 进入root就可以看到文件了并可进行更多操作


结束,更多玩法请大家补充

参考

  1. https://zhuanlan.zhihu.com/p/299824345
  2. https://blog.cccg.top/archives/article36
相关推荐
2501_915921431 天前
iOS App 电耗管理 通过系统电池记录、Xcode Instruments 与克魔(KeyMob)组合使用
android·ios·小程序·https·uni-app·iphone·webview
且去填词1 天前
Context 详解:如何在微服务链路中传递取消信号与超时控制
ios·iphone
RoboWizard1 天前
8TB SSD还有掉速问题吗?
人工智能·缓存·智能手机·电脑·金士顿
2501_915918411 天前
iOS App 测试方法,Xcode、TestFlight与克魔(KeyMob)等工具组合使用
android·macos·ios·小程序·uni-app·iphone·xcode
2501_915921431 天前
iOS 描述文件制作过程,从 Bundle ID、证书、设备到描述文件生成后的验证
android·ios·小程序·https·uni-app·iphone·webview
产业家1 天前
AI手机的终极猜想:超级Agent入口|产业深度
人工智能·智能手机
June bug2 天前
【配环境】iOS项目开发环境
ios
前端不太难2 天前
Flutter / RN / iOS 的状态策略,该如何取舍?
flutter·ios·状态模式
装不满的克莱因瓶2 天前
Android Studio 的模拟器如何上传本地图片到手机相册
android·智能手机·android studio
2401_865854882 天前
腾讯云云手机的质量如何
智能手机·云计算·腾讯云