V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
IgniteWhite
V2EX  ›  iOS

iSH Shell 入门指南

  •  1
     
  •   IgniteWhite · 37 天前 · 2963 次点击
    这是一个创建于 37 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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里面找到,比如如何使用sshvncpythonrubyphp或者r,以及目前的局限是什么。
    35 条回复    2020-11-07 10:46:00 +08:00
    IgniteWhite
        1
    IgniteWhite   37 天前
    所有设置在重装 app 之后都会被清空,所以最好有自己的 dotfiles bootstraper
    NoGolang
        2
    NoGolang   37 天前 via iPhone
    @IgniteWhite 使用这个东西,是不是 zerotier 的自建 moon 节点 就可以通过这个 放进去了,iOS 就可以使用 moon 节点了
    IgniteWhite
        3
    IgniteWhite   37 天前 via iPhone
    @NoGolang 这个我也不懂,不过说是 ifconfig 和 ip 这两个命令不能用,不知道能不能说明一些问题
    s609926202
        4
    s609926202   37 天前
    这个是不是得翻墙才能用、、wget 没反应
    msn1983aa
        5
    msn1983aa   37 天前
    wget 粘贴进去之后点 return 怎么没反应?
    msn1983aa
        6
    msn1983aa   37 天前
    @s609926202 #4 你猜对了,得扶墙
    msn1983aa
        7
    msn1983aa   37 天前
    login: can't execute '/bin/bash': No such file or directory

    重装 ing
    FrailLove
        8
    FrailLove   37 天前
    问个 不太聪明的问题 vi 编辑后怎么 esc wq
    yanlx
        9
    yanlx   37 天前 via iPhone
    @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
        10
    FrailLove   37 天前
    @FrailLove 已解决
    yuuko
        11
    yuuko   37 天前 via Android
    ish 你们都用来干什么?感觉性能不太行
    GuryYu
        12
    GuryYu   37 天前
    @FrailLove #8 虚拟键盘顶部第三个按钮就是 esc,然后正常:wq 即可
    shadownet
        13
    shadownet   37 天前
    我 out 了,在里面 vi 之后,键盘上没 esc, 没法用,哈哈,我也是服了
    shadownet
        14
    shadownet   37 天前
    不得已,装了 nano, 完成了一个简单的改文件操作
    czjackjin
        15
    czjackjin   37 天前
    这个可以安装 numpy 么?
    fihserman123
        16
    fihserman123   37 天前
    编辑后如何保存退出?
    shadownet
        17
    shadownet   37 天前
    @fihserman123 换 nano 吧, vi 在 ios 上简直是灾难. apk add nano 就能安装了
    internelp
        18
    internelp   37 天前
    不错不错,好工具,可以方便的 ping 。不知道能不能安装 curl
    shadownet
        19
    shadownet   37 天前
    @internelp 亲测可以
    Themyth
        20
    Themyth   37 天前
    @czjackjin scipy numpy 都不行
    Thresh
        21
    Thresh   37 天前
    学习了..
    szdosar
        22
    szdosar   36 天前
    改废了 iSH 的有没有,要重装 iSH 。
    littlewing
        23
    littlewing   36 天前
    不介意的话,改成国内阿里云源比较快: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
        24
    littlewing   36 天前
    @littlewing apk add build-base 手抖了
    Cuo
        25
    Cuo   36 天前 via iPhone
    用 pyenv 编译 python 3.8.6 耗时三十多分钟。
    感觉性能还是差了一点
    Bijiabo
        26
    Bijiabo   36 天前
    我特别好奇大家怎么使用 iSH,想看到使用范例。感觉手上有一个利器,但是不知道有什么场景用的到 T_T
    shadownet
        27
    shadownet   36 天前
    @Bijiabo 对我来说就是
    1. 多了一个 terminal,
    2. 可以做一些小测试, 比如 ping, curl

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


    @Bijiabo 目前我用它也就 ssh 一下,或者在手机上开个 sshd,从电脑往它上面传东西。噢,对了,还有就是用 uptime 看手机开机多久了,非常准。
    1if5ty3
        31
    1if5ty3   36 天前
    @slrey
    兄弟,你这个头像咋一看是黑莓,仔细一看又不是。
    slrey
        32
    slrey   36 天前
    @1if5ty3 我也以为我用的是黑莓商标,让你一说仔细一看才发现并不是,😂
    im3x
        33
    im3x   35 天前
    @shadownet #17
    iSH 虚拟键盘第三个是 esc 功能,vi 模式下点这个按钮,然后输入 :wq 即可保存退出
    shadownet
        34
    shadownet   35 天前
    @im3x 并不怎么好用,还是 nano 方便
    yxrdydh
        35
    yxrdydh   25 天前
    你们觉得 a-Shell 怎么样?这个模拟方式更苹果一点。可以本地运行大部分 unix 命令,可以使用 vim,编译 latex,部分 python 包。它的问题是 bug 有点多,每次出了问题会闪退,让我只能删了重装。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4821 人在线   最高记录 5298   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 06:48 · PVG 14:48 · LAX 22:48 · JFK 01:48
    ♥ Do have faith in what you're doing.