Linux目錄結(jié)構(gòu)

一、命令回顧

1、ll會列出該文件下的所有文件信息,包括隱藏的文件,而ls -l只列出顯式文件。信息包括:

文件屬性 文件數(shù) 擁有者 所屬的group 文件大小 建檔日期 文件名

-rw-------. 1    root    root       1922     Mar  6 20:08 anaconda-ks.cfg
drwxr-xr-x. 2    root    root       6        Mar  6 22:34 Desktop
drwxr-xr-x. 2    root    root       6        Mar  6 22:34 Documents
drwxr-xr-x. 2    root    root       6        Mar  6 22:34 Downloads
-rw-r--r--. 1    root    root       1953     Mar  6 21:24 initial-setup-ks.cfg
drwxr-xr-x. 2    root    root       6        Mar  6 22:34 Music
drwxr-xr-x. 2    root    root       6        Mar  6 22:34 Pictures
drwxr-xr-x. 2    root    root       6        Mar  6 22:34 Public
drwxr-xr-x. 2    root    root       6        Mar  6 22:34 Templates
drwxr-xr-x. 2    root    root       6        Mar  6 22:34 Videos
-rw-r--r--. 1    root    root       250      Mar  9 10:46 who.out

意義:

  • 第一個欄位,表示文件的屬性。Linux的文件基本上分為三個屬性:可讀(r),可寫(w),可執(zhí)行(x)。但是這里有十個格子可以添(具體程序?qū)崿F(xiàn)時,實際上是十個bit位)。第一個小格是特殊表示格,表示目錄或連結(jié)文件等等,d表示目錄,例如drwx------;l表示連結(jié)文件,如lrwxrwxrwx;如果是以一橫“-”表示,則表示這是文件。
    -:普通文件
    d: 目錄文件
    b: 塊設(shè)備 //物理上實在存在的一塊設(shè)備
    c: 字符設(shè)備
    l: 符號鏈接文件
    p: 管道文件pipe
    s: 套接字文件socket,用于通信,方式:TCP/IP
    其余剩下的格子就以每3格為一個單位。因為Linux是多用戶多任務(wù)系統(tǒng),所以一個文件可能同時被許多人使用,所以我們一定要設(shè)好每個文件的權(quán)限,其文件的權(quán)限位置排列順序是(以-rwxr-xr-x為例):  
    rwx(Owner)r-x(Group)r-x(Other)  
    這個例子表示的權(quán)限是:使用者自己可讀,可寫,可執(zhí)行;同一組的用戶可讀,不可寫,可執(zhí)行;其它用戶可讀,不可寫,可執(zhí)行。另外,有一些程序?qū)傩缘膱?zhí)行部分不是X,而是S,這表示執(zhí)行這個程序的使用者,臨時可以有和擁有者一樣權(quán)力的身份來執(zhí)行該程序。一般出現(xiàn)在系統(tǒng)管理之類的指令或程序,讓使用者執(zhí)行時,擁有root身份。
  • 第二個欄位,表示文件個數(shù)。如果是文件的話,那這個數(shù)目自然是1了,如果是目錄的話,那它的數(shù)目就是該目錄中的文件個數(shù)了。
  • 第三個欄位,表示該文件或目錄的擁有者。若使用者目前處于自己的Home,那這一欄大概都是它的賬號名稱。
  • 第四個欄位,表示所屬的組(group)。每一個使用者都可以擁有一個以上的組,不過大部分的使用者應(yīng)該都只屬于一個組,只有當(dāng)系統(tǒng)管理員希望給予某使用者特殊權(quán)限時,才可能會給他另一個組。
  • 第五欄位,表示文件大小。文件大小用byte來表示,而空目錄一般都是1024byte,你當(dāng)然可以用其它參數(shù)使文件顯示的單位不同,如使用ls –k就是用kb萊顯示一個文件的大小單位,不過一般我們還是以byte為主。
  • 第六個欄位,表示創(chuàng)建日期。以“月,日,時間”的格式表示,如Aug 15 5:46表示8月15日早上5:46分。
  • 第七個欄位,表示文件名。我們可以用ls –a顯示隱藏的文件名。

