Linux之目錄介紹及文件管理

Linux filesystem hierarchy and file manager

命令總結(jié):
本章節(jié)包含如下命令:
touch, mkdir, cp, install, mv, rm, mktemp譬正,more, less, head, tail, man, stat帚湘,setfacl, getfacl, set, wc, cut, sort, uniq, diff, path

一孩哑、File system hierarchy standard

**Linux設(shè)計哲學(xué)一切皆文件媒峡,包括所有的設(shè)備、總線都定義為文件钧敞,F(xiàn)HS協(xié)會將linux文件定義為各個不同的層級蜡豹,每個從根到根下的二級目錄,表示的意義都不一樣犁享。Linux操作系統(tǒng)包含了kernel和application余素。Linux系統(tǒng)又將各類庫劃分為兩大類,其中包含了靜態(tài)庫和動態(tài)庫炊昆。靜態(tài)庫是直接編譯進同內(nèi)核桨吊,即initrd中,隨系統(tǒng)啟動時啟動凤巨。動態(tài)庫是將所包含的功能編譯為單個庫文件视乐,放至系統(tǒng)指定的目錄中,再程序應(yīng)用啟動時敢茁,按需調(diào)用佑淀。Linux將系統(tǒng)所需要用到的庫文件都包含進了glibc庫中,故glibc是linux系統(tǒng)必不可少的庫文件彰檬。FHS定義的linux文件系統(tǒng)也被稱作為Filesystem Hierarchy Standard,其也被眾多的linux分行版本所引用伸刃,只是其極少的部分未統(tǒng)一。

Filesystem Hierarchy standard:

  1. /bin Essential user command binaries,所有用戶的基本命令文件存放路徑
  2. /sbin System binaries,系統(tǒng)管理二進制程序存放路徑
  3. /boot Static file of the boot loader,系統(tǒng)引導(dǎo)加載器必須用到的各靜態(tài)文件逢倍,如:kerenl,initrd,initramfs
  4. /dev device file ,特殊文件及設(shè)備文件
  5. /etc Host-specific system configuration,系統(tǒng)及程序的配置文件捧颅,只能為靜態(tài)文件,不能為二進制文件
  6. /home User-home directory(optional),普通用戶的家目錄
  7. /lib Essential shares binaries and kernel moudles,為系統(tǒng)及程序提供共享庫(/bin,/sbin等)较雕,以及為kernel提供內(nèi)核模塊
    1. lib.so.* :啟動鏈接的C庫
    2. ld* : 運行時鏈接器/加載器
    3. modules : 用于存儲內(nèi)核模塊的目錄
  8. /lib64 64位操作系統(tǒng)特有存儲64位庫的路徑
  9. /media Mount point for removable media
  10. /mnt Mount point for temp
  11. /opt And-on application software packages,第三方軟件安裝位置
  12. /root root home directory (optional)
  13. /srv Date for service provided by system,為當前主機服務(wù)提供的數(shù)據(jù)
  14. /tmp Temporary files.為所有用戶提供臨時存放文件的路徑碉哑,所有用戶有寫權(quán)限,這處有特殊權(quán)限
  15. /usr User Hierarhcy,全局共享只讀數(shù)據(jù)路徑
    bin/ sbin/ lib/ lib64/ include/ share/ local/ src/
  16. /usr/local local hierarchy.讓管理員安裝本地程序亮蒋,能通常安裝三方程序
  17. /var variables,var hierarchy,存儲學(xué)發(fā)生變化的數(shù)據(jù)目錄
    1. cache/ application cache date
    2. lib/ variables state information
    3. local/ variables date for /usr/local
    4. lock/ lock file
    5. log/ log file and directory
    6. opt/ variable date for opt
    7. run/ date relevnat to runing processes
    8. spool/ application spool date
    9. tmp/ temporary files
  18. /proc Kernel and processes information virtual filesystem,基于內(nèi)存的虛擬文件系統(tǒng)扣典,存儲內(nèi)核和進程的相關(guān)信息,多為內(nèi)核參數(shù)
  19. /sys sysfs虛擬文件系統(tǒng)慎玖,提供了比proc更為理想的訪問內(nèi)核數(shù)據(jù)的途徑贮尖,主要用來管理硬件
    1. /sys/devices 這是內(nèi)核對系統(tǒng)中所有設(shè)備的分層次表達模型
    2. /sys/dev 維護了一個按字符設(shè)備和塊設(shè)備的主次設(shè)備號連接到真實設(shè)備,在2.6.26引用
    3. /sys/bus 按總線類型分層旋轉(zhuǎn)的目錄結(jié)構(gòu)趁怔,devices中的所有設(shè)備都工作在某種總線下
    4. /sys/class 按設(shè)備功能分類的設(shè)備模型湿硝,如所有輸入設(shè)備/sys/class/input之下
    5. /sys/block 系統(tǒng)中所有的塊設(shè)備
    6. /sys/firmware 系統(tǒng)加載固件機制對用戶空間的接口
    7. /sys/fs 描述系統(tǒng)中所有文件系統(tǒng)
    8. /sys/kernel 內(nèi)核所有可調(diào)整能數(shù)的位置
    9. /sys/module 系統(tǒng)中所有的模塊信息闰蛔,不論是靜態(tài)編譯或動態(tài)編譯的模塊KO文件,都可能會出現(xiàn)在這里

