Mac常用命令(大部分和Linux相同)

1、文件操作:

  • cd:用于切換到目標(biāo)目錄。

  • pwd:用于查看當(dāng)前所在的路徑

  • ls:用于查看文件與目錄。(ls -l 查看文件詳細信息)

  • mkdir:用于新建文件夾。

  • mv:用于移動文件、目錄或更名。

  • rm:用于刪除文件或目錄。

  • cp:用于復(fù)制文件,可以復(fù)制多個文件

  • tar:對文件進行打包備份,默認情況不壓縮,指定相應(yīng)參數(shù)后,會調(diào)用相應(yīng)的壓縮程序(如gzip和bzip2等)進行壓縮或者解壓。

-cvf     # 常用,只要記住c是用來表示打包文件
-xvf     # 用來解包的。
如:
tar -cvf /etc/tmp/etc.tar(打包后的文件路徑和名字) /etc(要打包的文件路徑)   <== 僅打包,不壓縮!
tar -zcvf /etc/tmp/etc.tar.gz(要打包壓縮的文件路徑和名字) /etc(要打包的文件路徑) <== 打包后,gzip壓縮
tar -jcvf /etc/tmp/etc.tar.bz2(要打包壓縮的文件路徑和名字) /etc(要打包的文件路徑) <== 打包后,bzip2壓縮

tar -zxvf /tmp/etc.tar.gz <== 在當(dāng)前目錄解壓,如果要解壓在其他地方先cd過去
  • grep:文本搜索工具,可以使用正則表達式搜索文本并打印,非常強大。
格式:
grep [-acinv][--color=auto] '想要搜索字符串' filename 
或
cat filename | grep '字符串' [-acinv][--color=auto] 
參數(shù):
-a :將 binary 文件以 text 文件的方式搜尋數(shù)據(jù)
-c :計算找到 '搜尋字符串' 的次數(shù)
-i :忽略大小寫
-n :順便輸出行號
-v :反向選擇,即顯示出沒有 '搜尋字符串' 的內(nèi)容!
--color=auto :將找到的關(guān)鍵詞部分加上顏色的顯示

grep還支持正則表達式,有機會再寫一章來記正則表達式

2、文件搜索

  • find 經(jīng)常使用的查找命令
格式:find path(搜索路徑,為空時默認為當(dāng)前目錄) -option(搜索條件) [-print][-exec -ok command] {}\
簡單來說:find <路徑> <-條件> <結(jié)果處理>

常用搜索條件(不全):
-name filename              #查找名為filename的文件
-user username              #查找屬于username的文件
-group groupname            #查找屬于username的文件
-mtime -n +n                #按文件更改時間來查找文件,-n指n天以內(nèi),+n指n天以前
-ctime -n +n                #按文件創(chuàng)建時間來查找文件,-n指n天以內(nèi),+n指n天以前
-newer f1 !f2               #查更改時間比f1新但比f2舊的文件
-type b/d/c/p/l/f           #查是塊設(shè)備、目錄、字符設(shè)備、管道、符號鏈接、普通文件
-size n[c]                  #查長度為n塊[或n字節(jié)]的文件
-depth                      #使查找在進入子目錄前先行查找完本目錄
-mount                      #查文件時不跨越文件系統(tǒng)mount點
-follow                     #如果遇到符號鏈接文件,就跟蹤鏈接所指的文件

如:
find /Users/DFei_He/desktop -name '*.html' 搜索桌面所有html文件
find .   -perm   755 查看目錄下權(quán)限為755的文件
  • locate 相當(dāng)于'find -name'操作,但是搜索速度比find快。
#因為它搜索的是數(shù)據(jù)庫所以速度快。
#數(shù)據(jù)庫位置在/var/lib/locatedb。保存了本地所有文件信息
#該數(shù)據(jù)庫每天更新一次,所以查找當(dāng)天新增文件,需先updatedb更新數(shù)據(jù)庫

#但是在Mac上第一次使用locate的時候,系統(tǒng)會提示你未創(chuàng)建數(shù)據(jù)庫
WARNING: The locate database (/var/db/locate.database) does not exist.
...
#根據(jù)提示,我們創(chuàng)建數(shù)據(jù)庫
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
#執(zhí)行后會發(fā)現(xiàn)失敗了,并沒有變化,這時候需要另一個命令
sudo /usr/libexec/locate.updatedb

#更新過后就可以通過locate來進行搜索了。
格式:
locate file 搜索所有文件名中有‘file’字符串的文件
locate ~/m 搜索根目錄下以m開頭的文件
locate -i /etc/sh 搜索etc目錄下sh開頭的文件,忽略大小寫
  • whereis:只能搜索程序名,如whereis php

