原文出處: Jack_lin(@Jack_Lin_IOS )
厚重·技術
序言
在iOS開發的過程中,更多地注重iOS開發的效率,熟練使用Mac終端操作的常用命令,可以讓你更好的遊刃於iOS繁重的開發中。本文着重介紹常用的Mac終端基本指令和快捷鍵,更加適合一些IOS新手學習和了解。
Mac OS X的文件系統
Mac OS X本身是Unix內核的,採用Unix的多用戶系統,採用Unix文件系統,所有文件都放在根目錄
/Users
下面,不存在Windows下的盤符概念,用戶登錄系統後,自己的用戶目錄下一般有公共、圖片、文稿、下載、音樂、影片、站點、桌面、資源庫,OS X爲中文用戶做了國際化,打開終端,輸入ls
,你會看到真正的目錄名稱:Desktop、Documents、Downloads、Library、Movies、Music、Pictures、Public、Sites
。繼續在終端中輸入cd /,切換到根目錄,鍵入ls
,這樣基本就可以看到Unix目錄的全貌。
如下圖所示:
終端截圖
其中,一些常用文件位置集錦:
1
2
3
4
5
6
1.驅動所在位置 /Systme/Library/Extensions ;
2.桌面的位置 /User/用戶名/Desktop ;
3.文件通配符爲星號 *
4.在 Unix系統中是區別大小寫字符的,A.txt 不等於 a.txt。
根目錄標誌 / 不是可有可無,cd /System 表示轉到跟目錄下的
System中,而cd System 表示轉到當前目錄下的 System中 。
Mac終端常用的基本命令
列出文件:
ls 參數 目錄名
例: 查看驅動目錄:ls/System/Library/Extensions
,(參數 -w 顯示中文,-l 詳細信息, -a 包括隱藏文件);轉換目錄:
cd
例如:轉換到驅動目錄cd /System/Library/Extensions
;建立新目錄:
mkdir 目錄名
例如:在驅動目錄下建一個備份目backup,mkdir /System/Library/Extensions/backup
;
在桌面上建一個備份目錄 backup,mkdir /User/用戶名/Desktop/backup
;拷貝文件:
cp 參數 源文件 目標文件
例:想把桌面的Natit.kext 拷貝到驅動目錄中cp -R /User/用戶名/Desktop/Natit.kext /System/Library/Extensions
;參數R表示對目錄進行遞歸操作,kext在圖形界面下看起來是個文件,實際上是個文件夾。
把驅動目錄下的所有文件備份到桌面backupcp -R /System/Library/Extensions/* /User/用戶名/Desktop/backup
;刪除文件:
rm 參數 文件
例:想刪除驅動的緩存rm -rf /System/Library/Extensions.kextcache 、rm -rf /System/Library/Extensions.mkext
,參數-rf
表示遞歸和強制,執行了rm -rf /
你的系統就癱瘓了;移動文件:
mv 文件
,例:想把AppleHDA.Kext
移到桌面mv /System/Library/Extensions/AppleHDA.kext /User/用戶名/Desktop
,
想把AppleHDA.Kext
移到備份目錄中mv /System/Library/Extensions/AppleHDA.kext /System/Library/Extensions/backup
;文本編輯:
nano 文件名
例:編輯natit Info.plist
nano /System/Library/Extensions/Natit.kext/Info.plist
;目錄操作:
命令名 | 功能描述 | 使用舉例 |
---|---|---|
mkdir | 創建一個目錄 | mkdir dirname |
rmdir | 刪除一個目錄 | rmdir dirname |
mvdir | 移動或重命名一個目錄 | mvdir dir1 dir2 |
cd | 改變當前目錄 | cd dirname |
pwd | 顯示當前目錄的路徑名 | pwd |
ls | 顯示當前目錄的內容 | ls -la |
文件操作:
命令名 | 功能描述 | 使用舉例 |
---|---|---|
cat | 顯示或連接文件 | cat filename |
od | 顯示非文本文件的內容 | od -c filename |
cp | 複製文件或目錄 | cp file1 file2 |
rm | 刪除文件或目錄 | rm filename |
mv | 改變文件名或所在目錄 | mv file1 file2 |
find | 使用匹配表達式查找文件 | find . -name “*.c” -print |
file | 顯示文件類型 | file filename |
選擇操作:
命令名 | 功能描述 | 使用舉例 |
---|---|---|
head | 顯示文件的最初幾行 | head -20 filename |
tail | 顯示文件的最後幾行 | tail -15 filename |
cut | 顯示文件每行中的某些域 | cut -f1,7 -d: /etc/passwd |
colrm | 從標準輸入中刪除若干列 | colrm 8 20 file2 |
diff | 比較並顯示兩個文件的差異 | diff file1 file2 |
sort | 排序或歸併文件 | sort -d -f -u file1 |
uniq | 去掉文件中的重複行 | uniq file1 file2 |
comm | 顯示兩有序文件的公共和非公共行 | comm file1 file2 |
wc | 統計文件的字符數、詞數和行數 | wc filename |
nl | 給文件加上行號 | nl file1 >file2 |
進程操作:
命令名 | 功能描述 | 使用舉例 |
---|---|---|
ps | 顯示進程當前狀態 | ps u |
kill | 終止進程 | kill -9 30142 |
時間操作:
命令名 | 功能描述 | 使用舉例 |
---|---|---|
date | 顯示系統的當前日期和時間 | date |
cal | 顯示日曆 | cal 4 2016 |
time | 統計程序的執行時間 | time a.out |
網絡與通信操作:
命令名 | 功能描述 | 使用舉例 |
---|---|---|
telnet | 遠程登錄 | telnet hpc.sp.net.edu.cn |
rlogin | 遠程登錄 | rlogin hostname -l username |
rsh | 在遠程主機執行指定命令 | rsh f01n03 date |
ftp | 在本地主機與遠程主機之間傳輸文件 | ftp.sp.net.edu.cn |
rcp | 在本地主機與遠程主機之間複製文件 | rcp file1 host1:file2 |
閱讀和發送電子郵件 | ||
write | 給另一用戶發送報文 | write username pts/1 |
mesg | 允許或拒絕接收報文 | mesg n |
ping | 給一個網絡主機發送回應請求 | ping hpc.sp.net.edu.cn |
Korn Shell 命令 :
命令名 | 功能描述 | 使用舉例 |
---|---|---|
history | 列出最近執行過的幾條命令及編號 | history |
r | 重複執行最近執行過的 某條命令 | r -2 |
alias | 給某個命令定義別名 | alias del=rm -i |
unalias | 取消對某個別名的定義 | unalias del |
rcp | 在本地主機與遠程主機之間複製文件 | rcp file1 host1:file2 |
閱讀和發送電子郵件 | ||
write | 給另一用戶發送報文 | write username pts/1 |
mesg | 允許或拒絕接收報文 | mesg n |
其他命令 :
命令名 | 功能描述 | 使用舉例 |
---|---|---|
uname | 顯示操作系統的有關信息 | uname -a |
clear | 清除屏幕或窗口內容 | clear |
alias | 給某個命令定義別名 | alias del=rm -i |
unalias | 取消對某個別名的定義 | unalias del |
who | 顯示當前所有設置過的環境變量 | who |
whoami | 顯示當前正進行操作的用戶名 | whoami |
tty | 顯示終端或僞終端的名稱 | tty |
du | 查詢磁盤使用情況 | du -k subdir |
stty | 顯示或重置控制鍵定義 | stty -a |
df/tmp | 顯示文件系統的總空間和可用空間 | - |
w | 顯示當前系統活動的總信息 | - |
顯示資源庫:
方法一:
顯示
在“終端”中輸入下面的命令:chflags nohidden ~/Library/
;隱藏
在“終端”中輸入下面的命令:chflags hidden ~/Library/
;方法二:
打開Finder,菜單中選擇前往按住option鍵就會顯示資源庫項(每次打開都需要重複操作一次)。
Finder顯示隱藏文件
顯示隱藏文件
在“終端”中輸入下面的命令:defaults write com.apple.finder AppleShowAllFiles -bool true
;
killall Finder恢復隱藏文件
在“終端”中輸入下面的命令:defaults write com.apple.finder AppleShowAllFiles -bool false
.
killall FinderXcode卸載
在“終端”中輸入下面的命令:sudo /Library/uninstall-devtools –mode=all
爲實際安裝的目錄,默認情況下Xcode安裝在/Developer目錄下,即可執行sudo /Developer/Library/uninstall-devtools –mode=all
;在Finder標題欄顯示完整路徑
在“終端”中輸入下面的命令:defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES
killall Finder去掉窗口截屏的陰影
對窗口進行截屏的時候(Command-Shift-4, 空格),得到的圖片周圍會自動被加上一圈陰影。如果你不喜歡這個陰影的效果,可以把它關掉。
在“終端”中輸入下面的命令:defaults write com.apple.screencapture disable-shadow -bool true
;
killall SystemUIServer強制Safari在新標籤中打開網頁
Safari是默認支持標籤瀏覽的。但是,我們在頁面上點擊鏈接或者在其他應用程序中點擊鏈接的時候,Safari往往是打開了一個新的窗口,導致頁面上的Safari窗口過多,不好管理。通過下面這個小竅門,
我們可以讓Safari默認是在一個新標籤中打開網頁。
在“終端”中輸入下面的命令:defaults write com.apple.Safari TargetedClicksCreateTabs -bool true
;改變截屏圖片的保存位置
Mac OS提供了非常方便的截屏快捷鍵,可以讓我們非常快速的對整個屏幕、部分屏幕或者應用程序窗口進行截屏。不過,這個截屏功能有一個不足之處,就是隻能將截屏圖片保存到桌面。如果我們截取的圖片特別多,就會讓桌面顯得特別凌亂。那有沒有辦法來修改截屏圖片的默認保存位置呢?有。方法非常簡單,只要在“終端” 中輸入下面的命令就可以了。defaults write com.apple.screencapture location 存放位置
;
killall SystemUIServer
在輸入命令的時候,將“存放位置”替換成真正的文件夾就可以了。例如,你希望存放到自己用戶目錄的Screenshots文件夾下,就輸入defaults write com.apple.screencapture location ~/Screenshots
;
Mac中常用的快捷鍵
Command+Tab 任意情況下切換應用程序 – 向前循環
Shift+Command+Tab 切換應用程序 – 向後循環
Command+Delete 把選中的資源移到廢紙簍
Shift+Command+Delete 清倒相關程序的廢紙簍
Command+` 同一應用程序多窗口間切換
Command+F 呼出大部分應用程序的查詢功能
Command+C/V/X 複製/粘貼/剪切
Command+N 新建應用程序窗口
Command+Q 退出當前應用程序,說明一下,所有應用程序界面左上角都有紅黃綠三個小圖標,點擊綠色擴展到最適合的窗口大小,黃色最小化,紅色關掉當前窗口,但並沒有退出程序。
用Command+Q配合Command+Tab關閉應用程序最爲迅速
Command+L 當前程序是瀏覽器時,可以直接定位到地址欄
Command+”+/-” 放大或縮小字體
Control+推出鍵 顯示關機對話框
Control+Space 呼出Spotlight
Command+Space 切換輸入法
寫在最後
每一種終端開發都不能只侷限在開發工具IDE上,往往操作系統的一些操作會帶來意想不到的驚喜,還望大家細細體會。QQ技術交流羣290551701 http://cxy.liuzhihengseo.com/