[教學] git-4 bash基本指令操作 - 討論區

[教學] git-4 bash基本指令操作

文章瀏覽次數 6578 文章回覆數 7

特種兵

特種兵圖像(預設)

2020-01-24 23:13:09

From:1.161.141.201

bash 指令雖然不是 git 本身的指令,但在 git bash 操作 git 的過程中可能都會用到

上一個單元,我們列出了這些常用指令與參數,在這裡,還是來實際操作一下以加深印象。

讓我們在開始功能表輸入 git 應該會自動跳出 git bash 直接按 enter 執行進入 git bash 環境。

如果沒有跳出來,只好打完整點,或者自己到應用程式的列表去尋找該程式。

 Administrator@DESKTOP-NI8E3B8 MINGW64 ~                                         
 $

一開始進入 git bash 會看到這兩行,第一行是目前的 windows 使用者名稱與電腦名稱,並且使用小老鼠符號隔開。

MINGW64 算是預設的名稱,切換視窗時可以發現他也是視窗名稱。

行尾有個 ~ 波浪號表示家目錄,通常是使用者的資料夾,隨著所在路徑的改變也會跟著改變。

在 git bash 中,路徑都是以 / 正斜線來隔開,如果是 D 槽則是以 /d 來表示,

這稱為絕對路徑,就是從最前面的根目錄開始寫起,/ 就是代表根目錄。

第二行,也就是游標所在行,前面有一個錢號,這是 git bash 的指令列提示符號,在輸入指令時不需輸入該符號喔。

查看當前路徑,看看到底家目錄在哪裡
 $ pwd                                                                           
 /c/Users/Administrator                                                          

切換到 D 槽
 $ cd /d
由此可知,切換成功是沒有訊息的

那切換到一個不存在的資料夾看看
 $ cd ooqq                                                                       
 bash: cd: ooqq: No such file or directory                                       

既然沒有,那我們就來建一個  
 $ mkdir ooqq                                                                    
沒消息就是好消息,建立成功                                                                                 

來看看檔案與資料夾列表有沒有這個資料夾了 
 $ ls                                                                            
 01/  03/  05/  07/  09/  11/  13/  15/        log    t.html                     
 02/  04/  06/  08/  10/  12/  14/  child.mp3  ooqq/                             

由上面的輸出可以發現:

  1. 在名稱最後有正斜線的表示資料夾
  2. 這是簡短輸出,一行會有好幾個並且由名稱一定順序列出且對齊

那看一下詳細版的:

 $ ls -l                                                                         
 total 3780                                                                      
 drwxr-xr-x 1 Administrator 197121       0 五月    4  2019 01/                   
 drwxr-xr-x 1 Administrator 197121       0 五月    4  2019 02/                   
 drwxr-xr-x 1 Administrator 197121       0 七月   24  2019 03/                   
 drwxr-xr-x 1 Administrator 197121       0 五月    4  2019 04/                   
 drwxr-xr-x 1 Administrator 197121       0 五月    4  2019 05/                   
 drwxr-xr-x 1 Administrator 197121       0 五月    4  2019 06/                   
 drwxr-xr-x 1 Administrator 197121       0 五月    4  2019 07/                   
 drwxr-xr-x 1 Administrator 197121       0 五月    4  2019 08/                   
 drwxr-xr-x 1 Administrator 197121       0 五月    4  2019 09/                   
 drwxr-xr-x 1 Administrator 197121       0 五月    4  2019 10/                   
 drwxr-xr-x 1 Administrator 197121       0 五月    4  2019 11/                   
 drwxr-xr-x 1 Administrator 197121       0 五月    4  2019 12/                   
 drwxr-xr-x 1 Administrator 197121       0 五月    4  2019 13/                   
 drwxr-xr-x 1 Administrator 197121       0 七月   24  2019 14/                   
 drwxr-xr-x 1 Administrator 197121       0 七月   25  2019 15/                   
 -rw-r--r-- 1 Administrator 197121 3767570 七月    9  2013 child.mp3             
 -rw-r--r-- 1 Administrator 197121   30569 四月   13  2019 log                   
 drwxr-xr-x 1 Administrator 197121       0 一月   24 22:23 ooqq/                 
 -rw-r--r-- 1 Administrator 197121   12152 二月   11  2019 t.html                

太詳細就不說了,主要有權限、擁有者、大小、日期、名稱等。

d 是資料夾 directory- 是檔案

讓我們進入 ooqq 然後新增一個空檔案:

 Administrator@DESKTOP-NI8E3B8 MINGW64 /d                                   
 $ cd ooqq                                                                       

 Administrator@DESKTOP-NI8E3B8 MINGW64 /d/ooqq                              
 $ touch abcd.txt                                                                

 Administrator@DESKTOP-NI8E3B8 MINGW64 /d/ooqq                              
 $ ls                                                                            
 abcd.txt                                                                        

