Make iPhone your workstation
Cydia Apps
OpenSSH:
建立ssh连接,切记修改默认root密码(alphine)-
APT 0.6 Transitional:
apt-get包管理工具apt-cache search <pkg-name>
查找软件包apt-cache show <pkg-name>
显示软件包信息apt-get update
从APT源更新软件包列表apt-get upgrade
更新软件包apt-get remove <pkg-name>
删除已安装的软件包apt-get purge <pkg-name>
删除已安装的软件包及配置文件apt-get autoremove
删除不需要的软件包(通常是由于依赖关系而安装)apt-get autoclean
删除已卸载的软件包的.deb档dpkg --get-selections | grep <pkg-name>
搜索已安装的软件包dpkg -s/-L <pkg-name>
查看已安装的包信息/路径
Gawk:
支持awk编程,awk是一种强大的文本处理及模式匹配语言MobileTerminal:
设备上的命令行终端Vim:
文本编辑-
Sqlite3:
db相关操作将DB转储到ASCII文本文件:
echo .dump | sqlite file.db > file.dump
重新构建数据库:
cat file.dump | sqlite3 file_new.db
进入sqlite3后,使查询语句结果打印更直观:
.headers on
及.mode column
adv-cmds:
ps, finger, last, lsvfs-
lsof:
备注,Cydia版本若遇到"Cannot allocate memory",去下载lsof-arm7-iOS4.2替换
列出指定文件/设备/目录下被打开的文件:
lsof /var/mobile/
指定PID,查看该进程打开的文件:
lsof -p 1234
查看指定端口有哪些进程在使用:
lsof -i:22
列出所有的TCP/UDP连接:
lsof -i tcp/udp
查看指定用户打开的文件:
lsof -u mobile
-
shell-cmds:
killall, time, which重启Springboard(如ipa安装不彻底时。备注:
sbreload
也可以做到):killall -HUP SpringBoard
-
Core Utilities (/bin):
提供了dirname, kill, mktemp, sudirname工具在脚本使用场景较多
top:
动态查看系统状态,如CPU负载inetutils:
ping, ftp客户端/服务端network-cmds:
网络管理工具,ifconfig, netstat, arp, route, traceroute-
readline:
方便命令行移动ctrl+r
搜索ctrl+a/e
移动到行首/尾ctrl+u/k
删除到行首/尾ctrl+l
清屏
open:
通过命令行打开应用ipainstaller
通过命令行安装ipa应用-
plutil (Erica Utilities):
支持设备上对plist文件进行操作,
plutil -show file.plist
-
strings (Binutils):
打印某个文件的可打印字符串,便于了解一些非文本文件的内容。比如可以用来查找浏览器Cookies内容
cycript: TBD
命令示例
由于iOS App运行在沙箱中,找到App具体的安装路径:
cd /var/mobile/Applications
my_dir=$(dirname `find . -name 'test.app'`)
cd $my_dir
打印Info.plist中的Bundle Version
字段(用到了上述设备端plutil
工具,注意stderr的重定向不可省略):
plist="my.app/Info.plist"
version=$(plutil -show $plist 2>&1 | grep 'CFBundleVersion' | cut -d"\"" -f2)
通过dpkg-query
打印所有安装的软件包及大小、并排序,最后通过awk
计算总大小
dpkg-query -Wf '{$Install-size}\t${Package}\n' | sort -n | awk '{sum += $1; print} END {print sum, "total"}'