Linux命令學(xué)習(xí)
| 時(shí)間 | 備注 |
|---|---|
2017-05-01 |
start |
2018-04-30 |
添加文件重命名 |
2018-06-20 |
整理 & 添加補(bǔ)充grep命令 |
2018-07-05 |
整理 & 添加powerline |
記錄小白學(xué)習(xí)
Linux的過(guò)程。

常用命令
man命令
常用工具命令 man命令是Linux下的幫助指令,通過(guò)man指令可以查看Linux中的指令幫助、配置文件幫助和編程幫助等信息。
語(yǔ)法 man(選項(xiàng))(參數(shù))
-a:在所有的man幫助手冊(cè)中搜索;
-f:等價(jià)于whatis指令,顯示給定關(guān)鍵字的簡(jiǎn)短描述信息;
-P:指定內(nèi)容時(shí)使用分頁(yè)程序;
-M:指定man手冊(cè)搜索的路徑。
來(lái)自: man命令_Linux man 命令用法詳解
- 不區(qū)分大小寫智能提示。我是不喜歡大小寫區(qū)分的那種人,所以用了
zsh之后,經(jīng)常按Tab進(jìn)行提示。
此外按下tab鍵顯示出所有待選項(xiàng)后,再按一次tab鍵,即進(jìn)入選擇模式,進(jìn)入選擇模式后,按 tab 切向下一個(gè)選項(xiàng),按shift + tab鍵切向上一個(gè)選項(xiàng),ctrl+f/b/n/p可以向前后左右切換。
kill + 空格鍵 + Tab鍵,列出運(yùn)行的進(jìn)程,要啥哪個(gè)進(jìn)程不需要再知道 PID 了,當(dāng)然了 zsh,提供了讓你知道 PID 的方法:
比如輸入:kill vim,再按下 tab,會(huì)變成:kill 5643
-
ls **/*,分層級(jí)地列出當(dāng)前目錄下所有文件及目錄,并遞歸目錄 -
ls *.png查找當(dāng)前目錄下所有 png 文件 -
ls **/*.png遞歸查找
zsh 的目錄跳轉(zhuǎn)很智能,你無(wú)需輸入 cd 就可直接輸入路徑即可。比如:.. 表示后退一級(jí)目錄,../../表示后退兩級(jí),依次類推。
在命令窗口中輸入:d,將列出當(dāng)前 session 訪問(wèn)過(guò)的所有目錄,再按提示的數(shù)字即可進(jìn)入相應(yīng)目錄。
常用的文件、目錄操作命令
這是我們使用得最多的命令了,Linux最基礎(chǔ)的命令!
-
sudo du -sh *按下回車后系統(tǒng)就會(huì)自動(dòng)統(tǒng)計(jì)該目錄下所有文件的占用情況,一般等待一兩分鐘后就能得到結(jié)果了。 -
-表示用cd命令切換目錄前所在的目錄 - 可用
pwd命令查看用戶的當(dāng)前目錄 - 可用
cd命令來(lái)切換目錄 -
.表示當(dāng)前目錄 -
..表示當(dāng)前目錄的上一級(jí)目錄(父目錄) -
~表示用戶主目錄的絕對(duì)路徑名 -
ls:顯示文件或目錄信息 -
mkdir:當(dāng)前目錄下創(chuàng)建一個(gè)空目錄 -
rmdir:要求目錄為空 -
touch:生成一個(gè)空文件或更改文件的時(shí)間 -
cp:復(fù)制文件或目錄 -
mv:移動(dòng)文件或目錄、文件或目錄改名 -
rm:刪除文件或目錄 -
ln:建立鏈接文件 -
find:查找文件 -
file/stat:查看文件類型或文件屬性信息 -
cat:查看文本文件內(nèi)容 more:可以分頁(yè)看less:不僅可以分頁(yè),還可以方便地搜索,回翻等操作-
tail -10: 查看文件的尾部的10行 -
head -20:查看文件的頭部20行 echo:把內(nèi)容重定向到指定的文件中 ,有則打開(kāi),無(wú)則創(chuàng)建管道命令 |:將前面的結(jié)果給后面的命令,例如:ls -la | wc,將ls的結(jié)果加油wc命令來(lái)統(tǒng)計(jì)字?jǐn)?shù)-
重定向 > 是覆蓋模式,>> 是追加模式,例如:echo "Java3y,zhen de hen xihuan ni" > qingshu.txt把左邊的輸出放到右邊的文件里去
Linux命令重點(diǎn)
- (1)Linux的shell程序默認(rèn)是
bash 程序; - (2)Linux命令格式包含三個(gè)部分,分別是:
命令、選項(xiàng)、參數(shù); - (3)Linux命令選項(xiàng)前為單個(gè)減號(hào)(-),后面一般為
單字符,選項(xiàng)前為雙減號(hào)(--),后面一般為單詞; - (4)Linux命令中使用的通配符有
? * []; - (5)命令 ls /usr/bin/w* 的效果是
列出指定目錄下的所有以w開(kāi)頭的文件或目錄; - (6)命令 ls /usr/bin/w?? 的效果是
列出指定目錄下的以w開(kāi)頭名稱長(zhǎng)度為3的所有文件或目錄; - (7)命令 ls /usr/bin/[xyz]* 的效果是
列出指定目錄下的文件名以x或y或z開(kāi)頭的所有文件或目錄; - (8)命令 ls /usr/bin/[!a-h]* 的效果是
列出指定目錄下的文件名不以a到h區(qū)間字母開(kāi)頭的所有文件或目錄; - (9)目錄操作時(shí),“.” 表示
當(dāng)前目錄; - (10)目錄操作時(shí),“..” 表示
上一級(jí)目錄; - (11)目錄操作時(shí),“-” 表示
上一次工作目錄; - (12)目錄操作時(shí),“~” 表示
用戶主目錄; - (13)命令ln可以建立文件鏈接,這種鏈接分為:
硬鏈接和軟鏈接; - (14)命令touch可以改變文件的三種時(shí)間,分別是:
access time、modify time、change time;
less 命令
1.命令格式:
less [參數(shù)] 文件
2.命令功能:
less 與 more 類似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動(dòng),卻不能向后移動(dòng),而且 less 在查看之前不會(huì)加載整個(gè)文件。
3.命令參數(shù):
-b <緩沖區(qū)大小> 設(shè)置緩沖區(qū)的大小
-e 當(dāng)文件顯示結(jié)束后,自動(dòng)離開(kāi)
-f 強(qiáng)迫打開(kāi)特殊文件,例如外圍設(shè)備代號(hào)、目錄和二進(jìn)制文件
-g 只標(biāo)志最后搜索的關(guān)鍵詞
-i 忽略搜索時(shí)的大小寫
-m 顯示類似more命令的百分比
-N 顯示每行的行號(hào)
-o <文件名> 將less 輸出的內(nèi)容在指定文件中保存起來(lái)
-Q 不使用警告音
-s 顯示連續(xù)空行為一行
-S 行過(guò)長(zhǎng)時(shí)間將超出部分舍棄
-x <數(shù)字> 將“tab”鍵顯示為規(guī)定的數(shù)字空格
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重復(fù)前一個(gè)搜索(與 / 或 ? 有關(guān))
N:反向重復(fù)前一個(gè)搜索(與 / 或 ? 有關(guān))
b 向后翻一頁(yè)
d 向后翻半頁(yè)
h 顯示幫助界面
Q 退出less 命令
u 向前滾動(dòng)半頁(yè)
y 向前滾動(dòng)一行
空格鍵 滾動(dòng)一行
回車鍵 滾動(dòng)一頁(yè)
[pagedown]: 向下翻動(dòng)一頁(yè)
[pageup]: 向上翻動(dòng)一頁(yè)
grep命令
grep(global search regular expression)是一個(gè)強(qiáng)大的文本搜索工具。grep 使用正則表達(dá)式搜索文本,并把匹配的行打印出來(lái)。
格式:grep [options] PATTERN [FILE...]
- PATTERN 是查找條件:可以是普通字符串、可以是正則表達(dá)式,通常用單引號(hào)將RE括起來(lái)。
- FILE 是要查找的文件,可以是用空格間隔的多個(gè)文件,也可是使用Shell的通配符在多個(gè)文件中查找PATTERN,省略時(shí)表示在標(biāo)準(zhǔn)輸入中查找。
- grep命令不會(huì)對(duì)輸入文件進(jìn)行任何修改或影響,可以使用輸出重定向?qū)⒔Y(jié)果存為文件
- grep在文件中搜索一個(gè)單詞,命令會(huì)返回一個(gè)包“match_pattern”的文本行:
grep match_pattern file_name
grep "match_pattern" file_name
-
在文件 myfile 中查找包含字符串 mystr的行,并顯示匹配行后面n行
grep -A n mystr myfile
image -
-r 遍歷搜索結(jié)果的目錄
image -
在文件 myfile 中查找包含字符串 mystr的行
grep -n mystr myfile
image 顯示 myfile 中第一個(gè)字符為字母的所有行
grep '^[a-zA-Z]' myfile在文件 myfile 中查找首字符不是 # 的行(即過(guò)濾掉注釋行)
grep -v '^#' myfile列出/etc目錄(包括子目錄)下所有文件內(nèi)容中包含字符串“root”的文件名
grep -lr root /etc/*-
用grep查找/etc/passwd文件中以a開(kāi)頭的行,要求顯示行號(hào);查找/etc/passwd文件中以login結(jié)束的行;
image -m 數(shù)字N最多匹配N個(gè)后停止
[root@localhost shell]# grep -m 2 "a" test.txt
a
abc999 //匹配2個(gè)后停止
[root@localhost shell]#
參考
mdfind命令
許多Linux用戶都發(fā)現(xiàn)Linux下查找文件的方法在OS X上不好用。當(dāng)然經(jīng)典的Unix find 命令總是可以,但既然OS X有殺手級(jí)搜索工具Spotlight,為什么不在命令行上也使用一下呢?
這就是 mdfind 命令了。Spotlight能做的查找, mdfind 也能做。包括搜索文件的內(nèi)容和元數(shù)據(jù)(metadata)。
mdfind 還提供更多的搜索選項(xiàng)。例如 -onlyin 選項(xiàng)可以約束搜索范圍為一個(gè)目錄:
$ mdfind -onlyin ~/Documents essay
其他
Finder標(biāo)題欄顯示路徑
在“終端”中輸入下面的命令:
$ defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES
$ killall Finder
killall process進(jìn)程
- 殺進(jìn)程神器,一些重要進(jìn)程不建議用這個(gè)命令
$ killall ProcessName
Unix登錄登出
Mac底層是Unix內(nèi)核,可以登入登出Unix。
可以先用who命令查看當(dāng)前登錄的賬戶
Logout-
Login UserName
如果有密碼,會(huì)提示輸入密碼
正則表達(dá)式

Zsh 命令

ls 命令
-
ls顯示當(dāng)前下面的文件及文件夾 -
ls -a顯示當(dāng)前目錄下的所有文件及文件夾包括隱藏的.和..等 -
ls -al顯示當(dāng)前目錄下的所有文件及文件夾包括隱藏的.和..等并顯示詳細(xì)信息,詳細(xì)信息包括大小,屬組,創(chuàng)建時(shí)間
歷史命令
- 查找歷史命令,今天發(fā)現(xiàn)很好用有木有:
Ctr + R,不用一個(gè)去查找了.(2017-05-19)╮(?ω?)╭ -
histroy命令
histroy會(huì)展示所有命令歷史,可以histroy n展示n條歷史命令。 - 執(zhí)行歷史命令
-
!!顯示上一條歷史命令 -
!n顯示第n條歷史命令 -
!n:p打印第n條歷史命令
歷史路徑
Zsh中輸入$ d加回車就可以查看歷史文件路徑,然后輸入對(duì)應(yīng)路徑的編號(hào)就可以到對(duì)應(yīng)路徑中了,很方便有木有ヾ(o???)?

取消命令 q
在Zsh中,如果輸入錯(cuò)誤想取消,或者取消當(dāng)前的任務(wù)進(jìn)程,比如下載等,可以輸入q來(lái)實(shí)現(xiàn)取消。
echo 命令
創(chuàng)建一個(gè)txt,并寫入內(nèi)容
$ echo "Text Content" >> fileName
$ echo "Hello." >> welcome.txt
vim 命令
$ vim filename
然后點(diǎn)i進(jìn)入編輯, 編輯完成按Esc退出編輯,然后點(diǎn)擊:回到底部,輸入wq+Enter保存退出
文件操作
參考Unix常用命令
移動(dòng),拷貝
- 文件移動(dòng)
$ mv filename path
mv + 文件名 + 路徑 - 文件拷貝
$ cp filename path文件拷貝到path - 如果要復(fù)制目錄,需要加參數(shù)-r或-R
例如:$cp /home/a.tar /home/demo
$ cp –r /home/aaa /home/bbb其中aaa 、bbb均為目錄。 - 將文件file復(fù)制到目錄/usr/men/tmp下,并改名為file1
$ cp file /usr/men/tmp/file1
拷貝詳解
復(fù)制文件或目錄命令:cp
【語(yǔ)法】cp[選項(xiàng)][參數(shù)]
【詳解】cp命令用于將單個(gè)或多個(gè)源文件或文件目錄,復(fù)制到目標(biāo)文件或文件夾目錄中。
【參數(shù)】
| 選項(xiàng) | 相應(yīng)功能 |
|---|---|
| -a | 功能等于同時(shí)使用-d -p -r。 |
| -b | 在復(fù)制文件或目錄時(shí),為每個(gè)已經(jīng)存在的目標(biāo)文件或目錄創(chuàng)建備份。 |
| -d | 當(dāng)復(fù)制帶符號(hào)鏈接的對(duì)象時(shí),不復(fù)制符號(hào)連接所指向的目標(biāo)文件或目錄。 |
| -f | 強(qiáng)制復(fù)制文件或目錄,不提示任何信息。 |
| -i | 復(fù)制文件時(shí),遇到同名文件或文件夾時(shí)提示確認(rèn) |
| -l | 不復(fù)制文件,建立源文件的快捷方式 |
| -p | 保留源文件或目錄的所有者、所屬組信息和權(quán)限屬性。 |
| -P | 功能同等于-d |
| -r | 復(fù)制目錄及目錄內(nèi)的所有文件或子目錄 |
| -s | 創(chuàng)建符號(hào)鏈接 |
| -S | 指定備份文件的擴(kuò)展名 |
| -u | 在更新源文件或目標(biāo)文件不存在的情況下才復(fù)制文件 |
| -v | 顯示命令的執(zhí)行詳細(xì)過(guò)程 |
| -x | 當(dāng)源文件或目錄所在的文件系統(tǒng)(如ext3),與目標(biāo)文件或目錄所在的文件系統(tǒng)相同的情況下才進(jìn)行復(fù)制。 |
| --help | 顯示命令幫助信息。 |
| --version | 顯示cp命令版本信息。 |
【說(shuō)明】
| 關(guān)鍵詞 | 介紹 |
|---|---|
| 源文件或目錄 | 被復(fù)制的文件或目錄 |
| 目標(biāo)文件或目錄 | 被復(fù)制的文件或目錄,所要到達(dá)的位置。 |
文件重名名
linux下重命名文件或文件夾的命令mv既可以重命名,又可以移動(dòng)文件或文件夾.
例子:將目錄A重命名為B
mv A B
例子:將/a目錄移動(dòng)到/b下,并重命名為c
mv /a /b/c
其實(shí)在文本模式中要重命名文件或目錄的話也是很簡(jiǎn)單的,我們只需要使用mv命令就可以了,比如說(shuō)我們要將一個(gè)名為abc的文件重命名為1234就可以這樣來(lái)寫:mv abc 1234,但是要注意的是,如果當(dāng)前目錄下也有個(gè)1234的文件的話,我們的這個(gè)文件是會(huì)將它覆蓋的
rm 刪除
刪除文件
$ rm filename
一、rmdir:刪除一個(gè)空的目錄
rm命令
用于刪除文件或文件夾。具體語(yǔ)法為:rm + 路徑 +文件名 。例如,要?jiǎng)h除/home/long/manual.tar文件,用下面命令:rm /home/long/manual.tar 如果要?jiǎng)h除目錄,用rm –r +路徑+目錄名 。例如:要?jiǎng)h除/home/manual目錄,用rm –r /home/manual
注意:要?jiǎng)h除一個(gè)文件或文件夾,首先要具有對(duì)這個(gè)文件夾的寫權(quán)限。
-
-v選項(xiàng):提示
mkdir -v directoryName
結(jié)果: 操作成功后都會(huì)有提示信息。

- 一次刪除兩個(gè)目錄,用空格分開(kāi): 空目錄1、空目錄2
rmdir directory1 directory2
結(jié)果:一次刪除了空目錄1、2
-
-p選項(xiàng):級(jí)聯(lián)刪除
eg1: 目錄1122/1
rmdir -p -v 1122/1
結(jié)果:先刪除1122/1,再刪除1122。
eg2: 目錄1122/1 1122/2
rmdir -p -v 1122/1
結(jié)果:刪除1122/1,再刪除1122時(shí)錯(cuò)誤,因?yàn)榇藭r(shí)1122不是空文件夾。
二、rm 刪除文件或者目錄
1. -f選項(xiàng):不管目錄下的文件存在不存在,都不給予提示(force強(qiáng)制)
目錄1122/1/a,1122/1為目錄,a為文件
rm -f 1122/1
結(jié)果:提示1122/1為目錄,不能刪除
rm 1122/1/a
結(jié)果:成功,但是沒(méi)有任何提示
rm 1122/1/b
結(jié)果:沒(méi)有任何提示
2. -r:刪除此目錄下的所有文件,但是此目錄不刪除
目錄:1122/1 1122/2
rm -r -v 1122
結(jié)果:刪除1122/1 1122/22
3. 組合刪除
刪除該目錄以及該目錄下的所有文件
目錄1122/1/a 1122/2
sudo rm -rf -v /Volumes/macOSSierra/Backups.backupdb/xxx/xxxx
命令附圖

Bash 命令
Mac 命令行操作命令
| 命令 | 介紹 |
|---|---|
| # !! | 上一條命令 |
| # !-n | 倒數(shù)第N條歷史命令 |
| # !-n:p | 打印上一條命令(不執(zhí)行) |
| # !?string? | 最新一條含有“string”的命令 |
| # !-n:gs/str1/str2/ | 將倒數(shù)第N條命令的str1替換為str2,并執(zhí)行(若不加g,則僅替換第一個(gè)) |
| history | 顯示命令歷史列表 |
| Ctrl+l | 清屏 |
| Ctrl+w | 剪切光標(biāo)所在處之前的一個(gè)詞(以空格、標(biāo)點(diǎn)等為分隔符) |
| Ctrl+k | 剪切命令行中光標(biāo)所在處之后的所有字符(包括自身) |
| Ctrl+u | 剪切命令行中光標(biāo)所在處之前的所有字符(不包括自身) |
| Ctrl+h | 刪除光標(biāo)所在處前一個(gè)字符 |
| Ctrl+y | 粘貼剛才所刪除的字符 |
| [Tab] = | 命令行自動(dòng)補(bǔ)全 |
| ↑(Ctrl+p) | 顯示上一條命令 |
| ↓(Ctrl+n) | 顯示下一條命令 |
| Ctrl+a | 移動(dòng)到當(dāng)前行的開(kāi)頭 |
| Ctrl+e | 移動(dòng)到當(dāng)前行的結(jié)尾 |
工具軟件
iTerm2
[iTerm2](<https://www.iterm2.com/)
[Mac item2常用快捷鍵是什么?iterm2 快捷鍵大全](<https://my.oschina.net/repine/blog/737641)
[iTerm 拯救你的Terminal(終端)](<http://www.itdecent.cn/p/deb5c35ff141)
標(biāo)簽
| 介紹 | 命令 |
|---|---|
| 新建標(biāo)簽: | command + t |
| 關(guān)閉標(biāo)簽: | command + w |
| 切換標(biāo)簽: | command + 數(shù)字 command + 左右方向鍵 |
| 切換全屏: | command + enter |
| 查找: | command + f |
分屏
| 介紹 | 命令 |
|---|---|
| 查看歷史命令: | command + ; |
| 查看剪貼板歷史: | command + shift + h |
| 垂直分屏: | command + d |
| 水平分屏: | command + shift + d |
| 切換屏幕: | command + option + 方向鍵 command + [ 或 command + ] |
其他
| 介紹 | 命令 |
|---|---|
| 清除當(dāng)前行: | ctrl + u |
| 到行首: | ctrl + a |
| 到行尾: | ctrl + e |
| 前進(jìn)后退: | ctrl + f/b (相當(dāng)于左右方向鍵) |
| 上一條命令: | ctrl + p |
| 搜索命令歷史: | ctrl + r |
| 刪除當(dāng)前光標(biāo)的字符: | ctrl + d |
| 刪除光標(biāo)之前的字符: | ctrl + h |
| 刪除光標(biāo)之前的單詞: | ctrl + w |
| 刪除到文本末尾: | ctrl + k |
| 交換光標(biāo)處文本: | ctrl + t |
| 清屏1: | command + r |
| 清屏2: | ctrl + l |
自帶有哪些很實(shí)用的功能/快捷鍵
| 命令 | 介紹 |
|---|---|
| ? + | 數(shù)字在各 tab 標(biāo)簽直接來(lái)回切換 |
| 選擇即復(fù)制 + 鼠標(biāo)中鍵 | 粘貼,這個(gè)很實(shí)用 |
| ? + f | 所查找的內(nèi)容會(huì)被自動(dòng)復(fù)制 |
| ? + d | 橫著分屏 / ? + shift + d 豎著分屏 |
| ? + r = clear, | 而且只是換到新一屏,不會(huì)想 clear 一樣創(chuàng)建一個(gè)空屏 |
| ctrl + u | 清空當(dāng)前行,無(wú)論光標(biāo)在什么位置 |
| 輸入開(kāi)頭命令后 按 ? + ; | 會(huì)自動(dòng)列出輸入過(guò)的命令 |
| ? + shift + h | 會(huì)列出剪切板歷史 |
補(bǔ)充
可以在 Preferences > keys 設(shè)置全局快捷鍵調(diào)出 iterm,這個(gè)也可以用過(guò) Alfred 實(shí)現(xiàn)
我常用的一些快捷鍵
? + 1 / 2 左右 tab 之間來(lái)回切換,這個(gè)在 前面 已經(jīng)介紹過(guò)了
?← / ?→ 到一行命令最左邊/最右邊 ,這個(gè)功能同 C+a / C+e
?← / ?→ 按單詞前移/后移,相當(dāng)與 C+f / C+b,其實(shí)這個(gè)功能在Iterm中已經(jīng)預(yù)定義好了,?f / ?b,看個(gè)人習(xí)慣了
當(dāng)然除了這些可以自定義的也不能忘了 linux 下那些好用的組合
| 命令 | 介紹 |
|---|---|
| C+a / C+e | 這個(gè)幾乎在哪都可以使用 |
| C+p / !! | 上一條命令 |
| C+k | 從光標(biāo)處刪至命令行尾 (本來(lái) C+u 是刪至命令行首,但iterm中是刪掉整行) |
| C+w A+d | 從光標(biāo)處刪至字首/尾 |
| C+h C+d | 刪掉光標(biāo)前后的自負(fù) |
| C+y | 粘貼至光標(biāo)后 |
| C+r | 搜索命令歷史,這個(gè)較常用 |
iTerm2 常用快捷鍵
快捷鍵介紹
| 命令 | 介紹 |
|---|---|
| 輸入的命令開(kāi)頭字符 + Command + ; | 根據(jù)輸入的前綴歷史記錄自動(dòng)補(bǔ)全 |
| Command + ; | 根據(jù)歷史記錄自動(dòng)補(bǔ)全 |
| Command + [ 或 command + ] | 切換屏幕 |
| Command + enter | 進(jìn)入全屏模式,再按一次返回 |
| Command + 鼠標(biāo)單擊 | 可以打開(kāi)文件,文件夾和鏈接(iTerm2 是可以對(duì)顯示的內(nèi)容進(jìn)行點(diǎn)擊的哦) |
| Command + n | 新建新的 Window 窗口 |
| Command + t | 新建標(biāo)簽頁(yè) |
| Command + w | 關(guān)閉當(dāng)前標(biāo)簽或是窗口 |
| Command + d | 豎直分屏 |
| Command + r | 清屏 |
| Command + / | 按完之后,整個(gè)屏幕變成白茫茫的,而光標(biāo)位置是一個(gè)小圓圈清除顯示出來(lái) |
| Command + 方向鍵 | 切換標(biāo)簽頁(yè) |
| Command + 數(shù)字 | 切換到指定數(shù)字標(biāo)簽頁(yè) |
| Command + f | 查找,所查找的內(nèi)容會(huì)被自動(dòng)復(fù)制 ,輸入查找的部分字符,找到匹配的值按 tab,即可復(fù)制,帶有補(bǔ)全功能 |
| Command + option + e | 全屏并排展示所有已經(jīng)打開(kāi)的標(biāo)簽頁(yè),帶有可以搜索。 |
| Command + Option + b | 歷史回放,i類似視頻錄像的東西,有記錄你最近時(shí)間內(nèi)的操作。有一個(gè)類似播放器的進(jìn)度條可以拖動(dòng)查看你做了什么。存放內(nèi)容設(shè)置(Preferences -> Genernal -> Instant Replay)。 |
| Command + Option + 數(shù)字 | 切換 Window 窗口 |
| Command + shift + d | 水平分屏 |
| Command + shift + h | 查看剪貼板歷史,在光標(biāo)位置下方會(huì)出現(xiàn)一列你輸入過(guò)的歷史記錄 |
| Command + Shift + m | 可以保存當(dāng)前位置,之后可以按Command + Shift + j跳回這個(gè)位置。 |
| Command + shift + alt + w | 關(guān)閉所有窗口 |
| Control + u | 清空當(dāng)前行,無(wú)論光標(biāo)在什么位置 |
| Control + a | 移動(dòng)到行首 |
| Control + e | 移動(dòng)到行尾 |
| Control + f | 向前移動(dòng),相當(dāng)于方向鍵右 |
| Control + b | 向后移動(dòng),相當(dāng)于方向鍵左 |
| Control + p | 上一條命令,相當(dāng)于方向鍵上 |
| Control + n | 下一條命令,相當(dāng)于方向鍵下 |
| Control + r | 搜索歷史命令 |
| Control + y | 召回最近用命令刪除的文字 |
| Control + h | 刪除光標(biāo)之前的字符 |
| Control + d | 刪除光標(biāo)所在位置的字符 |
| Control + w | 刪除光標(biāo)之前的單詞 |
| Control + k | 刪除從光標(biāo)到行尾的內(nèi)容 |
| Control + c | 結(jié)束當(dāng)前狀態(tài),另起一行 |
| Control + t | 交換光標(biāo)和之前的字符 |
powerline
Powerline是vim的狀態(tài)行插件,并為其他幾個(gè)應(yīng)用程序提供狀態(tài)和提示,包括zsh,bash,tmux,IPython,Awesome和Qtile。

//沒(méi)有安裝pip先安裝pip
sudo easy_install pip
//之后安裝powerline(這里可能會(huì)報(bào)錯(cuò),可以參考問(wèn)題解決)
pip install powerline-status
安裝powerline字體庫(kù)fonts
//克隆字體庫(kù)到本地
git clone https://github.com/powerline/fonts.git
//安裝字體
cd fonts
./install.sh
安裝成功之后輸出:
? fonts git:(master) ./install.sh
Copying fonts...
Powerline fonts installed to /Users/WENBO/Library/Fonts
Powerlevel9k

Install Instructions · bhilburn/powerlevel9k Wiki
Option 2: Install for Oh-My-ZSH
To install this theme for use in Oh-My-Zsh, clone this repository into your OMZ custom/themesdirectory.
$ git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
You then need to select this theme in your ~/.zshrc:
注意安裝后的發(fā)現(xiàn)沒(méi)有生效,這里需要是在第二層路徑。
ZSH_THEME="powerlevel9k/powerlevel9k"
參考超簡(jiǎn)單!十分鐘打造漂亮又好用的 zsh command line – Statementdog-Engineering – Medium
OnMyZch

[oh-my-Zsh](<https://github.com/robbyrussell/oh-my-Zsh)
zsh切換bash bash切換zsh
-
zsh切換bash
chsh -s /bin/bash -
bash切換zsh
chsh -s /bin/zsh
安裝 Zsh + oh-my-Zsh
Zsh 官網(wǎng):https://www.`Zsh`.org/
oh-my-Zsh 官網(wǎng):http://ohmyz.sh/
先說(shuō)下:Zsh 和 oh-my-Zsh 的關(guān)系
Zsh 是 Shell 中的一種,什么 Shell 你可以再搜索下,簡(jiǎn)單粗暴講就是一個(gè):命令解釋器,你輸入什么命令,它就執(zhí)行什么,這個(gè)東西再 Unix 世界還有其他幾個(gè)。
由于 Zsh 配置門檻有點(diǎn)高,或者說(shuō)需要專門花時(shí)間去了解 Zsh 才能配置好一個(gè)好用的 Zsh,也因?yàn)檫@樣,用戶也就相對(duì)少了。
直到有一天 oh-my-Zsh 的作者誕生,他想要整理出一個(gè)配置框架出來(lái),讓大家直接使用他的這個(gè)公認(rèn)最好的 Zsh 配置,省去繁瑣的配置過(guò)程。所以,oh-my-Zsh 就誕生了,它只是會(huì)了讓你減少 Zsh 的配置,然后又可以好好享受 Zsh 這個(gè) Shell。
Mac 和一般 Linux 默認(rèn)的 shell 是 bash,一般人都覺(jué)得不好用,我作為一般人,也喜歡 Zsh,所以這里就用 Zsh。
為了簡(jiǎn)化配置 Zsh 過(guò)程,我們這里選擇 oh-my-Zsh 這個(gè)配置庫(kù),這是目前大家公認(rèn)好用的配置。
打開(kāi)終端,先安裝 git(已經(jīng)安裝的跳過(guò)該步驟),輸入命令:brew install git
打開(kāi)終端,安裝 wget 工具,輸入命令:brew install wget
打開(kāi)終端,安裝 Zsh:brew install Zsh
打開(kāi)終端,安裝 oh-my-Zsh:sh -c "$(wget <https://raw.githubusercontent.com/robbyrussell/oh-my-Zsh/master/tools/install.sh -O -)"
下載完后,會(huì)提示你輸入當(dāng)前登錄系統(tǒng)的用戶密碼,輸入完成之后就會(huì)從 bash 切換到 Zsh,如果你沒(méi)有輸入密碼直接跳過(guò)了,可以運(yùn)行該命令進(jìn)行手動(dòng)切換:chsh -s /bin/Zsh 你當(dāng)前系統(tǒng)用戶名
切換完成之后,關(guān)掉終端,重新打開(kāi)終端即可
如果你需要修改 oh-my-Zsh 的主題,和安裝 Zsh 插件,具體可以看我過(guò)去整理的這篇文章:Zsh
Zsh 軟件特色
不區(qū)分大小寫智能提示。我是不喜歡大小寫區(qū)分的那種人,所以用了 Zsh 之后,經(jīng)常按 Tab 進(jìn)行提示。
此外按下 tab 鍵顯示出所有待選項(xiàng)后,再按一次 tab 鍵,即進(jìn)入選擇模式,進(jìn)入選擇模式后,按 tab 切向下一個(gè)選項(xiàng),按 shift + tab 鍵切向上一個(gè)選項(xiàng),ctrl+f/b/n/p 可以向前后左右切換。
kill + 空格鍵 + Tab鍵,列出運(yùn)行的進(jìn)程,要啥哪個(gè)進(jìn)程不需要再知道 PID 了,當(dāng)然了 Zsh,提供了讓你知道PID 的方法:
比如輸入:kill vim,再按下 tab,會(huì)變成:kill 5643
ls **/*,分層級(jí)地列出當(dāng)前目錄下所有文件及目錄,并遞歸目錄
ls *.png 查找當(dāng)前目錄下所有 png 文件
ls **/*.png 遞歸查找
Zsh 的目錄跳轉(zhuǎn)很智能,你無(wú)需輸入 cd 就可直接輸入路徑即可。比如:.. 表示后退一級(jí)目錄,../../ 表示后退兩級(jí),依次類推。
在命令窗口中輸入:d,將列出當(dāng)前 session 訪問(wèn)過(guò)的所有目錄,再按提示的數(shù)字即可進(jìn)入相應(yīng)目錄。
給 man 命令增加結(jié)果高亮顯示:
編輯配置文件:vim ~/.Zshrc,增加下面內(nèi)容:
# man context highlight
export LESS_TERMCAP_mb=$'\E[01;31m' # begin blinking
export LESS_TERMCAP_md=$'\E[01;38;5;74m' # begin bold
export LESS_TERMCAP_me=$'\E[0m' # end mode
export LESS_TERMCAP_se=$'\E[0m' # end standout-mode
export LESS_TERMCAP_so=$'\E[38;5;246m' # begin standout-mode - info box
export LESS_TERMCAP_ue=$'\E[0m' # end underline
export LESS_TERMCAP_us=$'\E[04;38;5;146m' # begin underline
刷新配置文件:source ~/.zshrc,重新查看 man 的命令就可以有高亮了。
2.7.更新oh-my-zsh
Linux終極shell-Z Shell-用強(qiáng)大的zsh & oh-my-zsh把Bash換掉
默認(rèn)情況下, 您將被提示檢查每幾周的升級(jí). 如果你想我ZSH自動(dòng)升級(jí)本身沒(méi)有提示你, 修改`~/.zshrc
disable_update_prompt = true
禁用自動(dòng)升級(jí), 修改~/.zshrc
disable_auto_update = true
當(dāng)然你也可以選擇手動(dòng)更新
如果你想在任何時(shí)間點(diǎn)升級(jí)(也許有人剛剛發(fā)布了一個(gè)新的插件,你不想等待一個(gè)星期?)你只需要運(yùn)行:
upgrade_oh_my_zsh
2.8.卸載oh-my-zsh
如果你想卸載oh-my-zsh, 只需要執(zhí)行uninstall_oh_my_zsh zsh, 從命令行運(yùn)行. 這將刪除本身和恢復(fù)你以前的bash或者zsh配置.
uninstall_oh_my_zsh zsh
3.更多任性的功能, 速度來(lái)感受吧
1]兼容 bash,原來(lái)使用 bash 的兄弟切換過(guò)來(lái)毫無(wú)壓力,該咋用咋用。
2]強(qiáng)大的歷史紀(jì)錄功能,輸入 grep 然后用上下箭頭可以翻閱你執(zhí)行的所有 grep 命令。
3]智能拼寫糾正,輸入gtep mactalk * -R,系統(tǒng)會(huì)提示:zsh: correct ‘gtep’ to ‘grep’ [nyae]? 比妹紙貼心吧,她們向來(lái)都是讓你猜的……
4]各種補(bǔ)全:路徑補(bǔ)全、命令補(bǔ)全,命令參數(shù)補(bǔ)全,插件內(nèi)容補(bǔ)全等等。觸發(fā)補(bǔ)全只需要按一下或兩下 tab 鍵,補(bǔ)全項(xiàng)可以使用 ctrl+n/p/f/b上下左右切換。比如你想殺掉 java 的進(jìn)程,只需要輸入 kill java + tab鍵,如果只有一個(gè) java 進(jìn)程,zsh 會(huì)自動(dòng)替換為進(jìn)程的 pid,如果有多個(gè)則會(huì)出現(xiàn)選擇項(xiàng)供你選擇。ssh + 空格 + 兩個(gè)tab鍵,zsh會(huì)列出所有訪問(wèn)過(guò)的主機(jī)和用戶名進(jìn)行補(bǔ)全
5]智能跳轉(zhuǎn),安裝了autojump之后,zsh 會(huì)自動(dòng)記錄你訪問(wèn)過(guò)的目錄,通過(guò) j + 目錄名 可以直接進(jìn)行目錄跳轉(zhuǎn),而且目錄名支持模糊匹配和自動(dòng)補(bǔ)全,例如你訪問(wèn)過(guò)hadoop-1.0.0目錄,輸入j hado 即可正確跳轉(zhuǎn)。j –stat 可以看你的歷史路徑庫(kù)。
6]目錄瀏覽和跳轉(zhuǎn):輸入 d,即可列出你在這個(gè)會(huì)話里訪問(wèn)的目錄列表,輸入列表前的序號(hào),即可直接跳轉(zhuǎn)。
7]在當(dāng)前目錄下輸入 .. 或 … ,或直接輸入當(dāng)前目錄名都可以跳轉(zhuǎn),你甚至不再需要輸入 cd 命令了。
8]通配符搜索:ls -l */.sh,可以遞歸顯示當(dāng)前目錄下的 shell 文件,文件少時(shí)可以代替 find,文件太多就歇菜了。
9]更強(qiáng)的別名
10]插件支持
配置pure(refined)主題
-
首先,顯示隱藏文件,進(jìn)入
oh-my-zsh文件的自定義目錄,$ .oh-my-zsh/custom/,創(chuàng)建一個(gè)theme文件夾,存放你自定義的theme.
(pure已經(jīng)在默認(rèn)主題中,只需要引用) -
pure的改名警告??
pure的作者把名字改成了“refined”,把.zshrc文件的ZSH_THEME改成“refined”.就可以了