之前只留下 $ 那行方便講解,連續下指令就把原始畫面都貼上對照。大家可以注意一下路徑的變化。

下了一堆指令了,想讓畫面清爽一點就清一下畫面:

$ clear

實際上會連 $ clear 那行都清掉,只留下提示符號那兩行。

那我們複製上一層也就是根目錄的 child.mp3 過來這裡

 $ cp ../child.mp3 .                                                             

 $ ls                                                                            
 abcd.txt  child.mp3                                                             

.. 代表上一層,. 代表當前路徑,先輸入來源再輸入目的。

從當前路徑開始寫起的叫做當前路徑,當然你也可以下絕對路徑 cp /d/child.mp3 /d/ooqq

另外,這裡也支援按 tab 鍵自動補齊功能,剛剛輸入 chi 直接按 tab 就可以自動幫我們補齊,就算遇到很長的指令或檔名也不怕打錯囉

利用搬移指令把 abcd.txt 改名成 defg.txt

 $ mv abcd.txt defg.txt                                                          

 Administrator@DESKTOP-NI8E3B8 MINGW64 /d/ooqq                              
 $ ls                                                                            
 child.mp3  defg.txt                                                                        

讓我們把剛剛複製過來的 child.mp3 刪掉

 $ rm child.mp3                                                                  

 Administrator@DESKTOP-NI8E3B8 MINGW64 /d/ooqq                              
 $ ls                                                                            
 defg.txt                                                                        

如果想利用搬移指令 mv 移動檔案或資料夾,語法跟 cp 一樣,這部分留給大家去練習了。

既然玩好了,那就把 ooqq 整個資料夾刪掉吧,因為我們還在裡面,記得要先退出來:

 $ cd ..                                                                         

 Administrator@DESKTOP-NI8E3B8 MINGW64 /d                               
 $ rm -rf ooqq                                                                   

小心一下刪除指令,刪掉了可能救不回來喔,r 是資料夾,f 是強制刪除,就是不要再問我了。

在 git bash 的外部指令與檔名不分大小寫,但內部指令像 cd 或指令的參數還是有大小寫的區別,特別是 git 本身的指令參數。

外部指令是指在 git bash 裡存在執行檔的,因為是對應到檔名,git bash 檔名不分大小寫,所以外部指令也不分大小寫。

如果在指令還沒打完按 tab 鍵會幫你補到 .exe 這一種的一定是外部指令,使用 which 指令 可以看到該執行檔的路徑。

最後,我們終於可以離開 git bash 回家過年囉。

$ exit

※最後更新時間:2020-01-24 23:20:13 From:1.161.141.201 By:特種兵
※最後更新時間:2020-01-24 23:23:29 From:1.161.141.201 By:特種兵
※最後更新時間:2020-01-25 15:13:38 From:1.161.141.201 By:特種兵
※最後更新時間:2020-01-28 10:59:47 From:1.161.128.113 By:特種兵
※最後更新時間:2020-02-02 23:31:47 From:1.161.144.116 By:特種兵

留言

#1

特種兵

特種兵圖像(預設)

2020-01-24 23:26:06

From:1.161.141.201

寫這篇文章時是圍完爐喝得有點醉的狀況
文章一寫兩小時,越寫越清醒
寫好時也完全清醒囉

#2

coscell

coscell圖像(預設)

2020-01-25 11:34:55

From:180.176.111.5

補充一個技巧:
如果要直接在某資料夾工作可以先用檔案總慣進入該資料夾
然後按快險選擇 git bash.
另外要在 git bash 使用記事本編輯檔案也沒問題:
$ notepad 我的學習筆記.txt

#3

coscell

coscell圖像(預設)

2020-01-25 11:58:10

From:180.176.111.5

不好意思必須更正站長老大的醉後失言:

在 git bash 比較像 windows 的地方在於不分大小寫,這就跟 linux 不一樣了。

指令和參數還是要分大小寫,檔名部分因為是 Windows 環境所以可以不分大小寫。

#4

特種兵

特種兵圖像(預設)

2020-01-25 15:11:00

From:1.161.141.201

指令應該也沒分大小寫,因為指令就是執行檔檔名

#5

coscell

coscell圖像(預設)

2020-01-26 01:03:13

From:180.176.111.5

那你可以打大寫的 CD 看看。
還有 ls -l 跟 ls -L 一樣嗎?

#6

嘯傲俠羽

嘯傲俠羽圖像(預設)

2020-01-26 22:09:17

From:61.223.79.227

指令應該大小寫不一樣的喔!例如下面這個就提示錯誤:

bash: CD: command not found

我終於可以在 windows 使用 vim 了,真是太感謝 coscell!

如果 git 還可以 putty or tellnet管理外部主機,多好?

謝謝!

#7

特種兵

特種兵圖像(預設)

2020-01-28 10:54:11

From:1.161.128.113

我的意思是外部指令有對應到檔案的就不分大小寫,像是 mkdir, ls 等等