docker配置文件,Linux用戶管理(三)Linux文件管理

 2023-10-05 阅读 27 评论 0

摘要:Linux文件管理 一、文件系統及Shell的基本概念 1.文件系統的含義 文件系統是用來管理和組織保存在磁盤驅動器上數據的系統軟件 ? 2.Linux的文件系統 Linux系統采用虛擬文件系統技術(VFS)、結構采用倒立樹型、VFS使Linux支持以下文件系統:

Linux文件管理

一、文件系統及Shell的基本概念

1.文件系統的含義

文件系統是用來管理和組織保存在磁盤驅動器上數據的系統軟件

?

2Linux的文件系統

Linux系統采用虛擬文件系統技術(VFS)、結構采用倒立樹型、VFS使Linux支持以下文件系統:

EXT2? ?????????????????????二次擴展

EXT3? ?????????????????????三次擴展

SWAP? ?????????????????????交換文件系統

FATFAT32

NTFS????????????????? (默認不支持,需要特定的模塊)

VFAT????????????????????????虛擬FAT

SYSV????????????????????????Unix的文件系統

HPFS????????????????????????OS/2的文件系統

ISO9660??????????????????????光盤文件系統

NFS??????????????????????????網絡文件系統

?

3Linux中的文件分類

?????1)普通文件

???????????文本文件:采用ASCII編碼方式,可編輯,可修改

???????????二進制:不可查看,不可修改

?????2)目錄文件

???? ???????? ??存放的內容是目錄中的文件名和子目錄名

?????3)設備文件(/dev

?????????? ? ??用于用戶訪問物理設備所用,分為塊設備和字符設備文件

?????4)鏈接文件

?? ? ????? ?????軟鏈接文件:目標文件和鏈接文件可以跨越索引點,相當于文件的快捷方式

?????????????????????? ??刪除原文件,則符號鏈接文件失去意義

?????????????????????????刪除符號鏈接文件,不影響原文件

?? ? ????????? ?硬鏈接文件:鏈接同一索引點中的文件,相當文件的副本

?????????????????????? ??兩個文件指向同一存儲區,內容、長度相同

?????????????????????????刪除一個文件不影響,其它文件

??????5)管道文件

?????????? ??FIFO緩存隊列

?

4Shell的主要功能

命令行解釋

交互模式

后臺運行

命令的多種執行順序

命令替換?``

