1. 程式人生 > >iOS中 常用的mac終端指令彙總 技術分享

iOS中 常用的mac終端指令彙總 技術分享

OSX 的檔案系統
OSX 採用的Unix檔案系統,所有檔案都掛在跟目錄 / 下面,所以不在要有Windows 下的碟符概念。
你在桌面上看到的硬碟都掛在 /Volumes 下。
比如接上個叫做 USBHD的行動硬碟,桌面上會顯示出一個硬碟圖示,它實際在哪裡呢?
在終端裡執行 ls /Volumes/USBHD, 看看顯示出的是不是這個行動硬碟的內容。
根目錄位置是 / 核心 Mach_kernel 就在這裡,
驅動所在位置 /Systme/Library/Extensions
使用者資料夾位置 /User/使用者名稱
桌面的位置 /User/使用者名稱/Desktop
檔案萬用字元為星號 *
注意:在 Unix系統中是區別大小寫字元的,A.txt 不等於 a.txt。
根目錄標誌 / 不是可有可無,cd /System 表示轉到跟目錄下的System中,而cd System 表示轉到當前目錄下的 System中
——————————————————————————————————————————————
如何進入命令列操作模式
再圖形介面下,用finder 開啟 應用程式 》實用程式》終端
如果連圖形介面都進不去了(比如安錯了顯示驅動),開機時按 F8,用-s引數啟動,然後輸入命令 mount -uw /

