1. 程式人生 > >MAC常用終端命令

MAC常用終端命令

1.瞭解什麼是絕對路徑和相對路徑

   來自百度經驗中的一段解釋:

   1> 什麼是絕對路徑:

   大家都知道,在我們平時使用計算機時要找到需要的檔案就必須知道檔案的位置,而表示檔案的位置的方式就是路徑,例如只要看到這個路徑:c:/website/img/photo.jpg我們就知道photo.jpg檔案是在c盤的website目錄下的img子目錄中。這樣完整的描述檔案位置的路徑就是絕對路徑。我們不需要知道其他任何資訊就可以根據絕對路徑判斷出檔案的位置。(也可以認為以"/"開頭的都為絕對路徑)

2> 什麼是相對路徑:

   所謂相對路徑,顧名思義就是自己相對與目標位置。不論將這些檔案放到哪裡,只要他們的相對關係沒有變,就不會出錯。 
 另外我們使用“../”來表示上一級目錄,“../../”表示上上級的目錄,以此類推。(也可認為不是以"/"開頭的都是相對路徑)

  3> 舉例說明

 (1) 示例一
            比如說你的C盤ABC資料夾下有兩個檔案1和2(它們都在ABC檔案下),如果要檔案1說出檔案2的位置(也就是路徑),那麼它有兩種表示方法:
           * 絕對路徑:  C:\ABC\2  
                因為它指明2檔案在C盤ABC檔案下,從最大的目錄C盤開始表示出來.
           * 相對路徑:  2
                因為1檔案和2檔案都在C:\ABC下,所以它們的路徑前面"C:\ABC"都是一樣,就不用表示出來了.
 (2)示例二
           比方C盤ABC資料夾有個1檔案,還有一個DEF資料夾,而DEF檔案下有個2檔案.
           那1和2的檔案路徑分別為:(都是絕對路徑)
           C:\ABC\1
           C:\ABC\DEF\2
           如果讓1檔案來表示2檔案的路徑
              * 絕對路徑: C:\ABC\DEF\2
              * 相對路徑: DEF\2 (因為1和2檔案前面的C:\ABC這段路徑相同就不用寫出來了)。     

2.終端自動補全的配置
   開啟終端,輸入 : nano .inputrc
   在檔案裡面寫上:

set completion-ignore-case on
set show-all-if-ambiguous on
TAB: menu-complete

  ctrl + o ,回車,重啟終端,自動補全按tap鍵就ok


