FurN1
V2EX  ›  iOS

iSH Shell 入门指南

  •  2
     
  •   FurN1 · Oct 26, 2020 · 14983 views
    This topic created in 2205 days ago, the information mentioned may be changed or developed.

    iSH Shell最近上架 App Store 。上架版本由于限制,和 TestFlight 版本有些不同。我总结了一下要点:

    下载须知

    在国区 App Store 需要搜索“iSH Shell”,外区搜索"iSH"即可。

    获取 apk

    App Store 版本默认未装 apk 。安装过程参见这个官方 wiki 页面,步骤如下:

    1. 运行cd /
    2. 运行wget -qO- http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86/apk-tools-static-2.10.5-r1.apk | tar -xz sbin/apk.static && ./sbin/apk.static add apk-tools && rm sbin/apk.static

    变更默认 shell

    iSH Shell 的默认 shell

    • iSH Shell 使用 Alpine Linux,它的默认 shell 是 busybox ash 。
    • ash 不会 source.bashrc,而是会 source.profile。
    • 一般的 bash 脚本无法在这里运行,需要使用/bin/sh来运行经典 shell 脚本。这当然很不方便,我们喜欢用 bash 或者 zsh 。
    • 以 bash 为例,运行apk add bash安装 bash,然后在 iSH terminal 输入bash使用 bash 。

    使用 bash 作为默认 shell

    参见这个官方 issue,有两种改变默认 shell 的方式:

    1. 编辑/etc/passwd。iSH Shell 的用户是 root,所以编辑第一行,把/bin/ash改为/bin/bash。
    2. 安装 shadow:apk add shadow,然后使用其中的 chsh 命令修改默认 shell:chsh -s bash 我个人觉得前者更加方便。把默认 shell 改成 bash 之后,再次进入 iSH Shell 就会默认 source.bashrc,方便 git pull 使用自己的 dotfiles 。

    杂项

    • App 图标可以设置
    • 大部分用法能在官方 wiki里面找到,比如如何使用ssh,vnc,python,ruby,php或者r,以及目前的局限是什么。
    38 replies  •  2023-05-17 21:57:44 +08:00
    FurN1
    FurN1
    OP
    Oct 26, 2020
    1
    所有设置在重装 app 之后都会被清空,所以最好有自己的 dotfiles bootstraper
    NoGolang
    NoGolang
    Oct 26, 2020 via iPhone
    2
    @IgniteWhite 使用这个东西,是不是 zerotier 的自建 moon 节点 就可以通过这个 放进去了,iOS 就可以使用 moon 节点了
    FurN1
    FurN1
    OP
    Oct 26, 2020 via iPhone
    3
    @NoGolang 这个我也不懂,不过说是 ifconfig 和 ip 这两个命令不能用,不知道能不能说明一些问题
    rateltalk
    rateltalk
    Oct 26, 2020
    4
    这个是不是得翻墙才能用、、wget 没反应
    msn1983aa
    msn1983aa
    Oct 26, 2020
    5
    wget 粘贴进去之后点 return 怎么没反应?
    msn1983aa
    msn1983aa
    Oct 26, 2020
    6
    @s609926202 #4 你猜对了,得扶墙
    msn1983aa
    msn1983aa
    Oct 26, 2020
    7
    login: can't execute '/bin/bash': No such file or directory

    重装 ing
    FrailLove
    FrailLove
    Oct 26, 2020
    8
    问个 不太聪明的问题 vi 编辑后怎么 esc wq
    yanlx
    yanlx
    Oct 26, 2020 via iPhone
    9
    @s609926202 wget 不到就改换国内源下载呗

    sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories

    wget -qO- http://mirrors.tuna.tsinghua.edu.cn/alpine/v3.12/main/x86/apk-tools-static-2.10.5-r1.apk | tar -xz sbin/apk.static && ./sbin/apk.static add apk-tools && rm sbin/apk.static
    FrailLove
    FrailLove
    Oct 26, 2020
    10
    @FrailLove 已解决
    yuuko
    yuuko
    Oct 26, 2020 via Android
    11
    ish 你们都用来干什么?感觉性能不太行
    GuryYu
    GuryYu
    Oct 26, 2020
    12
    @FrailLove #8 虚拟键盘顶部第三个按钮就是 esc,然后正常:wq 即可
    shadownet
    shadownet
    Oct 26, 2020
    13
    我 out 了,在里面 vi 之后,键盘上没 esc, 没法用,哈哈,我也是服了
    shadownet
    shadownet
    Oct 26, 2020
    14
    不得已,装了 nano, 完成了一个简单的改文件操作
    czjackjin
    czjackjin
    Oct 26, 2020
    15
    这个可以安装 numpy 么?
    fihserman123
    fihserman123
    Oct 26, 2020
    16
    编辑后如何保存退出?
    shadownet
    shadownet
    Oct 26, 2020
    17
    @fihserman123 换 nano 吧, vi 在 ios 上简直是灾难. apk add nano 就能安装了
    internelp
    internelp
    Oct 26, 2020
    18
    不错不错,好工具,可以方便的 ping 。不知道能不能安装 curl
    shadownet
    shadownet
    Oct 26, 2020
    19
    @internelp 亲测可以
    Themyth
    Themyth
    Oct 26, 2020
    20
    @czjackjin scipy numpy 都不行
    Thresh
    Thresh
    Oct 26, 2020
    21
    学习了..
    szdosar
    szdosar
    Oct 26, 2020
    22
    改废了 iSH 的有没有,要重装 iSH 。
    littlewing
    littlewing
    Oct 26, 2020
    23
    不介意的话,改成国内阿里云源比较快:sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && apk update && apk upgrade

    安装 c/c++环境:apk add build-case
    安装 pyhton: apk add python3 py3-pip
    littlewing
    littlewing
    Oct 26, 2020
    24
    @littlewing apk add build-base 手抖了
    Cuo
    Cuo
    Oct 26, 2020 via iPhone
    25
    用 pyenv 编译 python 3.8.6 耗时三十多分钟。
    感觉性能还是差了一点
    Bijiabo
    Bijiabo
    Oct 26, 2020
    26
    我特别好奇大家怎么使用 iSH,想看到使用范例。感觉手上有一个利器,但是不知道有什么场景用的到 T_T
    shadownet
    shadownet
    Oct 26, 2020
    27
    @Bijiabo 对我来说就是
    1. 多了一个 terminal,
    2. 可以做一些小测试, 比如 ping, curl

    至于生产力,毕竟是 alpine linux,不是 Ubuntu, 如果能跑虚拟机,那应该会更强大
    czjackjin
    czjackjin
    Oct 26, 2020
    28
    尝试弄个 numpy,估计不行
    Bijiabo
    Bijiabo
    Oct 26, 2020
    29
    @shadownet 嗯,感谢。我目前也是这样,可以跑一些简单的 JS 做一些验证使用
    virtualworld
    virtualworld
    Oct 26, 2020❤️1
    30
    我用 iSH,用 4G 网络能联网,连路由器就上不去网,找了一大圈办法,什么 ifconifg,ipv6,你猜怎么着?原来是我 iOS 14,它请求“本地网络”权限的时候我给禁了。


    @Bijiabo 目前我用它也就 ssh 一下,或者在手机上开个 sshd,从电脑往它上面传东西。噢,对了,还有就是用 uptime 看手机开机多久了,非常准。
    1if5ty3
    1if5ty3
    Oct 27, 2020
    31
    @slrey
    兄弟,你这个头像咋一看是黑莓,仔细一看又不是。
    virtualworld
    virtualworld
    Oct 27, 2020
    32
    @1if5ty3 我也以为我用的是黑莓商标,让你一说仔细一看才发现并不是,😂
    im3x
    im3x
    Oct 27, 2020
    33
    @shadownet #17
    iSH 虚拟键盘第三个是 esc 功能,vi 模式下点这个按钮,然后输入 :wq 即可保存退出
    shadownet
    shadownet
    Oct 28, 2020
    34
    @im3x 并不怎么好用,还是 nano 方便
    yxrdydh
    yxrdydh
    Nov 7, 2020
    35
    你们觉得 a-Shell 怎么样?这个模拟方式更苹果一点。可以本地运行大部分 unix 命令,可以使用 vim,编译 latex,部分 python 包。它的问题是 bug 有点多,每次出了问题会闪退,让我只能删了重装。
    songysh
    songysh
    May 11, 2023
    36
    有没有办法在 iSH 里,挂载 icloud ?
    songysh
    songysh
    May 11, 2023
    37
    @songysh 办法很简单,
    mkdir app-dir
    mount -t ios app-dir
    会弹出窗口让你选,太厉害了。
    FurN1
    FurN1
    OP
    May 17, 2023
    38
    @songysh 哈哈好久没跟进了,原来现在有这个功能了。谢谢分享
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2319 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 66ms · UTC 13:25 · PVG 21:25 · LAX 05:25 · JFK 08:25
    ♥ Do have faith in what you're doing.