Linux基礎(chǔ)-文件管理

一驻民、文件管理

[TOC]

目前服務(wù)器端的主流文件系統(tǒng)是:ext4與xfs引几;

df -T 查看磁盤的格式化的格式竞膳,主流一般是 xfs 和ext4,系統(tǒng)盤默認(rèn)是xfs携茂,后續(xù)添加數(shù)據(jù)盤盡量也是xfs格式這樣統(tǒng)一比較好,也方便寫腳本批量掛盤诅岩。

1.文件操作

(1.1),查看文件列表:ls

# 1.查看文件的詳細(xì)信息: 
$ ls -l
# 2.查看文件的詳細(xì)信息并以人性化的方式展現(xiàn)(k/M/G): 
$ ls -lh
# 3.查看所有的文件(包括隱藏文件): 
$ ls -a
# 4.查看所有文件的詳細(xì)信息: 
$ ls -al
# 5.查看所有文件的詳細(xì)信息并以人性化的方式展現(xiàn)(k/M/G): 
$ ls -alh
# 6.幫助查詢命令: 
$ ls --help
# 7.分屏顯示文件列表: 
$ more ls

[圖片上傳失敗...(image-b89a3a-1659493439801)]

??圖詳解
(1).第1個字母代表文件的類型:“d” 代表文件夾讳苦、“-” 代表普通文件、“c” 代表硬件字符設(shè)備吩谦、“b” 代表硬件塊設(shè)備鸳谜、“s”表示管道文件、“l(fā)” 代表軟鏈接文件式廷。 
(2).后 9 個字母分別代表三組權(quán)限:文件所有者咐扭、用戶組、其他用戶擁有的權(quán)限滑废。
(3).文件的硬鏈接數(shù)
(4).文件的擁有者
(5).文件的擁有組
(6).文件的大小
(7).文件的修改時間
(8).文件名
ls.png

(1.2).通配符

命令(含通配符) 含義
* 文件代表文件名中所有字符
ls am* 查找以am開頭的文件
ls *html 查找結(jié)尾為html的文件
蝗肪? 代表文件名中任意一個字符
ls ?.c 只找第一個字符任意,后綴為.c的文件
ls a.? 只找只有3個字符蠕趁,前2字符為a.薛闪,最后一個字符任意的文件
[] [”和“]”將字符組括起來,表示可以匹配字符組中的任意一個俺陋』硌樱“-”用于表示字符范圍。
[abc] 匹配a腊状、b诱咏、c中的任意一個
[a-f] 匹配從a到f范圍內(nèi)的的任意一個字符

(2),輸出重定向:

# 1.將查詢出來的目錄名輸出到指定文件中(重新并覆蓋之前的,如果不存在則創(chuàng)建):
$ ls > xxx.txt
# 2.將查詢出來的目錄名輸出到指定文件中(在之前的基礎(chǔ)上追加,如果不存在則創(chuàng)建):
$ ls >> xxx.txt

(3),文件的創(chuàng)建、查看寿酌、刪除

# 1.創(chuàng)建一個空文件: 
$ touch xxx.txt
# 2.查看文件的內(nèi)容: 
$ cat xxx.txt
# 3.查看文件的內(nèi)容并顯示行號: 
$ cat -b xxx.txt
# 4.合并文件內(nèi)容到一個新的文件中(源文件不刪除): 
$ cat xxx1.txt xxx2.txt > xxx.txt
# 5.刪除一個文件: 
$ rm xxx.txt
rm 參數(shù) 含義
-i 以進(jìn)行交互式方式執(zhí)行
-f 強制刪除胰苏,忽略不存在的文件,無需提示
-r 遞歸地刪除目錄下的內(nèi)容醇疼,刪除文件夾時必須加此參數(shù)

(4),管道(一個命令的輸出可以作為管道作為另一個命令的輸入):

$ ls -alh | more

