iOS开发之命令行的魅力(格式整理篇)

一:命令行使用及安装配置

作为一个iOS开发者,命令行是我们必须使用的,下面我就简单介绍下命令行的魅力吧!第一次写博客,还是有点小激动 的!!!

注意:.如果系统有些文件夹不能创建,不能修改请看这里(命令行没有中文符号)
系统:本人系统Mac OS X 10.12.5  XCode8.3
1.文件(夹)的显示与隐藏
显示:defaults write com.apple.finder AppleShowAllFiles -bool true
隐藏:defaults write com.apple.finder AppleShowAllFiles -bool false
2.Mac OS X 10.11+下root权限不能修改/bin 等文件夹解决办法
重启电脑,按住 Command + R,进入到恢复界面
打开Terminal终端,然后输入
csrutil disable
如果想改回来,将disable改成enable即可
原因:10.11系统将Rootless修改成了,enable,所以我们需要关掉它, 重启电脑
1.命令行界面配置

相信我们总是有那么点小任性,希望自己的编程软件有自己独特的主题,但是往往系统默认的又不是我们想要,下面就教大家怎么修改自己漂亮的终端(Terminal),
一般终端配置文件在~/.bash_profile(没有手动创建)这个文件夹里面,在后面添加

#for color
export CLICOLOR=1
#\h:W\u\$
export PS1='\[\033[01;33m\]\u@\h\[\033[01;31m\] \W\$\[\033[00m\]’

启动看看,效果是不是变样了,另外可以修改 终端->偏好设置->下图

1125571-28688f40abfe203e.jpg

接下来就是我自己配置的颜色怎么样

2.vim简单配置

我只介绍简单的一种,配置用户模式下的vim ,终端输入
vim ~/.vimrc //没有就创建
文件里面输入或者粘贴 (前面是我的行号,不要粘贴)

set number  "设置行号
syntax on    "语法高亮
set tabstop=4 "tab键间隔距离4
set autoindent      "自动对齐 
set gdefault    "行内替换
set ruler   "在编辑过程中,在右下角显示光标位置的状态行
7 set showmatch "高亮显示对于括号

更多Vim,请参考
Mac 下Vim配置: http://blog.sina.com.cn/s/blog_5a6efa330101cumx.html
Mac 下Vim命令:http://blog.csdn.net/xdrt81y/article/details/24062117
终端和Vim都配置好了,那么我们也开始转入正题了,

二.cocoapods安装与使用

我们都知道cocoapods是一款xcode导入包的工具,给github紧密结合可以说是天衣无缝,另外还有carthage 命令(后面再说),这种包的管理模式大大节约我们来管理更新项目库的时间。开始之前,先把我们电脑里面的准备环境安装或者更新一遍吧!

1.Homebrew安装与使用

这是一个非常强大的命令管理工具,和Ubuntu的 apt-get命令类似,在Mac下Homebrew好像默认安装了,安装是(注意命令行没有中文符号)
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)
其他基本使用

•   brew search formula # 搜索软件包
•   brew install formula # 安装软件包
•   brew remove formula # 移除软件包
•   brew cleanup formula # 清除旧包
•   brew list # 列出已安装的软件包
•   brew update # 更新 Homebrew
•   brew upgrade # 升级软件包
•   brew home formula # 用浏览器打开
•   brew info formula # 显示软件内容信息
•   brew deps formula # 显示包的依赖
•   brew server # 启动 web 服务器,可以通过浏览器访问http://localhost:4567 来通过网页来管理包
•   brew -h # 帮助
•   brew versions formula # 列出软件包的版本
//homebrew官方github:https://github.com/Homebrew/homebrew/tree/master/share/doc/homebrew#readme
2.RVM安装(mac系统好像也是默认安装了)

