三.文件管理

1.基本文件管理:

普通文件:

增:touch????

使用格式:#touch???文件名1??文件名2??...?

創(chuàng)建單個文件:?

#touch???file1

創(chuàng)建多個文件: ?

#touch??file2??file3??file4同時創(chuàng)建三個文件??

注意:文件名是可以帶空格的,但是盡量避免這樣的操作???

刪:rm???

使用格式:#rm??文件名1???文件名2??...

刪除單個文件:

#rm??file1??

remove?regular?empty?file?`file1'???Y代表刪除??N不刪除

刪除多個文件:

#rm??file2??file3??file4??

注意:?本身rm并不能交換詢問,是它的一個選項-i導(dǎo)致會詢問

-i:?prompt?before?every?removal

擴展:命令的別名,如果一個命令有別名,會先去引用別名?

查看別名:#alias???

alias?rm='rm?-i'再去使用rm的時候,相當(dāng)于使用了rm?-i???

設(shè)定別名:#alias???別名="命令+[選項]+[參數(shù)]"

???#alias???tom="rm??-i"??

#tom????file1也會將tom當(dāng)作rm?-i去使用?

取消別名:#unalias???別名??

???#unalias???tom????

#alias發(fā)現(xiàn)tom的別名就沒有了?

強制刪除:可以不再交互式詢問

-f:?force強制刪除???

#rm???-f????file1?????

改:

編輯:#vim???文件名????

vim的使用模式:

命令模式:直接使用命令打開的模式

常見的命令:

yy:復(fù)制,?4yy方式,復(fù)制4行????

dd:剪切,?4dd方式,剪切4行

p:粘貼,會將內(nèi)容粘貼到光標(biāo)所在行的下一行?

u:撤銷上一步操作

插入模式:?在命令模式下,按i??a??o??I??A??O中任意一個字符所進入的模式,就是編輯模式,可以任意書寫內(nèi)容

注意:在插入模式下,不能直接進入到末行模式,必須先回到命令模式,按Esc回到命令模式??

末行模式:在命令模式下,按冒號鍵進入的模式

注意:在末行模式,也不能直接進入到插入模式,也需回到命令模式,也是按Esc鍵??

末行功能:??

q:退出??

w:保持??

wq:保持并退出??

q!:強制退出,不保存??

w!:強制保存????

wq!:強制保存,并退出

例:#vim?????file1.txt????

注意:如果文件存在,則直接進行編輯;如果不存在,則先創(chuàng)建,再編輯

復(fù)制:#cp??原文件???目標(biāo)文件???

例:?

#cp???file1.txt???file2.txt???

#cat??file2.txt發(fā)現(xiàn)內(nèi)容和file1.txt一樣???

#ls??-i???

270953?file1.txt??261191?file2.txt兩個文件的inode不一樣

移動、剪切:#mv???原文件???目標(biāo)文件???

#mv???file1.txt???file3.txt???

#cat??file3.txt???

#ls??-i???

270953?file3.txt???file3的inode號,跟原文件file1一樣

在某種層次上,可以把移除,理解成是給文件改名?

查:cat???tac??head????tail???more???less???

正向查看:?會將文件內(nèi)容一次性讀進內(nèi)存進行查看?

#cat文件名???

#cat???/etc/passwd??

-n:顯示行數(shù)??

#cat?-n???/etc/passwd???

反向查看:

#tac文件名???

#tac???/etc/passwd??

查看頭部:

#head文件名??

#head???/etc/passwd默認(rèn)顯示文件的前十行??

#head???-3????/etc/passwd顯示文件的前三行??

查看尾部:?

#tail文件名??

#tail???/etc/passwd顯示尾十行???

#tail??-3??/etc/passwd顯示尾三行??

翻頁查看:向下翻頁

#more文件名?

#more???/etc/passwd?

按回車鍵,向下翻一行;按空格,向下翻一頁;按q退出查看

翻頁查看:上下左右翻頁

#less文件名??

#less???/etc/passwd???

按回車鍵,向下翻一行;按空格,向下翻一頁;按q退出查看;還可以使用上下左右箭頭查看,可以回看?

目錄:

增:mkdir???

創(chuàng)建一個目錄:#mkdir???目錄名???

#mkdir??aa???

創(chuàng)建多個目錄:#mkdir??目錄名1???目錄名2??...

#mkdir??bb???cc???dd??

同時創(chuàng)建多級子目錄:?

#mkdir??-p????ff/fff/ffff/fffff???

刪:rmdir??

刪除一個目錄:#rmdir????目錄名???

#rmdir???aa????

刪除多個目錄:?

#rmdir??bb???cc???dd???

#rmdir???ff???

failed?to?remove?`ff':?Directory?not?empty

