Linux 學習第一周

1.Linux登錄

在開機后的登錄界面有虛擬終端與圖形化終端

虛擬終端:

centos6 : ctrl + alt + F2~F6 ?可對應分別進入?/dev/tty2-6 的虛擬終端登錄界面

centos7:? ctrl + alt + F2~F6 可對應分別進入?/dev/tty2-6 的虛擬終端登錄界面

圖型化終端:

centos6: ctrl + alt + F1 可進入/dev/tty1 的圖形化終端登錄界面

centos7: ctrl + alt + F1 可進入/dev/tty1 的圖形化終端登錄界面

使用用戶名及密碼登錄以上終端。

2. Shell 是Linux系統的用戶界面,提供了用戶與內核進行交互操作的一種接口。

它接收用戶輸入的命令并把它送入內核去執行。?shell也被稱為LINUX的命令解釋器(command interpreter)

同時shell也是一種高級程序設計語言。

查看當前系統所安裝的shell :cat /etc/shells ?

[root@centos7 ~]# cat /etc/shells

/bin/sh

/bin/bash

/sbin/nologin

/usr/bin/sh

/usr/bin/bash

/usr/sbin/nologin

/bin/tcsh

/bin/csh

查看當前使用的何種shell:echo $SHELL ?

[root@centos7 ~]# echo $SHELL

/bin/bash

3.type命令:查看命令類型

type + 命令

[root@centos7 ~]# type echo

echo is a shell builtin ? (查看命令echo的類型)

4.which 命令:查看命令的路徑

which + 命令

[root@centos7 ~]# which echo

/usr/bin/echo ??(查看命令echo的路徑)

5.enable 查看所有已啟用的內部命令

enable (+選項) (+命令)

(默認)查看所有已啟用的內部命令

[root@centos7 ~]# enable

enable .

enable :

