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\]’
啟動看看,效果是不是變樣了,另外可以修改 終端->偏好設定->下圖
接下來就是我自己配置的顏色怎麼樣
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系統好像也是預設安裝了)
安裝RVMcurl -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.confsudo vi /etc/apache2/httpd.conf
取消這一行前邊的註釋符號 #LoadModule php5_module libexec/apache2/libphp5.so
重啟 Apachesudo apachectl restart
檢視 Apache 資訊
3.許可權( 不是必須的)
為了方便程式在 ~/Sites 目錄下讀寫sudo chmod -R a+w ~/Sites/testsite
若擔心安全問題,可以使用 _www 許可權,若這樣做當需要 admin 許可權需做驗證:sudo chown -R _www ~/Sites/testsite
4.PHP推送
- 執行PHP後臺推送之前,需要你匯出p12證照,具體請看下文http://blog.csdn.net/x32sky/article/details/17527655
- 執行生成兩個P12檔案
需要通過終端命令將這些檔案轉換為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
相關文章
- 測試開發之原始碼篇-Git常用命令整理原始碼Git
- iOS開發之網路篇iOS
- iOS開發之解析XML格式資料iOSXML
- iOS開發之OC篇(3)—— NSArray、NSMutableArrayiOS
- iOS開發常見問題之綜合篇iOS
- 整理:iOS開發知識點iOS
- node命令列開發命令列
- iOS開發之TabBar再次點選實現重新整理iOStabBar
- 整理IOS開發、Mac開發好的中文部落格iOSMac
- 優秀的命令列工具整理(二)命令列
- 優秀的命令列工具整理(三)命令列
- iOS開發圖片格式選擇iOS
- Flutter混合開發—iOS篇FlutteriOS
- ios 開發UI篇—UITextViewiOSUITextView
- sqlplus 命令列格式SQL命令列
- iOS開發之基礎篇(2)—— NSString、NSMutableStringiOS
- 測試開發之網路篇-常用命令
- 測試開發之系統篇-常用系統命令
- iOS開發之XLForm的使用iOSORM
- iOS開發 列舉註釋iOS
- iOS開發 iOS整合FFmpeg及視訊格式轉碼iOS
- iOS 開發之— NSURLProtocoliOSProtocol
- iOS開發之WebViewiOSWebView
- iOS開發之GCDiOSGC
- Flutter外掛開發---iOS篇FlutteriOS
- ios開發UI篇--UILabeliOSUI
- Python 開發命令列工具Python命令列
- iOS 開發的一些小技巧篇(1)iOS
- iOS 開發的一些小技巧篇(2)iOS
- iOS 開發的一些小技巧篇(3)iOS
- 基於Golang的CLI 命令列程式開發Golang命令列
- iOS之BLE藍芽SDK開發個人總結(進階篇)iOS藍芽
- iOS之BLE藍芽SDK開發個人總結(基礎篇)iOS藍芽
- 重新整理 .net core 實踐篇————配置系統——軍令(命令列)[六]命令列
- 前端開發基礎知識整理–css篇前端CSS
- iOS開發小記-基礎篇iOS
- iOS 藍芽開發·基礎篇iOS藍芽
- iOS 開發(二) MVC 架構篇iOSMVC架構