默認(rèn)rmdir只能刪除空的目錄?

遞歸刪除:#rm??-r????目錄名????

#rm??-r???ff發(fā)現(xiàn)可以刪除???

改:cp??mv???

復(fù)制:#cp??-r???原目錄???目標(biāo)目錄

#mkdir???-p??a/b/c/d??

#cp???a????h???

#ls???

#ls???-h????

剪切:#mv???原目錄??目標(biāo)目錄?

#mv???a???l????

#ls發(fā)現(xiàn)沒有了a目錄,生成了l目錄??

#ls???-R???l???

查:ls?????

2.擴展查看:file????stat????type?????

file:查看文件內(nèi)容的類型

#file?????/etc/passwd??

ASCII?text純文本的文件,可以直接使用cat等命令查看??

#file????/bin/ls????

64-bit?LSB?executable使用lsb協(xié)議加密的文件,不能使用cat等查看?

#file???/var/lib/mysql/ibdata1????

/var/lib/mysql/ibdata1:?data數(shù)據(jù)庫類型文件,也不能使用cat等查看

stat:查看文件的基本屬性詳細信息

#stat????/etc/passwd???

Access:訪問時間,查看了文件的內(nèi)容,該時間會變

Modify:修改時間,修改了文件的內(nèi)容,該時間會變

Change:改變時間,修改文件的基本屬性,該時間會變

type:查看命令的類型

#type???cd??

cd?is?a?shell?builtin系統(tǒng)內(nèi)建命令,伴隨內(nèi)核而來

#type???chmod???

chmod?is?/bin/chmod外部命令?????

#type???ls????