3、文本操作

  • cat:查看文本文件的內(nèi)容。
  • vim:用于文本編輯。
插入:i,I,a,A,o,O
刪除: 刪除前n行(:1,n d),刪除全部(:1,%d)
行號:顯示(:set number),隱藏(:set nonumber)
退出: 退出(:q),保存退出(:wq),強制退出(:q!),保存只讀文件(:w !sudo tee %)

對vim的配置可以修改vimrc(位置位于/usr/share/vim/vimrc,mac用戶建議(vim ~/.vimrc)進行操作,因為原文件的權(quán)限很高,我嘗試了很多方法包括root權(quán)限也無法進行修改)

4、網(wǎng)絡(luò)

  • ping:測試網(wǎng)絡(luò)連通情況
原理是發(fā)送ECHO_REQUEST包到你指定的地址,從來來判斷是否連通.
如:
ping baidu.com      會源源不斷得發(fā)包給baidu。Ctrl+C終止
也可以通過參數(shù)控制發(fā)包數(shù)
ping -c 4 baidu.com 發(fā)送4個包給baidu,發(fā)完終止

  • traceroute:可以看出每一次hop(心跳)花費的時間來查看網(wǎng)絡(luò)終端或者延遲的地方。
  • host:DNS查詢,通過域名和ip中的其中一個來獲取另外一個。
  • whois:查看該站點的持有者
  • ifconfig:查看設(shè)備和網(wǎng)絡(luò)情況
ifconfig [-a]  查看所有的網(wǎng)絡(luò)接口
ifconfig [設(shè)備名,如en0] [down/up]:設(shè)備開關(guān)
ifconfig [設(shè)備名,如en0] hw ether [Mac地址] 修改MAC地址
ifconfig [設(shè)備名,如en0] add/del [IPv6地址] 給網(wǎng)卡添加/刪除IPv6地址
ifconfig [設(shè)備名,如en0] [ip地址] 給設(shè)備配置IP地址
ifconfig [設(shè)備名,如en0] [ip地址] netmask [掩碼] 給設(shè)備配置IP地址,加上子掩碼
ifconfig [設(shè)備名,如en0] [ip地址] netmask [掩碼] broadcast [廣播地址] 給設(shè)備配置IP地址,加上掩碼和廣播地址
ifconfig [設(shè)備名,如en0] mtu [數(shù)字] 設(shè)置設(shè)備的最大傳輸單元[bytes]
ifconfig [設(shè)備] [arp/-arp] 啟用/關(guān)閉 ARP協(xié)議
  • netstat:顯示網(wǎng)絡(luò)狀態(tài)信息
-a (all)顯示所有選項,默認不顯示LISTEN相關(guān)
-t (tcp)僅顯示tcp相關(guān)選項
-u (udp)僅顯示udp相關(guān)選項
-n 拒絕顯示別名,能顯示數(shù)字的全部轉(zhuǎn)化成數(shù)字。
-l 僅列出有在 Listen (監(jiān)聽) 的服務(wù)狀態(tài)

-p 顯示建立相關(guān)鏈接的程序名
-r 顯示路由信息,路由表
-e 顯示擴展信息,例如uid等
-s 按各個協(xié)議進行統(tǒng)計
-c 每隔一個固定時間,執(zhí)行該netstat命令。

-------
netstat -a 查看所有端口
netstat -at/au 查看所有tcp/udp端口

netstat -l 查看所有監(jiān)聽的端口
netstat -lt/lu/lx 查看所有監(jiān)聽的tcp/udp/unix端口
a
netstat -s 查看所有端口的統(tǒng)計信息
netstat -st/su 查看tcp/udp的端口的統(tǒng)計信息

netstat -r 查看核心路由信息

另外如
netstat -ap | grep ssh查找程序運行的端口s
netstat -an | grep ':8080'找出指定端口的進程

5、進程等系統(tǒng)管理

  • stat:顯示指定文件詳細信息

  • df:查看磁盤使用情況

  • du:查看目錄或文件大小

  • who:顯示登錄了的用戶

  • whoami:顯示當(dāng)前的用戶

  • uname:顯示系統(tǒng)信息

  • ps:顯示當(dāng)前進程

a 查看所有進程
c 顯示程序真正的指令名詞 
e顯示每個程序的環(huán)境變量 
f顯示程序間互相關(guān)系
u 以用戶為主的格式來顯示程序狀況。
x 顯示所有程序,不以終端機來區(qū)分。

常用ps aux命令和grep文本查找命令通過管道過濾再操作
如:ps aux | grep tomcat
  • top:實時顯示進程的動態(tài)
  • kill:殺進程
