mac os x 命令+10個常用命令行工具

突然對mac感興趣了

因爲看到mac mini的奇思妙想 看到imac的無線漂亮的前臺 看到macbook pro的輕薄

呵呵 然而知道是類UNIX之後就更有興趣了 so

##########################################

以下內容摘自

http://hi.baidu.com/yjliu2395/blog/item/664b7910380c37fac3ce7981.html

http://www.cnblogs.com/Jaypei/archive/2009/06/14/1503104.html

很多朋友對osx下的命令行操作撓頭,估計多數是在windows時代開始接觸計算機的。有dos基礎的應該是看看就 明白,而玩過Linux的應該是輕車熟路了。這個貼子希望能給見到命令行就頭大的兄弟一些幫助,所涉及到的命令基本限於安裝kext,修改plist,更 換核心 所碰到的操作。如果想進一步瞭解Unix的命令,再網上找些關於Linux命令的文章看,有很多。
高手們就免看了,不過希望能來挑挑毛病,再來補充兩句。。。

——————————————————————————————————————————————

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 執行清理腳本,操作完成
成功了,也把修改好的驅動備份一下把

#####################################################################

Mac OS X 的命令行界面是成千上萬程序的基礎,可平常用戶往往不知道它的存在。依靠 GNU 基金會以及開源社區的多年努力,Apple 設計出一個“無須”使用命令的傑出操作系統。在不必爲了每天的日常操作而動用命令行的同時,只要利用得當,命令行仍然能夠節省你不少時間,偶爾還會讓你開 懷一笑。希望你能好好享受這裏提到的十個 OS X 命令行工具!


1、ssh


這顆小小的“寶石”包含於 Mac OS X 的每個版本,其開發的最初目的只是爲了取代 rsh/rlogin,現在卻成爲 Linux/Unix(包括 Mac OS X)社區不可缺少的一部分。openssh 的主要作用就是安全的遠程管理。打開系統預置,點擊“共享”,勾選“遠程登錄”,即可啓動 Mac OS X 的內置 SSH 服務。現在假設你想連接你不在身邊的電腦,可以藉助類似 PuTTY(Windows 平臺)的客戶端,或者在 Mac OS X 的終端窗口中輸入“ssh”連接你 Mac 的 IP 地址。以你的用戶名和密碼登錄之後,你便獲得了 Mac OS X 命令行的完整操作權。除此之外,openssh 還有許許多多應用,有些可是相當了不起的。我就很喜歡用 ssh 搭個 SOCKS 代理,這樣我在公共地點也能安全上網衝浪。在Mac 上使用 ssh 的更多技巧,可以瀏覽本頁!


2、top


top 是另一個長期爲 Linux/Unix 社區使用的經典工具,使用它只需打開終端輸入“top”。眨眼之間,你就會看見一個滿是文字的窗口——每一個正在你的 Mac 上運行的進程都會被列出。如果我的 Mac 速度變慢,top 是讓我知道什麼正在發生的首選。點擊 這裏,查看 top 的完整概述。


3、lsbom


如果你偶然在某個 Mac 站點(比如 OS X Daily)發現一件夠酷夠新的軟件,忍不住想安裝,而你又猶豫不決,那麼 lsbom 對你大有好處。通過它,你可以測試 Mac OS X 安裝包(.pkg)的內容,並且清楚瞭解究竟會有什麼被塞進你心愛的文件系統。要使用 lsbom,你需要啓動終端,並進入 .pkg 文件所在的目錄。如果你的安裝包形式是 .dmg,可能需要把其中的 .pkg 文件拷貝到桌面上,然後進入 Desktop 目錄。一旦確認 .pkg 文件的位置,輸入“lsbom .pkg/Contents/Archive.bom> | more”。哇!你所看見的就是新程序將會安裝的完整文件列表。


4、say


這個命令是 Mac OS X 獨一無二的,比其他任何一個都更有趣。打開終端輸入“say hello”試試吧!


5、softwareupdate


softwareupdate 命令提供了一種安裝 Apple 軟件更新方便快捷的方法。打開終端,輸入“softwareupdate -i -a”,你的 Mac 就會安裝所有可以獲得的更新項。如果你只想安裝“推薦”更新項,那麼就輸入“softwareupdate -i -r”。


6、ipconfig


要說獲取你 Mac IP 地址最快、最簡單的方法,絕對是“ipconfig”,只需打開終端輸入“ipconfig”。你能看到許多信息,包括你網卡的 MAC 地址。我喜歡輸入“ipconfig | grep inet”僅回饋我計算機的 IP 信息。你也可以通過輸入“ifconfig en0 down”來禁止一個網絡連接(這裏舉了“en0”的例子);如果希望恢復,那麼就輸入“ipconfig en0 up”。這比使用系統預置要快上不少哦!


7、lipo


lipo 是一個在 Mac OS X 中處理通用程序(Universal Binaries)的工具。現在發售或者提供下載的許多(幾乎所有)程序都打上了“Universal”標誌,意味着它們同時具有 PowerPC 和 Intel 芯片能夠處理的代碼。不過既然你可能不在意其中的一個,你就能夠使用 lipo 來給你的程序“瘦身”。比如你想讓“便箋”應用程序只包含 Intel(i386)的代碼:
cd /Applications
lipo Stickies.app/Contents/MacOS/Stickies -thin i386 -output Stickies.app/Contents/MacOS/Stickies.i386
cd Stickies.app/Contents/MacOS/
rm Stickies
mv Stickies.i386 Stickies


8、screencapture


screencapture 提供了較 command-shift-3 更高級的抓屏手段。要使用它,打開終端,試着輸入“screencapture -iW ~/Desktop/screen.jpg”,鼠標會變成等待點擊的相機圖標,點擊後就在你的桌面上創建一個名爲“screen.jpg”的文件,內容就 是你點擊的任何窗口的抓屏。當然你也能夠通過輸入“screencapture -S ~/Desktop/screen.jpg”來抓取整個屏幕。如果你還想與衆不同,你還可以輸入“screencapture -ic”來抓取屏幕的一部分。


9 & 10、Fink 和 DarwinPorts


如果你已經習慣於 OS X 命令行工具的基本應用,現在就是讓你的終端接觸更大開源世界的時候了。藉助於 DarwinPorts 或者 Fink,你能夠在你的計算機上下載、安裝成百上千的免費開源軟件。我發現 Darwinports 開始注意到一些較少見的開源計劃,而 Fink 似乎更爲堅實。你可以同時安裝兩者,只要你的確知道你在幹什麼,但是一般我會建議你只選擇其中一個。初學者應該試試 Fink,因爲它會附帶一個名爲“Fink Commander”的程序,你只需從中選擇一個程序來下載。看看它們各自的官方網站吧:DarwinPorts (已更名爲 MacPorts)官方網站;Fink 的官方網站。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章