2、ls 命令可以說是linux下最常用的命令之一。

選項有:

-a 列出目錄下的所有文件,包括以 . 開頭的隱含文件。

-b 把文件名中不可輸出的字符用反斜杠加字符編號(就象在C語言里一樣)的形式列出。

-c 輸出文件的 i 節(jié)點的修改時間,并以此排序。

-d 將目錄象文件一樣顯示,而不是顯示其下的文件。

-i 輸出文件的 i 節(jié)點的索引信息。

-l 列出文件的詳細信息。

-m 橫向輸出文件名,并以“,”作分格符。

-n 用數(shù)字的 UID,GID 代替名稱。

-o 顯示文件的除組信息外的詳細信息。

-p -F 在每個文件名后附上一個字符以說明該文件的類型,“*”表示可執(zhí)行的普通

文件;“/”表示目錄;“@”表示符號鏈接;“|”表示FIFOs;“=”表示套

接字(sockets)。

-q 用?代替不可輸出的字符。

-r 對目錄反向排序。

-s 在每個文件名后輸出該文件的大小。

-t 以時間排序。說明以最近修改的日期進行排序!

 -u 以文件上次被訪問的時間排序。

-A 顯示除 “.”和“..”外的所有文件。

-B 不輸出以 “~”結(jié)尾的備份文件。

-L 列出鏈接文件名而不是鏈接到的文件。

-N 不限制文件長度。

-Q 把輸出的文件名用雙引號括起來。

-R 列出所有子目錄下的文件。

-S 以文件大小排序。

-X 以文件的擴展名(最后一個 . 后的字符)排序。

-1 一行只輸出一個文件。

--color=no 不顯示彩色文件名

--help 在標(biāo)準(zhǔn)輸出上顯示幫助信息。

--version 在標(biāo)準(zhǔn)輸出上輸出版本信息并退出。

只列出子目錄

  1. ls -F | grep /$ 或者 alias sub = "ls -F | grep /$"(linux)

  2. ls -l | grep "^d" 或者 ls -lL | grep "^d" (Solaris)

下面命令可以分別計算當(dāng)前目錄下的文件和目錄個數(shù):

# ls -l * |grep "^-"|wc -l ---- to count files

# ls -l * |grep "^d"|wc -l ----- to count dir

顯示彩色目錄列表,打開/etc/bashrc, 加入如下一行:

alias ls="ls --color"

下次啟動bash時就可以像在Slackware里那樣顯示彩色的目錄列表了, 其中顏色的含義如下:

1. 藍色-->目錄

2. 綠色-->可執(zhí)行文件

3. 紅色-->壓縮文件

4. 淺藍色-->鏈接文件

5. 灰色-->其他文件 

ls -tl --time-style=full-iso sshd

ls -ctl --time-style=long-iso

3、help命令用法:

內(nèi)部命令:help cd
外部命令:ls --help

4、ls-a -l ——> ls -al 效果是一樣的

5、man命令:

提供命令幫助的文件,手冊頁存放在/usr/share/man。幾乎每個命令都有man的“頁面”,man頁面分組為不同的“章節(jié)”,統(tǒng)稱為Linux手冊。
man命令的配置文件:/etc/man.config | man_db.conf
MANPATH /PATH/TO/SOMEWHERE: 指明man文件搜索位置
man - M /PATH/TO/SOMEWHERE COMMAND: 到指定位置下搜索 COMMAND 命令的手冊頁并顯示
中文man需安裝包man-pages-zh-CN

MAN章節(jié):

1: 用戶命令
2: 系統(tǒng)調(diào)用
3: C庫調(diào)用
4: 設(shè)備文件及特殊文件
5: 配置文件格式
6: 游戲
7: 雜項
8: 管理類的命令
9:Linux 內(nèi)核API

