1. 程式人生 > >cmd 與 bash 基礎命令入門

cmd 與 bash 基礎命令入門

切換目錄 目標 unix 文件中 交互式 例子 過去 bsp 參數

身為一個程序員會用命令行來進行一些簡單的操作,不是顯得很裝逼嘛!?嘿嘿~ ヾ(>?<)


cmd 與 bash 基礎命令入門
??????簡介
??????CMD 基礎命令
????????????目錄操作
??????????????????切換目錄
??????????????????列出文件與子目錄
??????????????????創建目錄
??????????????????刪除目錄
??????????????????復制目錄
??????????????????移動目錄
??????????????????重命名目錄
??????????????????顯示樹形目錄
????????????文件操作

??????????????????新建文件
??????????????????刪除文件
??????????????????復制文件
??????????????????移動文件
??????????????????重命名文件
??????????????????文件內容比較
??????????????????打印文件
??????????????????查找文件
??????????????????根據內容查找文件
????????????環境變量
??????????????????設置環境變量
??????????????????使用環境變量
????????????輔助命令
??????BASH 基礎命令
????????????目錄操作
??????????????????切換目錄
??????????????????列出文件與子目錄
??????????????????創建目錄
??????????????????刪除目錄
??????????????????復制目錄
??????????????????移動目錄
??????????????????重命名目錄
??????????????????顯示樹形目錄
????????????常用目錄說明
????????????文件操作
??????????????????新建文件
??????????????????刪除文件
??????????????????復制文件
??????????????????移動文件
??????????????????重命名文件
??????????????????文件內容比較
??????????????????打印文件
??????????????????查找文件
??????????????????根據內容查找文件
??????????????????壓縮與解壓
??????????????????打包與解包
????????????vi編輯器初探
????????????常用快捷鍵
????????????環境變量
??????????????????設置環境變量
??????????????????使用環境變量
????????????其它常用命令

簡介

在學習 cmdbash 之前,讓我們先了解它們的相關背景,從而更好的認識以及學習它們。

首先,在說 cmd 之前,我們要先說一個操作系統 “DOS(Disk Operating System)”即“磁盤操作系統”。 DOS是基於命令方式來進行工作的,從 1981年到 1995年這15年多的時間內在個人計算機操作系統中,可謂風靡一時,並占據著非常大的市場空間,也衍生了很多其它種類的 DOS系統,但由於其基於命令的工作模式,對於使用者往往有著很高的專業要求,當 window,Macos 等基於圖形化界面的操作系統開始普及後,以其簡單易用的操作模式, DOS 開始被迅速淘汰,雖然 DOS 已經被淘汰,但也並未完全消失,至今哪怕最新版的“window 10” 在其內部都依然保留著 DOS 。 只是這種被保留的DOS 是以一種獨立的應用程序形式存在著,並且在功能上也被進行了精簡,而這個應用程序也就是我們要學習的 “cmd”(命令提示符),在 cmd 中,通過執行特定的 DOS 命令,便可以讓我們在 window 簡單的使用場景中減少對鼠標以及圖形化窗口的依賴。

而說到 bash ,則不得不提 shell ,shell是使用C語言編寫的一個應用程序,它是用戶使用 Unix/Linux 的橋梁,負責把用戶的指令傳遞給內核並且把執行結果回顯給用戶。 shell 定義了一套自己的“命令集”,這些命令既可以在交互式的場景下等待用戶輸入命令然後解釋執行,也可以在批處理的場景下,用戶事先寫一個“Shell腳本”(shell Script,通過很多的 shell命令組合成需要的功能)然後讓 Shell一次性把這些命令執行完,而不必一條一條地敲命令。

說到這裏,讓我們重新梳理對 shell 認識的三個重點,首先 shell是一種應用程序,其次 shell中定義了一套 “shell命令集”,最後 shell命令是通過“shell解釋器”解釋執行,而重點中的重點就在於“shell解釋器”,我們知道 shell 的種類有很多,比如 bash、csh、ksh 等等,那麽是什麽造成了如此多的種類差異呢?其根本原因就在於使用的解釋器不同。而解釋器的不同,則源於對功能的需要求不同,有的需求場景中需要很輕的解釋器,而有的場景則需要更復雜的解釋器。通常而言,在 Unix中默認的 shell是 sh,在 linux中默認的 shell是 bashbash 是基於 Bourne shell,並吸收了 C shell和 K shell的一些特性。bash 完全兼容 sh,也就是說,用 sh 寫的腳本可以不加修改的在 bash 中執行。如果想知道你當前的 shell是哪一種的?可以在你的控制臺執行這條命令 echo $SHELL

