Linux目录结构

一、命令回顾

1、ll会列出该文件下的所有文件信息,包括隐藏的文件,而ls -l只列出显式文件。信息包括:

文件属性 文件数 拥有者 所属的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),可执行(x)。但是这里有十个格子可以添(具体程序实现时,实际上是十个bit位)。第一个小格是特殊表示格,表示目录或连结文件等等,d表示目录,例如drwx------;l表示连结文件,如lrwxrwxrwx;如果是以一横“-”表示,则表示这是文件。
    -:普通文件
    d: 目录文件
    b: 块设备 //物理上实在存在的一块设备
    c: 字符设备
    l: 符号链接文件
    p: 管道文件pipe
    s: 套接字文件socket,用于通信,方式:TCP/IP
    其余剩下的格子就以每3格为一个单位。因为Linux是多用户多任务系统,所以一个文件可能同时被许多人使用,所以我们一定要设好每个文件的权限,其文件的权限位置排列顺序是(以-rwxr-xr-x为例):  
    rwx(Owner)r-x(Group)r-x(Other)  
    这个例子表示的权限是:使用者自己可读,可写,可执行;同一组的用户可读,不可写,可执行;其它用户可读,不可写,可执行。另外,有一些程序属性的执行部分不是X,而是S,这表示执行这个程序的使用者,临时可以有和拥有者一样权力的身份来执行该程序。一般出现在系统管理之类的指令或程序,让使用者执行时,拥有root身份。
  • 第二个栏位,表示文件个数。如果是文件的话,那这个数目自然是1了,如果是目录的话,那它的数目就是该目录中的文件个数了。
  • 第三个栏位,表示该文件或目录的拥有者。若使用者目前处于自己的Home,那这一栏大概都是它的账号名称。
  • 第四个栏位,表示所属的组(group)。每一个使用者都可以拥有一个以上的组,不过大部分的使用者应该都只属于一个组,只有当系统管理员希望给予某使用者特殊权限时,才可能会给他另一个组。
  • 第五栏位,表示文件大小。文件大小用byte来表示,而空目录一般都是1024byte,你当然可以用其它参数使文件显示的单位不同,如使用ls –k就是用kb莱显示一个文件的大小单位,不过一般我们还是以byte为主。
  • 第六个栏位,表示创建日期。以“月,日,时间”的格式表示,如Aug 15 5:46表示8月15日早上5:46分。
  • 第七个栏位,表示文件名。我们可以用ls –a显示隐藏的文件名。

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

选项有:

-a 列出目录下的所有文件,包括以 . 开头的隐含文件。

-b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。

-c 输出文件的 i 节点的修改时间,并以此排序。

-d 将目录象文件一样显示,而不是显示其下的文件。

-i 输出文件的 i 节点的索引信息。

-l 列出文件的详细信息。

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

-n 用数字的 UID,GID 代替名称。

-o 显示文件的除组信息外的详细信息。

-p -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通

文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套

接字(sockets)。

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

-r 对目录反向排序。

-s 在每个文件名后输出该文件的大小。

-t 以时间排序。说明以最近修改的日期进行排序!

 -u 以文件上次被访问的时间排序。

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

-B 不输出以 “~”结尾的备份文件。

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

-N 不限制文件长度。

-Q 把输出的文件名用双引号括起来。

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

-S 以文件大小排序。

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

-1 一行只输出一个文件。

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

--help 在标准输出上显示帮助信息。

--version 在标准输出上输出版本信息并退出。

只列出子目录

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

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

下面命令可以分别计算当前目录下的文件和目录个数:

# 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. 绿色-->可执行文件

3. 红色-->压缩文件

4. 浅蓝色-->链接文件

5. 灰色-->其他文件 

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

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

3、help命令用法:

内部命令:help cd
外部命令:ls --help

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

5、man命令:

提供命令帮助的文件,手册页存放在/usr/share/man。几乎每个命令都有man的“页面”,man页面分组为不同的“章节”,统称为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章节:

1: 用户命令
2: 系统调用
3: C库调用
4: 设备文件及特殊文件
5: 配置文件格式
6: 游戏
7: 杂项
8: 管理类的命令
9:Linux 内核API

注:因为MAN命令分章节,而有的命令地址有好几个,所以默认打开的MAN章节可能不是自己想查询的那个,可以先查询一下

[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 ~]# 

二、文件名规则

  • 文件名最长255个字节,包括路径在内文件名称最长4095个字节
    蓝色-->目录
    绿色-->可执行文件
    红色-->压缩文件
    浅蓝色-->链接文件
    灰色-->其他文件
  • 除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们。
  • 标准Linux文件系统(如ext4),文件名称大小写敏感。例如:MAIL, Mail, mail, mAiL

三、文件系统结构

  • /boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader,grub)都存放于此目录

  • /bin:供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序

  • /sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序

  • /lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)

  • /lib64:专用于x86_64系统上的辅助共享库文件存放位置

  • /etc:配置文件目录

  • /home/ USERNAME :普通用户家目录

  • /root:管理员的家目录

  • /media:便携式移动设备挂载点

  • /mnt:临时文件系统挂载点

  • /dev:设备文件及特殊文件存储位置
    b: block device,随机访问
    c: character device,线性访问

  • /opt:第三方应用程序的安装位置

  • /srv:系统上运行的服务用到的数据

  • /tmp:临时文件存储位置

  • /usr: universal shared, read-only data

        bin: 保证系统拥有完整功能而提供的应用程序
        sbin:
        lib:32位使用
        lib64:只存在64位系统
        include: C程序的头文件(header files)
        share:结构化独立的数据,例如doc, man等
        local:第三方应用程序的安装位置
    
  • /var: variable data files

      cache: 应用程序缓存数据目录
      lib: 应用程序状态信息数据
      local:专用于为/usr/local下的应用程序存储可变数据;
      lock: 锁文件
      log: 日志目录及文件
      opt: 专用于为/opt下的应用程序存储可变数据;
      run: 运行中的进程相关数据,通常用于存储进程pid文件
      spool: 应用程序数据池
      tmp: 保存系统两次重启之间产生的临时数据
    
  • /proc: 用于输出内核与进程信息相关的虚拟文件系统

  • /sys:用于输出当前系统上硬件设备相关信息虚拟文件系统

  • /selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位

四、Linux上的应用程序的组成部分

  • 二进制程序:/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   //数字代表颜色
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  //以下数字皆表示文件
#.exe 01;32
#.com 01;32
#.btm 01;32
#.bat 01;32
#.sh  01;32
#.csh 01;32

你可能感兴趣的:(Linux目录结构)