1. 程式人生 > >Linux下的基本指令(一)

Linux下的基本指令(一)

文章目錄

1.檔案系統層次結構

 Linux系統中的所有檔案儲存在檔案系統中,它們被組織到一個顛倒的目錄樹中,稱為檔案系統層次結構。這棵樹是顛倒的,因為樹根在該層次結構的頂部,樹根下方延伸出目錄和子目錄的分支。
 /目錄是根目錄,位於檔案系統層次結構的頂部。/字元還用作檔名中的目錄分隔符。

例如:
	etc是/目錄的子目錄,我們把它們稱為/etc目錄。
	/etc目錄包含一個名為issue的檔案,可稱為 /etc/issue目錄。

1.1根目錄下重要的目錄

/usr 安裝的軟體、共享的庫,包含檔案和靜態只讀程式的資料。
/etc 特定於此係統的配置檔案
/var 系統的可變資料,在系統啟動之間保持永久性。
/run 自上一次系統啟動以來啟動的程序的執行時資料
/home 普通使用者儲存其個人資料和配置檔案的主目錄
/root 管理超級使用者root的主目錄
/tmp 供臨時檔案使用的全域性可寫空間
/boot 開始啟動過程所需的檔案
/dev 包含特殊的裝置檔案,共系統用於訪問硬體

2. 對目錄進行操作

命令結構的使用結構: 命令名稱 [操作選項] [操作源物件] [操作目標物件]
 [] 裡面的內容可以省略

2.1 樹狀目錄結構的解釋

顛倒的樹狀目錄結構,最上次的目錄是根目錄(‘/’)
Linux是一個多使用者、多工作業系統,同時可以登入多個使用者。
特性:

  • 根目錄下的home目錄功能:總的家目錄
  • 總的家目錄下邊又有各個使用者自己的家目錄
  • 預設情況下家目錄就是以使用者名稱定義的

2.2 目錄的基本命令

指令名稱 指令作用
cp 複製檔案或目錄
mv 移動檔案或目錄
mkdir 建立目錄
rm 刪除檔案或目錄
rmdir 刪除目錄

1. cp 指令:複製一個或多個檔案

 將一個現有檔案複製為當前或另一個目錄中的新檔案,或將多個檔案複製到另一個目錄中(最後一個引數必須為目錄)。在目標位置時,新檔案都必須是唯一的。如果新檔名不唯一,那麼複製命令將覆蓋現有檔案。
常用選項:

-f 強制(force)複製檔案或目錄
-i 覆蓋檔案之前先詢問使用者
-r 複製檔案到指定位置,包含目錄
-R 將指定目錄下的檔案及子目錄

舉例:

[[email protected] workspace]$ cp study_02 study02
[[email protected] workspace]$ ls -l
總用量 16
drwxrwxr-x. 2 lemon lemon 4096 10月 20 17:09 study
-rw-rw-r--. 1 lemon lemon 2585 10月 20 17:20 study02
-rw-rw-r--. 1 lemon lemon 2585 10月 20 09:08 study_02
-rw-rw-r--. 1 lemon lemon 1641 10月 20 08:41 study_file
[[email protected] workspace]$ cp study studyfile
cp: 略過目錄"study"
[[email protected] workspace]$ cp -r study studyfile
[[email protected] workspace]$ ls
study  study02  study_02  studyfile  study_file
[[email protected] workspace]$ ls -R
.:
study  study02  study_02  studyfile  study_file

./study:
study02

./studyfile:
study02

使用cp study studyfile命令時,提示略過目錄"study",但使用-r遞迴選項時,複製成功。

2.mv指令:移動檔案或者檔案改名

功能:
a. mv命令中第二個引數型別的型別不同,mv命令將檔案重新命名或將其移至一個新的目錄中。
b. 當第二個引數是檔案時,mv命令完成檔案重新命名,此時原始檔只能有一個(也可以是源目錄名),它將所給的原始檔或目錄重新命名為給定的目標檔名。
c. 當第二個引數是已存在的目錄名稱時,原始檔或目錄引數可以有多個,mv命令將各引數指定的原始檔均移至目標目錄中。
常用選項:

-f 如果目標檔案已存在,不會詢問而直接覆蓋
-i 若目標檔案已經存在,就會詢問是否覆蓋

舉例:

[[email protected] workspace]$ ls -R
.:
study  study00  study01  study02

./study:
[[email protected] workspace]$ mv study00 study_00
[[email protected] workspace]$ ls
study  study_00  study01  study02
[[email protected] workspace]$ mv study_00 ./study
[[email protected] workspace]$ ls -R
.:
study  study01  study02

./study:
study_00

第一個mv命令是重新命名,第二個命令會導致檔案重新放置到另外的目錄中。
在這裡插入圖片描述

3.mkdir:建立目錄

常用選項:

-p 遞迴建立目錄,為目標位置請求建立缺失的父目錄(若路徑中某些目錄尚不存在,系統將自動建立好那些不存在的目錄,即一次可以建立多層目錄)

舉例:

[[email protected] workspace]$ ls -R
.:
study  study01  study02

./study:
study_00
[[email protected] workspace]$ mkdir aaa/bbb/ccc
mkdir: 無法建立目錄"aaa/bbb/ccc": 沒有那個檔案或目錄
[[email protected] workspace]$ mkdir -p aaa/bbb/ccc
[[email protected] workspace]$ ls -R
.:
aaa  study  study01  study02

./aaa:
bbb

./aaa/bbb:
ccc

./aaa/bbb/ccc:

./study:
study_00