不論是 bash 還是 cmd ,我們也通常稱它們為“命令行工具”或者是“命令行界面(CLI)”。

最後,為什麽我們要學習它們?因為學習它們,(cmd)可以讓我們可以在 windows 或者 (bash)linux 等簡單使用場景中,脫離對鼠標與用戶界面的依賴,從而提高編碼效率。

當然!“裝逼”也是根本原因嘛~

CMD 基礎命令

目錄操作

切換目錄

cd :進入指定的目錄或者是顯示當前的目錄。

cd             #C:\Users\gt\Desktop
cd dir/sub-dir # 進入到dir中的sub-dir目錄。
d:             # 直接進入d盤

列出文件與子目錄

dir :列出當前目錄中的文件以及子目錄

dir 

dir 除了能默認顯示當前目錄的文件以及子目錄,還可以顯示指定目錄下的文件以及子目錄,同時也會統計目錄下的文件以及目錄的數量。

dir d:\fornt    #顯示D盤font目錄中的資源

dir 默認不顯示一些特殊屬性的文件(例如被隱藏了的文件),如果想顯示所有文件,可以使用 /a 參數。

dir /a

如果只是想顯示具有特定屬性的文件,可以為 /a 參數附加對應的屬性。

dir /a [d|r|h|s] #顯示具有指定屬性的文件
dir /ad          #只顯示目錄
dir /ar          #只顯示只讀文件
dir /ah          #只顯示隱藏文件
dir /as          #只顯示系統文件

dir 還有一個 /o 的參數也會比較常用,使用它可以分類顯示文件以及目錄。

dir /o [n | s | e | d]
dir /on   #按名稱(字母)顯示
dir /os   #按大小(從小到大)
dir /oe   #按擴展名(字母順序)
dir /od   #按日期/時間(從先到後)

創建目錄

mkdir | md :新建目錄

mkdir dir               # 新建一個dir目錄
mkdir dir1\dir2\dir3    # 連續新建三個目錄。

刪除目錄

rmdir | rd :刪除指定目錄

md dirname
rd dirname
md dir1\dir2\dir3
rd dir1\dir2\

*如果目錄中含有其它目錄或者是文件,單純使用 rd 將無法刪除,必須要結合一些特殊的參數,例如 /s 強制刪除/q 安靜模式(不會詢問)。

復制目錄

xcopy :將目錄復制到指定的位置。

xcopy dir e:dir1 #將dir目錄復制到 E盤,並重命名為dir1。

*使用這種方式復制目錄,只能將目錄以及目錄中的文件復制到新的位置,但是並不能將目錄中的子目錄以及子目錄中的所有文件也復制過去。
但可以通過附加一個參數 /e 從而實現將整個目錄(所有的子目錄以及文件)都復制到新的位置中。

xcopy dir e:dir1 /e

移動目錄

move :將指定的目錄移動到新的目錄中

move C:\Users\gt\Desktop\test distDir #將指定的目錄移動到新的目錄中
move dir1 dir2                        #將dir1目錄移動到dir2目錄中

重命名目錄

rename | ren :重命名文件或目錄名。

ren dirName newDirName 

顯示樹形目錄

tree : 顯示目錄的樹形圖。

tree                          #當前目錄的樹形圖
tree C:\Users\gt\Desktop\     #指定目錄的樹形圖

PS:感覺此命令在我們寫項目文檔時很有用,使用它可以幫我們生成項目目錄的樹形結構。

文件操作

新建文件

notepad : 打開window的記事本程序新建文件。

notepad filename.ext
notepad 1.txt
notepad index.js

*notepad 是調用window中的記事本程序來新建文件。

刪除文件