配置spaceship主題

.zshrc文件的引號(hào)問(wèn)題
報(bào)錯(cuò):/Users/xxx/.oh-my-zsh/oh-my-zsh.sh:source:110: no such file or directory: /Users/xxx/.oh-my-zsh/themes/”refined”.zsh-theme
其實(shí)是因?yàn)? 變成-> “了, 自己打上去會(huì)被改成“,修改為"。

iterm2-snazzy
Elegant iTerm2 theme with bright colors
iterm2-snazzy

To get the exact same look as in the screenshot, you need to use the
[Pure prompt](https://github.com/sindresorhus/pure),Menlo font, and the[zsh-syntax-highlighting plugin](https://github.com/zsh-users/zsh-syntax-highlighting)to have commands highlighted.
記得在iterm2的顏色切換成snazzy
zsh-syntax-highlighting問(wèn)題
1.首先cd 到 Users/USERNAME/.oh-my-zsh/custom/plugins
執(zhí)行git clone https://github.com/zsh-users/zsh-syntax-highlighting.git

-
配置
.zshrc文件
plugins=(zsh-syntax-highlighting)
source ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
最后執(zhí)行配置
執(zhí)行source ~/.zshrc
Resource其他資源
Zsh插件 Plugins

Awesome-Zsh-Plugins插件庫(kù)
IDE

Hyper一個(gè)輕量簡(jiǎn)潔的終端
常用文件目錄
/usr/bin : 所有可執(zhí)行文件,如 gcc,firefox 等(指不包含在 /sbin 和 /bin 內(nèi)的);
/usr/include : 各種頭文件,編譯文件等時(shí)需要使用;
/usr/include/’package-name’ : 程序特定的頭文件;
/usr/lib : 所以可執(zhí)行文件所需要的庫(kù)文件;
/usr/local : 這里主要存放那些手動(dòng)安裝的軟件,即 不是通過(guò)“新立得”或apt-get安裝的軟件 。 它和/usr目錄具有相類似的目錄結(jié)構(gòu) 。讓軟件包管理器來(lái)管理/usr目錄,而把自定義的腳本(scripts)放到/usr/local目錄下面,我想這應(yīng)該是個(gè)不錯(cuò)的主意。
/usr/X11R6 : x 系統(tǒng)的二進(jìn)制文件,庫(kù)文件,文檔,字體等。它不等同于 /usr 的作用,只有 x 才能調(diào)用這些庫(kù)文件等,其他程序不讀取或者使用。因?yàn)?linux 沒(méi)有原生圖形界面,而且 linux 大部分情況下是 for server 的,所以圖形界面沒(méi)有意義;其中 X11R6 代表 version 11 release 6;
/usr/X11R6/bin : x 的二進(jìn)制文件,包含運(yùn)行 x 的必須文件;
/usr/X11R6/include : x 相關(guān)的頭文件;
/usr/X11R6/lib : x 庫(kù)文件;
/usr/X11R6/lib/modules : x 的模塊,啟動(dòng)時(shí)加載。缺少 video4linux, DRI and GLX 和 輸入輸出設(shè)備 模塊,將工作不正常;
/usr/X11R6/lib/X11/fonts : x font server 的字體文件;
/usr/doc : 文檔。實(shí)際是 /usr/share/doc 的軟鏈接;
/usr/etc : 一個(gè)極少用到的配置文件存放地;
/usr/games : 曾經(jīng)包含游戲等文件,現(xiàn)在很少用到;
/usr/info : 系統(tǒng)相關(guān)信息,是 /usr/share/info 的軟鏈接;
/usr/man : man 手冊(cè),已經(jīng)移至 /usr/share/man;
/usr/sbin : 類似 /sbin,root 可以執(zhí)行。但此目錄不包含在環(huán)境變量 $PATH 中,它包含的程序類似于 chroot, useradd, in.tftpd and pppconfig;
/usr/share : 它包含了各種程序間的共享文件,如字體,圖標(biāo),文檔等。(/usr/local 對(duì)應(yīng)的目錄是 /usr/loca/share);
/usr/share/doc : 類似應(yīng)用程序的 man 手冊(cè)。它包含程序的說(shuō)明文件,默認(rèn)配置文件等;
/usr/share/info : 不常用,已經(jīng)被 man 代替;
/usr/share/man : app 的 manual;
/usr/share/icons : 應(yīng)用程序的圖標(biāo)等文件,分為 png,svg 等多種格式;
/usr/share/fonts : 字體文件,系統(tǒng)范圍內(nèi)可使用,~/.fonts 僅當(dāng)前用戶可用;
/usr/src : linux 內(nèi)核的源碼和說(shuō)明文檔等;
/usr/src/linux : linux 源代碼;
/usr/src/linux/.config : 內(nèi)核編譯過(guò)程產(chǎn)生的文件;通常由命令 ‘make config’ , ‘make menuconfig’ 或 ‘make xconfig’ 執(zhí)行后產(chǎn)生;
/usr/src/linux/.depend, /usr/src/linux/.hdepend : ‘make dep’ 檢測(cè)編譯依賴時(shí)需要的文件,由 /usr/src/linux/.config 產(chǎn)生;
/usr/src/linux/COPYING : GNU license;
/usr/src/linux/Makefile : 編譯內(nèi)核所需的 Makefile;
/usr/src/linux/Rules.make : 當(dāng)有多個(gè) Makefile 時(shí),根據(jù)它的規(guī)則執(zhí)行 make;
/usr/tmp : 已經(jīng)被眾多發(fā)行版拋棄的臨時(shí)文件夾。
參考資料
iTerm2
- iTerm2 - Mac 開(kāi)發(fā)配置手冊(cè) - 極客學(xué)院Wiki
- 你應(yīng)該知道的 iTerm2 使用方法--MAC終端工具
- iTerm - 讓你的命令行也能豐富多彩 - SwiftCafe 享受代碼的樂(lè)趣
- Terminal 代理方案 - 楊輝的個(gè)人博客
- Mac下iTerm2+Tmux配置 - Karrdy - SegmentFault
- Mac 下配置終端環(huán)境 iTerm2 + Zsh + Oh My Zsh + tmux | 明無(wú)夢(mèng)
Tmux
- Tmux 入門介紹 - 文章 - 伯樂(lè)在線
- 我的tmux配置及說(shuō)明【k-tmux】
- Tmux - Linux從業(yè)者必備利器 ? cenalulu's Tech Blog
- linux下的終端利器----tmux - CSDN博客
- Linux終極shell-Z Shell-用強(qiáng)大的zsh & oh-my-zsh把Bash換掉