ls?is?aliased?to?`ls?--color=auto'如過有別名,先顯示別名

which:查看命令的絕對路徑

命令:就是一個文件,文件存放是功能代碼

#which????chmod????

/bin/chmod?????

3.文件的搜索:

locate:是本地數(shù)據(jù)庫中搜索,速度比較快,但不是實時的?

使用格式:#locate?????字符串(string)

注意:locate是對文件名做模糊匹配,只要將來文件中含有該字符串,就會被顯示

例1:?

#locate???ifcfg??

例2:?

#touch????/home/loring/zhangsanfeng.txt?

#locate??zhangsanfeng????

發(fā)現(xiàn)新創(chuàng)建的文件,沒有搜索到???

這是因為,數(shù)據(jù)庫默認(rèn)是每天更新一次,新建立的文件還沒有更新到數(shù)據(jù)

#updatedb手動更新數(shù)據(jù)庫的命令?

#locate?????zhangsanfeng?????

/home/loring/zhangsanfeng.txt

例3:??

#touch????/tmp/zhangwuji.txt

#updatedb?????

#locate????zhangwuji?????

發(fā)現(xiàn)更新了數(shù)據(jù)庫,依然搜索不到??

#vim???/etc/updatedb.conf????

PRUNEPATHS?=?"/afs?/media?/net?/sfs??/tmp"

path:路徑??

在這后面有/tmp的出現(xiàn),那么將來在/tmp中的文件,就不會更新到數(shù)據(jù)庫

如果想讓/tmp目錄中的文件,更新到數(shù)據(jù),將其從paths后刪除即可

#updatedb???

#locate???zhangwuji????

/tmp/zhangwuji.txt

find:是遍歷整個文件系統(tǒng)(目錄),速度較慢,但它是實時的?

使用格式:#find???目錄???選項??選項的參數(shù)

find是按照文件的基本屬性進行搜索的

準(zhǔn)備過程:?

#useradd????loring

#cd???/home/loring???

#touch???a.txt???b.txt???c.txt??????

#mkdir??abc????

#chown???loring????a.txt???

#chown???.loring????b.txt?

#chmod???631??c.txt??

#cp???/var/log/messages???/home/loring?????

按照文件的類型搜索:-type??

#find???/home/loring???-type???f???

代表從/home/loring目錄中進程搜索???

-type:代表按照文件的類型進程搜索??

常見的類型:f普通文件???d目錄??l鏈接文件??b塊設(shè)備??c字符設(shè)備

按照文件的權(quán)限搜索:-perm???????permission??權(quán)限???

#find??/home/loring???-perm???631???

搜索權(quán)限為631的文件??

/home/loring/c.txt

按照文件的所有者搜索:-user???

#find??/home/loring???-user???loring????

搜索所有者為loring的文件???

/home/loring/a.txt

按照文件的所屬組搜索:-group???

#find???/home/loring??-group???loring???

搜索組為loring的文件??

/home/loring/b.txt

按照文件大小搜索:-size????

#find???/home/loring???-size???4k搜索大小等于4k的文件

顯示內(nèi)容:/home/loring/abc

#find???/home/loring???-size???+4k搜索大于4k的文件

顯示內(nèi)容:/home/loring/messages

#find???/home/loring???-size???-4k搜索小于4k的文件??

顯示內(nèi)容:/home/loring/c.txt

??/home/loring/b.txt

??/home/loring/a.txt


#find????/home/loring???-size???+10k????-size??-50k???

搜索大于10k,但是小于50k的文件?

#find???/home/loring??-size????-1k????

#find???/home/loring??-size????-1M????

#find???/home/loring??-size????-1G???

注意:單位前別直接寫-1,-1等于0了??

按照文件名搜索:-name???

#find???/home/loring????-name???c.txt??

顯示/home/loring/c.txt????

#find???/home/loring????-name????c.tx發(fā)現(xiàn)沒有,精確搜索?

文件名通配:?

通配:用一些符號,來代表一類字符

通配符:?

*代表任意多個字符??

?代表任意單個字符??

[]代表要從括號中給定的值,任選一個

按照時間進行搜索:-mtime????-ctime???-atime???-mmin??-cmin???-amin???

-mtime:按照Modify時間進行搜索,單位是天?

-atime:按照access時間進行搜索,單位是天?

-ctime:按照change時間進行搜索,單位是天??

-mmin:按照modify時間進行搜索,單位是分鐘


#find????/home/loring????-mtime?????3??

代表搜索修改時間是在3天前--4天前,一天時間間隔內(nèi)


#find???/home/loring?????-mtime?????+3??

代表修改時間是在4天以前的文件


#find???/home/loring?????-mtime?????-3??

代表修改時間是在3天以內(nèi)的文件?

注意:find搜索文件,多個條件可以同時指定,按要求去做就行

#find???/home/loring??-user??loring??-size??+100k??-mtime??-10?????

4.文件的壓縮和解壓縮、打包:

壓縮和解壓縮:

壓縮:按照一定算法,將文件的內(nèi)容重新排列;也可以理解成是一種加密

解壓:按照壓縮的相同算法,還原以前的排列

壓縮目的:1.節(jié)約磁盤空間???2.節(jié)約網(wǎng)絡(luò)帶寬(文件在互聯(lián)網(wǎng)傳輸,要壓縮)??3.可以保證數(shù)據(jù)的安全??

準(zhǔn)備工作:?

#mkdir???/loring??

#cp???/var/log/messages???/loring/messages??

多復(fù)制幾個文件?


或者:?

#while?true;do?cat?/etc/passwd??>>?/loring/passwd;done???

執(zhí)行一會后,要按ctrl+c結(jié)束?

4.1?zip:

使用格式:#zip???壓縮文件名????文件名1??文件名2?...

注意:zip不僅有壓縮功能,也有打包功能

壓縮:?

例:?

#zip???loring.zip???passwd??passwd1???

注意:1.?loring.zip的壓縮文件名,是自己定義的,必須以.zip結(jié)尾,前面的名稱自定義即可

2.壓縮后,原文件不會丟失

解壓:??

#unzip壓縮文件名???

#unzip????loring.zip????

注意:?解壓后,壓縮文件也不會丟失


在解壓時,指定解壓路徑:

#unzip壓縮文件????-d???解壓路徑

#unzip????loring.zip??-d????/tmp?????

#ls??-lh???/tmp????

會發(fā)現(xiàn)兩個文件:passwd??passwd1?????


壓縮比:??

#zip??tom.zip???passwd2???

adding:?passwd2?(deflated?99%)???

壓縮比=(原文件大小-壓縮后文件大小)/原文件大小?

注意:?壓縮比越大,壓縮后文件就越小,壓縮的時間就越長

???壓縮比越小,壓縮后文件就越大,壓縮的時間越短??


???壓縮比的大小,不是固定的,要看文件的類型和里面的內(nèi)容

壓縮級別:?壓縮級別是固定的,可以影響壓縮比

壓縮級別:1-9一共九個級別,數(shù)字越大,壓縮級別越高??

注意:?壓縮級別越大,壓縮比就越大

???????壓縮級別越小,壓縮比就越小

4.2?gzip??

壓縮:

#gzip原文件名1???原文件名2????

注意:文件是分開壓縮,單獨存放;壓縮文件名是自動生成的

#gzip????/loring/passwd3??

#ls????/loring???

passwd3.gz???

注意:壓縮后,原文件會丟失;壓縮文件名的后綴為.gz????

#file??/loring/passwd3.gz????

解壓縮:?

第一種:?

#gunzip壓縮文件名????

#gunzip???passwd3.gz???

注意:解壓后,壓縮文件也會丟失

第二種:

#gzip???-d壓縮文件名???

#gzip???-d???passwd3.gz???????

-d:????Decompress?,解壓??

不解壓查看:

#zcat壓縮文件名????

#zcat?????passwd3.gz?????

指定壓縮級別:默認(rèn)在6的壓縮級別

#gzip?????-1???passwd4指定壓縮級別為1??

#gzip?????-9???passwd5指定壓縮級別為9???

4.3?bzip2??

壓縮:

#bzip2原文件名????

#bzip2????passwd4?????

#ls???-lh??/loring???

passwd4.bz2

注意:壓縮后,原文會丟失;壓縮文件名的后綴為.bz2???

解壓:

第一種:?

#bunzip2?????passwd4.bz2??

注意:解壓后,壓縮文件會丟失???

第二種:

#bzip2????-d????passwd4.bz2????

不解壓查看:

#bzcat壓縮文件名??

#bzcat??????passwd4.bz2?????

指定壓縮級別:

#bzip2????-1???passwd4???

#bzip2????-8???passwd5????

保留原文件:

在壓縮時,保留原文件:

#bzip2???-k???passwd5??????

在解壓時,保留壓縮文件:?

#bunzip2??-k??passwd5.bz2???

4.4?xz???

壓縮:

#xz原文件???

#xz????passwd5???

注意:壓縮后,原文件會丟失

解壓:

第一種:

#unxz壓縮文件?

#unxz???????passwd5.xz??

注意:解壓后,壓縮文件也會丟失???

第二種:

#xz????-d???passwd5.xz??

不解壓查看:

#xzcat壓縮文件?

#xzcat?????passwd5.xz???????

指定壓縮級別:

#xz????-3????passwd5??

#xz????-7????passwd5?????

保留原文件:?

壓縮時保留原文件:

#xz?????-k原文件???

#xz?????-k???passwd5

解壓時,保留解壓文件:?

#unxz???-k壓縮文件??

#unxz???-k??passwd5.xz???

4.5打包:??tar?????必須會用????

打包:歸檔?

#tar????-cvf歸檔文件名??????原文件1???原文件2??...

-c:??create創(chuàng)建歸檔文件??

-v:?verbose顯示創(chuàng)建的過程??

-f:?file操作的文件???

注意:只要使用了tar的命令,就必須有-f選項,而且該選項要放在所有選項的最后

例:?

#tar???-cvf???loring.tar?????passwd1???passwd2??

注意:默認(rèn)tar打包的同時,沒有壓縮功能;如果要想壓縮,要借調(diào)用壓縮工具


展開歸檔:

#tar????-xvf歸檔文件名????

-x:展開歸檔??

#tar????-xvf?????loring.tar???


注意:不管是歸檔,還是展開歸檔,原文件都不會丟失?

不展開歸檔查看:

#tar?????-tf歸檔文件???

-t:不展開歸檔查看里面的文件名?

#tar?????-tf?????loring.tar???

向歸檔文件中,追加文件:????

#tar????-rf歸檔文件名?????添加的文件名???

-r:追加???

#tar????-rf??????loring.tar?????passwd3???

#tar????-tf??????loring.tar驗證

注意:歸檔文件必須在沒有被壓縮的時候,才能向里追加文件??


歸檔時,調(diào)用壓縮工具進行壓縮:?

創(chuàng)建歸檔時,調(diào)用壓縮工具:?

#tar????-zcvf歸檔文件名?????原文件1??原文件2??

-z:?借調(diào)用gzip壓縮工具


#tar????-jcvf歸檔文件名?????原文件1??原文件2

-j:借調(diào)用bzip2壓縮工具?


#tar????-Jcvf歸檔文件名?????原文件1??原文件2

-J:?借調(diào)用xz壓縮工具??


例:?

#tar????-zcvf?????loring.tar.gz????passwd1??passwd2???

#tar????-jcvf?????loring.tar.bz2???passwd1??passwd2???

#tar????-Jcvf?????loring.tar.xz????passwd1??passwd2???


展開歸檔,并解壓壓縮:

#tar????-zxvf?????loring.tar.gz????

#tar????-jxvf?????loring.tar.bz2????

#tar????-Jxvf?????loring.tar.xz????


注意:歸檔時調(diào)用哪個壓縮工具進行壓縮的,那么展開歸檔時,就應(yīng)該還去調(diào)用同樣的壓縮工具,進行解壓

例如:#tar????-zxvf????loring.tar.bz2?????就是錯誤的使用


5.文件處理:排序、去重、切割、統(tǒng)計、過濾

注意:?以上5個命令都是針對文件中的內(nèi)容,都不會對原文件做任何修改,只會影響輸出

5.1排序:?sort???

5.1.1正向排序:

#sort文件名?????

#sort????/etc/passwd????

注意:默認(rèn)sort會按照行首字母,根據(jù)ascii碼的順序,進行排序;a-z的順序


5.1.2逆向排序:??-r??

#sort???-r文件名??

#sort???-r???/etc/passwd???


5.1.3按照數(shù)值大小排序:?-n???

#cat????a.txt??

10

10001

111

1010

10202

#sort????a.txt???

10

10001

1010

10202

111


#sort???-n???a.txt???

即按照大小排序,又是倒序:?

#sort???-n???-r????a.txt???

5.1.4按照文件的字段進行排序:??字段-->列???

準(zhǔn)備:??

#head??/etc/passwd???>??pass.txt?????

將passwd文件的前十行,放在pass.txt文件中,如果pass.txt不存在,會自動創(chuàng)建


#sort???-t??"分隔符"???-k????第幾列?????文件名???

#sort???-t??":"????-k???3?????pass.txt??

以冒號分隔,按照第三列進行排序


#sort???-t??":"??-k??3???-n????pass.txt???

按照第3列的數(shù)值大小進行排序?

5.1.5排序同時并去重:

#sort???-u文件名????

#sort????-u????/etc/passwd???


5.2去重:??uniq?????-->??unique??唯一??

準(zhǔn)備:?

#cat??b.txt??

?abc?

?123

?123

?abc

?abc

?123

去重:?

#uniq文件名???

#uniq???b.txt???

abc

123

abc

123

注意:默認(rèn)uniq只能去掉相鄰的重復(fù)行


統(tǒng)計重復(fù)行出現(xiàn)的次數(shù):

#uniq???-c文件名???

#uniq???-c????b.txt????

??1?abc

??????2?123

??????2?abc

??????1?123


去掉所有的重復(fù)行:

先排序,再去重

#sort???b.txt????|????uniq???

注釋:|?代表了無名管道,作用是將第一命令執(zhí)行的結(jié)果,傳遞給第二個命令去執(zhí)行

作業(yè):?將/etc/passwd文件中,第5行-第10行內(nèi)容顯示出來


#sort???-u文件名????

#sort???-u????b.txt???


#sort???b.txt???|??uniq???-c?????

去掉所有的重復(fù)行,并且統(tǒng)計重復(fù)行的數(shù)量

例如:可以統(tǒng)計一個IP地址,一共訪問了多少次?

5.3切割:?cut?????*****

#cut????-d??"分隔符"????-f???第幾列?????文件名???


單列輸出:??

#cut????-d???":"????-f??3???/etc/passwd輸出第3列??


多列輸出:

離散:

#cut???-d??":"???-f??1,3,5?????/etc/passwd輸出第1列、第3列和第5列?????


連續(xù):

#cut???-d??":"???-f???1-3?????/etc/passwd輸出第1列到第3列?


注意:?默認(rèn)輸出的分隔符,和輸入的分隔符保持一致;-d所指定的就是輸入分隔符??


指定輸出分隔符:?

#cut???-d??":"??-f??1,3???--output-delimiter="--->"???/etc/passwd??

--output-delimiter=指定輸出分隔符??

5.4統(tǒng)計:??wc?????-->??word??count??

統(tǒng)計所有信息:

#wc文件名???

#wc????/etc/passwd?

35???54?1663?/etc/passwd

行數(shù)???單詞數(shù)量???字符的數(shù)量??文件名???

統(tǒng)計行:?

#wc????-l文件名?

#wc????-l???/etc/passwd???

統(tǒng)計單詞:

#wc????-w文件名??

#wc????-w????/etc/passwd??

統(tǒng)計字符:?

#wc????-c文件名???

#wc????-c????/etc/passwd???

實驗:?

統(tǒng)計/tmp目錄下,一共有多少個文件??

#ls??-l??/tmp???|??wc??-l?????

注意:將得到數(shù)減1??

5.5過濾:?grep???*****

grep:行級過濾器,會將匹配到的行,整行顯示出來

準(zhǔn)備工作:?

#alias???grep='grep??--color=auto'

#useradd???loringroot??

#useradd???rootloring??

按照字符串進行過濾:?

#grep???"字符串"???文件名????

#grep???"root"????/etc/passwd????

要將文件中,含有root字符串的行,過濾出來


行首定位:^

#grep????"^root"???/etc/passwd????

代表了整行必須以root開頭,^代表以誰開頭


實驗:?

將/etc/fstab文件中,以#開頭的行過濾出來???

#grep????"^#"????/etc/fstab??


行尾定位:$

#grep????"bash$"?????/etc/passwd???

代表一整行,必須以bash結(jié)尾,$代表了以誰結(jié)尾


例:

#cat????c.txt??

rootrootroot??

root??loring?root??

root

rootloringroot??

#grep??"^root$"???c.txt??

整行中,只含有一個root字符串的行


過濾文件中的空行:

#grep????"^$"?????/etc/passwd???


詞首的錨定:\<

#grep???"root"????/etc/passwd


#grep???"\

在一行中,必須至少有一個單詞,要以root開頭?


詞尾的錨定:\>

#grep???"root"???/etc/passwd??


#grep???"root\>"????/etc/passwd??

在一行中,必須至少有一個單詞,要以root結(jié)尾


#grep?????"\"????/etc/passwd??

在一行中,必須至少含有一個root的完整單詞


常見的選項:?

-i??-v???-A??-B??-C???-rl???-R???


#grep???-i???"root"???/etc/passwd??

-i:忽略字符串的大小寫?


#grep???-v????"^#"???/etc/fstab????

-v:取反,匹配到反而不顯示,顯示匹配不成功的??

#grep???-v??"^$"???/etc/fstab????


#grep??-A??3???"root"????/etc/passwd??

-A:在匹配到行后,會再多向下顯示幾行

#grep???-B??2???"root"???/etc/passwd???

-B:在匹配到行之前,會再多顯示幾行

#grep???-C??3????"root"???/etc/passwd???

-C:在匹配到行的上下,會各多顯示幾行


準(zhǔn)備:?

#mkdir???/loring/a/b/c/d/e/f

#echo??hello??zhangsanfeng???>??/loring/a/b/c/d/e/f/haha.txt


#grep???-rl??"zhangsanfeng"????/loring?????????????******

#grep???-R???"zhangsanfeng"????/loring???

根據(jù)文件中的內(nèi)容,搜索文件的位置;只要文件中含有了zhangsanfeng字符串,就會被搜索出來

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容