del :刪除指定的文件或者是清空指定目錄中的文件。

del filename #刪除指定的文件
del file1 file2 .. #刪除多個文件
del dir #清空指定目錄下的所有文件
del dir1 dir2 dir3 .. #清空多個目錄下的文件。

當使用 del 清空指定目錄下的所有文件時,默認會有一個詢問,如果想忽略詢問,只需要加一個參數/q即可。

del dir /q

出此之外,使用 del 還可以刪除特定屬性的文件

del /AR #可以刪除只讀文件
del /AH #可以刪除隱藏文件
del /AS #可以刪除系統文件

最後,del 還可以結合通配符來刪除匹配到文件。

復制文件

copy :復制一個或者是多個文件

copy file.txt file_copy.txt    #在當前目錄由file.txt 復制為一個名為file_copy.txt的新文件。
copy C:\Users\Admin\Desktop\index.js index_copy.js #將桌面上的index.js文件復制到當前目錄,並命名為index_copy.js
copy file1 dir\file2 #相對目錄進行復制。
copy file1+file2 dir\file3 #將當前目錄的file1與file2文件復制到dir目錄中並合成一個新的file3文件。
copy C:\Users\Admin\Desktop\ #將桌面上的所有文件復制到當前目錄。

copy 命令還具有兩個不是太常用的參數:

copy file /A #復制一個ASCII文件。
copy file /B #復制一個二進制文件。

copy 命令只能復制指定目錄中的文件,而不能復制指定目錄中的子目錄和文件。
如果想復制目標目錄下的所有文件和文件夾,可以使用 xcopy 命令,它相當於 copy 命令的擴展版。

移動文件

move :將指定的文件移動到新的位置。

move file.txt dir/file.txt    #將指定的文件移動到指定的目錄中。
move file.txt dir/newfile.txt #移動的同時,重新命名。

重命名文件

ren :重命名文件

ren oldfilename newfilename

文件內容比較

fc :在指定的文件集中比較文件的內容

fc file1 file2 file3

打印文件

type :在命令行工具中打印文件內容。

type file      #打印文件file的內容。
type dir\file  #打印指定目錄中file文件的內容。

type 命令還可以結合通配符一起使用,打印多個文件的內容。

type dir\*     #打印指定目錄dir中所有文件的內容。

查找文件

我們知道 dir 是用於列出指定目錄中所有的文件或子目錄,實際上 dir 後面還可以跟上文件名目錄名或者是通配符來設置只列出匹配到的文件以及目錄。

dir index.js    #列出該目錄下的index.js
dir *.js        #列出該目錄下擴展名為js的所有文件。
dir *           #列出所有文件

與查找文件相同,dir 也可以查找指定的目錄

dir dirname

根據內容查找文件

find :根據文件內容查找文件,不確定文件名稱或者是擴展名時可結合通配符使用。

