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

iSH Shell 入门指南

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

    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
    IgniteWhite
        1
    IgniteWhite  
    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 节点了
    IgniteWhite
        3
    IgniteWhite  
    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 做一些验证使用
    slrey
        30
    slrey  
       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
    兄弟,你这个头像咋一看是黑莓,仔细一看又不是。
    slrey
        32
    slrey  
       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  
       322 天前
    有没有办法在 iSH 里,挂载 icloud ?
    songysh
        37
    songysh  
       322 天前
    @songysh 办法很简单,
    mkdir app-dir
    mount -t ios app-dir
    会弹出窗口让你选,太厉害了。
    IgniteWhite
        38
    IgniteWhite  
    OP
       316 天前
    @songysh 哈哈好久没跟进了,原来现在有这个功能了。谢谢分享
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5440 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 08:52 · PVG 16:52 · LAX 01:52 · JFK 04:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.