iSH.png

什么是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搜索应用下载程序。

appstore_ish.jpg

界面按钮简介:

keyboard.webp

特点:

  • 小巧:基于musl libc 和 busybox,和 busybox 一样小巧,最小的 Docker 镜像只有 5MB

  • 安全:面向安全的轻量发行版

  • 简单:提供 APK 包管理工具,软件的搜索、安装、删除、升级都非常方便

  • 适合容器使用:由于小巧、功能完备,非常适合作为容器的基础镜像



查看iSH文件

简单了解文件目录结构还是很有必要的。

在iSH应用中,依次点击:设置->filesystems->default->Browse Files即可查看文件。或者打开文件应用,编辑侧边栏,即可添加 iSH 位置。

filesystem.jpg

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

image-20240524160505953.png

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会向你申请获取位置的权限。一定要选“始终允许”!(如果没有这个选项,请在设置->隐私->位置里设置为“始终允许”)。

但是再次开机之后就不会在运行了,可以将该命令加入自启动配置实现,此处不再赘述。

常用工具

  1. 安装常用编译环境

apk add python3 py3-pip go gcc clang wget git gdb g++ libc-dev perl

gcc.jpg

  1. 使用neofetch查看系统信息

#安装neofetch
apk add neofetch
#查看iSH系统信息
neofetch

noefetch.jpg

  1. 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
  1. 使用python3启动Web服务

python3 -m http.server 80

python3会用当前目录作为网站的根目录,其中80是服务端口号

使用如下命令可以后台运行(理论上也是持续获取定位)

while true; do python3 -m http.server 80 > /dev/null 2> /dev/null; done &
  1. 安装使用neovim

apk add neovim neovim-doc #安装neovim 和 neovim-doc
​
nvim xxx                  #打开命令