(5),為兩個文件建立連接(需要指明源文件名和連接文件名):

# 1.軟連接: 當(dāng)原始文件被刪除,當(dāng)前軟連接文件則不能被訪問
$ ln -s xxx.txt soft_xxx.txt
# 2.硬鏈接: 即使原始的文件被刪除,當(dāng)前硬鏈接文件仍然可以訪問
$ ln xxx.txt hard_xxx.txt

(6),文件的查找

# find命令功能非常強大硕并,通常用來在特定的目錄下搜索符合條件(使用正則表達(dá)式)的文件,也可以用來搜索特定用戶屬主的文件秧荆。
# 1.查找/etc目錄下的所有文件中含有"root"的:
$ find /etc -name "root"
# 2.查找/etc目錄下的所有文件中"root"開頭的:
$ find /etc -name "^root"
# 3.查找/etc目錄下的所有文件中"root"結(jié)尾的:
$ find /etc -name "root$"
命令 含義
find ./ -name test.sh 查找當(dāng)前目錄下所有名為test.sh的文件
find ./ -name '*.sh' 查找當(dāng)前目錄下所有后綴為.sh的文件
find ./ -name "[A-Z]*" 查找當(dāng)前目錄下所有以大寫字母開頭的文件
find /tmp -size 2M 查找在/tmp 目錄下等于2M的文件
find /tmp -size +2M 查找在/tmp 目錄下大于2M的文件
find /tmp -size -2M 查找在/tmp 目錄下小于2M的文件
find ./ -size +4k -size -5M 查找當(dāng)前目錄下大于4k倔毙,小于5M的文件
find ./ -perm 777 查找當(dāng)前目錄下權(quán)限為 777 的文件或目錄

(7),文本文件的內(nèi)容搜索,也可以在通道之后搜索:

grep選項 含義
-v 顯示不包含匹配文本的所有行(相當(dāng)于求反)
-n 顯示匹配行及行號
-i 忽略大小寫
# grep命令是文本搜索工具,grep允許對文本文件進(jìn)行模式(通過指定正則表達(dá)式)查找乙濒。如果找到匹配模式陕赃,grep打印包含模式的所有行卵蛉。
# grep [-選項] ‘搜索內(nèi)容串’文件名
# 1.搜索以a開頭的行: 
$ grep "^a" 1.txt
# 2.搜索以a結(jié)尾的行: 
$ grep "a$" 1.txt
3.匹配[]里中一系列字符中的任意一個: 
$ grep "[a-g]kk" 1.txt

(8),文件的拷貝和移動

# cp命令的功能是將給出的文件或目錄復(fù)制到另一個文件或目錄中
1.拷貝文件到a路徑下:
    1)直接復(fù)制不提示:
    $ cp 1.txt a
    2)顯示拷貝進(jìn)度:cp 1.txt a -v
    3)已經(jīng)存在的目標(biāo)文件不提示:cp 1.txt a -f
2.拷貝文件夾a到文件夾b中(不存在則創(chuàng)建): cp a b -r
# 用戶可以使用mv命令來移動文件或目錄,也可以給文件或目錄重命名么库。
3.移動文件到a路徑下: mv 1.txt /a -v
4.移動文件夾a到文件夾b中(不存在則創(chuàng)建): mv a b -v
5.修改文件名: mv 1.txt 2.txt
選 項 含義
-a 該選項通常在復(fù)制目錄時使用傻丝,它保留鏈接、文件屬性诉儒,并遞歸地復(fù)制目錄葡缰,簡單而言,保持文件原有屬性忱反。
-f 已經(jīng)存在的目標(biāo)文件而不提示
-i 交互式復(fù)制泛释,在覆蓋目標(biāo)文件之前將給出提示要求用戶確認(rèn)
-r 若給出的源文件是目錄文件,則cp將遞歸復(fù)制該目錄下的所有子目錄和文件温算,目標(biāo)文件必須為一個目錄名怜校。
-v 顯示拷貝進(jìn)度