3.常用mac終端操作命令符

  • 1)顯示當前目錄的路徑(讓你實時檢視當前所處的路徑)
    pwd

  • 2)檢視當前目錄下的內容(讓你實時檢視當前路徑下的內容) 

        ls 引數 目錄名
            引數: -w 顯示中文,-l 詳細資訊, -a 包括隱藏檔案,每一行開頭是 “d” 則為資料夾,開頭是 “-” 則為檔案。
             ls                 顯示在當前目錄下的所有檔案或資料夾
             ls + 目錄          顯示在該目錄下的所有檔案或資料夾
             ls + 空格 +   -a   顯示當前目錄下隱藏檔案
             ls + 空格 +   -l   顯示當前目錄下詳細資訊
             ls + 空格 +   -R   顯示當前目錄下子目錄檔案      
             ls + 空格 +  -w    顯示當前目錄下中文檔案
             ls + 空格 +  -la   顯示所有檔案
             ls + 空格 +  -G    帶顏色顯示
            例: 看看驅動目錄下有什麼:ls /System/Library/Extensions
  • 3) 切換路徑(也可稱為轉化目錄) 就是將從一個路徑中,進入到另外一個路徑

    cd 目錄名
            cd .                      表示當前目錄
            cd ..                     表示返回上一級目錄
            cd ../..                  表示返回上兩級
    cd ../.. /..              表示返回上三級目錄
            cd  + 空格 + 下一目錄  表示將從當前路徑進入到下一目錄
            cd  + 空格 + 〜            表示從當前目錄進入到使用者根目錄
            cd  + 空格  + /            表示從當前目錄進入根目錄
            cd  + 空格 + ./            表示從當前目錄進入到當前目錄(一個點"." 表示當前)
            例:想到驅動目錄下溜達一圈:cd /System/Library/Extensions
  • 4)建立新目錄(也可理解為建立資料夾)

        mkdir 目錄名 
            mkdir + 空格 +資料夾名             表示建立一個資料夾
            mkdir + 空格 + 絕對路徑            表示建立一個資料夾和上面的功能相同,只不過上面是通過相對路徑建立, 下面是通過絕對路徑建立.
            例:在驅動目錄下建一個備份目錄 backup:mkdir /System/Library/Extensions/backup
  • 5) 刪除目錄(也可理解為刪除資料夾)

  •  rmdir 目錄名
       rmdir + 空格 + 資料夾名            表示刪除一個資料夾
       rmdir + 空格 + 絕對路徑            表示刪除一個資料夾和上面的功能相同,只不過上面是通過相對路徑刪除,下面是通過絕對路徑刪除
        例:在桌面刪除一個叫new的檔案  MacBook-Air:Desktop admin$ rmdir  new
  • 6)建立新檔案
  •  touch 檔名        
         例:在當前目錄下建一個備份檔案 backup:touch backup.txt
  • 7)刪除檔案

     rm  引數 檔案 引數-rf          表示遞迴和強制,千萬要小心使用,如果執行了 rm -rf / 你的系統就全沒了 
      rm   + 空格  + 檔名和格式     表示刪除一個檔案
      rm   + -r    + 資料夾          表示強制刪除資料夾中包含檔案的資料夾(當資料夾中包含有檔案, 通過"rmdir + 空格+ 資料夾名"的方式                                   是刪不掉資料夾的,只有通過"rm + -f + 資料夾名",進行強制刪除)
      rm   + -rf   + 資料夾          表示強制刪除資料夾中包含檔案的資料夾(和"rm + -r + 資料夾名" 功能相同)
      注意: rm 可以刪除多個檔案而不止一個檔案 ,但是兩個檔案的路徑必須用空格隔開.
      例:想刪除驅動的快取:rm -rf /System/Library/Extensions.kextcache                                                    rm -rf /System/Library/Extensions.mkext  
  • 8)拷貝

  •  cp 引數 原始檔 目標檔案        
        例:想把桌面的 Natit.kext 拷貝到驅動目錄中  cp -R /User/使用者名稱/Desktop/Natit.kext  /System/Library/Extensions  
           引數 R 表示對目錄進行遞迴操作,kext 在圖形介面下看起來是個檔案,實際上是個資料夾。            
           把驅動目錄下的所有檔案備份到桌面 backup:cp -R /System/Library/Extensions//User/使用者名稱/Desktop/backup
    
  • 9)移動檔案和重新命名檔案

        mv 原始檔 目標檔案
          mv + 需要移動的檔案或資料夾 + 空格 + 移動到的路徑  (這裡路徑可以是相對路徑,也可以是絕對路徑);
          mv  + a.c + 空格 +b.c    表示將a.c 重新命名為b.c
          例:想把 AppleHDA.Kext 移到桌面:mv /System/Library/Extensions/AppleHDA.kext  /User/使用者名稱/Desktop
  • 10)文字編輯

        nano 檔名
            nano + 檔名 表示編輯檔案內容
            例:  
                nano /System/Library/Extensions/Natit.kext/Info.plist 
            編輯完成後 用 Ctrl +O 存檔,Ctrl+X 退出 
        注意:
          * 在預設的"指令模式"下按 i 進入編輯模式 
          * 在非指令模式下按 ESC 返回指令模式 
          * 在"指令模式"下輸入: 
            :w  儲存當前檔案 
            :q 退出編輯,如果檔案為儲存需要用強制模式 
            :q!	強制退出不儲存修改 
            :wq	組合指令, 儲存並退出 
          * 在"指令模式"下移動: 
            h	左 
            j	下 
            k	上 
            l	右 
  • 11)清屏

        clear
  • 12)開啟某個檔案,資料夾或應用

        open
          * 如果是open .則是開啟當前命令裡的目錄,如果要開啟指定的資料夾或者檔案則格式為open 要開啟的路徑即可。(這裡絕對路徑或相對路徑都可以)
          * open命令可以在終端中開啟應用,使用-n可以開啟多個相同應用。比如你可以使用下面的命令開啟新Safari視窗
            open -n /Applications/Safari.app/
  • 12)編譯(比如.c檔案 a.c

    cc -c +a.c(需要編譯的檔案)   它的作用是編譯將要編譯的檔案, 其中-c的意思就是Compile(編譯的意思),它生成的結果是a.o的一個編譯之後的目標檔案.

       cc  a.o  它的作用是生成可執行檔案a.out

      . /a.out 它的作用就是執行一個可執行a.out檔案.打印出想要的結果.(注意"./a.out"前面沒有 cc);

  • 13) 更改檔案許可權

      chmod
                     例:把驅動目錄下所有檔案設定到root讀寫,其他使用者只讀
                     chmod -R 755 /System/Library/Extensions  引數R 表示遞迴,755表示各使用者的許可權 
  • 14)指令碼檔名

      sh
                     例:把驅動目錄下所有檔案設定到root讀寫,其他使用者只讀
                     chmod -R 755 /System/Library/Extensions  引數R 表示遞迴,755表示各使用者的許可權 
  • 15)許可權管理

      sudo              
                    為了防止誤操作破壞系統,再使用者狀態下時沒有許可權作業系統重要檔案的,所以先要取得root許可權:“sudo -s”
                    然後輸入密碼,輸入密碼時沒有任何回顯,連星號都沒有,只管輸完回車就行了。
                   以下是一些常用命令~清理系統-----使用以下命令:
                   sudo periodic daily      然後回車,輸入管理員密碼即可。
                   suod periodic weekly  然後回車,執行的是每週清理。
                   suod periodic monthly 然後回車,執行的是每月清理
                   sudo periodic daily weekly monthly 然後回車,表示三個清楚一起做了
     注意: sudo命令:任何命令前都可以加上sudo,sudo表示是管理員許可權,可直接管理系統中較重要的檔案,一般使用需要詢問密碼。輸入管理員密碼後,才能完成操作。
                   
  • 16)brew

      brew 
      解釋:
             這個嚴格上說不是一個本地命令。但是沒有一個OS X高階使用者會離得開Homebrew。它的官網將它定義為“OS X上丟失的包管理工具”,它說的很正確。如     果你在Linux系統上使用過apt-get命令,你會在Homebrew中有找到組織的感覺。
             brew 讓你輕鬆的從開源社群獲取成千上萬的開放的實用工具和軟體庫。
             例如,brew install imagemagick 命令會為你安裝ImageMagick工具,它使一個功能強大的工具包,它可以從事任何從GIF動畫到幾十種不同型別的圖片轉             換任務。brew install node 命令會為你安裝NodeJS,它是一個最新的熱門的在伺服器端開發和執行JavaScript程式的工具。
             你同樣也可以用Homebrew來獲得樂趣:brew install archey 命令會為你安裝  Archey,它是一個很酷的指令碼,用來在一個多彩的Apple Logo顯示你的Mac的配置。Homebrew的可選內容很廣泛,同時它很容易建立新規則,一直都會有新的包被新增進來。               
  • 17)合併靜態庫

      lipo              
               lipo –create Release-iphoneos/libiphone.a Debig-iphonesimulator/libiphone.a –output libiphone.a
        * 解釋:
               很簡單,我將模擬器和裝置的靜態庫檔案合併成一個檔案輸出了,以後在釋出可以庫的時候不用發一個模擬器版的和一個真機版的了,這樣子的一個庫              可以在編譯的時候自動識別需要連線的庫。
       * 那lipo到底是什麼呢?
               lipo源於mac系統要製作相容powerpc平臺和intel平臺的程式。
               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              
  • 18)目錄操作:

    命令名 功能描述 使用舉例
    mkdir 建立一個目錄 mkdir dirname
    rmdir 刪除一個目錄 rmdir dirname
    mvdir 移動或重新命名一個目錄 mvdir dir1 dir2
    cd 改變當前目錄 cd dirname
    pwd 顯示當前目錄的路徑名 pwd
    ls 顯示當前目錄的內容 ls -la
  • 19)檔案操作:

    命令名 功能描述 使用舉例
    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
  • 20)選擇操作:

    命令名 功能描述 使用舉例
    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
  • 21)程序操作:

    命令名 功能描述 使用舉例
    ps 顯示程序當前狀態 其選項說明如下:
    -a   列出包括其他 users 的 process 狀況。
    -u   顯示 user - oriented 的 process 狀況 。
    -x   顯示包括沒有 terminal 控制的 process 狀況 。
    -w  使用較寬的顯示模式來顯示 process 狀況 。
    kill 終止程序 kill -9 30142
  • 22)程式設計操作

    命令名 功能描述 使用舉例
    make 維護可執行程式的最新版本 make
    touch 更新檔案的訪問和修改時間 touch -m 05202400 filename
     
    dbx     命令列介面除錯工具            dbx  a.out                             
    xde 圖形使用者介面除錯工具 xde   a.out
  • 23)時間操作:

    命令名 功能描述 使用舉例
    date 顯示系統的當前日期和時間 date
    cal 顯示日曆 cal 8 1996
    time 統計程式的執行時間 time a.out
  • 24)網路與通訊操作:

    命令名 功能描述 使用舉例
    telnet 遠端登入 telnet hpc.sp.net.edu.cn
    rlogin 遠端登入 rlogin hostname -l username
    rsh 在遠端主機執行指定命令 rsh f01n03 date
    ftp 在本地主機與遠端主機之間傳輸檔案 ftpftp.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
  • 25)安全操作:

    命令名 功能描述 使用舉例
    passwd 修改使用者密碼 passwd
    chmod 改變檔案或目錄的許可權 chmod ug+x filename
    umask 定義建立檔案的許可權掩碼 umask 027
    chown 改變檔案或目錄的屬主 chown newowner filename
    chgrp 改變檔案或目錄的所屬組 chgrp staff filename
    xlock 給終端上鎖 xlock -remote
  • 26)Korn Shell 命令:

    命令名 功能描述 使用舉例
    history 列出最近執行過的 幾條命令及編號 history
    r 重複執行最近執行過的 某條命令 r -2
    alias 給某個命令定義別名 alias del=rm -i
    unalias 取消對某個別名的定義 unalias del
  • 27)其它命令:

    命令名 功能描述 使用舉例
    uname 顯示作業系統的有關資訊 uname -a
    clear 清除螢幕或視窗內容 clear
    env 顯示當前所有設定過的環境變數 env
    who 列出當前登入的所有使用者 who
    whoami 顯示當前正進行操作的使用者名稱 whoami
    tty 顯示終端或偽終端的名稱 tty
    stty 顯示或重置控制鍵定義 stty -a
    du 查詢磁碟使用情況 du -k subdir
    df 顯示檔案系統的總空間和可用空間 df
    w 顯示當前系統活動的總資訊 w
    man      檢視幫助相關命令符的用法            man ls        
    purge    釋放記憶體(purge命令可以清除記憶體和硬碟的快取,與重啟Mac的效果差不多。purge命令可以讓不活躍的系統記憶體轉變為可以使用的記憶體。
    你只需在終端中輸入下面的命令即可)                                        
    purge
    caffeinate      阻止Mac執行螢幕保護和睡眠          caffeinate -t 3600     
     
    chflags  隱藏檔案或資料夾                          chflags hidden ~/Desktop/macx       隱藏
    chflags nohidden ~/Desktop/macx   顯示 
    zip         建立有密碼保護的壓縮檔案           zip -e protected.zip ~/Desktop/macx.txt   

    參考