終端主要的目的是可以讓我們在檔案系統中進行四處瀏覽和開啟/執行某些東西,只是在 windows 上我們之前都是用 GUI 介面進行操作的,現在是在終端中使用 shell 命令進行操作而已。
Shell命令
pwd
pwd(Print Working Directoy): 列印當前工作目錄,表示的是你當前所在的檔案位置
cd
cd(Change Directoy):表明切換當前工作目錄,cd 可以接兩種形式的命令,一種是相對路徑,一種是絕對路徑。
-
相對路徑
-
.
一個 dot 表示是當前工作目錄 -
..
兩個 dot 表示是當前工作目錄的父級目錄
-
-
絕對路徑: cd 直接跟路徑名即可,使用絕對路徑是有一個很常見的問題就是如果路徑很長,得手動輸入路徑,這要求很高而且很容易出錯,這時有一個小技巧就是 Tab 鍵,可以書寫路徑時結合 Tab 鍵進行聯想,終端會自動補全,比如說下圖中的去 test 目錄,輸入一個 te 後按 Tab 就能夠自動補全路徑。(注意,如果輸入的已知路徑存在重名,Tab 會推導失敗)。
其中在 git bash 裡 ~
表示的是系統使用者根目錄
ls
ls(list): 表示的是當前工作目錄下的檔案列表,其中高亮的表示是資料夾,顏色較淺的就是單檔案
mkdir/touch
mkdir 建立資料夾
touch 建立檔案
mkdir stuff // 建立stuff資料夾
cd stuff
touch a.txt // 建立a.txt檔案
rm/rf
rm 是刪除單個檔案的指令
但是 rm 預設情況下是不能刪除資料夾的,但是可以透過 r flag 改變這種規則, 表示的是 遞迴(recursive),它會遞迴刪除 test 資料夾內的所有東西,包括資料夾本身,這個 flag 常和 flag f(-f,–force)結合一起使用,rm -rf something
強制遞迴刪除資料夾內的所有東西包括它本身
謹慎使用rm -rf something
,這個命令不會有確認刪除的提示,而且刪除的內容不會出現在回收站內,一旦資料刪除不可找回
la
l
表示”long”,將列印用更詳細的資料列印目錄內容,包括創鍵時間修改時間等資訊a
表示”all”,列印所有的檔案,包括隱藏的檔案(windows 的資源管理器會預設隱藏一些檔案)
終止命令
有時候一些程式是長期執行的,有時候需要中斷,一個很常見得場景是本地開啟的一個開發伺服器進行 Vue 或者 React 開發時,不在開啟應用時需要終止這個程式。可以使用ctrl + c
,有時候如果ctrl + c
不奏效可以使用ctrl + d
如果進入了 Vim 模式的話,退出編輯模式使用ESC
,按住:q
可以退出模式,編輯後想儲存退出使用:wq
開發命令
開啟 IDE
cd /path/to/project
# . 表示當前工作目錄
code .
從 package.json
中安裝專案依賴
npm install
或
yarn
開發過程中,有時候想快速執行一些第三方庫的命令,並統一到 npm script 時就會用到,常見的如測試命令,部署命令,提交命令等等,這些都在 package.json 的 scripts 欄位裡進行配置。
{
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"commit": "cz
}
}
向 package.json
新增/安裝新的專案依賴
npm install {庫名} --save
或
yarn add {庫名}
向 package.json
新增/安裝新的dev專案依賴(devDependency)
npm install {庫名} --save-dev
或
yarn add {庫名} --dev
刪除某個依賴專案
npm uninstall package --save
或
yarn remove package
重新安裝依賴
cd path/to/project
rm -rf node_modules
npm install
升級某個依賴專案
npm update --save
或
yarn upgrade
全域性安裝某專案依賴(慎用)
npm install package -g
或
yarn global add package
git命令
# Download a Git repository onto
# your local machine
git clone [URL]
# Check which files have been modified
git status -s
# View changes
git diff
# Stage all files
git add .
# Commit staged files
git commit -m "Short descriptive message"
# Create a new local branch
git switch -c [new branch name]
# Switch branches
git switch [branch name]
# Push your code to Github (or wherever
# the project lives)
git push origin [branch name]
# Start an interactive rebase
git rebase -i [branch name or commit hash]