Linux system file type

  1. - : 普通文件
  2. d : 目錄文件图柏,directory
  3. b : block device,塊設(shè)備文件,以block為單位進行隨機訪問
  4. c : character device任连,字符設(shè)備蚤吹,支持以charactor為單位,進行線性訪問随抠,有時序
  5. l : symbolic link,符號連接文件
  6. p : pipe,命名管道
  7. s : socket裁着,套接字文件,IP:PORT = Socket

二拱她、文件的復(fù)制二驰、移動及刪除

創(chuàng)建文件

touch

`touch` - touch - change file timestamps
    synopsis:touch [OPTION]... FILE...
    options:
        `-c` : 只是修改時間,不創(chuàng)建文件
        `-a` : 修改文件的access時間秉沼,即訪問時間
        `-m` : 修改文件的mtime時間桶雀,卻數(shù)據(jù)的修改時間,元數(shù)據(jù)的修改時間是changetime,Ctime時間
        `-t` : STAMP,改到的指定時間
    例:touch -m -t 200212012001.08  # 修改mtime 并指定詳細時間

文件分兩類:
    文件元數(shù)據(jù)(meta date)
    文件數(shù)據(jù)

 時間戳:
            Access time : 最近訪問時間
            Modify time :  數(shù)據(jù)改變的時間
            Change time : 元數(shù)據(jù)改變的時間
            注:只要數(shù)據(jù)改變了唬复, 元數(shù)據(jù)也會變的
 故:使用touch修改timestamps矗积,是修改文件的元數(shù)據(jù)部分

創(chuàng)建目錄

`mkdir` - mkdir - make directories
    synopsis: mkdir [OPTION]... DIRECTORY...
    options:
        `-p` : --perents,按照創(chuàng)建父目錄
        `-v` :--verbose,查看創(chuàng)建進度信息
        `-m` : --mode=MODE,設(shè)置權(quán)限
             mkdir -m u=x,go=w DIR
             mkdir -m 600 DIR
    例:如何創(chuàng)建/tmp/x/y1,/tmpx/y2 ,/tmp/x/y1/a,/tmp/x/y1/b?
        mkdir -p ‘/tmp/x/{y1/{a,b},y2}
    例:如何創(chuàng)建a_c,a_d b_c,b_d
        mkdir {a,b}_{c,d}

============

復(fù)制文件

文件及目錄的復(fù)制 ,linux是將底層的數(shù)據(jù)流從一個位置導(dǎo)到另一個位置敞咧,再進行重命名操作

CP命令:

`cp` - copy file and directory
    synopsis: cp [OPTION]... [-T] SOURCE DEST
              cp [OPTION]... SOURCE... DIRECTORY
              cp [OPTION]... -t DIRECTORY SOURCE...
    options:
        `-i` : --interactive,交互模式棘捣,即覆蓋之前提示用戶
        `-f` : force,強制模式
        `-r` `-R` : 遞歸復(fù)制文件,用于復(fù)制目錄
        `-d` : 復(fù)制連接休建,如果復(fù)制的是一個連接文件乍恐,加`-d`只會復(fù)制連接文件,不會復(fù)制連接文件所指向的文件及內(nèi)容
        `--preserve` : 復(fù)制其擴展屬性测砂,=mode,=ownership,=timestamps(文件屬性時間),=xattr(擴展屬性),=context(安全標簽),=links,=all(表示以上都包含)
        `-a` : -dR --preserve=all,用于實現(xiàn)歸檔(archive)
        
        注意:如果在不加`-d`參數(shù)時復(fù)制links茵烈,將把連接指向的文件內(nèi)容復(fù)制一份到指定位置并以連接文件名命名
單源復(fù)制注意內(nèi)容:
    如果DEST不存在:則事先創(chuàng)建此文件,并復(fù)制源文件的數(shù)據(jù)流至DEST中
    如果DEST存在:
        如果DEST是非目錄文件:則覆蓋目標文件
        如果DEST是目錄文件:則先在DEST目錄下創(chuàng)建一個與源文件同名的文件并復(fù)制數(shù)據(jù)流至目標文件**
多源復(fù)制注意內(nèi)容:
    如果DEST不存在:錯誤
    如果DEST存在:
        如果DEST是非目錄文件邑彪,錯誤
        如果DEST是目錄文件:分別復(fù)制每個文件至DEST目錄中瞧毙, 并保持原名