注:因為MAN命令分章節(jié),而有的命令地址有好幾個,所以默認(rèn)打開的MAN章節(jié)可能不是自己想查詢的那個,可以先查詢一下

[root@centos7 ~]# whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz
[root@centos7 ~]# whatis passwd
sslpasswd (1ssl)     - compute password hashes
passwd (1)           - update user's authentication tokens
passwd (5)           - password file
[root@centos7 ~]# man 5 passwd
[root@centos7 ~]# 

二、文件名規(guī)則

  • 文件名最長255個字節(jié),包括路徑在內(nèi)文件名稱最長4095個字節(jié)
    藍色-->目錄
    綠色-->可執(zhí)行文件
    紅色-->壓縮文件
    淺藍色-->鏈接文件
    灰色-->其他文件
  • 除了斜杠和NUL,所有字符都有效.但使用特殊字符的目錄名和文件不推薦使用,有些字符需要用引號來引用它們。
  • 標(biāo)準(zhǔn)Linux文件系統(tǒng)(如ext4),文件名稱大小寫敏感。例如:MAIL, Mail, mail, mAiL

三、文件系統(tǒng)結(jié)構(gòu)

  • /boot:引導(dǎo)文件存放目錄,內(nèi)核文件(vmlinuz)、引導(dǎo)加載器(bootloader,grub)都存放于此目錄

  • /bin:供所有用戶使用的基本命令;不能關(guān)聯(lián)至獨立分區(qū),OS啟動即會用到的程序

  • /sbin:管理類的基本命令;不能關(guān)聯(lián)至獨立分區(qū),OS啟動即會用到的程序

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

  • /lib64:專用于x86_64系統(tǒng)上的輔助共享庫文件存放位置

  • /etc:配置文件目錄

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

  • /root:管理員的家目錄

  • /media:便攜式移動設(shè)備掛載點

  • /mnt:臨時文件系統(tǒng)掛載點

  • /dev:設(shè)備文件及特殊文件存儲位置
    b: block device,隨機訪問
    c: character device,線性訪問

  • /opt:第三方應(yīng)用程序的安裝位置

  • /srv:系統(tǒng)上運行的服務(wù)用到的數(shù)據(jù)

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

  • /usr: universal shared, read-only data

        bin: 保證系統(tǒng)擁有完整功能而提供的應(yīng)用程序
        sbin:
        lib:32位使用
        lib64:只存在64位系統(tǒng)
        include: C程序的頭文件(header files)
        share:結(jié)構(gòu)化獨立的數(shù)據(jù),例如doc, man等
        local:第三方應(yīng)用程序的安裝位置
    
  • /var: variable data files

      cache: 應(yīng)用程序緩存數(shù)據(jù)目錄
      lib: 應(yīng)用程序狀態(tài)信息數(shù)據(jù)
      local:專用于為/usr/local下的應(yīng)用程序存儲可變數(shù)據(jù);
      lock: 鎖文件
      log: 日志目錄及文件
      opt: 專用于為/opt下的應(yīng)用程序存儲可變數(shù)據(jù);
      run: 運行中的進程相關(guān)數(shù)據(jù),通常用于存儲進程pid文件
      spool: 應(yīng)用程序數(shù)據(jù)池
      tmp: 保存系統(tǒng)兩次重啟之間產(chǎn)生的臨時數(shù)據(jù)
    
  • /proc: 用于輸出內(nèi)核與進程信息相關(guān)的虛擬文件系統(tǒng)

  • /sys:用于輸出當(dāng)前系統(tǒng)上硬件設(shè)備相關(guān)信息虛擬文件系統(tǒng)

  • /selinux: security enhanced Linux,selinux相關(guān)的安全策略等信息的存儲位

四、Linux上的應(yīng)用程序的組成部分

  • 二進制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
  • 庫文件:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
  • 配置文件:/etc, /etc/DIRECTORY, /usr/local/etc
  • 幫助文件:/usr/share/man, /usr/share/doc, /usr/local/share/man,/usr/local/share/doc

五、查看定義文件夾和文件顏色的文具文檔

