iSH Shell 入门指南 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
FurN1
V2EX    iOS

iSH Shell 入门指南

  •  2
     
  •   FurN1 2020-10-26 03:49:20 +08:00 13102 次点击
    这是一个创建于 1822 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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,以及目前的局限是什么。
    38 条回复    2023-05-17 21:57:44 +08:00
    FurN1
        1
    FurN1  
    OP
       2020-10-26 03:56:39 +08:00
    所有设置在重装 app 之后都会被清空,所以最好有自己的 dotfiles bootstraper
    NoGolang
        2
    NoGolang  
       2020-10-26 06:51:06 +08:00 via iPhone
    @IgniteWhite 使用这个东西,是不是 zerotier 的自建 moon 节点 就可以通过这个 放进去了,iOS 就可以使用 moon 节点了
    FurN1
        3
    FurN1  
    OP
       2020-10-26 06:55:15 +08:00 via iPhone
    @NoGolang 这个我也不懂,不过说是 ifconfig 和 ip 这两个命令不能用,不知道能不能说明一些问题
    s609926202
        4
    s609926202  
       2020-10-26 09:17:12 +08:00
    这个是不是得翻墙才能用、、wget 没反应
    msn1983aa
        5
    msn1983aa  
       2020-10-26 09:27:28 +08:00
    wget 粘贴进去之后点 return 怎么没反应?
    msn1983aa
        6
    msn1983aa  
       2020-10-26 09:29:54 +08:00
    @s609926202 #4 你猜对了,得扶墙
    msn1983aa
        7
    msn1983aa  
       2020-10-26 09:36:51 +08:00
    login: can't execute '/bin/bash': No such file or directory

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

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


    @Bijiabo 目前我用它也就 ssh 一下,或者在手机上开个 sshd,从电脑往它上面传东西。噢,对了,还有就是用 uptime 看手机开机多久了,非常准。
    1if5ty3
        31
    1if5ty3  
       2020-10-27 07:47:09 +08:00
    @slrey
    兄弟,你这个头像咋一看是黑莓,仔细一看又不是。
    virtualworld
        32
    virtualworld  
       2020-10-27 08:42:57 +08:00
    @1if5ty3 我也以为我用的是黑莓商标,让你一说仔细一看才发现并不是,
    im3x
        33
    im3x  
       2020-10-27 23:45:18 +08:00
    @shadownet #17
    iSH 虚拟键盘第三个是 esc 功能,vi 模式下点这个按钮,然后输入 :wq 即可保存退出
    shadownet
        34
    shadownet  
       2020-10-28 10:38:51 +08:00
    @im3x 并不怎么好用,还是 nano 方便
    yxrdydh
        35
    yxrdydh  
       2020-11-07 10:46:00 +08:00
    你们觉得 a-Shell 怎么样?这个模拟方式更苹果一点。可以本地运行大部分 unix 命令,可以使用 vim,编译 latex,部分 python 包。它的问题是 bug 有点多,每次出了问题会闪退,让我只能删了重装。
    songysh
        36
    songysh  
       2023-05-11 19:18:43 +08:00
    有没有办法在 iSH 里,挂载 icloud ?
    songysh
        37
    songysh  
       2023-05-11 19:34:08 +08:00
    @songysh 办法很简单,
    mkdir app-dir
    mount -t ios app-dir
    会弹出窗口让你选,太厉害了。
    FurN1
        38
    FurN1  
    OP
       2023-05-17 21:57:44 +08:00
    @songysh 哈哈好久没跟进了,原来现在有这个功能了。谢谢分享
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4693 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 09:50 PVG 17:50 LAX 02:50 JFK 05:50
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86