install命令:

`install` - copy files and set attributes
    synopsis: install [OPTION]... [-T] SOURCE DEST
              install [OPTION]... SOURCE... DIRECTORY
              install [OPTION]... -t DIRECTORY SOURCE...
              install [OPTION]... -d DIRECTORY...
    options:
        `-m` : --mode=MODE,設(shè)定目標文件權(quán)限
                install -m o=x,ug=rw /etc/issue .
                nstall -m 755 /etc/issue ./issue
        `-o` : --owner=OWNER,設(shè)定屬主
        `-g` : --group=GROUP,設(shè)定屬組
        `-d` : 創(chuàng)建目錄

移動文件

mv

`mv` - move (rename) files
    sinopsis: mv [OPTION]... [-T] SOURCE DEST
          mv [OPTION]... SOURCE... DIRECTORY
          mv [OPTION]... -t DIRECTORY SOURCE...
    options: 
        `-f` : 強制
        `-i` : 交互

刪除文件

rm

`rm` - remove files or directories
    sinopsis: rm [OPTION]... FILE...
    options:
        `-f` : 強制
        `-i` : 交互
        `-r`,`-R` : 遞歸操作
    注:所有文件不建議直接刪除,建議使用MV將文件移動到一個固定位置寄症,后期確定不使用的時候再清理

創(chuàng)建臨時文件和目錄

mktemp