安装RVM
curl -L https://get.rvm.io | bash -s stable
安装时可能会问你sudo管理员密码,以及自动通过homebrew安装依赖包,等待一段时间后就可以成功安装好 RVM。 然后,载入 RVM环境(新开 Termal 就不用这么做了,会自动重新载入的安装完成后,检查一下版本是否安装正确
rvm -v

3.安装 Ruby

列出已知的ruby版本 ,会显示最新的版本
rvm list known
然后安装最新,更新也是这个方法
rvm install 2.0.0
管理Ruby版本,需要执行下面的命令将指定版本的 Ruby设置为系统默认版本
rvm 2.0.0 --default
你也可以用其他版本号,前提是你有用 rvm install安装过那个版本,查看版本
ruby -v

4.准备工作做好了,下面来真正安装吧(前面的准备工作对安装cocoapods,不是必须的,Mac OS内置的有
$ sudo gem update --system // 先更新gem(建议VPN),国内需要切换源
$ gem sources --remove https://rubygems.org/
$ gem sources -a https://ruby.taobao.org/
$ gem sources -l     //查看当前源
http://ruby.taobao.org/
//上面是切换成淘宝的,国内好使,不影响pod版本
$ sudo gem install cocoapods // 安装cocoapods
$ pod setup  //更新远程pod库到本地
//和安装过程是一样的,再次查看版本
$ pod --version
1.21.1

//那么安装成功了,想了解更多,去cocoapods官网:https://cocoapods.org

三.git安装与使用

1.下载dmg 安装
地址: http://git-scm.com/downloads
2.命令行安装
sudo git clone https://github.com/git/git
3.Homebrew安装
sudo brew install git
4.另外还可以其他方式安装,详情看下面链接
Mac OS X Git安装教程:http://www.cnblogs.com/ccdev/archive/2012/09/12/2682098.html
简易git安装: http://www.cocoachina.com/bbs/read.php?tid=200557
git命令: http://justcoding.iteye.com/blog/1830388
git:更新问题: http://segmentfault.com/q/1010000000095119

四.xcode build 命令行打包上传

对于一个iOS开发新手来说,让给APP打包,感觉好麻烦,下面带你看命令的神奇效果
工程文件为test,首先切换到该目录。

1.清除编译对象

xcodebuild -target test clean 可以简写成 xcodebuild clean

2.编译

方法1:xcodebuild -target test -configuration Release
方法2:xcodebuild -target test 可以简写成xcodebuild 执行后会有bulid文件

3.打包

xcrun -sdk iphoneos PackageApplication -v ./build/Release-iphoneos/test.app -o ~/test.ipa
解释:-v 后面是app文件及所在路径,-o后面则是存放的ipa文件名及预存放的位置
这里感觉是不是还是很麻烦,那么用脚本吧,

4.xcode_shell脚本步骤打包
1.打开命令行
2.拖动ipa-build(脚本(shell)命令文件)到命令行(需要下载脚本仓库)
3.拖动项目主目录
4.回车就OK了(包在项目根目录build文件夹里面)
详情请看上面网址:http://blog.csdn.net/ccf0703/article/details/8588667
github脚本仓库:https://github.com/webfrogs/xcode_shell
  • 补充:看到脚本命令多么神奇了吗,其实就是把上面直接xcodebuild命令写成脚本形式,其实喜欢脚本的朋友可以学习一下脚本的基本语法使用:给你们推荐两个网站,
    http://www.w3school.com.cn
    http://www.runoob.com
  • 可以学习基本的语言,比如:PHP,Python,ruby,shell,这些都是脚本语言,当然主流的语言也是应有尽有,当然学习这些脚本语言还得有一个编辑器,下面给你们推荐一款好用的:
  • Sublime3(大概11MB):http://www.sublimetext.com/3 (有Mac,windows,Ubuntu)版本,这是一个非常使用的工具,各种插件功能强大,

五.Mac 安装WinRar命令行解压缩

有些人是不是给我一样有强迫症,不想电脑装太多没有用的软件,那么我们就来装些命令行软件吧

1.下载RAR 5.3.0 for Mac OS X(目前最新)国内下载较慢,官网:http://www.rarlab.com/download.htm
2.双击解压或命令行tar解压文件:rarosx-5.3.0.rar 生成目录rar
3.终端下:cd  ~/Downloads/rar (即进入rar目录下)
4.使用如下命令分别安装unrar和rar命令
    安装unrar命令:sudo install –c –o$USER unrar /bin
    安装rar命令:sudo install –c –o$USER rar /bin

    注意:命令的空格,如果成功,终端输入:rar,可以查看rar命令帮助
5.压缩文件
    rar命令: rar a  生成文件名.rar  要压缩的文件或文件夹
    rar a my.rar  your
6.解压缩文件
    rar  e  你的文件或文件夹    (解压到当前文件夹)
    unrar  x  test.rar            (解压到当前文件夹)
7.如果文件名含有空格,用单引号  :'test.rar'

六.Mac WebSever & PHp推送

1:Mac端服务器配置
1.启动Apache
启动:sudo apachectl start
停止:sudo apachectl stop
重启:sudo apachectl restart
查看 Apache 版本 httpd –v
2. PHP

OSX 10.11.2 已经预装了 PHP 5.5.30, 编辑 httpd.conf
sudo vi /etc/apache2/httpd.conf
取消这一行前边的注释符号 #
LoadModule php5_module libexec/apache2/libphp5.so
重启 Apache
sudo apachectl restart
查看 Apache 信息

3.权限( 不是必须的)

为了方便程序在 ~/Sites 目录下读写
sudo chmod -R a+w ~/Sites/testsite
若担心安全问题,可以使用 _www 权限,若这样做当需要 admin 权限需做验证:
sudo chown -R _www ~/Sites/testsite

4.PHP推送
需要通过终端命令将这些文件转换为PEM格式:
openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12
openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12
 如果你想要移除密码,要么在导出/转换时不要设定或者执行:
openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem
 最后,你需要将键和许可文件合成为apns-dev.pem文件,此文件在连接到APNS 时需要使用:
cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem
例如:
openssl pkcs12 -clcerts -nokeys -out cert.pem -in cert.p12
openssl pkcs12 -nocerts -out key.pem -in key.p12
cat cert.pem key.pem > anps_dis_fan.pem
  • PHP推送代码
    既然证书创建好了,web服务器创建好了,那么自己就快要通过浏览器访问PHP文件,接口,下面是一个apns_push.php文件用来给手机发推送的,可以自己来调试APP的推送功能了。
1.创建推送的PHP文件,放到系统  /Library/WebServer/Documents/
2.启动web服务,浏览器访问,
3.输入地址和devicetoken参数,也可以写死自己APP里面生成的自己手机的token
4.访问就可以看到输出,手机APP就会收到推送了
$message,#推送的消息
'sound' => 'default', #$sound = "ping1.caf";
'badge' => 1
);
/* End of Configurable Items */
$ctx = stream_context_create();
// anps_dev_club是在同文件夹下的pem证书(配置证书)
stream_context_set_option($ctx, 'ssl', 'local_cert', 'anps_dev_club.pem');
// assume the private key passphase was removed.(输入密码)
stream_context_set_option($ctx, 'ssl', 'passphrase', $pass);
// ssl://gateway.sandbox.push.apple.com:2195 这个是苹果开发测试地址
// ssl://gateway.push.apple.com:2195 苹果发布运行地址
$apnsHost='ssl://gateway.sandbox.push.apple.com:2195';
// $apnsHost='ssl://gateway.push.apple.com:2195';
#好像这个用发布和调试都可以
$fp = stream_socket_client($apnsHost, $err, $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);
#发布
// $fp = stream_socket_client($apnsHost, $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);
if (!$fp) {
print "Failed to connect $err $errstrn";
return;
}
else {
print "Connection OKn-----";
}
# 把字典转化成 json字符串
$payload = json_encode($body);
// 这是去掉空格,什么的,因为token里面含有一些不用的符号
$msg = chr(0) . pack("n",32) . pack('H*', str_replace(' ', '', $deviceToken)) . pack("n",strlen($payload)) . $payload;
print "sending message :" . $payload . "n".$msg;
// 发生推送
$result=fwrite($fp, $msg,strlen($msg));
fclose($fp);
?>

七.sqllite 和MySQL命令行操作

1.Sqlit3 Command line

打开创建数据库:在你想创建或者打开的目录下执行
sqlite3 db.sqlite
创建表:

create table table1(userID integer primary key autoincrement,
name varchar(20),
age int,
tel varchar(11)
);

给表增加字段
alter table table1 add contry varchar(50);
• 表的增加、删除、修改、查询
增加:insert into table1 values(NULL,’fan’,20,’182743847);
删除:delete from table1 where userID=3;
修改:update table1 set name=’fan1’ where userID=1;
查询:select * from table1 order by name limit 10; desc;//asc
删除表:
drop table if exists table1;
从一个表里面移除一个字段的方法(创建新表)
create table table2 as select userID,name,age from table1;
表重新命名
alter table table2 rename to table1;
帮助
.help
查看表结构:
.tables; 表个数;
.schema table1; 表结构
更多操作:http://blog.csdn.net/majiakun1/article/details/41281935
http://www.cnblogs.com/einyboy/archive/2013/03/12/2955378.html

2.mysql 命令行

使用MySQL需要安装MySQL服务,可以去官网下载:http://www.mysql.com/downloads/
创建表
create table fan (userID int primary key auto_increment,name varchar(20),age int,tel varchar(11));
登录远程主机 (本地与远程操作是一样的)
ssh username@192.168.1.1
显示数据库
show databases;
使用数据库
use dbname;
显示表
show tablename;
显示表结构
desc tablename;
显示创建表结构
show create table tablename;
其他命令与SQLite3基本一样

八cocos2dx连接xcode

官网下载:http://www.cocos.com/download/#  (最新版本V3.9)
首先解压cocos2dx-3.9,把它放到你容易找到的地方。
然后打开命令行 cd 到cocos2dx-3.9 文件根目录下
命令行输入  ./setup.py  回车即可完成安装
创建项目
cocos new -d ~/Desktop/Game -l cpp -p com.fan.game FanGame
解释:创建一个包名是com.fan.game的FanGame项目语言是cpp(c++)
cocos new –d 目标路径
-l  语言 有cpp,lua,js
-p  包名
最后一个参数:项目名
命令就可以去找到iOS文件夹启动项目运行就可以看看效果了

其他

find命令寄权限
find ./ -name ‘fan*’
find ./ -iname ‘fan*’
mdfind -name 文件名
mdfind ‘fan’  查询所有包含fan的文件
mdfind -onlyin  ~/Library  plist    这条命令可以搜索Library文件夹中所有plist文件。
 找到全部不包含i开头的PNG图片,是图片的执行删除
find . ! -name "i*.png" -name "422333323223*.png" -exec rm -rf {} \;
 for i in `find . -name "*.png"`
do
     newname='echo $i|sed'
        `mv $i $newname`
      pwd
done
find . -name 'CVS' -exec rm -rf {} \;
 查找当前文件夹下,是’CVS’的文件(夹)执行删除操作
 linux或Mac 下执行.sh文件总是提示permission denied
 如果你是root登陆的话(不是的话,切换到root用户,对*.sh赋可执行的权限)
 chmod 777 *.sh
  or
chmod +x  *.sh
吐槽

哎呀,写个博客还是很累人的,我只是写了一些常用的,希望有些东西能帮到你们,有什么问题可以底下留言,或者邮箱留言,下面我要睡一觉了
个人邮箱: fanxiangyang_heda@163.com
其他邮箱:fqsyfan@gmail.com
个人github:https://github.com/fanxiangyang

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容