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ā)出警告,沒什么用。