enable [

enable alias

。。。。。。(省略)

-n? 查看所有已禁用的內部命令

-a? 查看所有的內部命令

enable command 啟用指定的內部命令

enable -n command 禁用指定的內部命令

[root@centos7 ~]# enable -n alias (禁用 alias命令)

[root@centos7 ~]# enable -n (查看已禁用的命令)

enable -n alias

命令執行的優先順序 :?alias > 內部 > 外部(hash > PATH)

6.hash?顯示已緩存的外部命令的路徑

hash (默認)顯示已緩存的外部命令的路徑

[root@centos7 ~]# hash

hits command

? 2 /usr/bin/cat

hash -d command 刪除指定命令的hash緩存

hash -r 刪除所有緩存

7.alias 別名命令

可直接設置別名:如 alias copy=cp ;alias copy='cp -p -r' 等

alias 查看已有的別名

[root@centos7 ~]# alias

alias cp='cp -i'

alias egrep='egrep --color=auto'

alias fgrep='fgrep --color=auto'

alias grep='grep --color=auto'

alias l.='ls -d .* --color=auto'

alias ll='ls -l --color=auto'

alias ls='ls --color=auto'

alias mv='mv -i'

alias rm='rm -i'

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

unalias 刪除別名

unalias -a 取消所有別名

*使用alias直接設置別名:如 alias copy=cp ,在重新開機后會丟失,

若要每次開機都可直接使用此別名,可將其寫入~/.bashrc文件中

*若要臨時使用某一條命令不受別名影響,可使用以下方法:

> ? /bin/ls 使用路徑執行命令

> ? \ls 命令前加反斜杠

> ? 'ls' 命令上加單引號

> ? "ls" 命令上加雙引號

8.date 命令 :顯示/設置系統的時間與日期

[root@centos7 ~]# date "+%F %T" (顯示系統時間)

2018-05-28 21:49:05

[root@centos7 ~]# date "+%Y-%m-%d" ? (顯示系統日期)

2018-05-28

[root@centos7 ~]# date -d '-2 days' ? (表示前天是星期幾)

Sat May 26 21:54:08 CST 2018

其它顯示內容可參考 man date?

clock/hwclock ??查看/設置時間

-s 將硬時間寫入軟時間

-w 將軟時間寫入硬時間

9.history 顯示歷史記錄

history?查看當前的歷史記錄

可使用上下鍵查看之前的歷史命令,并可以再次回車執行

-c 清空歷史

-a 將當前終端的新命令追加到歷史文件

-w /path/filename 將當前終端的新命令追加到指定文件

-r 讀取歷史文件中的所有歷史到當前終端的歷史緩存

-n 僅讀取未讀過的歷史到當前終端的歷史緩存

!XX 執行某條歷史記錄

[root@instructor_v6(nanyibo) ~]# service postfix restart

Shutting down postfix:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [? OK? ]

Starting postfix:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [? OK? ]

[root@instructor_v6(nanyibo) ~]# !ser

service postfix restart

Shutting down postfix:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [? OK? ]

Starting postfix:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [? OK? ]

!!重復執行上一條歷史

ctrl+R 在歷史記錄中搜索使用過的命令

搜索到后,回車可直接運行

ctrl+g退出當前搜索?

tab退出搜索,但保留查到的結果,可修改后再運行

10. whatis 查看幫助

查找方式:基于數據庫的查找命令

優點:查找速度快

缺點:不具有實時性

centos6:

數據庫存放位置:/var/cache/man/whatis

更新數據庫:makewhatis

centos7:

數據庫存放位置:/var/cache/man/index.db

更新數據庫:mandb

[root@centos7 ~]# whatis cp

cp (1)? ? ? ? ? ? ? - copy files and directories

cp (1p)? ? ? ? ? ? ? - copy files

11.man 幫助命令

man + 命令 可查看關于此命令的幫助

在man界面翻頁的快捷方式:

f:向下翻一屏

b:向上翻一屏

d:向下翻半屏

u:向上翻半屏

j:向下翻一行

k:向上翻一行

g:跳至首頁

G:跳至尾頁

在man界面中搜索:

/ 關鍵字? 自上而下? n? 向下找 N向上找

? 關鍵字? 自下而上? n? 向上找 N向下找

12.文件系統結構

> /boot:引導文件存放目錄,內核文件(vmlinuz)、引導加載器(bootloader, grub)都存放于此目錄

> /bin:供所有用戶使用的基本命令;不能關聯至獨立分區,OS啟動即會用到的程序

> /sbin:管理類的基本命令;不能關聯至獨立分區,OS啟動即會用到的程序

> /lib:啟動時程序依賴的基本共享庫文件以及內核模塊文件(/lib/modules)

> /lib64:專用于x86_64系統上的輔助共享庫文件存放位置

> /etc:配置文件目錄

> /home/USERNAME:普通用戶家目錄

> /root:管理員的家目錄

> /media:便攜式移動設備掛載點

> /mnt:臨時文件系統掛載點

> /dev:設備文件及特殊文件存儲位置

? ? ? ? ? ? ? ?b: block device,隨機訪問

? ? ? ? ? ? ? ?c: character device,線性訪問

> /opt:第三方應用程序的安裝位置

> /srv:系統上運行的服務用到的數據?

> /tmp:臨時文件存儲位置

>?/usr 存放軟件的執行程序,庫文件及文檔

> /var 存放軟件可變的數據

> /proc 內核與存放進程信息的虛擬文件系統? ?(/proc/cpuinfo)

> /sys 存放硬件信息的虛擬文件系統

13.Linux下的文件類型

-:普通文件

?d: 目錄文件?

? b: 塊設備?

? c: 字符設備?

? l: 符號鏈接文件?

? p: 管道文件pipe?

? s: 套接字文件socket

14.pwd:查看當前所在的絕對路徑

[root@centos7 ~]# pwd

/root

-P 如果當前所在位置是軟鏈接目錄,則顯示源路徑

-L 顯示鏈接路徑(默認)

[root@centos7 bin]# pwd -P

/usr/bin

[root@centos7 bin]# pwd -L

/bin

絕對路徑與相對路徑

絕對:從根開始的路徑

相對:相對于當前的路徑

目錄名與基名

[root@instructor_v7(nanyibo) ~]# dirname '/etc/sysconfig/network-scripts/ifcfg-eth0'

/etc/sysconfig/network-scripts ? (取出目錄名)

[root@instructor_v7(nanyibo) ~]# basename '/etc/sysconfig/network-scripts/ifcfg-eth0'

ifcfg-eth0 ? (取出基名)

15.cd:改變目錄

cd + 路徑 按相對路徑或絕對路徑進入對應的目錄

cd 進入家目錄

[root@centos7 bin]# cd

[root@centos7 ~]#

cd ~ 進入家目錄

[root@centos7 bin]# cd ~

[root@centos7 ~]#

cd - 進入上一次的工作目錄,反復執行會在兩個目錄間來回切換

cd .. 切換至當前目錄的父目錄

16.ls:列出目錄內容

ls +?[options][fils or directories]

-a 顯示所有文件,包含隱藏文件

-A 顯示所有文件,包含隱藏文件,除了. and ..

-l 長列出,顯示屬性信息。如

[root@centos7 ~]# ll anaconda-ks.cfg

-rw-------. 1 root root? 1495 May 15 11:23 anaconda-ks.cfg

列出的文件的屬性信息為如下內容:

? ? -/d/l/s/b/c/p 表示文件的類型

? ? rw-? ---? --- 表示owner,group,other的權限

? ? . 表示該文件有selinux的context標簽,可用-Z 詳細查看

? ? 1 表示硬鏈接數

? ? root 表示該文件的owner

? ? root 表示該文件的group

? ? 1495 表示該文件的大小,默認bytes -h以人類可讀性顯示,則顯示具體的單位

? ? May 15 11:23 默認顯示為mtime,可使用u或--time=atime來顯示atime

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 可使用--time=ctime來顯示ctime

? ? anaconda-ks.cfg? 文件名

-dl 詳細指定目錄自己的屬性信息,而不是顯示子文件,子目錄信息

-R 遞歸

-1 (數字1)以一列顯示

-S 按文件大小從大到小排序

-tl 默認以修改時間從新到舊排序,而如果使用--time=a[c]time,則按所指定的時間從新到舊排序

-utl 以atime從新到舊排序 也可以用--time=atime -tl

不加t只有ul存在時,表示以atime來顯示詳細信息

-rS 按文件大小從小到大 -rt 按時間從舊到新

-U 按文件的存放順序顯示

-X 按文件后綴排序

-i 顯示文件的inode號

-Z 顯示context

17.stat:顯示文件或文件系統狀態(metadata元數據, data元數據)

[root@centos7 app]# stat file

? File: ‘file’

? Size: 20? ? ? ? Blocks: 8? ? ? ? ? IO Block: 4096? regular file

Device: 805h/2053d Inode: 71? ? ? ? ? Links: 1

Access: (0644/-rw-r--r--)? Uid: (? ? 0/? ? root)? Gid: (? ? 0/? ? root)

Context: unconfined_u:object_r:etc_runtime_t:s0

Access: 2018-05-29 09:57:58.980666458 +0800

Modify: 2018-05-29 09:57:58.982666458 +0800

Change: 2018-05-29 09:57:58.982666458 +0800

Birth: -

18.時間戳

access time(atime): 訪問時間,當文件被讀取時才更新

modify time(mtime): 數據修改時間,當文件的數據被修改時才更新

change time(ctime): 元數據修改時間,當文件的元數據(權限,大小,owner,group,mtime等)更新時則更新

查看時間:stat + 文件名:顯示文件的三個時間

? ? ? ? ? ? ? ? ? ? ? ? ls + 文件名? ? ?ls -l 默認查看mtime

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ls --time=atime -l 查看atime

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ls --time=ctime -l 查看ctime

19.?touch 創建新文件

touch ?+ [OPTION] + FILE

若文件不存在,則創建一個空文件

若文件存在,則更新三個時間戳

-a 更新atime和ctime

-m 更新mtime和ctime

-c 若文件存在,則更新三個時間戳,若不在,不會創建新文件,無作為。

20.文件通配符

*:匹配零或多個任意字符

?:匹配任意一個單一字符

0-9:表示任何數字

a-Z:表示所有字母,包括大小寫

[linux]:表示包含l或i或n或u或x

[^linux]:表示不包含l和i和n和u和x

[:digit:]:表示任意數字

[:lower:]:表示小寫字母

[:upper:]:表示大寫字母

[:alpha:]:表示大小寫字母

[:alnum:]:表示任意字母或數字

[:blank:]:表示空格(水平制表符)及TAB

[:space:]:表示空格(水平制表符)、回車(垂直制表符)及TAB

[:punct:]:表示符號

[:print:]:表示可打印字符

目前使用的編碼:UTF-8 (ASCII的擴展)

21.cp:復制文件

cp + [OPTION] + 源文件/目錄 + 目標文件/目錄

當源是一個文件時; ??當目標文件不存時,則新建文件,并填充內容

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 當目標文件存在,且為一個文件時,則覆蓋該文件

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 且為一個目錄時,則將該文件放置入該目錄

當源是多個文件時; ??當目標文件不存時,報錯

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?當目標文件存在,且為一個文件時,報錯

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?且為一個目錄時,則將所有源目文件放置入該目錄

當源是一個目錄時, 要配合-r; ??

? ?當目標不存在時,則創建指定名稱的目錄,并將源目錄當中的文件復制到新目錄當中

? ?當目標文件存在,且為一個文件時,報錯

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?且為一個目錄時,則兩個目錄內容合并,如有同名文件,則源目錄下的文件覆蓋目標目錄的文件。

-i 覆蓋時交互式提示

-r 遞歸,可以復制目錄

-d 默認不加-d時,cp復制軟鏈接會將源復制過去,加上-d保留鏈接屬性,把軟鏈接復制過去

--preserv=

? ? ? ? ? ? ? ? ? ? mode 權限不變

? ? ? ? ? ? ? ? ? ? owner[ship] 權限及owner,group 不變

? ? ? ? ? ? ? ? ? ? time 三個時間戳不變

? ? ? ? ? ? ? ? ? ? xattr acl權限不變

? ? ? ? ? ? ? ? ? ? links 鏈接不變

? ? ? ? ? ? ? ? ? ? context 文件的selinux上下文關系不變

? ? ? ? ? ? ? ? ? ? all

-p? 等于 --preserv=mode,owner,time

-a 等于 -rdp

-v 顯示復制過程

-f 強制覆蓋: 當普通用戶對目標文件不可更改時,但對該目標文件所在的目錄有創建及刪除文件的權限,則使用-f可以強制覆蓋,實際上是先刪除文件,再創建

-u 只覆蓋源比目標文件新的文件

--backup-numbered 覆蓋前,先將舊文件改名為 文件名.~數字~

22.mv : 移動和重命名文件

mv + [OPTION] + 源文件/目錄 + 目標文件/目錄

源為文件,目標為目錄時,將文件移到目錄內,若目標目錄不存在時則新建目錄

源和目標同時為文件或目錄時,若目標存在則覆蓋,若不存在則新建目標(相當于修改源文件的名字)

常用選項:

-i: 交互式?

-f: 強制? 直接覆蓋,不交互式,抵消i的作用

若要批量修改文件名可使用rename命令

rename +a +b +c 把名稱a改成名稱b,c為需要修改的文件列表,如果一個文件就直接指定文件名

? ? ? [root@centos7 b]# ls

? ? ? 1.doc? 3.doc? 5.doc? 7.doc? a.xls? c.xls? e.xls? g.xls

? ? ? 2.doc? 4.doc? 6.doc? 8.doc? b.xls? d.xls? f.xls? h.xls

? ? ? [root@centos7 b]# rename doc txt *.doc

? ? ? [root@centos7 b]# ls

? ? ? 1.txt? 3.txt? 5.txt? 7.txt? a.xls? c.xls? e.xls? g.xls

? ? ? 2.txt? 4.txt? 6.txt? 8.txt? b.xls? d.xls? f.xls? h.xls

23.rm : 刪除

? -i交互式提示(rm默認不提示,因別名中有cp=cp -i,所有提示要刪除)

? (在rm命令前加上路徑,可直接執行,跳過別名,如:/bin/rm 命令。或在命令前加反斜杠也可,如:\rm)

? -f 直接刪除,不提示(與i相反)

? -r 遞歸刪除(目錄與內容,直接rm只能刪除文件,不能刪除目錄,與rf組合后可刪除直接刪除全部

? rm dir2/* -rf? 刪除dir2目錄下的全部文件

? rm rf *? 刪除本目錄下的全部內容

? rm -rf / --no-preserve-root

rm 目錄和文件的連接數遞減刪除,當鏈接數由1刪到0時,對應的inode在位圖中由占用變為空閑。

? 此時實際數據不會被馬上刪除,但當另一個文件使用此數據塊時會被覆蓋

bitmap 位圖:inode bitmap ??block bitmap

24.tree : 顯示目錄樹

? ? -d: 只顯示目錄

? ? -L level:指定顯示的層級數目(可與d組合使用)

? ? ? [root@centos7 app]# tree -L 1

? ? ? .

? ? ? ├── test

? ? ? └── test2

? ? -P pattern: 只顯示由指定pattern匹配到的路徑

tree?安裝:

? ? ? [root@centos7 test2]# mount /dev/cdrom /media/

? ? ? [root@centos7 test2]# rpm -ivh /media/Packages/tree-1.6.0-? ? ? 10.el7.x86_64.rpm

25.mkdir : 刪除目錄

-p 可以同時創建多級目錄

-v 在創建目錄時顯示詳細信息

-m xxx? 創建同時指定權限

手工創建家目錄

? ? ? ?mkdir /home/magetest

? ? ? cp -r /etc/skel/.[^.]* /home/magetest

? ? ? chown -R magetest.magetest /home/magetest

? ? ? chmod -R 700 /home/matgtest

26.硬鏈接與軟鏈接

創建硬鏈接

ln + 源路徑 + 目的路徑 (注意:源與目的要在同一文件系統下)

創建硬鏈接會增加額外的記錄項以引用文件 ,創建時鏈接數遞增

每個目錄引用相同的inode號?

刪除硬連接?rm

文件要存在,至少有一個鏈接數

當刪除硬鏈接,鏈接數會遞減刪除,從而釋放的inode號。

釋放的inode號可以被重用;數據塊也會被放在空閑列表中

當鏈接數為零時,該文件被刪除

實際是刪除目錄項,數據實際上不會馬上被刪除,但當另一個文件使用數據塊時將被覆蓋。

創建軟鏈接:一個符號鏈接指向另一個文件

ln -s + 源路徑 + 目的路徑

軟鏈接可以對目錄進行也?可以跨分區

軟鏈接指向的是另一個文件的路徑;其大小為指向的路徑字符串的長度;不增加或減少目標文件inode的

引用計數

27.file 確定文件類型

file [options] <filename>

-b 列出文件辨識結果時,不顯示文件名稱

-f filelist 列出文件filelist中文件名的文件類型

-F 使用指定分隔符號替換輸出文件名后默認的”:”分隔符

-L 查看對應軟鏈接對應文件的文件類型

[root@centos7 app]# file testfile

testfile: ASCII text


常用快捷鍵及命令

清屏命令:clear 或?ctrl + l

ctrl+a 光標移至行首(命令輸入行)

ctrl+e 光標移至行尾(命令輸入行)

Ctrl + u 從光標處刪除至命令行首

?Ctrl + k 從光標處刪除至命令行尾

?Alt + r 刪除當前整行 (注意:Alt組合快捷鍵經常和其它軟件沖突)

stty -echoctl 可取消ctri+c的顯示?^C

stty echoctl 可恢復ctri+c的顯示?^C

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,546評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,570評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,505評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,017評論 1 313
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,786評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,219評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,287評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,438評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,971評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,796評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,995評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,540評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,230評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,662評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,918評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,697評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,991評論 2 374

推薦閱讀更多精彩內容