[root@centos7 ~]# cat /etc/DIR_COLORS
# Configuration file for the color ls utility  //顏色工具配置文件
# Synchronized with coreutils 8.5 dircolors
# This file goes in the /etc directory, and must be world readable.
# You can copy this file to .dir_colors in your $HOME directory to override
# the system defaults.

# COLOR needs one of these arguments: 'tty' colorizes output to ttys, but not
# pipes. 'all' adds color characters to all output. 'none' shuts colorization
# off.
COLOR tty

# Extra command line options for ls go here.
# Basically these ones are:
#  -F = show '/' for dirs, '*' for executables, etc.
#  -T 0 = don't trust tab spacing when formatting ls output.
OPTIONS -F -T 0

# Below, there should be one TERM entry for each termtype that is colorizable
TERM Eterm
TERM ansi
TERM color-xterm
TERM con132x25
TERM con132x30
TERM con132x43
TERM con132x60
TERM con80x25
TERM con80x28
TERM con80x30
TERM con80x43
TERM con80x50
TERM con80x60
TERM cons25
TERM console
TERM cygwin
·
·
·

# EIGHTBIT, followed by '1' for on, '0' for off. (8-bit output)
EIGHTBIT 1

# Below are the color init strings for the basic file types. A color init
# string consists of one or more of the following numeric codes:
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
#NORMAL 00  # no color code at all
#FILE 00    # normal file, use no color at all
RESET 0 # reset to "normal" color
DIR 01;34   # directory
LINK 01;36  # symbolic link (If you set this to 'target' instead of a
        # numerical value, the color is as for the file pointed to.)
MULTIHARDLINK 00    # regular file with more than one link
FIFO 40;33  # pipe   //數(shù)字代表顏色
SOCK 01;35  # socket
DOOR 01;35  # door
BLK 40;33;01    # block device driver
CHR 40;33;01    # character device driver
ORPHAN 40;31;01  # symlink to nonexistent file, or non-stat'able file
MISSING 01;05;37;41 # ... and the files they point to
SETUID 37;41    # file that is setuid (u+s)
SETGID 30;43    # file that is setgid (g+s)
CAPABILITY 30;41    # file with capability
STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w)
OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
STICKY 37;44    # dir with the sticky bit set (+t) and not other-writable

# This is for files with execute permission:
EXEC 01;32

# List any file extensions like '.gz' or '.tar' that you would like ls
# to colorize below. Put the extension, a space, and the color init string.
# (and any comments you want to add after a '#')
# executables (bright green)
#.cmd 01;32  //以下數(shù)字皆表示文件
#.exe 01;32
#.com 01;32
#.btm 01;32
#.bat 01;32
#.sh  01;32
#.csh 01;32
?著作權(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)容

  • Linux和Windows操作系統(tǒng)中的文件系統(tǒng)些不同,在學(xué)習(xí)使用linux之前,能夠了解這個不同之處助于后續(xù)的學(xué)習(xí)...
    Leon_Geo閱讀 11,825評論 1 18
  • linux文件系統(tǒng)的最頂端是/,稱為linux的root,所有的目錄、文件、設(shè)備都在/之下。 文件類型 linux...
    Hackart閱讀 860評論 0 5
  • 裝完Linux,首先需要弄清Linux 標(biāo)準(zhǔn)目錄結(jié)構(gòu) /root — 啟動Linux時使用的一些核心文件。如操作系...
    justin_pan閱讀 955評論 0 1
  • 一、Linux目錄結(jié)構(gòu)你想知道為什么某些程序位于/bin下,或者/sbin,或者/usr/bin,或/usr/sb...
    Albert陳凱閱讀 393評論 0 0
  • 【我的思考與行動】其實感覺笑來老師的很多觀點跟戰(zhàn)隼老師的不謀而合,其中很重要的就是踐行。我也把踐行當(dāng)作最應(yīng)該培養(yǎng)的...
    HR的修煉手冊閱讀 137評論 0 0

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