天天看點

熟練使用 Mac OS 指令行,提高程式員生産力,隻需掌握這6組指令和技巧

熟練使用指令行是一種常常被忽視的技能。但實際上,熟練使用指令行是一個程式員的必備技能。以前端程式員為例,啟動項目,停止項目,建構項目都需要指令行。同時,熟練掌握指令行還能提高程式員的生産力。做有些事,用指令行比用圖形工具快。如:在

/GitHub/note

下建立檔案夾

test

,用指令行隻需要輸入

cd /GitHub/note && mkdir test

,用圖像界面需要點選兩次滑鼠到

/GitHub/note

下,右擊

建立檔案夾

再鍵入内容。

指令行支援上千條指令,本文隻選了常用的6組指令和技巧:提升輸入指令速度技巧,檔案夾與檔案操作指令,管道指令,網絡指令,字元串操作指令,系統操作指令。

注意:本文介紹的指令記針對的是 Mac OS 系統。

第1組 提升輸入指令速度技巧

補全指令

按 tab 鍵可以補全指令和檔案路徑。如果按 tab 啥都沒發生,表示有超過一個指令或路徑滿足目前的輸入内容,連按兩下 tab 檢視滿足條件的所有指令。

搜尋指令記錄

輸入 ctrl-r 搜尋指令記錄。

輸入上箭頭鍵,顯示最近一條執行的指令。按多次上箭頭鍵,看更久的指令。下箭頭與上箭頭的功能相反。

檢視使用文檔

man

指令來檢視某個指令的使用文檔。如:

man ls # 檢視ls指令文檔
man -k ls # 搜尋的ls相關的指令           

複制

推薦使用線上工具explainshell來看指令的文檔。

設定别名

alias

來檢視和設定别名。通過設定别名,可以很長或難記的指令,變成自定義的别名。例如:

grep

可以加參數

--color=auto

實作搜尋結果中高亮顯示搜尋字元串的功能。但每次使用

grep

都得要自行加上

--color=auto

又顯的很麻煩,可以通過下面的指令來設定别名:

alias grep='grep --color=auto'           

複制

然後,執行下面的指令使别名生效。

source ~/.bashrc           

複制

直接執行

alias

可以檢視目前設定的所有的的别名。

快捷鍵

指令行預設用的是 Emacs 的快捷鍵。光标移動,删除内容都可以用 Emacs 的快捷鍵。如:ctrl-a 可以将光标移至行首,ctrl-e 可以将光标移至行尾,ctrl-k 可以删除光标至行尾的所有内容,ctrl-u 可以删除行内光标所在位置之前的内容。

執行下面的指令,可以設定成 vi 風格的快捷鍵。

set -o vi           

複制

改回來

set -o emacs           

複制

清屏

可以用指令

clear

來清屏。

第2組,最常用的指令: 檔案目錄與檔案操作指令

檔案目錄操作

建立

mkdir

建立目錄。

mkdir 檔案夾名
mkdir -p a/b/c # 建立多級目錄           

複制

進入目錄

cd

指令來進入目錄。很多指令必須進入指定目錄才能執行。比如,需要進入

package.json

所在的目錄,執行

npm

相關的指令。

cd 目錄名稱 # 進入指定目錄中
cd .. # 進入上級目錄
cd / # 進入根路徑
cd ~ # 進入工作目錄
cd - # 進入上次通路的目錄
cd 在Finder中,将目标目錄托拽到指令行中           

複制

注意:如果目錄名稱中包含 空格,引号,

[

,

]

,

*

,

|

等特殊字元時,路徑需要用

""

把路徑包起來。

在 Finder 中打開目前路徑

open .           

複制

檢視目前路徑

pwd

指令來檢視目前路徑。

pwd           

複制

檢視目前路徑下的檔案

ls

指令來檢視目前路徑下的檔案。

ls
ls -a # 顯示隐藏檔案
ls -l # 檢視詳細資料,如權限,建立人等
tree # 以樹形結構顯示目錄結構           

複制

删除目錄

rm

指令來删除目錄。

rm 檔案夾名
rm -r 檔案夾名 # 删除該檔案夾及包含的檔案           

複制

移動目錄或檔案

mv

指令來移動目錄或檔案。

mv 原路徑 新路徑           

複制

檔案操作

建立檔案

touch

指令建立檔案。

# 建立
touch 檔案名           

複制

檢視檔案

有很多指令可以檢視檔案。如:

cat 檔案名 # 檢視檔案内容。不支援修改
vi 檔案名 # 用 vi 打開。支援直接修改
less 檔案名
head 檔案名 # 檢視檔案的開頭一行
tail 檔案名 # 檢視檔案的最後一行           

複制

通過檔案名搜尋檔案

find

指令來通過檔案名搜尋檔案。 具體用法:

find . -name 檔案名 # 檔案名支援正則           

複制

修改檔案權限

chomd

指令來修改檔案的權限。具體用法:

chomd 檔案權限 檔案路徑           

複制

檢視檔案類型

file

指令來檢視檔案類型。如果一個檔案缺失了擴充名,那麼這個指令可能會非常有用。具體用法:

file 檔案路徑           

複制

如果是圖檔檔案,還會

file

指令的執行結果還會顯示圖檔的尺寸、顔色數等資訊。

第3組 管道指令:展示指令行的真正強大之處

管道指令是一種通信機制,它表現出來的形式是将前面指令的輸出直接作為下一個指令的輸入。

重定向管道

|

連接配接2個指令,可以将

|

左邊的指令的運作結果做為輸入輸出。如:

cat README.md | say # 把 README.md 讀出來
history | grep 'git status' -c # 統計指定指令執行了多少次           

複制

重定向輸出

>

>>

将指令的執行結果輸出到檔案。

>

>>

的差別是:

>

會覆寫了輸出檔案而

>>

是在檔案末添加。如

tree > output.txt
cat a.txt >> b.txt # 将 a.txt 中的内容追加到 b.txt           

複制

第4組 字元串操作指令

通配符

常見的通配符包括:

  • *

    : 比對任何長度的任何字元。
  • ?

    : 比對任何單個字元。
  • []

    : 比對

    []

    範圍内的字元。

搜尋字元串

grep

指令來搜尋字元串。 如:

grep 搜尋字元串 檔案
grep 搜尋字元串 檔案 --color=auto #高亮搜尋結果
grep 搜尋字元串 -n #字元串出現的次數           

複制

第5組 系統操作指令

結束目前指令行的執行

yong ctrl-c

殺死程序

kill 程序id           

複制

用管理者權限運作指令

sudo 指令           

複制

切換帳号

su 帳号           

複制

第6組 網絡操作

檢視ip

ifconfig           

複制

看某個ip能不能通路的通

ping ip           

複制

端口占用情況

sudo lsof -i :端口号           

複制

幾個裝逼的指令

文字轉語音

say

指令來将文字轉語音。

say 文字内容           

複制

在眼睛累的使用,可以把某個檔案的内容讀處理。指令:

cat README.md | say           

複制

顯示月曆

下面的指令可以顯示 上個月,本月,下個月的月曆。

cal -3           

複制

推薦閱讀&參考文檔

  • 指令行的藝術
  • Explainshell 指令的文檔。