
iSH教程
什么是iSH?
iSH 是一个运行在 iOS 上的 Linux Shell,用来在ARM架构的 iOS 设备上模拟 X86 架构。 iPad 和iPhone 上均可以安装运行 iSH,直接在 IOS 设备上运行 Linux 环境,它模拟的是 x86 i686 的Linux系统
iSH运行的是轻量级的Alpine Linux发行版,是一个社区开发的面向安全应用的轻量级 Linux 发行版。iSH 官方地址:https://ish.app。直接在APP Store搜索应用下载程序。
界面按钮简介:
特点:
小巧:基于musl libc 和 busybox,和 busybox 一样小巧,最小的 Docker 镜像只有 5MB
安全:面向安全的轻量发行版
简单:提供 APK 包管理工具,软件的搜索、安装、删除、升级都非常方便
适合容器使用:由于小巧、功能完备,非常适合作为容器的基础镜像
查看iSH文件
简单了解文件目录结构还是很有必要的。
在iSH应用中,依次点击:设置
->filesystems
->default
->Browse Files
即可查看文件。或者打开文件应用,编辑侧边栏,即可添加 iSH 位置。
iSH换源
iSH使用的是 apk 包管理器,首先熟悉一下apk 包管理器的使用:
# 更新
apk update #更新最新本地镜像源
apk upgrade #升级软件
# 安装软件
apk add xxxx
# 卸载
apk del xxxx
# 搜索
apk search xxxx
# 软件包信息
apk info xxxx
默认的下载源是官方源,推荐换成国内源,速度更快。
编辑 /etc/apk/repositories这个文件:
vim /etc/apk/repositories
在文件中修改:
# 清华源
https://mirrors.tsinghua.edu.cn/alpine/v3.17/main
https://mirrors.tsinghua.edu.cn/alpine/v3.17/community
# 中科大源
https://mirrors.ustc.edu.cn/alpine/v3.17/main
https://mirrors.ustc.edu.cn/alpine/v3.17/community
# 阿里云源
http://mirrors.aliyun.com/alpine/v3.17/main
http://mirrors.aliyun.com/alpine/v3.17/community
#这里可以把v3.17改为latest-stable,直接获取最新Alpine版本源(这样可能也会使得更新后的部分命令出现问题)
然后执行apk update
更新。
但是iSH在重启之后会恢复默认的源文件,这时候需要编写开机自动换源的脚本,使其开机自启,过程如下:
创建
/etc/service
目录,这里用来存放一些开机自启脚本。mkdir /etc/service
在
/etc/service
目录下创建sourcelist.sh
脚本, 随后赋予可执行权限touch sourcelist.sh chmod +x sourcelist.sh
编辑
sourcelist.sh
脚本,填入以下内容:#这里注意要用ash,因为iSH使用的是ash #!/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
随后保存退出。
打开
/etc/profile
文件,在末尾添加:# 启动执行sourcelist.sh脚本文件 source /etc/service/sourcelist.sh
至此,开机启动换源就配置好了。
iSH美化
iSH默认使用ash,可以下载zsh和oh my zsh进行美化
首先安装 zsh 和 git 工具
apk update apk add zsh git
配置 git 的
http.postBuffer
,因为默认为1M,clone的文件较大就会经常失败。git config --global http.postBuffer 524288000 # 这里设置为500M
克隆 oh my zsh
# 浅克隆 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了。
修改ohmyzsh的主题
编辑
.zshrc
文件,修改ZSH_THEME参数为其他主题:# 编辑.zshrc文件 vim .zshrc # ys主题 ZSH_THEME="ys" # agnoster主题 ZSH_THEME="agnoster" # 每次登陆随机更换一次shell主题 ZSH_THEME="random"
安装SSH
iSH默认没有SSH,所以需要下载配置。
执行以下命令下载ssh
apk update apk add openssh
生成所有类型的公钥、私钥
ssh-keygen -A
允许root登录ssh
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
启动ssh服务
/usr/sbin/sshd
同样的,ssh服务不会开机启动,制作一个启动脚本,让其开机运行,启动ssh服务:
创建
sshd.sh
自启动脚本#创建文件 touch /etc/service/sshd.sh #赋予执行权限 chmod +x /etc/service/sshd.sh
编辑文件,填入以下内容
vim /etc/service/sshd.sh # 填入以下内容 # 注意这里更改为了zsh #!/bin/zsh /usr/sbin/sshd
打开
/etc/profile
文件,在末尾添加# 启动执行sshd.sh脚本文件 source /etc/service/sshd.sh
至此,SSH自启动就配置好了。
后台运行
将iSH软件放在后台就不会运行了,这时候需要通过持续获取定位实现后台运行:
cat /dev/location > /dev/null &
这时iSH会向你申请获取位置的权限。一定要选“始终允许”!(如果没有这个选项,请在设置->隐私->位置里设置为“始终允许”)。
但是再次开机之后就不会在运行了,可以将该命令加入自启动配置实现,此处不再赘述。
常用工具
安装常用编译环境
apk add python3 py3-pip go gcc clang wget git gdb g++ libc-dev perl
使用
neofetch
查看系统信息
#安装neofetch
apk add neofetch
#查看iSH系统信息
neofetch
iperf3测试内网Wi-Fi网速
#安装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服务
python3 -m http.server 80
python3会用当前目录作为网站的根目录,其中80是服务端口号
使用如下命令可以后台运行(理论上也是持续获取定位)
while true; do python3 -m http.server 80 > /dev/null 2> /dev/null; done &
安装使用neovim
apk add neovim neovim-doc #安装neovim 和 neovim-doc
nvim xxx #打开命令
- 感谢你赐予我前进的力量