I/O重定向(>,>>,<,<<

管道(|

通配符(*,?,[],[!]

系統環境維護?

Shell編程

歷史記錄(history

自動補齊(TAB

?

5Shell的命令解釋過程

wKiom1nMctiz10eoAACw8T_h_Jo603.jpg-wh_50

?

二.文件操作命令

1pwd

功能:顯示當前目錄

實例:

#pwd

?

2cd

功能:改變當前目錄

實例:

# cd? /usr/sbin?(進入/usr/sbin

# cd ??../u1?(進入父目錄下面的u1目錄)

# cd ??..(返回父目錄)

#cd?? ?(進入用戶主目錄)

#cd? ~?(進入用戶主目錄)

3mkdir

功能:建立目錄

格式:mkdir? [參數]?<目錄名>

參數:-m?屬性值:指定目錄的屬性?(rwx421)

-p?:循環建立目錄

實例:

#mkdir?? d1?????????????????(在當前目錄下建立d1子目錄)

#mkdir?? /d1/d2? /d1/d3?/d1/d4(同時在/d1目錄中建立d2,d3,d4子目錄)

# mkdir ?–p ?/d1/d2???????????(在/d1目錄中建立d2子目錄,先建d1

?

4rmdir

功能:刪除空目錄

格式:rmdir? [參數]? <目錄名>

參數:-p:循環刪除

實例:

#rmdir? a1????????(刪除當前目錄下的a1子目錄)

#rmdir? /etc/a2?????(刪除/etca2子目錄)

#rmdir? -p?/a1/a2

?

5ls

功能:顯示目錄中的文件及子目錄的名稱

格式:ls ????[參數]? [文件名]

參數:-a:顯示所有文件(包括隱含文件,以“.”開頭的文件為隱含文件)

????? -l?以長格式顯示文件名及目錄名(顯示文件的詳細信息)

-F:顯示文件名,同時顯示類型

????? -R:顯示目錄中所有文件及子目錄中的文件結構

????? -t?按照修改時間排序顯示

????? -s:顯示文件的大小,以block為單位

????? -S:按照文件大小排序顯示?

????? -m:分列顯示文件名

實例:

# ls????????????? ???

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

# lsgrub.conf? ???????查找當目錄下是否存在grub.conf

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

# ls? --help?????????顯示ls的詳細的幫助信息

# ls? -a

?

6cp

功能:復制文件

格式:cp??[參數]? ?<源路徑> ?<目標路徑>?

參數:-f:文件在目標路徑中存在時,則直接覆蓋

????? ?-i:文件在目標路徑中存在時,?提示是否覆蓋

???????? -r:復制指定中所有內容和結構

???????? -b:生成覆蓋文件的備份

???? ????-a:保持文件原有屬性

實例:

# cp? /etc/*??/a1/??????/etc下的所有文件復制到a1目錄中

#cp? /bin/ls??/dir1????? /bin/ls文件到/目錄取名為dir1

#cp? -f?/sbin/*? /exe/???直接將/sbin下的所有文件到/exe目錄中

#cp? -r ?/soft?/abc/

?

7rm

功能:刪除文件

格式:rm ?[參數]? ?<文件名>

參數:-f???不提示確認刪除

????? -i????提示確認刪除

????? -r????遞歸刪除

??實例:

# rm? /m1/f1?????????刪除/m1目錄下的f1

# rm ?–f??/m1/*???????刪除m1目錄下的所有文件

#rm? -rf? /m1???????強制刪除一個目錄(不確定、慎用)

?

8mv

功能:移動文件、重命名文件

格式:mv [參數]?<源路徑>? <目標路徑>

參數:-i?????如果存在文件重名則提示是否覆蓋

-b?????建立覆蓋文件的備份

????? -f?????如果存在文件重名則直接覆蓋

???

實例:

# mv?? /m1/f1????/m2/???移動/m1目錄下f1文件到/m2目錄下

#mv? ??f1?? f2??????????將當前目錄下的f1文件改名f2

# mv?? -f ?/d1/*?/d2/ ???移動/d1中的所有文件到/d2目錄中

?

9file

功能:檢測文件類型

格式:file? [參數]? <文件名>

參數:?-z:檢測壓縮包文件

????? ????-L:跟隨符號鏈接

實例:

#file??? /etc/lilo.conf

#file??? -z?1.gz

?

10.顯示文本文件內容

1) cat

格式:cat ?[參數] <文件名>

參數:-n???顯示行號

????? -b??顯示行號,但空白行不顯示行號

實例:

#cat?? /etc/inittab

#cat? -n? /d1/f1? /d1/f2 >txt1

?

2more

格式:more ??[參數]<文件名>

實例:

# ls|more?????????? ??????ls的顯示結果輸入到more

#more? ?/etc/rc.d/rc???顯示/etc/rc.d/rc文件的內容

說明:可以用回車鍵向下換行,空格鍵向下換頁,按Q鍵退出more

?

3less

實例:

ls|less???????????????????

#less? /var/named/localhost.zone

說明:Page up /Page Down鍵上下滾動、Q鍵退出

?

4headtail

實例:

#head? -20 ????/a1? ??顯示a1中前20行

# tail ??-20????/a1 ?顯示中a1后20行

?

5cut

功能:顯示文件中指定數目的字符、字節或字段

格式:#cut??參數??數字??文件

參數:-c???以字符為單位

????? -b?以字節為單位

????? -f??以字段為單位

????? -d?指定分隔符

實例:#cut? -c 3?/etc/passwd

????? #cut?-f? 1-6? -d?/etc/passwd

????? #cut?-b? -8? /etc/passwd

?

11.搜索文件

1?find

格式:find? ?查找路徑???查找條件

條件:-name?“文件名”:查找指定名稱文件

?????? -lname?“文件名”:查找指定文件所有的接文件

?????? -user?用戶名:查找指定用戶擁有的文件

?????? -group?組名:查找指定組擁有的文件

?????? -links?n:查找擁有n個鏈接的文件

?????? -mtime n:查找在N天前被修改過的文件

???????? ?-atime?n:查找在N天前被訪問過的文件

????????? -type?d/f/b/l/p:查找指定類型的文件

????????? -s n[bcwkMG]:查找指定大小的文件

????????? -empty:查找為空的文件

????????? -perm?mode:查找指定屬性的文件

????????? -exec ?command {}\;?查找指定的文件并執行指定的命令

????????? -newer?文件名??查找比指定文件新的文件

實例:

#find?? /??-name?? “named*”

#find?? /??-user?? root

#find? ?./ ?-type ?d?-exec ?chmod 755 {} \;

#find . ?–empty

#find . ?–perm ?644

#find . ?–newer ?oldfile ?! ?-newer?newfile

?

2?whereis

功能:查找二進制可執行、手冊及源文件

實例:# whereis?? umount

?

3?locate

功能:在資料庫中查找指定的文件

格式:#locate [參數] 文件名

參數:

-u/-U??建立資料庫,-u?會由根目錄開始,-U?則可以指定開始位置

-e ?<目錄1…>??排除指定目錄在尋找范圍之外

-l ?<0/1> ???設置安全級別,1啟用安全模式,0關閉安全模式

-f ?<文件類型> 在資料庫中排除特定類型文件排除在外

-n?至多顯示n個輸出

-r?使用正規運算式做尋找的條件

-o?指定資料庫存的名稱。

-d?指定資料庫的路徑

實例:

#locate-u

#locatechdrv

#locate -n100 a.out

?

4?which

功能:查找指定命令文件

格式:#which??文件名

實例:#which? mount

?

12grep

功能:在文本文件中查找匹配的字符串

格式:#grep? [參數]“字符串”?文件

???????????參數:?-? ??同時顯示匹配行上下的?行

-b???在匹配行前面打印該行所在的塊號

-c???只打印匹配的行數,不顯示匹配的內容

-f File?從文件中提取模板,空文件中包含0個模板,所以什么都不匹配

-h???當搜索多個文件時,不顯示匹配文件名前綴

-I???忽略大小寫差別

-q ??取消顯示,只返回退出狀態。0則表示找到了匹配的行

-l???打印匹配模板的文件清單

-L???打印不匹配模板的文件清單

-n???在匹配的行前面打印行號

-s???不顯示關于不存在或者無法讀取文件的錯誤信息

-v???反檢索,只顯示不匹配的行

-w???如果被\<\>引用,就把表達式做為一個單詞搜索

正則表達式元字符:

^?錨定行的開始?如:'^grep'匹配所有以grep開頭的行

$?錨定行的結束?如:'grep$'匹配所有以grep結尾的行

.?匹配一個非換行符的字符?如:'gr.p'匹配gr后接一個任意字符,然后是p

*?匹配零個或多個先前字符?如:'*grep'匹配所有一個或多個空格后緊跟grep的行。docker配置文件。.*一起用代表任意字符

[]?匹配一個指定范圍內的字符,如'[Gg]rep'匹配Grepgrep

[^]?匹配一個不在指定范圍內的字符,如:'[^A-FH-Z]rep'匹配不包含A-RT-Z的一個字母開頭,緊跟rep的行

\(..\)?標記匹配字符,如'\(love\)'love被標記為1

\<?錨定單詞的開始,如:'\<grep'匹配包含以grep開頭的單詞的行

\>?錨定單詞的結束,如:'grep\>'匹配包含以grep結尾的單詞的行

x\{m\}?重復字符xm次,如:'0\{5\}'匹配包含5o的行

x\{m,\}?重復字符x,至少m次,如:'o\{5,\}'匹配至少有5o的行

x\{m,n\}?重復字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10o的行

\w?匹配文字和數字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零個或多個文字或數字字符,然后是p

\W

\w的反置形式,匹配一個或多個非單詞字符,如點號句號等

\b?單詞鎖定符,如: '\bgrepb\'只匹配grep

+?匹配一個或多個先前的字符。如:'[a-z]+able',匹配一個或多個小寫字母后跟able的串,如loveable,enable,disable等。

??匹配零個或多個先前的字符。centos7用戶管理、如:'gr?p'匹配gr后跟一個或沒有字符,然后是p的行。

a|b|c?匹配abc。如:grep|sed匹配grepsed

()?分組符號,如:love(able|rs)ov+匹配loveablelovers,匹配一個或多個ov。LINUX教程?

x{m},x{m,},x{m,n}作用同x\{m\},x\{m,\},x\{m,n\}

?

實例:

# ls -l |grep '^a'

通過管道過濾ls -l輸出的內容,只顯示以a開頭的行。

# grep'test' d*

顯示所有以d開頭的文件中包含test的行。

# grep'test' aa bb cc

顯示在aabbcc文件中匹配test的行。vim配置文件,

# grep'[a-z]\{5\}' aa

顯示所有包含每個字符串有5個連續小寫字符的字符串的行。

# grep'w\(es\)t.*\1' aa

如果west被匹配,則es就被存儲到內存中,并標記為1,然后搜索任意個字符(.*),這些字符后面緊跟著另外一個es\1),找到就顯示該行。如果用egrepgrep-E,就不用"\"號進行轉義,直接寫成'w(es)t.*\1'就可以了。

?

13.文件壓縮操作

1gzip*.gz

功能:對單個文件壓縮

格式:gzip? [參數]?壓縮(解壓縮)文件名

參數:?-d:用于解壓縮

????? ??-t:檢驗壓縮文件是否損壞

????? ??-l:顯示壓縮文件壓縮比例

-r?:遞歸式地查找指定目錄并壓縮其中的所有文件或者是解壓縮

-num?用指定的數字?num?調整壓縮的速度,-1??--fast?表示最快壓縮方法(低壓縮比)

實例:

#gzip??? /a1

#gzip??? -d? /a1.gz

#gzip??? -dv?? /*.gz

#gzip???? -r?/www

?

2zip

功能:壓縮文件

格式:#zip? [參數]??文件或目錄名

?-d???從壓縮文件內刪除指定的文件。
?-F???嘗試修復已損壞的壓縮文件。
?-t<mmddyy>???把壓縮文件的日期設成指定的日期。
?-u???更換較新的文件到壓縮文件內。
?-v???顯示指令執行過程或顯示版本信息。
?-z???替壓縮文件加上注釋。
?-<壓縮效率>???壓縮效率是一個介于1-9的數值。
?-P?口令????利用指定口令加密壓縮包
?-m??????添加文件到ZIP壓縮包中

實例:#zip? abc.zip?f1?? f2 ??f3

????? #zip ?-r –P 123?soft.zip? /soft/

????? #zip?-d? soft.zip? soft/wb

????? #zip?–u? soft.zip?? abc.log

????? #zip?-m? soft.zip?? install.log

?

3unzip

功能:?解壓縮zip文件

格式:?#unzip?[.zip文件]
? -l ?顯示壓縮文件內所包含的文件。
?? -P?? <密碼>???
???-d ??<目錄>指定文件解壓縮后所要存儲的目錄。

實例:

#unzip? ?f1.zip??-d ??/f1

#unzip ??–l ??f1.zip

?

4tar(*.tar)

功能:為文件或目錄創建備份

格式:tar? [參數]???文件/目錄名

參數:-t:列出壓縮包中的文件(*.tar

-x:解壓縮(*.tar

-z:使用gzip的壓縮文件

-c:創建壓縮包

-f:指定文件名

-j:使用bzip的壓縮文件

-v:顯示操作信息

-C:指定解壓路徑(默認路徑為當前路徑)

-r?向壓縮包添加文件

-u:更新壓縮包中的文件

-k:還原文件過程中,遇到相同文件不覆蓋

-m:還原文件過程中,修改文件的時間為當前時間

????????????????實例:

# tar -cvf?all.tar *.jpg

# tar -uvfall.tar logo.gif

# tar -rfall.tar *.gif

#tar? -czvf?? etc.tar.gz??/etc

#tar? -xvf?all.tar?

#tar? -xzvf??? etc.tar.gz?-C /soft

注:除以上的壓縮工具外,還有compress(uncompress)bzip2(unbzip2)

?

14ln

功能:建立鏈接文件

格式:ln?[參數] ?<源文件>? <鏈接文件>

參數:-s:建立軟鏈接文件

????? -i:提示是否覆蓋目標文件

????? -f:直接覆蓋已存在的目標文件

???????????????實例:

# ln? /etc/abc?/abc

# ln? -s?/a1???? /etc/a1

?

15. touch

功能:創建空文件或修改文件的時間

格式:#touch ?[參數]??文件名

參數:-r?修改文件的時間為指定文件的日期時間

????? -d <yymmdd> ?指定文件日期時間為yymmdd

????? -t <yymmddhhmm>?指定文件日期時間為yymmddhhmm

????? -c?不創建指定的文件

實例:#touch?? /f1?/f2

????? #touch?-r? /f1? /f2

?? ???#touch -d "6:03pm 05/06/2000"file

?

16. sort

功能:對文本文件進行排序

格式:sort? [參數]? [文件]

參數:-o?文件名?將排序結果保存到指定文件中

??? ??-u???去除重復行

實例:

#sort? /etc/passwd

#sort ?–o?/etc/oldpass? /etc/passwd

?

17. paste

功能:合并文本文件

實例:#paste? f1? f2>f3

?

18. cmp

功能:比較兩個文件是否有差異

格式:#cmp ?[參數]??文件1文件2

參數:-l???顯示不同的字節位置

????? -s??不顯示不同之處,只顯示返回狀態

實例:#cmp? f1? f2

???? ?#cmp?-l? f1? f2

?

18. diff

功能:顯示文件的不同之處

格式:#diff? [參數]  文件1  文件2

參數:-c???顯示全文,并標出不同之處

???? ?-u???合并顯示,并標出不同之處

實例:#diff? f1?? f2

??? ??#diff?-c? f1? f2

?

19. wc

功能:統計文件中的行數、單詞數、字符數

格式:#wc? [參數]  文件名

參數:-c?統計字符數

????? -w?統計單詞數

????? -l?統計行數

實例:#wc? /etc/passwd

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

?

三.vi編輯器的使用

1vi?定義

?? Vi?Unix/Linux系統中的一種文本編輯軟件

2vi三種模式

命令模式:刪除字符、排版

插入模式:插入字符、刪除、修改字符

最后行模式:通過命令操作vi軟件

?

?wKioL1nMcmvTGJ9AAACInehgHGs939.jpg-wh_50

3vi的使用

1)啟動VI

# vi [參數]? ?[文件名]

2VI常用命令

移動光標

左移一個字符:按h

右移一個字符:按l

下移一行:???j

上移一行:???k

移至行首:???^

移至行尾:???$

移至文件頂部:按H

移至文件尾部:按L

移至文件中部:按M

前翻一屏:???ctrl+f

后翻一屏:???ctrl+b

前翻半屏:???ctrl+d

后翻半屏:???ctrl+u

移動光標到指定行:輸入:數字

插入文本

在光標右邊插入文本:??????????a

在一行的結尾處添加文本:??????A

光標左邊插入文本:????????????i

在行首插入文本:??????????????I

在光標所在行的下一行插入新行:按o

在光標所在行的上一行插入新行:按O

撤消和重復操作

撤消上一個操作:按u

撤消光標所在行的更改:按U

重復操作:輸入

刪除文本

刪除當前字符:???x

刪除一詞:????????dw

刪除一行:????????dd(剪切)

刪除行的部分內容:按D(刪除光標右的內容)或按d0(刪除光標左的內容)

刪除到文件的結尾:按dG

dL?:刪除直到屏幕上最后一行的內容

dH?:刪除直到屏幕上第一行的內容

dG?:刪除直到工作緩存區結尾的內容(文尾)

d1G?:刪除直到工作緩存區開始的內容(文頭

:n,md??從第n行開始刪除m

復制和粘貼

復制一行內容:按yy

粘貼:??p

查找和替換命令

/string:向前查找字符串

?string:向后查找字符串

n:繼續上一次查找

shift+n:以與上一次相反的方向查找

:s/字符串1/字符串2/g:在全文中替換字符串1為字符串2

n,ms/字符串1/字符串2/g:替換nm行中的字符串1為字符串2

保存和退出命令

:w:寫緩沖區

:w?文件名:把緩沖區寫入指定文件

:wq:保存退出

:q!:不保存退出

:wq!:保存退出,對擁有者忽略只讀權限

E!:取消自上次保存以來所做的修改

ZZ:保存退出

修改文本命令

cl?:更改當前字符

cw?:修改到某個單詞的結尾位置

c3w?:修改到第三個單詞的結尾位置

cb?:修改到某個單詞的開始位置

c0?:修改到某行的結尾位置

c):修改到某個語句的結尾位置

c4):修改到第四個語句的結尾位置

c}?:修改到某個段落的結尾位置

c2{?:修改到當前段落起始位置之前的第2個段落位置

ctc?:修改當前行直到下一個字符c所出現位置之間的內容

C?:修改到某一行的結尾

cc?:修改當前行

會話定制命令

:set?顯示vi變量

:set all:顯示所有可能的vi變量和它們當前的值

:set nu:顯示行號

:set nonu:隱藏行號

:setshowmode:顯示當前操作模式

:setnoshowmode:隱藏當前操作模式

:set ai:自動對齊

:set dir=目錄:設置緩沖區的位置

注:-可以vi設置信息保存在用戶主目錄的.exrc文件中

?

4VI的高級應用

1)編輯多個文件

#vi??-o]文件1??文件2 ………

-o:同一窗口打開多個文件

:next:編輯下一個文件

:prev:編輯上一個文件

:args:顯示所有打開的文件名稱

Ctrl+ww?:切換窗口

:e??文件名:讀入另一文件

?

2)高級復制

:start,end? cp?dest:將startend行的內容復制到dest行以下

:start,end? m? dest:將startend行的內容移動到dest行以下

nY:將從光標所在行開始的n行內容暫存

:[m],[n]w<文件名>:把mn內容另存到指定文件中

?

3)其它高級應用

