下载iSH软件
1、在AppStore商店中下载名叫iSH Shell
的软件
PS
:iSH是一个使用用户模式x86模拟器在iOS设备上获得本地运行的Linux Shell
环境的项目。
2、安装后点开iSH,初步了解iSH
使用uname -a
命令查看相关信息
PS
:iSH
是基于Alpine Linux
的终端模拟器工具,Alpine
支持大部分的Unix/Linux
命令。特殊的是,Alpine
的语法稍有不同,下面列举出几个常用的命令。
安装软件包:apk add <package>查找软件包:apk search <package>更新:apk update升级:apk upgrade
- 当然你也可以使用命令
apk -help
查看更多指令功能。
- 安装
neofetch
查看系统信息
3、安装常用的软件依赖
(1)开始安装之前先替换一下软件源,提高下载安装速率。终端键入命令:
vi /etc/apk/repositories
PS:vi
指令的相关操作在这里不做解释,不懂的读者可以自行百度学习vim指令的使用。
(2)将里面的源地址修改为新的地址。(v3.12
意指当前安装的版本号,如果软件的版本不同,只需更换即可,其它内容不变)
http://mirrors.aliyun.com/alpine/v3.12/mainhttp://mirrors.aliyun.com/alpine/v3.12/community
(3)保存后,执行软件更新和升级。
apk updateapk upgrade
(4)安装相关工具,如:vim,git,tree等,如果读者后续需要安装其他的软件,可以按需安装。
apk add vimapk add gitapk add tree
4、安装gcc和g++
终端依次键入命令:
apk add gccapk add g++app add libc-dev
5、测试用例
(1)随便编写的一个九九乘法表
的C程序做个示范
#include int main(){ int a,b; for(a=1;a<10;a++) { for(b=1;b<=a;b++) { printf("%d*%d=%d\t",b,a,b*a); } printf("\n"); } return 0;}
(2)随便编写一个排序用例
的C++程序做个示范
#include #include using namespace std;int main(){ int a[]={45,12,34,77,90,11,2,4,5,55}; cout<<"before:"; for(int i=0;i<10;i++){ cout<<a[i]<<" "; } cout<<endl; sort(a,a+10);//使用sort函数进行排序 cout<<"after:"; for(int i=0;i<10;i++){ cout<<a[i]<<" "; } cout<<endl; return 0;}
6、总结
- 用iPad写代码,必须搭配一套键鼠才能体验敲代码的感觉,虚拟键盘纯属浪费时间精力。同时建议把iPad的全键盘控制关了,不然快捷键和你的实际操作键会冲突(
很重要!!!!
)。
步骤:设置——辅助功能——键盘——全键盘控制——“关掉全键盘控制”
iSH
是基于Alpine Linux
的,所以使用时需要有一些Linux基础,但对于计算机考研党(科班生)没什么难度,毕竟大家都学过操作系统(Linux)。- 对于考研党,iPad确实是一个很好的生产力工具,作为计算机考研党,我们难免会有上机编写代码进行验证,亦或者运行代码来加深对算法的理解。但是AppStore貌似没有几个(几乎没有)比较满意的编译软件,即使有(比如code,c语言编译器,等等)也是存在用户体验上的
Bug
,有时也会在编译或编辑上出问题。(还有些需要充钱解锁的,但解锁后体验感也没见得好到哪去,毛病依然没解决)
- 使用iPad进行
ssh
远程连接云服务器编译是我觉得比较靠谱的,但并不是每个人都拥有自己的云服务器,也没必要这么折腾。所以能够同时满足规范的编辑编译和较好的用户体验这两个主要条件,能够像Windows/Linux
一样本地编译是最佳的方案。直到遇见了iSH
——一款能够在iOS
中运行Linux
的软件开发工具,我看到了希望。 - 如果你不喜欢Shell风格编写代码,喜欢用桌面级开发软件,那我强烈推荐AppStore里的
Code App
软件(30元,纯开发无广告),界面和VScode
相仿,很符合程序员的风格,看起来很舒服,而且支持多种编程语言。虽然有些小小的Bug,但是看运气,兴许你碰不到。如果非要在AppStore中的众多桌面级开发软件中评选挑出一款,Code App
是让我感到最满意的。
注意:我上面说的这些方案都是用来简单写代码的,不是拿来做软件项目开发用途的,两者的体验感还是有区别的。