通常情況下,隻有高端使用者才會經常用到終端應用。這并不意味着指令行非常難學,有的時候指令行可以輕松、快速的解決問題。相信所有Mac使用者都嘗試過指令行,今天為大家帶來9個非常實用的指令行操作。一些指令行需要安裝Xcode之後才可以實用,Xcode在Mac
App Store中免費供應。
最最常用的是以下10條:
1.使用caffeinate阻止Mac運作螢幕保護和睡眠
caffeinate能阻止Mac進入睡眠狀态,而且螢幕保護也不會激活。我們最好使用-t為指令加入具體的時間。比如下面的指令可以使Mac一小時内不進入睡眠狀态。
caffeinate -t 3600
複制代碼
2.使用pkgutil解壓PKG檔案
如果你想檢視PKG安裝檔案中的某個特殊檔案,你可以使用pkgutil指令完成。下面的指令會将macx.pkg檔案解壓至桌面
pkgutil --expand macx.pkg ~/Desktop/
3.使用purge指令釋放記憶體
purge指令可以清除記憶體和硬碟的緩存,與重新開機Mac的效果差不多。purge指令可以讓不活躍的系統記憶體轉變為可以使用的記憶體。你隻需在終端中輸入下面的指令即可。
purge
4.使用open指令開啟多個相同應用
open指令可以在終端中開啟應用,使用-n可以開啟多個相同應用。比如你可以使用下面的指令開啟新Safari視窗
open -n /Applications/Safari.app/
5.不通過App Store更新OS X
想要更新系統卻不想打開臃腫的Mac App Store?下面的指令可以幫助你使用終端更新OS X。
sudo softwareupdate -i -a
6.将所有下載下傳過的檔案列出來
我們可以通過下面的指令将所有下載下傳過的内容列出來
sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV* 'select LSQuarantineDataURLString from LSQuarantineEvent' |more
7.使用chflags指令隐藏檔案或檔案夾
如果你想讓某個檔案或檔案夾影藏,那麼chflags指令可以實作。你隻需将檔案路徑填對即可,比如我們向隐藏桌面上的macx檔案夾。如果你想再次看到檔案夾,隻需将hidden改為nohidden即可。
chflags hidden ~/Desktop/macx
8.自動輸入檔案路徑
你知道從Finder中将任意檔案拖拽至終端視窗即可獲得檔案的詳細路徑麼。當你想輸入某個檔案的路徑,不妨将檔案拖拽試試。
9.建立有密碼保護的壓縮檔案
你可以通過下面的指令将桌面上的macx.txt檔案建立成有密碼保護壓縮檔案protected.zip。
zip -e protected.zip ~/Desktop/macx.txt
以下是比較詳細的快捷終端語句:
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 中
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 删除這個驅動
重新開機,回到原先狀态了,不死心啊,沒有特效怎麼行呢,又聽說需要修改 Natit的 Info. plist 檔案才行,好,再來
重新開機,這回對了,顯示卡特效都有了,該弄聲霸卡了,天知道會出什麼事,得把現有成果保護好。
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
成功了,也把修改好的驅動備份一下把
複制内容到剪貼闆代碼:
以下是unix的指令行,供參考
目錄操作
指令名
功能描述
使用舉例
mkdir
建立一個目錄
mkdir dirname
rmdir
删除一個目錄
rmdir dirname
mvdir
移動或重命名一個目錄
mvdir dir1 dir2
改變目前目錄
cd dirname
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
修改使用者密碼
chmod
改變檔案或目錄的權限
chmod ug+x filename
umask
定義建立檔案的權限掩碼
umask 027
chown
改變檔案或目錄的屬主
chown newowner filename
chgrp
改變檔案或目錄的所屬組
chgrp staff filename
xlock
給終端上鎖
xlock -remote
程式設計操作
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
顯示系統的目前日期和時間
cal
顯示月曆
cal 8 1996
time
統計程式的執行時間
time a.out
網絡與通信操作
telnet
遠端登入
rlogin
rlogin hostname -l username
rsh
在遠端主機執行指定指令
rsh f01n03 date
ftp
在本地主機與遠端主機之間傳輸檔案
rcp
在本地主機與遠端主機 之間複制檔案
rcp file1 host1:file2
ping
給一個網絡主機發送 回應請求
閱讀和發送電子郵件
write
給另一使用者發送封包
write username pts/1
mesg
允許或拒絕接收封包
mesg n
Korn Shell 指令
history
列出最近執行過的 幾條指令及編号
r
重複執行最近執行過的 某條指令
r -2
alias
給某個指令定義别名
alias del=rm -i
unalias
取消對某個别名的定義
unalias del
其它指令
uname
顯示作業系統的有關資訊
uname -a
clear
清除螢幕或視窗内容
env
顯示目前所有設定過的環境變量
who
列出目前登入的所有使用者
whoami
顯示目前正進行操作的使用者名
tty
顯示終端或僞終端的名稱
stty
顯示或重置控制鍵定義
stty -a
du
查詢磁盤使用情況
du -k subdir
df
顯示檔案系統的總空間和可用空間
df /tmp
w
顯示目前系統活動的總資訊
補充一個vi的指令:
1. 在預設的"指令模式"下按 i 進入編輯模式
2. 在非指令模式下按 ESC 傳回指令模式
3. 在"指令模式"下輸入:
:w 儲存目前檔案
:q 退出編輯,如果檔案為儲存需要用強制模式
:q! 強制退出不儲存修改
:wq 組合指令, 儲存并退出
4. 在"指令模式"下移動:
h 左
j 下
k 上
l 右
#翻頁
Shift + f(front) 下一頁
Shift + b(back) 上一頁