(9),文件的壓縮與解壓縮

# tar使用格式 tar [參數(shù)] 打包文件名 文件
1.打包文件:tar -cvf xxx.tar *.txt
解壓文件:tar -xvf xxx.tar
2.打包并壓縮文件(.tar.gz):tar -zcvf xxx.tar.gz *.txt
解壓縮文件(.tar.gz):tar -zxvf xxx.tar.gz
3.打包并壓縮文件(.tar.bz2):tar -jcvf xxx.tar.bz2 *.txt
解壓縮文件(.tar.bz2):tar -jxvf xxx.tar.bz2
4.打包并壓縮文件(.tar.zip):zip xxx.zip *.txt
解壓縮文件(.tar.zip):unzip xxx.zip
5.解壓到指定路徑:tar -zxvf xxx.tar.gz -C /a
參數(shù) 含義
-c 生成檔案文件,創(chuàng)建打包文件
-v 列出歸檔解檔的詳細(xì)過程注竿,顯示進(jìn)度
-f 指定檔案文件名稱茄茁,f后面一定是.tar文件,所以必須放選項最后
-t 列出檔案中包含的文件
-x 解開檔案文件

(10),文件的權(quán)限管理

1,修改文件的所有者:
    使用方法:chown 用戶名 文件或目錄名
    sudo chown demo xxx.txt
2,修改文件的所在組:
    使用方法:chgrp 用戶組名 文件或者目錄名
    chgrp demo xxx.txt
3,修改文件的權(quán)限:
    (1).字母法:chmod u/g/o/a +/-/= rwx 文件
        u:user 表示該文件的所有者
        g:group 表示與該文件的所有者屬于同一組( group )者蔓搞,即用戶組
        o:other 表示其他以外的人
        a:all 表示這三者皆是
        r:讀取; w:寫入; x:可執(zhí)行
        +:增加權(quán)限; -:撤銷權(quán)限; =:設(shè)定權(quán)限
        修改文件所有者的權(quán)限:chmod u+w XXX.txt
        修改文件所有者的屬于同一組的權(quán)限:chmod g+w XXX.txt
        修改其他人的權(quán)限:chmod o+w XXX.txt
        修改三者的權(quán)限:chmod a+w XXX.txt
    (2).數(shù)字法(讀胰丁、寫、執(zhí)行<--->4喂分、2锦庸、1;不具有任何權(quán)限是0):
        例0:chmod u=rwx,g=rx,o=r filename <=======>chmod u=7,g=5,o=4 filename
        例1: chmod 751 file
        文件所有者:讀、寫蒲祈、執(zhí)行權(quán)限(7=4+2+1)
        同組用戶:讀甘萧、執(zhí)行的權(quán)限(5=4+1)
        其它用戶:執(zhí)行的權(quán)限(1=1)
        例2: chmod 777 file:所有用戶擁有讀、寫梆掸、執(zhí)行權(quán)限
        例3: 如果想遞歸所有目錄加上相同權(quán)限扬卷,需要加上參數(shù)"-R" 
        chmod 777 test/ -R 遞歸 test 目錄下所有文件加 777 權(quán)限
數(shù)字法控制權(quán)限.png

(11),處理INode資源耗盡的問題

1),方法一

