iOS开发之命令行的魅力

iOS开发之命令行的魅力

命令行使用及安装

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

注意:.如果系统有些文件夹不能创建,不能修改请看这里(命令行没有中文符号)

系统:本人系统Mac OS X 10.11.2  XCode7.2

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\]’

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


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


2.vim简单配置

我只介绍简单的一种,配置用户模式下的vim ,终端输入

vim ~/.vimrc    //没有就创建

文件里面输入或者粘贴 (前面是我的行号,不要粘贴)

1 set number  "设置行号

2 syntax on    "语法高亮

3 set tabstop=4 "tab键间隔距离4

4 set autoindent      "自动对齐

5 set gdefault "行内替换

6 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都配置好了,那么我们也开始转入正题了,

3.cocoapods安装与使用

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

1.Homebrew安装与使用

在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安装

安装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.准备工作做好了,下面来真正安装吧(前面的准备工作,不是必须的,Mac OS内置的有

$ sudo gem update --system // 先更新gem(建议VPN),国内需要切换源

$ gem sources --remove https://rubygems.org/

$ gem sources -a http://ruby.taobao.org/

$ gem sources -l

http://ruby.taobao.org/

上面是切换成淘宝的,国内好使,不影响pod版本

$ sudo gem install cocoapods // 安装cocoapods

$ pod setup

和安装过程是一样的,再次查看版本

$ pod --version

0.39.0

那么安装成功了,

想了解更多,去cocoapods官网:https://cocoapods.org

4.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

下面给张图片,git命令的图片(图片来源别人一篇博客,忘记帖子了)

5.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文件名及预存放的位置

这里感觉是不是还是很麻烦,那么用脚本吧,

脚本步骤: 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)版本,这是一个非常使用的工具,各种插件功能强大,

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

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

• 下载RAR 5.3.0 for Mac OS X(目前最新)国内下载较慢,

官网:http://www.rarlab.com/download.htm

• 双击解压或命令行tar解压文件:rarosx-5.3.0.rar 生成目录rar

• 终端下:cd  ~/Downloads/rar (即进入rar目录下)

• 使用如下命令分别安装unrar和rar命令

安装unrar命令:sudo install –c –o$USER unrar /bin

安装rar命令:sudo install –c –o$USER rar /bin

注意:命令的空格,如果成功,终端输入:rar,可以查看rar命令帮助

• 压缩文件

rar命令: rar a  生成文件名.rar  要压缩的文件或文件夹

rar a my.rar  your

• 压缩文件

rar  e  你的文件或文件夹    (解压到当前文件夹)

unrar  x  test.rar            (解压到当前文件夹)

• 如果文件名含有空格,用单引号  :’test.rar’

7.Mac WebSever & PHp推送

一: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

二 PHP推送

1.执行PHP后台推送之前,需要你导出p12证书,具体请看下文

http://blog.csdn.net/x32sky/article/details/17527655

2.执行生成两个P12文件

1. 需要通过终端命令将这些文件转换为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

2. 如果你想要移除密码,要么在导出/转换时不要设定或者执行:

openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem

3. 最后,你需要将键和许可文件合成为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

3.PHP推送代码

既然证书创建好了,web服务器创建好了,那么自己就快要通过浏览器访问PHP文件,接口,下面是一个apns_push.php文件用来给手机发推送的,可以自己来调试APP的推送功能了。

1.创建推送的PHP文件,放到系统  /Library/WebServer/Documents/

2.启动web服务,浏览器访问,

3.输入地址和devicetoken参数,也可以写死自己APP里面生成的自己手机的token

4.访问就可以看到输出,手机APP就会收到推送了

/***************************************php代码开始***************************/

$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);

?>

/***************************************php代码完毕***************************/

8.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基本一样

8. 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文件夹启动项目运行就可以看看效果了

题外话

1.搜索文件(夹)

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

个人github: https://github.com/fanxiangyang

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

推荐阅读更多精彩内容