find "function handle" index.js #確定文件查找
find "function handle" *.js     #根據文件名模糊查找
find "function handle" ?.js     #查找文件名只有一個字符的js文件。
find "function handle" /*       #查找所有文件

find 命令還具有一些其它有用的參數:/i 忽略大小寫 , /v 只顯示匹配到的文件,/n 顯示行號。

環境變量

註意,如果想在window中設置永久的環境變量,只能通過 “我的電腦” - “屬性” - “高級” - “環境變量”。
使用命令行來設置環境變量只對當前窗口有效,窗口關閉時,將會自動失效。

設置環境變量

set : 通過set命令我們即可以查看指定的環境變量,也可以設置一個新的環境變量。

set               #查看當前的所有環境變量
set PATH          #查看環境變量PATH的值。
set key = value   #設置一個新的環境變量並賦值。
set key = value2  #重新對指定的環境變量賦值。

*path這個環境變量是用於設置可執行文件(程序)的搜索路徑,是非常常用的一個環境變量。

使用環境變量

在CMD中,如果想引用某個環境變量,則使用 %env% 的格式。

echo %PATH%

set name=usrname
echo %name%

下面我們通過一個非常小的例子來理解通過命令設置環境變量 PATH 值的作用。
假設我們有一個可執行的程序,名字叫做 main.exe 保存在 D:\install\main目錄中。 一般,我們想執行某個程序的方法有兩種:

  • 為可執行文件建立快捷方式到桌面
  • 進入目錄,雙擊執行可執行程序

而上面的方法,不論哪一種,都無法解決在命令行窗口中,輸入 main 便可以執行 main.exe的需求。
然而通過設置環境變量 PATH 的值便可以做到這一點。

set main_exc=D:\install\main
set PATH=%PATH%;%main_exc%
main                           #執行main

其實設置環境變量PATH的值,可以直接使用 path命令,而無需通過 set 來聲明要修改的環境變量。

path %PATH%;%main_exc%

另外,在環境變量 PATH 中如果設置多個值,每個值之間使用 ; 分號隔開。

輔助命令

cls        #清除屏幕。
cmd        #進入MS-DOS
echo       #顯示消息,或將命令回顯打開或關閉。
exit       #退出 CMD.EXE 程序(命令解釋程序)。
start      #啟動單獨的窗口以運行指定的程序或命令。
calc       #啟動計算器
explorer   #打開資源管理器
notepad    #打開記事本
dxdiag     #檢查DirectX信息
regedt32   #註冊表編輯器
Msconfig   #系統配置實用程序
taskmgr    #打開任務管理器
help       #查看MS-DOS命令幫助。
command /? #查看指定命令詳細幫助文檔。
wmic       #進入wmic(Windows Management Instrumentation),它是windows管理工具命令行版,使用wmic我們可以對整個系統進行管理,例如遠程連接、硬件管理、進程管理、賬號管理、服務管理、目錄管理、共享管理等等,可說它是一個增強版的CMD。

BASH 基礎命令

bash 有些命令與 cmd中非常相像,比如 cd,再比如 mkdir等。因此學會了 cmd 對於學習 bash 也非常有幫助。

關於bashcmd的區別,我個人認為最大的不同有兩點,一是目錄路徑的表示上, bash使用我們常見的斜杠 cd dir1/dir2/dir3,而 cmd則使用反斜杠 cd dir1\dir2\dir3,雖然 cmd 也可以使用斜杠,但是在某些情況下使用斜杠將會行不通,例如 copy 命令,所以我們建議對 cmd 保持統一的目錄風格,即“反斜杠”。最後一點則在於命令的附加參數,cmd中是通過斜杠來附加參數 /paramsbash則是通過橫杠 -params

目錄操作

切換目錄

cd :進入指定的目錄。

cd   #進入個人目錄
cd / #進入根目錄
cd - #返回上次的目錄

如果不確定自己當前的目錄位置,可以結合 pwd 命令,便會在命令行中打印出當前目錄路徑。

pwd 

列出文件與子目錄

ls :列出當前目錄中的文件以及子目錄

ls 

ls 除了能默認顯示當前目錄的資源以及子目錄,還可以顯示指定目錄下的文件以及子目錄

ls ../   #列出上級目錄下的資源和子目錄
ls /     #列出根目錄下的資源和子目錄。
ls /home #列出home目錄下的資源和子目錄。

ls 默認不顯示具有特殊屬性的文件(例如被隱藏了的文件),如果想顯示所有文件,可以使用 -a 參數

ls -a

如果要查看資源或目錄更詳細的信息,可以附加 -l屬性

ls -l

創建目錄

mkdir :創建目錄。

mkdir dir                 #創建一個目錄dir
mkdir dir1 dir2 dir3..    #同時創建多個同級目錄

如果想創建一個目錄樹,可以附加一個 -p 參數。

mkdir -p a/b/c/d

刪除目錄

rmdir :刪除空目錄
rm -rf :強制刪除目錄(包括非空目錄)。

rmdir emptyDir #刪除一個空目錄

如果想刪除一個非空目錄,則需要使用 rm 命令,並使用 -rf 參數。

rm -rf dir                  #刪除一個非空目錄。
rm -rf dir1 dir2 dir3       #同時刪除多個非空目錄。
rm -rf pattern              #刪除按照特定模式匹配到的目錄。

復制目錄

cp -a :復制目錄到指定的位置。

cp -a dir ../dir  #將當期目錄復制一份到上級目錄中。
cp -a dir dir2    #復制目錄並重命名。

移動目錄

mv :移動目錄到指定位置。

mv file file2                         #同級移動,相當於重命名目錄file為file2
mv file ../file2                      #將目錄移動到上級目錄中並重命名。
sudo mv /home/user/file /home/        #將指定位置的目錄移動到指定位置中。

另外,mv 也可以結合通配符進行使用。

mv * ../   #將所有的目錄與文件都復制到上級目錄中。

重命名目錄

利用 mv 命令同級移動功能,並結合重命名的特點,就可以做到目錄的重命名。

mv file newfile2                         #同級移動,相當於重命名目錄file為newfile2

顯示樹形目錄

tree :顯示目錄的樹形圖。

tree       #當前目錄的樹形圖
tree /     #根目錄下的樹形圖

PS:感覺此命令在我們寫項目文檔時很有用,使用它可以幫我們生成項目目錄的樹形圖。

常用目錄說明

/     #根目錄
/bin  #命令保存目錄
/boot #啟動目錄
/dev  #設備文件命令
/etc  #配置文件保存目錄
/home #家目錄
/lib  #系統庫保存命令
/mnt  #系統掛載目錄

文件操作

新建文件

touch :新建文件

touch filename             #新建一個文件。
touch file1 file2 file3... #同時新建多個文件。
touch dir/file             #在指定的位置中新建一個文件。

如果終端已經附加了 vi 編輯器,也可以使用 vi filename 的形式來創建文件,與 cmd 中的 notepad 命令功能類似。

刪除文件

rm :刪除文件。

rm file      #刪除文件
rm dir/file  #刪除指定目錄中的文件
rm dir/*     #刪除指定目錄中的所有文件。

復制文件

cp :復制文件到指定的位置

cp file file1    #將文件復制一份並重新命名。
cp file ../      #將文件復制一份到上級目錄中。
sudo cp file /   #將文件復制到根目錄中。

cp 還可以結合通配符一起使用,將匹配到的文件復制到指定的位置中。

cp dir/*  ./  #指定目錄中的所有文件復制到當前目錄中。

移動文件

mv :移動文件到指定的位置

mv file ../       #將文件移動到上級目錄中。
mv ../file ./     #將上級的文件移動到當前目錄中。
sudo mv file /    #將文件移動到根目錄中。

mv 不僅可以移動文件,還可以在移動後重命名文件。

mv filename1 ../filename2

mv還可以結合通配符使用。

mv na?.txt ../nbc.txt

重命名文件

利用 mv 命令同級移動的功能再結合其可以重命名的特點,從而實現文件的重命名。

mv file file2                         #同級移動,相當於重命名文件file為file2

文件內容比較

diff :比較多個文件內容的不同

diff file1 file2 ...

打印文件

cat :在命令行工具中打印文件的內容

cat filename    #打印指定文件的內容
cat file1 file2 #同時打印多個文件的內容

cat 命令除了能打印文件的內容,還可以合並多個文件的內容保存到一個新的文件中。

cat file1 file2 > newfile

除此之外,還可以結合通配符來打印匹配到的所有文件內容。

cat a*
cat *.txt

如果查看的文件內容很多,還可以使用 less 命令

less file

然後使用 space 便可以向下一頁一頁的翻動,或者 pgup 向上翻頁 , pgdn 向下翻頁,q 則可以退出 less命令。

查找文件

find :可以根絕名稱、大小、修改時間來查找指定的文件。

find -name httpd.conf #在當前目錄下查找httpd.conf文件。
find -name *.js       #在當前目錄下查找所有js文件。
find -empty           #查找所有為空的目錄。
find -size -1000      #查找小於1000KB的文件。
find -size +1000      #查找大於1000KB的文件。

find命令默認在當前目錄進行查找,你也可以指定一個目錄進行查找。

find / -name *.txt          #在根目錄下查找所有的txt文件。
find /etc -name httpd.conf  #在etc目錄下查找httpd.conf文件。

與根據文件名查找文件相同,也可以使用 find 按照目錄名來查找目錄。

find -name dirname

根據內容查找文件

grep :可以根據指定的內容來查找含有這些內容的文件。

grep pattern *  #查找當前目錄含有指定匹配模式的文件。pattren可以是一個正則表達式。
grep c *        #查找當前目錄含有單詞c的文件。

如果想忽略內容的大小寫可以附加一個 -i的參數。
顯示匹配行及行號附加 -n
如果只顯示文件名,不顯示具體匹配到的內容,則附加 -l 參數

壓縮與解壓

gzip :單獨壓縮指定的文件,壓縮後刪除被壓縮文件,只保留壓縮後的文件,並且不能壓縮目錄。

gzip file                   #壓縮指定的文件
gzip file1 file2 file3...   #同時壓縮多個文件

gzip 還可以與通配符結合使用,壓縮匹配到的文件。

gzip *.*
gzip ?.?.*

若想列出某個 .gz 壓縮文件中的內容,可以附加一個 -l 參數。

gzip -l file.gz

解壓某個.gz 文件,則使用 gunzip 命令。

gunzip file.gz

zip :與 gzip 相比 zip 可以壓縮目錄還可以將多個文件壓縮在一起,並保留被壓縮的文件。

zip filename.zip file1 file2 ...   #將指定的文件壓縮到一個新創建的壓縮文件中。

zip 也可以結合通配符使用,壓縮匹配到的文件。

zip filename.zip *.txt

更強的是 zip 還可以一次性壓縮一個目錄

zip filename.zip dir

同樣的,若想列出某個 .zip 壓縮文件中的內容,可以附加一個 -l 參數。

unzip -l filename.zip

解壓某個.zip 文件,則使用 unzip 命令。

unzip file.zip

打包與解包

tar :它是linux下的一個打包命令,它可以將一大堆松散的文件或者是目錄打包在一起,從而保證資源的完整性。

tar -cvf package.tar file1 file2 file3 ...

如果要打包一個目錄,則指定目錄名:

tar -cvf package.tar dirname

如果想解包,則附加 -xvf 的參數即可。

tar -xvf package.tar

如果只是想列出某個包中含有的文件或目錄,則附加 -tvf 參數即可。

tar tvf package.tar

tar 命令只能打包,而不能壓縮,而 gzip 雖然可以壓縮但是只能對文件進行單獨壓縮,並且只保留壓縮後的文件,而不保留被壓縮的文件,所以將 tar + gzip 結合使用,將會互補其短,產生更大的功效。

tar package.tar file1 file2 file3 ... #將多個文件打包在package.tar包文件中。
gzip package.tar.gz package.tar       #將通過tar打包的文件再進行壓縮。

解壓縮解包也要依次進行。

gunzip package.tar.gz #解壓縮
tar -xvf package.tar  #解包

當然,你也可以通過附加參數的方式一次性的打包壓縮。

tar -zcvf package.tar.gz

然後一次性的解壓縮解包

tar -zxvf package.tar.gz

vi編輯器初探

vi 是 Unix及 Linux系統下標準的文本編輯器,由美國加州大學伯克利分校的 Bill Joy所創立。
我們可以在支持 vi 編輯器的命令行工具中,直接調用“vi編輯器”來編輯文件。
vi 有三種模式,分別是“命令模式(Comand Mode)”、“插入模式(Inset Mode)””、“底行模式(last line mode)”。默認的模式則是“命令模式”。
在“命令模式”下我們可以移動光標,刪除字符,單詞,行,復制字符,單詞,行等。通過按字母 a 便可以進入到“插入模式”,而通過 shift+;組合鍵(目的是輸入冒號:)則進入到“底行模式”。
在“插入模式”下才可以編輯文字,按 esc 鍵則可以返回“命令模式”。
在“底行模式”則可以執行一些命令動作,例如保存文件,設置編輯器環境,查找字符等等。

命令模式(Command Mode)

  • i、a、o 進入到“插入模式”。i會在光標的當前位置輸入,a 則會在光標所在的下一個位置輸入,o會插入新的一行,並從行首開始輸入文字。
  • shift+; 進入到“底行模式”
按鍵 功能
[num] | h 向左移動一個字符,如果結合數字鍵,則向左移動指定數量的字符
[num] | l 向右移動一個字符,如果結合數字鍵,則向右移動指定數量的字符
[num] | j 向上移動一行,如果結合數字鍵,則向上移動指定數量的行
[num] | k 向下移動一行,如果結合數字鍵,則向下移動指定數量的行
[num] | x 向後刪除當前光標所在的字符,類似於DEL鍵,結合數字鍵則向後刪除指定數量的字符
[num] | X 向前刪除當前光標所在的字符,類似於BackSpace鍵,結合數字鍵則向前刪除指定數量的字符
0 移動到行首
$ 移動到行尾
dd 刪除光標所在行
yy 復制當前行
J 合並行
p 將已復制的數據在光標下一行貼上
P 將已復制的數據在光標上一行貼上
yyp 復制光標所在的行再插入到下一行
H 光標移至屏幕頂行
L 光標移至屏幕最後行
num + G 跳轉到指定的行
[ctrl] + f 屏幕『向下』移動一頁,相當於 [Page Down]按鍵
[ctrl] + b 屏幕『向上』移動一頁,相當於 [Page Up] 按鍵
r[w] 將當前光標所在的字符替換為指定的字符
~ 該表當前光標所在字符的大小寫轉換
/word 向光標之下尋找一個名稱為 word 的字符串。例如要在檔案內搜尋 vbird 這個字符串,就輸入 /vbird 即可!
?word 向光標之上尋找一個字符串名稱為 word 的字符串。
n 根據搜索結果繼續向下查詢
N 根據搜索結果繼續向上查詢

插入模式(Inset Mode)

  • esc 進入到“命令模式”

該模式下用於輸入以及編輯內容。

底行模式(Last Line Mode)

  • esc 進入到“命令模式”

底行模式又可以稱之為“指令模式”,在這個模式下,可以通過輸入制定來讓“vi編輯器”完成特定的功能。
| 命令 | 功能 |
|:---|:---:|
|:w|保存文件|
|:q|退出vi編輯器|
|:wq|退出並保存|
|:q!|退出vi編輯器,並不保存內容|
|:set nu|顯示行號|
|:set nonu|隱藏行號|

常用快捷鍵

ctr+c  #終止當前命令
ctr+l  ##清屏  相當於 clear
ctr+a  #光標移到行首
ctr+e  #光標移到行尾
ctr+u  #把光標所在位置刪除到行首
ctr+d  #刪除光標前面的字符,一旦內容全部刪除再按則會退出窗口。
ctr+h  #刪除光標後面的字符,

環境變量

window 相同 linux 中通過命令行修改或者是創建的環境變量只對當前的命令窗口有效,關閉窗口則會消失。
如果想在 linux 設置永久的環境變量,如果是系統級的環境變量請使用“vi編輯器”編輯 /etc/profile 文件,如果是用戶級別的環境變量,則進入到對應的用戶目錄修改 .profile 文件。

設置環境變量

linuxset命令可以查看系統級以及用戶級的所有環境變量,使用 env則查看當前用戶的環境變量。

set #查看所有環境變量
env #查看與當前用戶有關的環境變量

如果想設置一個環境變量,則使用 export 命令

export key=value

同樣的,如果想修改某個環境變量的值,再次執行上面的命令即可。

使用環境變量

linux中引用一個環境變量,則為環境變量附加 $符,其形式如:$env

$PATH   #引用環境變量PATH。

環境變量如果存在多個值,則通過使用 : 冒號進行分割。

export app=/home/app
export PATH=$PATH:%app

其它常用命令

clear   #清除屏幕。
echo    #顯示消息,或將命令回顯打開或關閉。
whoami  #返回當前登錄用戶名。
passwd  #允許當前登錄的用戶更改其密碼。
file    #嘗試判斷指定文件的類型。
exit    #退出命令行工具
users   #顯示當前登錄系統地用戶
last    #查看用戶的登錄日誌
cammand --help  #查看相關命令的幫助文檔。
ping    #查看網絡狀態

如果覺得本文對您有幫助或者您心情好~可以支付寶(左)或微信(右)支持一下,就當給作者贊助杯咖啡錢了技術分享圖片 ~~:

技術分享圖片技術分享圖片

cmd 與 bash 基礎命令入門