通過找到當(dāng)前系統(tǒng)中文件最多的目錄,然后查看文件的硬連接數(shù)(因為一個文件名和一個INode號是一一對應(yīng)的關(guān)系酸钦,但是也可以多個相同的文件名對應(yīng)一個Inode號碼)怪得,刪除多余的文件,并控制文件生成的數(shù)量卑硫。

  • 1徒恋,查看文件最多的目錄

    這里直接指定的根目錄,當(dāng)然也可可以指定具體的目錄欢伏。

    for i in /*; do echo $i; find $i | wc -l; done
    
  • 2入挣,刪除大量文件

    ls | xargs -n 1000 rm -rf
    

2.目錄操作

(1),展示當(dāng)前目錄:

pwd

(2),切換目錄:

1.切換到當(dāng)前用戶的主目錄: cd
2.切換到根目錄: cd /
3.切換到家目錄: cd ~
4.切換到上一層目錄: cd ..
5.當(dāng)前目錄: .
6.切換到指定目錄: cd /etc
7.可進(jìn)入上次所在的目錄: cd -

(3).創(chuàng)建和刪除目錄:

1.創(chuàng)建一個普通的文件夾:mkdir a
2.創(chuàng)建指定路徑下的文件夾(指定-p的時候是確保目錄名稱存在,如果目錄不存在的就新創(chuàng)建一個):
mkdir a/b/c/d -p
刪除一個空目錄: rmdir a
刪除一個有文件的目錄: rm -r a

(4).清除當(dāng)前屏幕中顯示的內(nèi)容

直接敲命令: clear
使用快捷鍵: ctrl+L

3.Vi編輯器

vi.png

1.命令模式

# (1),進(jìn)入插入模式:
    i: 插入光標(biāo)前一個字符 
    I: 插入行首 
    a: 插入光標(biāo)后一個字符 
    A: 插入行未 
    o: 向下新開一行,插入行首 
    O: 向上新開一行,插入行首
# (2),復(fù)制粘貼命令:
    yy:復(fù)制 光標(biāo)所在的這一行
    4yy:復(fù)制 光標(biāo)所在的這一行開始向下的4行
    p:粘貼
# (3),刪除命令(也就是剪切,在不粘貼的情況下就是刪除):
    x:刪除(剪切) 當(dāng)前光標(biāo)選中的那個,每次只刪除一個
    X:刪除(剪切) 當(dāng)前光標(biāo)前面的那個,每次只刪除一個
    dd:剪切(刪除) 光標(biāo)所在的這一行
    2dd:剪切(刪除) 光標(biāo)所在的這一行開始向下的2行
    d0:從當(dāng)前光標(biāo)開始剪切(刪除),一直到行首
    dw:刪除光標(biāo)開始位置的字,包含光標(biāo)所在字符
    D:從當(dāng)前的光標(biāo)開始剪切(刪除),一直到行末
# (4),移動光標(biāo)命令:
    h:左  j:下  k:上  l:右
    H:當(dāng)前屏幕的上方
    M:當(dāng)前屏幕的中間
    L:當(dāng)前屏幕的下方
    {: 按段移動,上移 
    }: 按段移動,下移
    ctrl+f------>向下翻一頁代碼
    ctrl+b------>向上翻一頁代碼
    ctrl+d------>向下翻半頁代碼
    ctrl+u------>向上翻半頁代碼
    20G:快速定位到第20行代碼
    G:快速回到 整個代碼的最后一行
    gg:快速回到 整個代碼的第1行
    w:向后跳一個單詞的長度,即跳到下一個單詞的開始處
    b:向前跳一個單詞的長度,即跳到上一個單詞的開始處
# (5),撤銷命令:
        u:撤銷剛剛的操作
        ctrl+r:反撤銷
# (6),可視模式下選中文本:    
        v:按字符移動,選中文本 
        V:按行移動,選中文本可視模式可以配合 d, y, >>, << 實現(xiàn)對文本塊的刪除,復(fù)制,左右移動
# (7),文本移動
        >>:向右移動代碼
        <<:向左移動代碼
# (8),重復(fù)命令:
        .:重復(fù)執(zhí)行上一次的命令,可以配合左右移動代碼的時候使用
# (9),替換命令:
    r:替換一個字符:在命令模式下先輸入r,然后可以輸入新的字符替換當(dāng)前字符
        末行模式下,將光標(biāo)所在行的abc替換成123
            :%s/abc/123/g
        末行模式下硝拧,將第一行至第10行之間的abc替換成123
            :1, 10s/abc/123/g
    R:替換光標(biāo)以及后面的字符:在命令默認(rèn)下輸入R,然后輸入新的字符可以將當(dāng)前光標(biāo)之后的所有元素進(jìn)行替換
# (10),查看命令:
    /:str(字符串)查找
    n:在查找之后,表示下一個
    N:在查找之后,表示上一個
    在搜索之后一直高亮顯示,我們可以嘗試搜索一個不存在的字符便可以去除.
# 補充常見錯誤說明径筏、以及解決方法:
# (1).如果在vim中按ctrl+s后出現(xiàn)鍵盤失靈葛假,可以按ctrl+q恢復(fù)!
詳細(xì)說明:
使用vim時滋恬,如果你不小心按了 Ctrl + s后聊训,你會發(fā)現(xiàn)不能輸入任何東西了,像死掉了一般夷恍,其實vim并沒有死掉魔眨,這時vim只是停止向終端輸出而已媳维,要想退出這種狀態(tài)酿雪,只需按Ctrl + q 即可恢復(fù)正常。

2.末行模式

(1),在vim中執(zhí)行shell命令:
    末行模式里輸入!,后面跟命令  
(2)退出:
    shift+zz:相當(dāng)于末行模式下的wq(保存并退出)
    w:保存
    q:退出
    wq:保存并退出
    q!:強制退出
(3),設(shè)置行號(只是在當(dāng)前vim打開的文檔中生效):
        顯示行號(要在末行模式下輸入): :set number <====> :set nu
        取消顯示行號(同樣也要在末行模式下輸入):set nonumber <====> set nonu
        永久設(shè)置vim的一些屬性:更改~/.vimrc文件即可
        vim ~/.vimrc
        設(shè)置行號:set number
        設(shè)置搜索出的內(nèi)容高亮:set hlsearch
(4),在末行模式下的替換
    將光標(biāo)所在行的abc全部替換成123(其中g(shù)的固定的):
        :%s/abc/123/g
    將第一行至第10行之間的abc替換成123:
        :1, 10s/abc/123/g
    替換文中每一行的第一個 str1 為 str2: 
        :%s/str1/str2/ 
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末侄刽,一起剝皮案震驚了整個濱河市指黎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌州丹,老刑警劉巖醋安,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異墓毒,居然都是意外死亡吓揪,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進(jìn)店門所计,熙熙樓的掌柜王于貴愁眉苦臉地迎上來柠辞,“玉大人,你說我怎么就攤上這事主胧“仁祝” “怎么了?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵踪栋,是天一觀的道長焙格。 經(jīng)常有香客問我,道長夷都,這世上最難降的妖魔是什么眷唉? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮囤官,結(jié)果婚禮上冬阳,老公的妹妹穿的比我還像新娘。我一直安慰自己治拿,他們只是感情好摩泪,可當(dāng)我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著劫谅,像睡著了一般见坑。 火紅的嫁衣襯著肌膚如雪嚷掠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天荞驴,我揣著相機與錄音不皆,去河邊找鬼。 笑死熊楼,一個胖子當(dāng)著我的面吹牛霹娄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鲫骗,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼犬耻,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了执泰?” 一聲冷哼從身側(cè)響起枕磁,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎术吝,沒想到半個月后计济,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡排苍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年沦寂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片淘衙。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡传藏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出幔翰,到底是詐尸還是另有隱情漩氨,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布遗增,位于F島的核電站叫惊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏做修。R本人自食惡果不足惜霍狰,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望饰及。 院中可真熱鬧蔗坯,春花似錦、人聲如沸燎含。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屏箍。三九已至绘梦,卻和暖如春橘忱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背卸奉。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工钝诚, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人榄棵。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓凝颇,卻偏偏與公主長得像,于是被迫代替她去往敵國和親疹鳄。 傳聞我的和親對象是個殘疾皇子拧略,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容