獲得許可權
為了防止誤操作破壞系統,再使用者狀態下時沒有許可權作業系統重要檔案的,所以先要取得root許可權
sudo -s
然後輸入密碼,輸入密碼時沒有任何回顯,連星號都沒有,只管輸完回車就行了。
——————————————————————————————————————————————
基本命令
列出檔案
ls 引數 目錄名
例: 想看看跟目錄下有什麼,
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在圖形介面下看起來是個檔案,實際上是個資料夾。
把驅動目錄下的所有檔案備份到桌面backup
cp -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
更改檔案許可權
chmod 引數 許可權 檔案
例:把驅動目錄下所有檔案設定到root讀寫,其他使用者只讀
chmod -R 755 /System/Library/Extensions
引數R 表示遞迴,755表示各使用者的許可權
更改檔案屬主
chown 引數 使用者:組 檔案
例:把驅動目錄下的所有檔案屬主改成根使用者
chown -R root:wheel /System/Library/Extensions
引數R 表示遞迴操作
修復整個系統中檔案的許可權
diskutil repairpermissions /
嚴格的說這不是一個unix 命令,而是osx一個軟體,記得修改或新增的驅動就執行一次。
文字編輯
nano 檔名
例:編輯natit Info.plist
nano /System/Library/Extensions/Natit.kext/Info.plist
編輯完成後 用 Ctrl +O 存檔,Ctrl+X 退出
另一個文字編輯軟體是 vi,操作有些古怪,熟了是非常好用的,而且在所有類Unix系統中都它,走遍天下都不怕了。
執行指令碼命令
sh 指令碼檔名
例 修改驅動後所有需要的操作存成一個指令碼,以後修改了驅動後只要執行一次這個指令碼就可以了,方便吧
1. 終端中執行nano /clean
2. 把下列程式碼貼上到 nano 中
rm -rf /System/Library/Extensions.kextcache
rm -rf /System/Library/Extensions.mkext
chown -R root:wheel /System/Library/Extensions
chmod -R 755 /System/Library/Extensions
diskutil repairpermissions /
kextcache -k /System/Library/Extensions/
3. Ctrl +O 存檔,Ctrl+X 退出
4. 以後只要動了驅動,就在終端中執行一次 sh /clean
————————————————————————————————————
小技巧
用 Tab 鍵自動補齊命令
比如想到 /System 目錄中去,輸入 cd /Sy 然後按一下Tab 鍵,命令就會自動補齊成 cd /System
操作帶名字中帶有空格的檔案和目錄
空格在命令中寫成 空格, 比如要進入 My Documents,命令為 cd My Documents
檢視命令的詳細幫助
man 命令名
比如要看看 ls 命令的詳細用法,執行 man ls
————————————————————————————————————
典型操作流程
(假設已經制作好清理指令碼,記得每次操作前 sudo -s 獲得系統許可權)
假設下載了一個顯示卡驅動 Natit.zip,在桌面解壓得到了一個Natit.kext,該怎麼做呢?
為了保險起見,先把所有驅動備份了再說
mkdir /User/使用者名稱/Desktop/backup 在桌面上建立備份資料夾
cp -R /System/Library/Extensions/* /User/使用者名稱/Desktop/backup 備份驅動檔案
現在可以安心安裝了
cp -R /User/使用者名稱/Desktop/Natit.kext /System/Library/Extensions 把它 拷貝到系統驅動目錄位置
sh /clean 執行清理指令碼,操作完成
重新開機失敗,進不去桌面了,發現不應該安這個驅動,怎麼恢復呢?
開機按F8,用 -s 引數啟動
執行 mount -uw /
rm -rf /User/使用者名稱/Desktop/Natit.kext 刪除這個驅動
sh /clean 執行清理指令碼,操作完成
重啟,回到原先狀態了,不死心啊,沒有特效怎麼行呢,又聽說需要修改 Natit的 Info. plist 檔案才行,好,再來
cp -R /User/使用者名稱/Desktop/Natit.kext /System/Library/Extensions 把它 拷貝到系統驅動目錄位置
nano /System/Library/Extensions/Natit.kext/Info.plist
編輯完成後 用 Ctrl +O 存檔,Ctrl+X 退出
sh /clean 執行清理指令碼,操作完成
重啟,這回對了,顯示卡特效都有了,該弄音效卡了,天知道會出什麼事,得把現有成果保護好。
mkdir /User/使用者名稱/Desktop/gooddrivers 專為有效驅動建個目錄
cp -R /System/Library/Extensions/Natit.kext /User/使用者名稱/Desktop/gooddrivers 備份
這個音效卡要求把 AppleHDA.kext 刪除和編輯 AppleAzaliaAudio.kext中的Info.plist 檔案,誰知道以後會不會還用AppleHDA呢,不如暫時禁用吧。
mkdir /System/Library/Extensions/disabled 建立個禁用目錄
mv /System/Library/Extensions/AppleHDA.kext /System/Library/Extensions/disabled 移動過去
nano /System/Library/Extensions/Natit.kext/AppleAzaliaAudio.kext/Info.plist
編輯完成後 用 Ctrl +O 存檔,Ctrl+X 退出
sh /clean 執行清理指令碼,操作完成
成功了,也把修改好的驅動備份一下把
複製內容到剪貼簿程式碼:

以下是unix的命令列,供參考
目錄操作
命令名
功能描述
使用舉例
mkdir
建立一個目錄
mkdir dirname
rmdir
刪除一個目錄
rmdir dirname
mvdir
移動或重新命名一個目錄
mvdir dir1 dir2
cd
改變當前目錄
cd dirname
pwd
顯示當前目錄的路徑名
pwd
ls
顯示當前目錄的內容
ls -la
dircmp
比較兩個目錄的內容
dircmp dir1 dir2
檔案操作
命令名
功能描述
使用舉例
cat
顯示或連線檔案
cat filename
pg
分頁格式化顯示檔案內容
pg filename
more
分屏顯示檔案內容
more filename
od
顯示非文字檔案的內容
od -c filename
cp
複製檔案或目錄
cp file1 file2
rm
刪除檔案或目錄
rm filename
mv
改變檔名或所在目錄
mv file1 file2
ln
聯接檔案
ln -s 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
paste
橫向連線檔案
paste file1 file2
diff
比較並顯示兩個檔案的差異
diff file1 file2
sed
非互動方式流編輯器
sed "s/red/green/g" filename
grep
在檔案中按模式查詢
grep "^[a-zA-Z]" filename
awk
在檔案中查詢並處理模式
awk '{print $1 $1}' filename
sort
排序或歸併檔案
sort -d -f -u file1
uniq
去掉檔案中的重複行
uniq file1 file2
comm
顯示兩有序檔案的公共和非公共行
comm file1 file2
wc
統計檔案的字元數、詞數和行數
wc filename
nl
給檔案加上行號
nl file1 >file2
安全操作
命令名
功能描述
使用舉例
passwd
修改使用者密碼
passwd
chmod
改變檔案或目錄的許可權
chmod ug+x filename
umask
定義建立檔案的許可權掩碼
umask 027
chown
改變檔案或目錄的屬主
chown newowner filename
chgrp
改變檔案或目錄的所屬組
chgrp staff filename
xlock
給終端上鎖
xlock -remote
程式設計操作
命令名
功能描述
使用舉例
make
維護可執行程式的最新版本
make
touch
更新檔案的訪問和修改時間
touch -m 05202400 filename
dbx
命令列介面除錯工具
dbx a.out
xde
圖形使用者介面除錯工具
xde a.out
程序操作
命令名
功能描述
使用舉例
ps
顯示程序當前狀態
ps u
kill
終止程序
kill -9 30142
nice
改變待執行命令的優先順序
nice cc -c *.c
renice
改變已執行程序的優先順序
renice +20 32768
時間操作
命令名
功能描述
使用舉例
date
顯示系統的當前日期和時間
date
cal
顯示日曆
cal 8 1996
time
統計程式的執行時間
time a.out
網路與通訊操作
命令名
功能描述
使用舉例
telnet
遠端登入
telnet 
hpc.sp.net.edu.cn

rlogin
遠端登入
rlogin hostname -l username
rsh
在遠端主機執行指定命令
rsh f01n03 date
ftp
在本地主機與遠端主機之間傳輸檔案
ftp ftp.sp.net.edu.cn
rcp
在本地主機與遠端主機 之間複製檔案
rcp file1 host1:file2
ping
給一個網路主機發送 迴應請求
ping hpc.sp.net.edu.cn
mail
閱讀和傳送電子郵件
mail
write
給另一使用者傳送報文
write username pts/1
mesg
允許或拒絕接收報文
mesg n
Korn Shell 命令
命令名
功能描述
使用舉例
history
列出最近執行過的 幾條命令及編號
history
r
重複執行最近執行過的 某條命令
r -2
alias
給某個命令定義別名
alias del=rm -i
unalias
取消對某個別名的定義
unalias del
其它命令
命令名
功能描述
使用舉例
uname
顯示作業系統的有關資訊
uname -a
clear
清除螢幕或視窗內容
clear
env
顯示當前所有設定過的環境變數
env
who
列出當前登入的所有使用者
who
whoami
顯示當前正進行操作的使用者名稱
whoami
tty
顯示終端或偽終端的名稱
tty
stty
顯示或重置控制鍵定義
stty -a
du
查詢磁碟使用情況
du -k subdir
df
顯示檔案系統的總空間和可用空間
df /tmp
w