寫在前面
命令列已經成為前端程式員必備的一項基礎技能,如今的前端開發嚴重依賴命令列,通過 node 部署前端開發環境,通過 git 實作版本管理,命令列還可以更有效地控制作業系統(mac 尤甚),熟練地掌握命令列,可以極大地提升作業效率,本文將介紹前端開發所需要的常用命令列操作
定義
命令列( command line ) 是一個應用程式,它是一個基于文本(或者說基于命令)的進行檔案操作的應用程式,類似于 mac 中的 Finder 或者 Windows 中的資源管理器,但是沒有圖形界面
一般地,命令列( command line )又代指命令列界面( command line interface ),簡稱為CLI,也稱為字符用戶界面,在 Windows 中稱為 cmd 或者 命令提示符,在 Mac 中稱為 終端 或者 控制臺,在 Linux 中稱為 shell(常見的是 bash )

常用命令
DOS 系統和 Linux 系統的命令有些不同,下面主要介紹 Linux 系統下的 bash 命令
一般規則
在了解命令列常用命令之前,要先了解命令列的一般規則,如果命令列正確執行,則界面不會有任何反饋;如果錯誤執行,則會提示報錯資訊
特殊符號
# 代表注釋
\ 代表轉義字符,可以將特殊符號變成一般字符
$ 代表的是目前這個 Shell 的執行緒代號,即是所謂的 PID(process ID),使用echo $$,出現的數字就是 SHELL 的 PID 代碼
$ echo $$ # 5477
? 是一個特殊的變數,代表上一個執行的命令所回傳的值,如果成功執行該命令,則會回傳一個 0 值,如果執行程序發生錯誤,就會回傳一個非 0 的值
$ echo $? # 0
縮寫
所謂的命令實際上就是單詞的縮寫,有以下幾種常見縮寫方式:
1、最常見的縮寫是取每個單詞的首字母
cd Change Direcroty 切換目錄
2、如果首字母后為h,則保留h
chmod CHange MODe 切換檔案權限
3、 如果只有一個單詞,通常取每個音節的首字母
cp Copy 檔案拷貝
4、取前幾個字母作為縮寫
diff DIFFerences 比較檔案差異
操作命令
clear 清屏
unset 取消變數
$ unset abc # 取消變數 abc
alias 用來設定別名,單獨使用alias,可以查看當前已經設定的別名;unalias 用來取消設定的別名
$ alias # 查看當前已經設定的別名
$ alias lm='ls -l | more' # 設定別名 lm
$ unalias lm # 取消別名 lm 的設定
open 可以使用默認方式打開檔案,使用 alias 和 open 配合,可以使用命令列來打開網頁
alias cnblogs='open https://cnblogs.com'
目錄命令
【特殊符號】
.表示當前目錄
..表示上級目錄
-表示前一次目錄
~表示用戶目錄
【顯示目錄】
pwd # print work directory 顯示當前作業目錄的絕對路徑
【切換目錄】
cd # change directory 切換作業目錄
# 如果不帶任何引數,或使用波浪號(~),切換到用戶目錄
【創建目錄】
mkdir # make directory 創建目錄
$ mkdir a # 創建目錄 a
$ mkdir b c # 創建目錄 b 和 c
$ mkdir -p a/b/c # 創建有層級的目錄(a/b/c),需要使用 -p 選項
【洗掉目錄】
rmdir # 洗掉空目錄
rm -r # 洗掉目錄及該目錄下的所有目錄及檔案
$ rm -r a # 洗掉目錄 a
# 千萬不要使用 rm -rf /,該命令會洗掉所有檔案
【復制目錄】
cp # copy 復制檔案(或目錄)
$ cp -r a b # 將目錄 a 復制到目錄 b
【移動目錄】
mv # move 移動檔案(或目錄)),或者重命名
$ mv a b # 將目錄 a 從當前目錄移動到目錄 b 下
$ mv a b # 如果沒有目錄 b,則目錄 a 重命名為目錄 b
檔案命令
【特殊符號】
> 表示覆寫
>> 表示累加
【顯示目錄下檔案】
ls # 顯示該目錄下的所有檔案 list files,默認不顯示以點開頭的檔案
ls -a # 顯示所有檔案,包括隱藏檔案
ls -l # 顯示每個檔案的詳細資訊
ls ./y # 顯示指定路徑 ./y 下的所有檔案
【查看檔案內容】
open # 使用默認軟體打開檔案
cat # 顯示檔案內容
其實,更常用的檔案查看方式是使用 vscode
$ code a.txt # 使用 vscode 打開 a.txt 檔案
要使用上述命令,需要進行如下設定:運行 vscode 并打開命令面板(??P ),輸入 shell command 找到: Install ‘code' command in PATH,并點擊
【新建檔案】
touch # 創建檔案
$ touch a.txt # 創建空檔案a.txt,如果a.txt已經有內容,則修改檔案最后更新時間
echo # 輸出字串,也可以新建或改寫檔案
$ echo 123 # 輸入字串'123'
$ echo -e '111\n222' # 輸入多行內容,需要使用-e選項
$ echo 123 > 1.txt # 將1.txt的內容改寫為'123'
$ echo abc >> 1.txt # 向1.txt追加內容,則1.txt的內容為'123 \n abc'
【洗掉檔案】
rm # remove 洗掉檔案
rm -f # 強制洗掉
rm -i # 洗掉檔案之前先詢問確認,用戶回復y或Y之后,檔案才會真的被洗掉
$ rm a.txt # 洗掉檔案a.txt
【復制檔案】
cp # copy 復制檔案(或目錄)
$ cp 1.txt 2.txt # 將1.txt的內容復制到2.txt
【移動檔案】
mv # move 移動檔案(或目錄),或者重命名
$ mv 1.txt 2.txt # 如果在同一目錄下,則將1.txt重命名為2.txt
$ mv 1.txt a # 如果不在同一目錄下,則將1.txt移動到指定的目錄a下
$ mv 1.txt a/2.txt # 也可以在移動到目錄a的同時,重命名為2.txt
快捷鍵
在 Mac 下,iTerm2 需要設定才能使用 alt 快捷鍵
打開 Preferences > Profiles > Keys,left Keys 選擇 Esc+
【游標移動】
ctrl + a 移動到命令列最左側(ahead)
ctrl + e 移動到命令列最右側(end)
alt + b 向左移動一個單詞(back)
alt + f 向右移動一個單詞(forward)
【內容剪貼】
ctrl + k 剪切從游標位置到行尾的字符 (kill)
ctrl + u 剪切從游標位置到行首的字符 (undo)
ctrl + w 或 alt + backspace 剪切游標前的單詞(word)
alt + d 剪切游標后的單詞(delete)
ctrl + y 將剪貼板的內容粘貼到游標處
【控制】
ctrl + c 強制終止當前命令
ctrl + l 清屏
一次 tab 補全
兩次 tab 提示
命令組合
使用多命令執行符和管道符可以實作命令組合的目的
【多命令執行符】
命令1;命令2 多個命令順序執行,命令之間沒有任何邏輯關系
命令1&&命令2 邏輯與,命令1成功,才會執行命令2
命令1||命令2 邏輯或,命令1不成功,才會執行命令2
【管道符】
命令1 | 命令2 命令1的正確輸出作為命令2的操作物件
$ ls -al /etc | less
上面代碼中,使用 ls 命令輸出后的內容就能夠被 less 讀取,并利用 less 的功能,就能夠前后翻動相關的資訊了
腳本檔案
腳本檔案類似于DOS作業系統中的批處理檔案.bat,它可以將不同的命令組合起來,并按確定的順序自動連續地執行
比如,一個常見的需求是把 chrome 的下載目錄中的 excel 檔案存盤到專門的檔案檔案夾里
1、新建并打開腳本檔案
$ touch mvExl.txt
$ chmod + x mvExl.txt
$ code mvExl.txt
2、修改腳本檔案,將 Downloads 目錄下所有的 excel 檔案都移動到 backup 目錄下的 xls 目錄中
mv /Users/xiaohuochai/Downloads/*.xls /Users/xiaohuochai/Desktop/backup/xls
3、執行該檔案即可
sh mvExl.txt
# 或者
sh ./mvExl.txt
當然,可以利用傳參,將其他型別的檔案比如 zip 檔案也移動到 backup 目錄下的 zip 目錄中
# 設定變數
basePath=/Users/xiaohuochai
targetPartPath=Desktop/backup
# 如果不存在 $1 檔案夾,則新建 $1 檔案夾
# $1 表示第一個引數
# -d 表示該檔案名是否存在且是一個目錄
if [ -d $basePath/$targetPartPath/$1 ]; then
echo 'exist'
else
cd $basePath/$targetPartPath
mkdir $1
fi
# 移動檔案
# 注意,如果加上引號,寫成"$basePath/Downloads/*.$1",則 * 只表示 * 本身,而不表示任意字符
mv $basePath/Downloads/*.$1 $basePath/$targetPartPath/$1
echo 'done'

最后
本文只介紹了常用的基本命令,更詳細的命令可查看下面的文章
Linux 常用命令
Linux 命令大全
bash 中文速查
bash 英文速查
命令列解釋
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/147213.html
標籤:Linux
