---
# System prepended metadata

title: Linux基本操作
tags: [git]

---

# Linux基本操作
###### tags: `git`
一、什麼是文件

(一)獨立之物，可通過特定工具開啟，且其中不得包含文件以外之物。

二、甚麼是文件夾
(一)可以在其中包含其他文件之物。

三、文件之意義
(一)日常運維工作中，半數以上之工作內容與精力，事實上皆透過文件操作之形式達成。
(二)Linux本身係以文件形式表示之操作系統。
(三)Linux一切皆文件。
1.在windows是文件的，Linux必為文件；windows不是文件的，Linux下仍以文件形式儲存。

四、目錄結構

(一)Bin:全稱binary，涵義為二進位制，該目錄存儲的都是依些二進位制文件，文件都是可以被運行的。
(二)Dev:該目錄中主要存放的是外接設備，例如磁碟、光盤等等。在其中的外接設備式不能直接使用的，需要掛載(類似windows下的分配盤符)
(三)Etc:該目錄主要儲存配置文件。
(四)Home:類似windows的user目錄(家目錄)；為除了root用戶以外用戶的家目錄。
(五)Proc:全名process，表示進程，該目錄儲存Linux運行時候的進程。
(六)Root:root用戶的家目錄。
(七)Sbin:全稱super binary，該目錄也是存放可以被執行的二進位文件，但是必須要有超級管理員權限才能執行。
(八)Tmp: tamperary files，臨時目錄；當系統運行時產生的臨時文件儲存空間。
(九)Usr: 存放用戶自己安裝的軟件。類似於windows下的program files。
(十)Var: 存放的程序或系統的日誌文件目錄。

五、指令與選項
(一)Linux指令:Linux在終端(命令行)中輸入的內容為指令。
(二)一個完整的指令操作標準格式:指令主體 [選項][操作對象]
1.一個指令只能有一個指令主體、多個選項及多個操作對象。
EX:讓A同學幫忙去樓下販賣機買一瓶麥香奶茶和一盒光泉鮮奶；其中買東西是指令主體，奶茶和鮮奶是操作對象，麥香和光泉是選項。

六、基礎指令
1.LS(list):列出目錄下所有文件及文件夾之名稱
###### 用法1
#ls:列出當前工作目錄下所有的文件及文件夾的名稱
###### 用法2
#ls 路徑:列出指定路徑下所有的文件及文件夾的名稱
##### tags: 路徑
路徑有兩種，為相對路徑與絕對路徑。
相對路徑需有一參照物(一般為當前的工作路徑)；
相對路徑寫法:在相對路徑中我們通常會用到2個符號
'./'當前目錄下
'../'上一層目錄下
絕對路徑不需要任何參照物，直接從'/'開始尋找路徑。
###### 用法三
#ls 選項 路徑:EX1: #ls -l 路徑。
EX1: #ls -l 路徑
-l:表示list以詳細列表的形式進行展示
EX2: #ls -la 路徑
-a:表示顯示所有文件及文件夾(包含隱藏文件及文件夾)
EX3: #ls -lh 路徑
-h:列出指定路徑下所有的文件及文件夾的名稱，以列表的形式並且在顯示文的大小的時候以可讀性較高的形式進行顯示。

https://blog.gtwang.org/linux/linux-ls-command-tutorial/

2.pwd:
###### 用法一
pwd 列出目前的工作目錄
###### 用法二
pwd -P 顯示出實際的工作目錄，而非連結檔本身的目錄名
###### 用法三
pwd -L 目錄連接鏈結時，輸出連接路徑

3.cd
4.mkdir
5.touch
6.cp
7.rm
8.vim
9.輸出重定向

10.cat
選項與參數：
-A  ：相當於 -vET 的整合選項，可列出一些特殊字符而不是空白而已；
-b  ：列出行號，僅針對非空白行做行號顯示，空白行不標行號！
-E  ：將結尾的斷行字元 $ 顯示出來；
-n  ：列印出行號，連同空白行也會有行號，與 -b 的選項不同；
-T  ：將 [tab] 按鍵以 ^I 顯示出來；
-v  ：列出一些看不出來的特殊字符

#######用法一
檢閱 /etc/issue 這個檔案的內容
cat /etc/issue


#######用法二
承上題，如果還要加印行號呢？
cat -n /etc/issue
如果不想要編排空白行的行號，可以使用『cat -b /etc/issue』，自己測試看看：

#######用法三
將 /etc/man_db.conf 的內容完整的顯示出來(包含特殊字元)
cat -A /etc/man_db.conf
# $

練習:
1.如何通過命令行重啟linux系統? 
###### reboot
2.如何在命令行中快速刪除光標前/後內容? 
#前:ctrl+u #後:ctrl+k
3.如何刪除/tmp下所有A開頭的文件? 
###### rm -f/tmp/A*
4.系統重要文件需要備份，如何把/etc/passwd備份到/tmp目錄下?  
###### cp/etc/passwd/ tmp/
5.如何查看系統最後創建的三個用戶? 
###### tail -3/tmp/test.conf
6.甚麼命令可以統計當前系統中一共有多少帳戶? 
###### cat/etc/passwd|wc -1
7.如何創建/tmp/test.conf? 
###### touch /tmp/test.conf
8.如何通過vim編輯打開/tmp/test.conf?
###### vim /tmp/test.conf
9.如何查看/etc/passwd的頭3行和尾三行?
###### head -3 /etc/passwd
###### tail -3 /etc/passwd
10.如何一次性創建目錄/text/1/2/3/4?
###### mkdir -p /text/1/2/3/4

## VIM使用:
#### VIM三種模式(大眾認知):
1.命令模式
該模式下是不能對文字直接編輯，可以輸入快捷鍵進行一些操作。
(如:刪除行，複製行，移動光標，黏貼)[打開文件默認模式]
2.編輯模式(輸入模式)
該模式下可以對文件進行編輯
3.末行模式(尾行模式)
可以在末行輸入命令來對文件進行操作(搜索，替換，保存，退出，撤銷，高亮(?)...等等)
#### Vim打開文件的方式
vim + 文字路徑 (打開指定的文件)
vim + 數字 + 文件路徑 (打開指定的文件，並且將光標移動到指定行)
vim + /關鍵詞 + 文件路徑 (打開指定的文件，並且高亮顯示關鍵詞)
vim + 文字路徑(多個) (同時打開多個文件)

重點:先去複製出一個 /etc/passwd文件，複製當前家目錄下。(不要再etc直接修改)
###### 1 : 到根目錄(cd /)
###### 2 : cp /etc/passwd ~/
後續一切vim命令都是基於 /etc/passwd文件進行操作

#### 命令模式
光標移動:
###### 光標移動道行首 shift + 6(不要按小鍵盤) or ^
###### 光標移動道行尾 shift + 4(不要按小鍵盤) or $
###### 光標移動到首行 gg
###### 光標移動到末行 G