mkdir通過-p命令建立了該目錄下的aaa/bbb/ccc目錄。

4.rm / rmdir:刪除檔案或目錄

 rm 刪除檔案或目錄,預設是刪除檔案
常用選項:

-f 忽略所有提示資訊,強制刪除(即使檔案屬性為只讀,也直接刪除,使用時應該小心)
-r 刪除檔案,包括目錄
-i 刪除檔案時,提示是否要刪除

舉例:

[[email protected] workspace]$ ls
aaa  study  study01  study_01  study02
[[email protected] workspace]$ ls -R
.:
aaa  study  study01  study_01  study02

./aaa:
bbb

./aaa/bbb:
ccc

./aaa/bbb/ccc:

./study:
study_00
[[email protected] workspace]$ rm study_01
[[email protected] workspace]$ ls
aaa  study  study01  study02
[[email protected] workspace]$ rm aaa
rm: 無法刪除"aaa": 是一個目錄
[[email protected] workspace]$ rm -r aaa
[[email protected] workspace]$ ls
study  study01  study02
[[email protected] workspace]$ rm -ri study
rm:是否進入目錄"study"? n
[[email protected] workspace]$ ls
study  study01  study02
[[email protected] workspace]$ mkdir -p aaa/bbb/ccc
[[email protected] workspace]$ rm -ri aaa
rm:是否進入目錄"aaa"? y
rm:是否進入目錄"aaa/bbb"? y
rm:是否刪除目錄 "aaa/bbb/ccc"?y
rm:是否刪除目錄 "aaa/bbb"?y
rm:是否刪除目錄 "aaa"?y
[[email protected] workspace]$ ls
study  study01  study02

以上的操作,第一個為刪除一個檔案rm study_01;第二個為刪除一個目錄rm aaa,但由於沒有加任何選項,所以沒有成功刪除;第三個加了-p選項rm -p aaa,成功刪除目錄aaa;第四個提示詢問訊息rm -i;第五個 rm -ri aaa,即詢問且一級一級的詢問提示的訊息,發現了-r遞迴刪除目錄,先進入目錄刪除目錄中的子目錄及檔案,成為空目錄後再刪除檔案。
rmdir 命令僅刪除空的目錄,刪除的目錄無法取消,也滅有回收站,所以大家需要謹慎使用

[[email protected] workspace]$ ls -R
.:
aaa  study  study01  study02

./aaa:
bbb

./aaa/bbb:

./study:
study_00
[[email protected] workspace]$ rmdir aaa
rmdir: 刪除 "aaa" 失敗: 目錄非空
[[email protected] workspace]$ rmdir aaa/bbb
[[email protected] workspace]$ ls -R
.:
aaa  study  study01  study02

./aaa:

./study:
study_00

5. ls命令:檢視當前目錄下內容

常用選項:

-a 檢視隱藏檔案(標準解釋:檢視所有檔案,並不忽略以 . 開頭的檔案) Linux以 . 開頭的檔案都是隱藏檔案 . 當前目錄 … 上一層目錄(每一個目錄下都有這一個目錄)
-l 列出目錄下內容的詳細資訊
-t 按時間排序
-r 對排序進行逆序(一般與-t一起使用)
-h 人性化顯示 (一般和-l在一起使用)

舉例:

[[email protected] workspace]$ ls -R
.:
aaa  study  study01  study02

./aaa:

./study:
study_00
[[email protected] workspace]$ ls -a
.  ..  aaa  study  study01  study02
[[email protected] workspace]$ ls -l
總用量 16
drwxrwxr-x. 2 lemon lemon 4096 10月 20 19:44 aaa
drwxrwxr-x. 2 lemon lemon 4096 10月 20 18:01 study
-rw-rw-r--. 1 lemon lemon 1641 10月 20 17:54 study01
-rw-rw-r--. 1 lemon lemon 2585 10月 20 17:53 study02
[[email protected] workspace]$ ls -t
aaa  study  study01  study02
[[email protected] workspace]$ ls -r
study02  study01  study  aaa
[[email protected] workspace]$ ls -lh
總用量 16K
drwxrwxr-x. 2 lemon lemon 4.0K 10月 20 19:44 aaa
drwxrwxr-x. 2 lemon lemon 4.0K 10月 20 18:01 study
-rw-rw-r--. 1 lemon lemon 1.7K 10月 20 17:54 study01
-rw-rw-r--. 1 lemon lemon 2.6K 10月 20 17:53 study02

在這裡需要對-l選項的結構分析一下,大家需要知道。
在這裡插入圖片描述
-l選項顯示出一系列的訊息,我們可以看到第一豎列檔案型別,d代表什麼檔案型別呢?

d 目錄檔案。
l 符號連結檔案(指向另一個檔案,類似於windows的快捷方式)。
s 套接字檔案。
b 塊裝置檔案。
c 字元裝置檔案。
p 命名管道檔案。

  • 普通檔案。

6. pwd命令:列印當前使用者所在目錄

先了解一下絕對路徑和相對路徑:
絕對路徑:完整路徑,從根目錄開始到達要進入目錄,/home/lemon
相對路徑:從本目錄下進入到下一個目錄,…/lemon
pwd列印的是絕對路徑

[[email protected] workspace]$ pwd
/home/lemon/workspace

我們可以瞭解到,我們在根目錄下的home目錄下的當前使用者lemon目錄下的workspace目錄。

7. cd命令:改變工作目錄

cd 將當前工作目錄改變到指定的目錄下。
常用選項:

cd … 返回上一級目錄 ~ 進入當前使用者所在的家目錄
– 返回最近訪問的目錄