Linux命令學(xué)習(xí)

Linux命令學(xué)習(xí)

時(shí)間 備注
2017-05-01 start
2018-04-30 添加文件重命名
2018-06-20 整理 & 添加補(bǔ)充grep命令
2018-07-05 整理 & 添加powerline

記錄小白學(xué)習(xí)Linux的過(guò)程。

zsh配合iterm2效果.png

常用命令

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
  1. 在文件 myfile 中查找包含字符串 mystr的行,并顯示匹配行后面n行
    grep -A n mystr myfile

    image

  2. -r 遍歷搜索結(jié)果的目錄


    image
  3. 在文件 myfile 中查找包含字符串 mystr的行
    grep -n mystr myfile

    image

  4. 顯示 myfile 中第一個(gè)字符為字母的所有行
    grep '^[a-zA-Z]' myfile

  5. 在文件 myfile 中查找首字符不是 # 的行(即過(guò)濾掉注釋行
    grep -v '^#' myfile

  6. 列出/etc目錄(包括子目錄)下所有文件內(nèi)容中包含字符串“root”的文件名
    grep -lr root /etc/*

  7. 用grep查找/etc/passwd文件中以a開(kāi)頭的行,要求顯示行號(hào);查找/etc/passwd文件中以login結(jié)束的行;


    image
  8. -m 數(shù)字N最多匹配N個(gè)后停止

[root@localhost shell]# grep -m 2 "a" test.txt
a
abc999     //匹配2個(gè)后停止
[root@localhost shell]#

參考

  1. linux下grep用法 - CSDN博客
  2. grep-非此即彼的博客-51CTO博客

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)前登錄的賬戶

  1. Logout
  2. Login UserName
    如果有密碼,會(huì)提示輸入密碼

正則表達(dá)式

image

Zsh 命令

image

ls 命令

  • ls 顯示當(dāng)前下面的文件及文件夾
  • ls -a 顯示當(dāng)前目錄下的所有文件及文件夾包括隱藏的.和..等
  • ls -al 顯示當(dāng)前目錄下的所有文件及文件夾包括隱藏的.和..等并顯示詳細(xì)信息,詳細(xì)信息包括大小,屬組,創(chuàng)建時(shí)間

歷史命令

  1. 查找歷史命令,今天發(fā)現(xiàn)很好用有木有:
    Ctr + R,不用一個(gè)去查找了.(2017-05-19)╮(?ω?)╭
  2. histroy命令
    histroy會(huì)展示所有命令歷史,可以histroy n展示n條歷史命令。
  3. 執(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),拷貝

  1. 文件移動(dòng)
    $ mv filename path
    mv + 文件名 + 路徑
  2. 文件拷貝
    $ cp filename path文件拷貝到path
  3. 如果要復(fù)制目錄,需要加參數(shù)-r或-R
    例如:$cp /home/a.tar /home/demo
    $ cp –r /home/aaa /home/bbb 其中aaa 、bbb均為目錄。
  4. 將文件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)限。

  1. -v選項(xiàng):提示
 mkdir -v directoryName

結(jié)果: 操作成功后都會(huì)有提示信息。


image
  1. 一次刪除兩個(gè)目錄,用空格分開(kāi): 空目錄1、空目錄2
   rmdir directory1  directory2

結(jié)果:一次刪除了空目錄1、2

  1. -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

命令附圖

image

Bash 命令

讓你提升命令行效率的 Bash 快捷鍵

Mac 命令行下編輯常用的快捷鍵

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。

image
//沒(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

image

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

  1. zsh切換bash
    chsh -s /bin/bash
  2. 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ō)下:Zshoh-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)終端,安裝 Zshbrew install Zsh
打開(kāi)終端,安裝 oh-my-Zshsh -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)主題

  1. 首先,顯示隱藏文件,進(jìn)入oh-my-zsh文件的自定義目錄,$ .oh-my-zsh/custom/,創(chuàng)建一個(gè)theme文件夾,存放你自定義的theme.


    pure已經(jīng)在默認(rèn)主題中,只需要引用)

  2. pure的改名警告??


    pure的作者把名字改成了“refined”,把.zshrc文件的ZSH_THEME改成“refined”.就可以了

image.png

配置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

  1. 配置.zshrc文件
    plugins=(zsh-syntax-highlighting)
    source ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

  2. 最后執(zhí)行配置
    執(zhí)行 source ~/.zshrc

Resource其他資源

Zsh插件 Plugins

image

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

IDE

image

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í)文件夾。

參考資料

  1. 文件和目錄管理_Linux命令大全
  2. Mac 終端命令大全
  3. 看完這篇Linux基本的操作就會(huì)了
  4. 一個(gè)Java程序員眼中的Mac OS(系列六:終端方案iTerm2 + Zsh)

iTerm2

  1. iTerm2 - Mac 開(kāi)發(fā)配置手冊(cè) - 極客學(xué)院Wiki
  2. 你應(yīng)該知道的 iTerm2 使用方法--MAC終端工具
  3. iTerm - 讓你的命令行也能豐富多彩 - SwiftCafe 享受代碼的樂(lè)趣
  4. Terminal 代理方案 - 楊輝的個(gè)人博客
  5. Mac下iTerm2+Tmux配置 - Karrdy - SegmentFault
  6. Mac 下配置終端環(huán)境 iTerm2 + Zsh + Oh My Zsh + tmux | 明無(wú)夢(mèng)

Tmux

  1. Tmux 入門介紹 - 文章 - 伯樂(lè)在線
  2. 我的tmux配置及說(shuō)明【k-tmux】
  3. Tmux - Linux從業(yè)者必備利器 ? cenalulu's Tech Blog
  4. linux下的終端利器----tmux - CSDN博客
  5. Linux終極shell-Z Shell-用強(qiáng)大的zsh & oh-my-zsh把Bash換掉

Grep

  1. linux下grep用法 - CSDN博客
  2. grep-非此即彼的博客-51CTO博客
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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