:X?輸入口令:以口令加密保存

:ctrl+s:鎖定VIctrl+q解鎖)

:r !<命令>:執行指定命令,并將命令結果插入到當前文件中

:J:合并上下兩行

?

四.軟件包的管理

1Linux軟件包主要類型

1RPM

由于RedHat公司開發的一種軟件封包方式,可以用于多種Linux系統

RPM包名稱格式為:軟件名-版本號.運行平臺.rpmfoo-1.2.0-3.i386.rpm

Linux系統會使用專用的數據庫記錄RPM包的安裝情況

2TAR

TAR包封裝的通常是軟件源代碼,并且利用了gzip或其它方式進行二次壓縮

?

2RPM包的管理

1)安裝RPM

#rpm? -ivh? [詳細選項]? RPM包名稱

詳細選項:

--nodeps?????忽略依賴關系

--rplacepkgs???強制覆蓋已存在的RPM

實例:

#rpm –ivh? grub-0.93-7.i386.rpm??????

?

2)升級RPM

#rpm? -Uvh?[--nodeps/--replacepkgs]??軟件包名稱

實例:

#rpm –Uvh? bind-9.2.20-8.i385.rpm

?

3)查詢RPM

#rpm? -q[a/f?文件名/l/]?? [軟件名稱]

實例:#rpm –q? bind(查詢軟件名為bind的軟件包)

????? #rpm –qa(查詢系統中所有已安裝的RPM包)

????? #rpm –qf??/boot/grub/grub.conf?(查詢grub.conf文件所屬的RPM包)

????? #rpm?-ql? bind?(查詢軟件名為bind軟件包并顯示軟件包的內容)

?

4)卸載RPM

#rpm? -e??軟件名稱

實例:#rpm? -e ?bind

?

5)檢驗RPM

#rpm –V 軟件名稱

實例:#rpm? -V??bind

?

3TAR軟件包的管理

(1)安裝TAR

解壓縮

配置安裝參數

編譯和安裝

實例:

#tar –xzvf?? bind-9.2.0.tar.gz

#cd bind-9.2.0

#./configure? --prefix=/usr/named

#make

#makeinstall

?

2)卸載TAR

直接刪除安裝

實例:

#rm? -rf?/usr/named


本文轉自 sswqzx 51CTO博客,原文鏈接:http://blog.51cto.com/sswqzx/1969385


版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/121143.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息