一、Mac OS X下應該如何卸載軟件
Mac OS X的軟件安裝方式有很多種,而軟件卸載的情況也很不同。在Mac OS X拆除軟件往往不是把軟件拉到廢止簍里那么簡單。通常情況下要具體問題具體分析。無論手動還是用第三方軟件卸載,以下問題需要考慮:
1。該軟件是以什么形式(dmg,pkg,軟件安裝盤,單一應用或是其他方式)安裝的?
2。軟件的安裝盤或系統里有沒有卸載軟件?
3。軟件的幫助文件有沒有說明如何卸載?軟件開發商的網頁有沒有提供類似說明?
4。是否運行過該軟件?
5。你是否已經退出軟件?運行中的軟件是不能刪除的,關掉應用窗口也不等于退出了應用,應該用Apple和Q組合鍵,或通過該應用的菜單,或蘋果菜單里的強制退出選項將軟件退出。
在“如何安裝應用軟件”一文里,曾提到文件包(.pkg文件)方式的安裝,會在硬盤下的資源庫或用戶下的資源庫Receipts文件夾里產生一個副本,內含安裝路徑和權限。對以.pkg文件包安裝的應用卸載時,應該先檢查著這個含有安裝路徑和權限的文件。具體做法是:
1。按住Apple、Shift和U,或用Finder導引到應用程序(Applications)文件夾下的實用程序(Utilities)文件夾,雙擊終端(Terminal)。
2。在終端下輸入:lsbom空格
3。到硬盤下的資源庫里的Receipts文件夾,找到你要卸載的文件包名,按住Ctrl鍵的同時點擊該文件。(注:Leopard的方法與此不同)。
4。從菜單里選擇“顯示包內容”(Show Package Contents),此時,Finder會打開一個新窗口,里面有個Contents文件夾。
5。打開Contents文件夾,找到Archive.bom文件,把它直接拉到第二步所打開的終端窗口上,然后回車。
6。根據路徑信息刪除軟件。
7。刪除Receipts中這個pkg文件。
注意:1。以mpkg文件包安裝的文件在Receipts文件夾里會產生多個pkg文件,卸載軟件時應該注意到每個pkg中檢查其路徑,并按路徑刪除。
2。如果某個軟件下載并安裝過升級包,如果你按最新的升級安裝包里的Archive.bom下的路徑把所有文件都刪除了,你不一定能恢復到該軟件的先前版本。這是因為升級包把先前版本的某些相應文件給覆蓋了,一旦這些新裝上的文件被刪除,舊版文件也就不存在了。系統軟件在安裝時多以安裝包的方式來安裝,由于系統軟件升級頻繁,用這種方法來卸載就比較麻煩,不如重裝系統。
軟件安裝時如果用的是軟件生產商自己的安裝軟件或安裝盤,首先要找找原安裝軟件或安裝盤,或運行進入原安裝軟件或安裝盤的安裝界面,檢查有沒有卸載方式。如果沒有,要退出安裝界面,并檢查以前安裝時是否曾產生過安裝日志。如果有,應該按安裝日志內的路徑進行刪除。象Adobe CS3這樣的大型軟件,除了安裝盤內的安裝截面有卸載方式以外,在實用程序文件包內也有自己的卸載軟件。
對于以壓縮包和單一軟件方式進行安裝的軟件,把軟件從安裝的地方直接拉倒廢紙簍是必須的,但這樣做是否卸載完全,也是看情況而定。
對于非系統軟件,第三方軟件AppZapper是一個解決方案,但是,如果所拆除的軟件是復雜的大型軟件,或者是以軟件制造商自己的安裝軟件或mpkg文件安裝的,用AppZapper很有可能不能將該軟件完全拆除。對這些軟件應該先考慮這些軟件是否有自己的卸載方式。
上圖中以Filp4Mac WMV為例,可以看出AppZapper并不能找到Filp4Mac在Receipts文件夾中的安裝包。而Filp4Mac本身在安裝完以后,在所安裝的文件夾里有自己的卸載包。
對于系統軟件的組成部分的拆除,直接拉到廢紙簍的方式很可能造成系統問題。DesInstaller 是用于卸載用pkg方式所安裝的軟件,它的最大好處就是可以在刪除軟件的同時將所刪除的軟件歸檔生成一個安裝包以備用。由于系統軟件是以pkg方式進行安裝的,所以DesInstaller常用于卸載某些系統應用。但是,在使用該軟件卸載系統軟件時,一旦出現問題,就可能弄巧成拙,最后不得不重裝系統。
通常情況下,軟件一旦運行過就可能生成屬性文件、緩存文件(Cache)或其他附屬文件。如果在拆除這樣的軟件時,這些屬性文件沒有拆除,那么以后即使再裝上這個軟件,它仍然會采用以前的設置。假如你拆軟件的原因是因為軟件運行不正常,而且不正常的原因其實就是屬性文件出了問題,你拆除軟件時卻不知道,那么即使再重新安裝了這個軟件,這個軟件仍然不能正常運行。因此,你在拆除軟件時,無論是手動拆除還是使用上述兩款第三方應用,都應該到硬盤下及用戶下的資源庫Preferences文件夾里看看有沒有與所拆軟件相關的文件或文件夾。除了Preferences文件夾以外,還應該檢查以下路徑,看看有沒有與要卸載的應用相關的文件或文件夾:
硬盤目錄下
用戶的My Documents文件夾
硬盤及用戶的資源庫文件夾
硬盤及用戶的資源庫下Caches文件夾
硬盤及用戶的資源庫下Application Support文件夾
硬盤及用戶的資源庫下ColorSyn文件夾里的Profile(特別是當你的應用與掃描儀有關)
硬盤及用戶的資源庫下Components文件夾
硬盤及用戶的資源庫下Contextual Menu Items文件夾
硬盤及用戶的資源庫下Input Manager文件夾
硬盤及用戶的資源庫下Internet Plug-Ins文件夾(特別是當你要卸載的是Safari插件)
硬盤及用戶的資源庫下QuickTime文件夾(如果你要卸載的是視頻轉換軟件有關)
硬盤及用戶的資源庫下Screen Savers文件夾(如果要卸載的是屏保)
硬盤及用戶的資源庫下StartupItems文件夾(特別是你的應用一登錄就自動啟動)
硬盤及用戶的資源庫下Widget文件夾(如果你要卸載的是Widgets)
如果你的機器上有多個用戶,而應用又是所有用戶都能使用的,你應該通知所有用戶讓他們也登錄后對相應的文件夾進行檢查。
當做完這些檢查,并刪除了相應文件后,還要做的是搜索軟件名或開發商品牌名,看看有沒有殘余文件。有些軟件有隱含文件,再搜索時可以使用命令行或智能文件夾(Smart Folder),詳見“如何查找隱含文件”一文。
總之,軟件卸載往往不是一個簡單的工作,因此,我曾在“新機使用前做哪些準備會對以后的使用更有幫助?”一文中提到要建立一個文件夾來存放安裝日志,同樣的,在手動卸載時,最好也把你的拆卸過程記錄下來存在那個日志文件夾里。
另外,從上面的描述,還可以看出軟件安裝與卸載的難易程度往往取決于軟件開發者在開發時是如何組織這些路徑的。如果這些路徑比較復雜,而且開發者又沒提供詳細的卸載說明,終用戶的拆卸難度就相當大。而目前多數免費軟件具有這種毛病,所以,在選擇軟件來安裝的時候,不僅要看其功能、是否是免費、還要注意它有沒有提供詳盡的拆除的方法。
如何安裝應用軟件
在安裝軟件之前,先考慮一下軟件安裝的位置問題。
通過Finder,用戶很容易從硬盤下找到應用程序文件夾,而且會很快明白這個文件夾就是大多數應用軟件應該安裝的位置。仔細觀察這個文件夾,不難發現本機上的所有賬戶都有權看到甚至使用這個文件夾里的應用。在中文顯示與輸入概述一文里,曾經提到過用戶域(User Domain)以及Mac OS X系統是真正的多用戶系統,在軟件應用上,其實,這種多用戶的優越性也可以體現出來。具體點說,用戶完全可以擁有自己的、其他賬戶看不到更使用不了的應用及文件夾。用戶可以在自己的Home文件夾下自己建立一個應用程序文件夾,把應用程序安裝在那里。甚至,對于某些簡單的應用,也完全可以把應用就安置在桌面上。
一些新用戶不知道該怎么處理下載的應用軟件,有的就把應用留在桌面上,這種做法常常遭到一些對Mac OS X系統有些經驗的用戶的恥笑。可是這些老用戶其實并不清楚多用戶系統本身允許用戶如此處理應用軟件。當然,把應用都放在桌面上的做法不值得提倡,應用軟件的安裝位置應該按自己的實際情況和習慣進行合理的安排。
除了系統盤內所帶的應用軟件(具體安裝方法,見隨機用戶手冊),蘋果機的軟件安裝方式基本上來說有以下幾種:應用磁盤鏡像(.dmg文件),軟件包(.mpkg或.pkg文件),壓縮文件(.sit、.zip、.rar等), 軟件開發商自制或商用第三方安裝程序或腳本(script),以及單一應用。
這幾種方式中,用軟件包的方式在通常情況下應用的路徑是已經確定的,而軟件開發商自制或商用第三方安裝程序或腳本的方式在有些情況下路徑也是確定的,而另一些情況下允許用戶自己選擇適當的文件夾來進行安裝。這兩種方式幾乎是全自動的,只要用戶一點擊這些安裝程序,軟件將自動安裝。當然,有些場合下,會要求用戶同意軟件的使用政策,或輸入管理員密碼。如果沒有特別說明,所安裝的又屬于用于桌面應用(即所謂的Desktop Applications),安裝完畢后,應該先到硬盤下的應用程序文件夾里查找。
軟件包安裝需要調用實用程序文件夾里的“安裝程序”(Installer)。如果您的機器里實用程序文件夾下沒有這個”安裝程序”軟件,你將打不開.mpkg和.pkg文件。軟件包安裝后,會在硬盤下資源庫Receipts文件夾或用戶下資源庫Receipts文件夾里存有.pkg文件副本。該pkg文件里儲存著一個Archive.bom文件,記錄著軟件安裝的路徑及權限。另外,軟件包的方式可以用Apple Remote Desktop進行遠程安裝,非常方便。采用軟件開發商自制或商用第三方安裝程序或腳本的方式進行安裝后,通常情況下,也會生成安裝日志,不同的軟件所產生日志的地方也不盡相同。
.mpkg文件圖標
鏡像文件(.dmg)在桌面上的圖標是硬盤模樣。如果是通過下載安裝,當該鏡像下載完畢驗證合格后,將自動裝上(mount)。此時,桌面上會出現一個白色套筒樣的圖標(宗卷/Volume),一個新的Finder窗口將打開,里面顯示的文件內容。如果不慎將這個Finder窗口關閉,并將這個白色套筒圖標拉到了廢紙簍里,可以雙擊dmg硬盤圖標,使白色套筒再次出現在桌面上。雙擊該白色套筒,Finder將顯示應用內容。通常情況下,可以把Finder里的內容直接挪到你要安裝軟件的地方,然后就可以把dmg硬盤圖標拉到廢紙簍并清除。有些軟件開發商在dmg文件里加有圖示,表明應該將文件挪到什么地方去(比如:應用文件夾)。有些開發商就更加精細,除了圖標外,還加了安裝位置的替身,只要把應用拉到替身圖標上,安裝就完畢了。
鏡像文件除了用于安裝應用以外,本身可以做為磁盤鏡像,通過磁盤工具(Disk Utility)的恢復(Restore)功能對磁盤進行安裝或修復。
dmg文件、白色套筒似的宗卷及用Finder打開的宗卷內容
Mac OS X系統本身具有一定的解壓功能,所以象.zip這樣的文件,雙擊后就與用正常的文件夾用finder窗口打開一樣,只要把里面的內容挪到你想安裝應用的地方,就算安裝成功了。當然,如果被壓縮的文件本身是個安裝程序,你還要雙擊該安裝程序進行安裝。一些壓縮文件不能調用Mac OS X系統自帶的解壓方式解壓,這些文件可以用Stuffit Expander或其他Stuffit軟件來處理。這就是該軟件被列為必備軟件的原因了。
對于單一應用,直接挪到硬盤下的應用文件夾、自己設定的文件夾或指定的文件夾里就可以了。
軟件安裝完畢以后,如果要方便使用,可以到所安裝軟件的文件夾里,把軟件圖標直接拉到Dock上(分界線以左或上),這樣要使用時,點擊Dock上圖標,設置直接把相應的文件拉到dock上的應用圖標上就可運行該應用了。
二、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 腳本文件名
例 修改驅動后所有需要的操作存成一個腳本,以后修改了驅動后只要運行一次這個腳本就可以了,方便吧
- 終端中運行nano /clean
- 把下列代碼粘貼到 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/ - Ctrl +O 存盤,Ctrl+X 退出
- 以后只要動了驅動,就在終端中運行一次 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
顯示當前系統活動的總信息