`mktemp` - mktemp - create a temporary file or directory
    synopsis: mktemp [OPTION]... [TEMPLATE]
    options:
        `-d` : 創(chuàng)建臨時目錄
        ·-u` : 測試創(chuàng)建
mktemp /tmp/mytmp.XXXX
mktemp -d /tmp/mytmp.XXXX   

================

三宙彪、文件查看類工具

分屏工具

more
`more` - more - file perusal filter for crt viewing
    synopssis: more [-dlfpcsu] [-num] [+/pattern] [+linenum] [file ...

less

`less` - less - opposite of more
    synopsis: less File
    options:
        `space` - 向下翻頁
        `b` - 向上翻頁
        `u` - 向上翻半頁
        `d` - 向下翻半頁
        `j` - 向下翻一行
        `k` - 向上翻一行
        `q` - 退出

head

`head` - head - output the first part of files
    synopsis: head [OPTION]... [FILE]...
    options:
        `-n` : 顯示要查看的前幾行
        注:一般可以使用`-6` 代替 `-n 6`

tail

`tail` - tail - output the last part of files
    synopsis: tail - output the last part of files
    options:
        `-n` : 顯示要查看的后幾行
        注:一般可以使用`-6` 代替 `-n 6`
        `-f` : --follow,監(jiān)控最后行的變化,并顯示出來

man

`man` - man - format and display the on-line manual pages
    synopsis: format and display the on-line manual pages
    options:
        注:同less工具有巧, man工具就是調(diào)用了Less的查看功能

stat

`stat` - stat - display file or file system status
    synopsis: stat [OPTION]... FILE...
    查看文件的元數(shù)據(jù)信息

wc

`wc` - wc - print newline, word, and byte counts for each file
    synopsis : wc [OPTION]... [FILE]...
    options:
        -l : 統(tǒng)計行數(shù)
        -c : byte conuts 
        -w : 統(tǒng)計單詞總數(shù)
        -m : 字符
   使用`wc file`: 格式為:行數(shù) 單詞 字符

cut

`cut` - remove sections from each line of file
    synopsis: cut OPTION... [FILE]...
    options:
        -d CHAR: 指定分隔符释漆,默認為空格
        -f #|#,#|#,#-#: fields,保留那些字段
  • 例:
    • cut -d: -f7 /etc/passwd
    • cut -d: -f1,3,5-7 /etc/passwd

sort

`sort` - sort - sort lines of text files
    synopsis: sort [OPTION]... [FILE]...
    options:
        -t CHAR : 指定分隔符
        -n : 基于數(shù)據(jù)大小排序
        -k # : 以#字段列進行排序
        -r :逆序進行排序(reverse)
        -f : 忽略字符大小寫
        -u : 重復(fù)的行只保留一份(重復(fù)相同且連續(xù)的行)
  • 例:
    • sort -r -n -t: -k3 /etc/passwd
    • cut -d: -f7 /etc/passwd | sort -u(統(tǒng)計系統(tǒng)用戶用了哪幾種shell)

uniq

`uniq` - report or omit repeated lines
    synopsis: uniq [OPTION]... [INPUT [OUTPUT]]
    options:
        -c : 每行重復(fù)出現(xiàn)的次數(shù)
        -u : 只顯示沒有重復(fù)的行
        -d : 只顯示重復(fù)的行,至少2次或2次以上
  • 例:
    • cut -d: -f7 /etc/passwd | sort | uniq -c (統(tǒng)計系統(tǒng)同一shell使用的次數(shù))

diff

`diff` - diff - compare files line by line
    synosis: diff [OPTION]... FILES
    options:
        -u : 不同風(fēng)格顯示文件差別篮迎,使用unified機制男图,顯示要修改行的上下文示姿,默認為3行
  • 例:diff fstab fstab.bak > fstab.path (應(yīng)用兩個文件成生fstab.path補丁文件)

path

synopsis: path [option] -i /path/to/patch_file /path/to oldfile (打補丁)
          path /path/to/oldfile < /path/to/patch_file (同上)
    • path -i fstab.path fstab : 打補丁
    • path -R -i fstab.patch fstab
  • diff用于生成補要逊笆,path用于打補丁

==============

IO重定向及管道

什么是管道及其作用:

將一個命令的執(zhí)行結(jié)果作為另一個命令的輸入栈戳,即是管道

計算機對文件的識別方式:

  • 標準輸入,0表示
  • 標準輸出难裆,1表示
  • 錯誤輸出子檀,2表示

程序的數(shù)據(jù)流有三種:

輸入的數(shù)據(jù)流 <---- 標準輸入(stdin),即鍵盤
輸出的數(shù)據(jù)流 ----> 標準輸出(stdout),即顯示器
錯誤的輸出流 ----> 錯誤輸出(stderr),顯示器

IO重定向

  • > : 覆蓋輸出重定向
  • >> : 追加輸出重定向
  • < : 輸入重定向
  • 2> : 錯誤覆蓋輸出重定向
  • 2>> : 錯誤追加輸出重定向
  • &> : 合并覆蓋重定向(即把標準輸出和錯誤輸出合在一起)
  • &>> : 合并追加重定向(即把標準輸出和錯誤輸出合在一起)
  • >| : 強行覆蓋(即使用命令set -c 關(guān)閉覆蓋重定向時,可以使用這個強行覆蓋)

setw命令:

options:
    -C : 開啟禁用覆蓋重定向
    +C : 關(guān)閉禁用覆蓋重定向
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末乃戈,一起剝皮案震驚了整個濱河市褂痰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌症虑,老刑警劉巖缩歪,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異谍憔,居然都是意外死亡匪蝙,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門习贫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來骗污,“玉大人,你說我怎么就攤上這事沈条⌒璺蓿” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵蜡歹,是天一觀的道長屋厘。 經(jīng)常有香客問我,道長月而,這世上最難降的妖魔是什么汗洒? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮父款,結(jié)果婚禮上溢谤,老公的妹妹穿的比我還像新娘。我一直安慰自己憨攒,他們只是感情好世杀,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著肝集,像睡著了一般瞻坝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上杏瞻,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天所刀,我揣著相機與錄音衙荐,去河邊找鬼。 笑死浮创,一個胖子當著我的面吹牛忧吟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播斩披,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼瀑罗,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了雏掠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤劣像,失蹤者是張志新(化名)和其女友劉穎乡话,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體耳奕,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡绑青,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了屋群。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片闸婴。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖芍躏,靈堂內(nèi)的尸體忽然破棺而出邪乍,到底是詐尸還是另有隱情,我是刑警寧澤对竣,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布庇楞,位于F島的核電站,受9級特大地震影響否纬,放射性物質(zhì)發(fā)生泄漏吕晌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一临燃、第九天 我趴在偏房一處隱蔽的房頂上張望睛驳。 院中可真熱鬧,春花似錦膜廊、人聲如沸乏沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屎蜓。三九已至,卻和暖如春钥勋,著一層夾襖步出監(jiān)牢的瞬間炬转,已是汗流浹背辆苔。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留扼劈,地道東北人驻啤。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像荐吵,于是被迫代替她去往敵國和親骑冗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

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

  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 12,135評論 2 34
  • Ubuntu的發(fā)音 Ubuntu遥倦,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音占锯。了解發(fā)音是有意...
    螢火蟲de夢閱讀 99,159評論 9 467
  • 1.Linux下如何用命令查看實時日志(完整命令) tail -f 路徑.log查看前多少行 tai-200f 路...
    qianyewhy閱讀 2,251評論 0 11
  • Linux系統(tǒng)一般有4個主要部分: 內(nèi)核袒哥、shell、文件系統(tǒng)和應(yīng)用程序消略。內(nèi)核堡称、shell和文件系統(tǒng)一起形成了基本...
    偷風(fēng)箏的人_閱讀 3,241評論 1 17
  • 秋風(fēng) 踮著腳尖 踩著樹梢 驚落黃葉幾片 蟋蟀 急忙地抖動翅膀 花腔耍得漂亮 月亮為歌者打上一道追光 團聚 是今晚最...
    青鳥啾啾閱讀 371評論 12 2