kill <pid>  最安全的kill命令,不殺死子進程
kill -l <pid> 殺死父進程的同時還嘗試殺死子進程,但不一定嘗試成功
killall <httpd>殺死同一個進程組的所有進程,后接進程名,非pid
kill -HUP <pid> 殺死進程并重啟,常用于配置文件修改
kill -9 <pid>強制殺死進程,謹(jǐn)慎使用,可能會導(dǎo)致系統(tǒng)關(guān)閉

6、文件權(quán)限相關(guān)

  • chmod:更改文件的權(quán)限。
chmod [ugoa][[+-=][rwxX]...][,...]
u 表示該文件的擁有者,g 表示與該文件的擁有者屬于同一個群體(group)者,o 表示其他以外的人,a 表示這三者皆是。
+ 表示增加權(quán)限、- 表示取消權(quán)限、= 表示唯一設(shè)定權(quán)限。
r 表示可讀取,w 表示可寫入,x 表示可執(zhí)行,X 表示只有當(dāng)該文件是個子目錄或者該文件已經(jīng)被設(shè)定過為可執(zhí)行。
-R : 對目前目錄下的所有文件與子目錄進行相同的權(quán)限變更(即以遞回的方式逐個變更)

如:chmod ugo+r file1.txt 所有人可讀
chmod -R a+r * 將目前目錄下的所有文件與子目錄皆設(shè)為任何人可讀取 

> 數(shù)字權(quán)限:  
1、一般三位數(shù),第一位數(shù)表示文件擁有者的權(quán)限,第二位表示文件所在的group的成員的權(quán)限,第三位表示除此之外其他用戶的權(quán)限。  
2、數(shù)字一般有7、5、4等。分解成二進制是111,101,100,也是三位數(shù),位數(shù)和權(quán)限分別表示讀、寫、可執(zhí)行權(quán)限。  
>>如:
chmod 755 file 文件所有者可讀可寫可執(zhí)行,同一個group的用戶可讀可執(zhí)行,其他用戶可讀可執(zhí)行   
chmod 777 file 所有用戶可讀可寫可執(zhí)行權(quán)限   
另外:   
chmod 4755 file 具有root權(quán)限

如果你想對你的電腦具備完全的操控,翻身當(dāng)主人的話,你會需要有一個root權(quán)限。但是Mac是沒有默認的root賬戶的。如果沒有root賬戶,登錄的話會報錯。

~$ su root

Password:
su: Sorry

所以,我們需要先創(chuàng)建一個root賬戶。

~$ sudo passwd root

Password:輸入當(dāng)前用戶密碼
Changing password for root.
New password:輸入root密碼
Retype new password:重復(fù)root密碼

Mac命令

  • 顯示Mac隱藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true;
  • 隱藏Mac隱藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false;

小技巧

  • date:顯示當(dāng)前時間
  • cal:顯示日歷 cal <month> <year>
  • bc:簡單的計算機
  • shutdown -t :關(guān)機
shutdown -h now立刻關(guān)機
shutdown -h 17:00 下一個17:00關(guān)機
shutdown -h +10 十分鐘后關(guān)機
shutdown -r now
立刻重啟
shutdown -r +30 'The system will reboot' 三十分鐘后系統(tǒng)重啟,訊息給所有在線使用者
shutdown -k now 'This system will reboot'
發(fā)出警告,沒什么用。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 進入帶空格的文件或者文件夾 Linux文件權(quán)限詳解 文件和目錄權(quán)限概述 在linux中的每一個文件或目錄都包含有訪...
    annkee閱讀 2,794評論 0 4
  • 一、文件/文件夾管理 ls 列出當(dāng)前目錄文件(不包括隱含文件) ls -a 列出當(dāng)前目錄文件(包括隱含文件) ls...
    會飛的魚Coo閱讀 4,704評論 1 23
  • Ubuntu 常用命令大全 查看軟件 xxx 安裝內(nèi)容 #dpkg -L xxx 查找軟件 #apt-cache ...
    guiwuzhe閱讀 2,722評論 0 14
  • 一、文件/文件夾管理 ls 列出當(dāng)前目錄文件(不包括隱含文件)ls -a 列出當(dāng)前目錄文件(包括隱含文件)l...
    路癡千行閱讀 2,636評論 0 5
  • Linux export shell會提供一組環(huán)境變量。export可新增,修改或刪除環(huán)境變量,供后續(xù)執(zhí)行的程序使...
    滾石_c2a6閱讀 662評論 0 0

友情鏈接更多精彩內(nèi)容