Linux的目录结构及ls命令介绍

        

一、Linux 系统的目录结构:来自菜鸟教程

      了解Linux系统的文件目录结构的标准和每个目录的详细功能,对于学好linux系统至关重要。

登录系统后,在当前命令窗口下输入命令:ls /

    

树状结构:

     

       在 Linux 或 Unix 操作系统中,所有的文件和目录都被组织成以一个根节点开始的倒置的树状结构。文件系统的最顶层是由根目录开始的,系统使用 / 来表示根目录。在根目录之下的既可以是目录,也可以是文件,而每一个目录中又可以包含子目录文件。如此反复就可以构成一个庞大的文件系统。

在Linux文件系统中有两个特殊的目录:

       一个用户所在的工作目录,也叫当前目录,可以使用一个点 . 来表示;也可以使用 ./ 来表示当前目录

       另一个是当前目录的上一级目录,也叫父目录,可以使用两个点 .. 来表示,也可以 ../ 来代表上一级目录

       如果一个目录或文件名以一个点 . 开始,表示这个目录或文件是一个隐藏目录或文件(如:.bashrc)。即以默认方式查找时,不显示该目录或文件。

 

以下是对这些目录的解释:

1、/:根目录,位于Linux文件系统目录结构的顶层,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中。

2/bin/usr/bin:这两个目录为命令文件目录,bin是Binary的缩写,也称为二进制目录。包含了供系统管理员及普通用户使用的重要的linux命令和二进制(可执行)文件,包含shell解释器等。

3、/boot: 该目录中存放的是启动Linux时使用的一些核心(内核)文件,包括一些连接文件以及镜像文件。/boot/vmlinuz为linux的内核文件,以及/boot/gurb。一般情况下都是单独分区,分区大小200M即可。

4、/dev: 设备文件目录,dev是Device的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。 常用的是挂载光驱: mount   /dev/cdrom     /mnt

5、/etc: 系统配置文件存放的目录,用来存放所有的系统管理所需要的配置文件和子目录,不建议在此目录下存放可执行文件,修改配置文件之前记得备份。该目录下的文件由系统管理员来使用, 普通用户对大部分文件有只读权限。

6/home  系统默认的用户宿主目录,新增用户账号时,用户的宿主目录都存放在此目录下,~表示当前用户的宿主目录,~test表示用户test的宿主目录。如果做文件服务器,建议单独分区,并设置较大的磁盘空间,方便用户存放数据。用户传上来的数据和其他系统文件隔离,安全性高些!

7/lib/usr/lib/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,该目录下存放了各种编程语言库。典型的linux系统包含了C、C++和FORTRAN语言的库文件。/lib目录下的库映像文件可以用来启动系统并执行一些命令,目录/lib/modules包含了可加载的内核模块,/lib目录存放了所有重要的库文件,其他的库文件则大部分存放在/usr/lib目录下。

8、/sbin/usr/sbin/usr/local/sbin:放置系统管理员使用的可执行命令,如 fdisk、shutdown、mount等。与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能"查看"而不能设置和使用。

9/opt: 给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。以前的 Linux 系统中,习惯放置在 /usr/local 目录下。

10、/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。 如系统核心,外部设备,网络状态等,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等。

11、/root:系统管理员root的宿主目录,也称作超级权限者的用户主目录。系统第一个启动的分区为/,所以最好将/root 和/放置在一个分区下。

12、/mnt/media  mnt目录主要用来临时挂载文件系统,为某些设备提供默认挂载点,如cdrom 。这样当挂载了一个设备如光驱时,就可以通过访问目录/mnt下的文件来访问相应的光驱上的文件了。/media目录:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

13/tmp  一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下。

14、/srv: 该目录存放一些服务启动之后需要提取的数据,如www服务需要访问的网页数据存放在/srv/www内。

15/usr: 应用程序存放目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。/usr/bin 存放应用程序, /usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件,/usr/local 存放软件升级包,/usr/share/doc 系统说明文件存放目录。

16/usr/share/man: 程序说明文件存放目,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容,建议单独分区,设置较大的磁盘空间。

17、/var: 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件如随时更改的日志文件 /var/log。/var/log/message: 所有的登录文件存放目录。/var/spool/mail: 邮件存放的目录。建议单独分区,设置较大的磁盘空间。

18、/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

19、 /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs ,过sysfs 文件系统访问Linux 内核。

sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。

该文件系统是内核设备树的一个直观反映。

当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

在 Linux 系统中,有几个目录比较重要,平时需要注意不要误删除或者随意更改内部文件。

/etc:这个目录相当重要,如上所述,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。而在往后的文件中,你会发现我们常常使用这个目录下的 /etc/rc.d/init.d 这个子目录,因为这个 init.d 子目录是开启一些 Linux 系统服务的 scripts 的地方。而在 /etc/rc.d/rc.local 这个文件是开机的执行档。

/bin,   /sbin,   /usr/bin,   /usr/sbin:这是系统预设的执行文件的放置目录,例如 root 常常使用的 userconf, netconf, perl, gcc, c++ 等等的数据都放在这几个目录中,所以如果你在提示字符下找不到某个执行档时,可以在这四个目录中查一查!其中,

/bin, /usr/bin 是给系统使用者使用的指令,而 /sbin, /usr/sbin 则是给系统管理员使用的指令!

/usr/local:这是系统预设的让你安装你后来升级的套件的目录。例如,当你发现有更新的 Web 套件(如 Apache )可以安装,而你又不想以 rpm 的方式升级你的套件,则你可以将 apache 这个套件安装在 /usr/local 底下。安装在这里有个好处,因为目前大家的系统都是差不多的,所以如果你的系统要让别人接管的话,也比较容易上手!也比较容易找的到数据!因此,如果你有需要的话,通常都会将 /usr/local/bin 这个路径加到 path 中。

/home:这个是系统将有账号的人口的家目录设置的地方。

/var:这个路径就重要了!系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,而 mail 的预设放置也是在这里 。所以当你的系统有问题时,就需要来这个目录记录的文件数据中察看问题的所在!

/usr/share/man,   /usr/local/man  这两个目录为放置各类套件说明档的地方例如你如果执行 man man,则系统会自动去找这两个目录下的所有说明文件。补充小命令:tree:可以查看当前目录下的所有子目录和文件结构。

 

二、目录查看命令ls

Linux ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。

通过命令: ls -- help   或者 man ls 查看更多ls命令信息

1、命令处理格式和目录查看命令ls

语法格式:

 ls [OPTION]... [FILE]...
 ls [选项] [目录或文件名]

常用选项:

选项 功能
-a 显示全部的文件,包括隐藏文件(开头为 . 的文件)也一起罗列出来,这是最常用的选项之一。
-A 显示全部的文件,连同隐藏文件,但不包括 . 与 .. 这两个目录。
-d 仅列出目录本身,而不是列出目录内的文件数据。
-f ls 默认会以文件名排序,使用 -f 选项会直接列出结果,而不进行排序。
-F 在文件或目录名后加上文件类型的指示符号,例如,* 代表可运行文件,/ 代表目录,= 代表 socket 文件,| 代表 FIFO 文件。
-h 以人们易读的方式显示文件或目录大小,如 1KB、234MB、2GB 等。
-i 显示 inode 节点信息。
-l 使用长格式列出文件和目录信息。
-n 以 UID 和 GID 分别代替文件用户名和群组名显示出来。
-r 将排序结果反向输出,比如,若原本文件名由小到大,反向则为由大到小。
-R 连同子目录内容一起列出来,等於将该目录下的所有文件都显示出来。
-S 以文件容量大小排序,而不是以文件名排序。
-t 以时间排序,而不是以文件名排序。
--color=never
--color=always
--color=auto
never 表示不依据文件特性给予颜色显示。
always 表示显示颜色,ls 默认采用这种方式。
auto 表示让系统自行依据配置来判断是否给予颜色。
--full-time 以完整时间模式 (包含年、月、日、时、分)输出
--time={atime,ctime} 输出 access 时间或改变权限属性时间(ctime),而不是内容变更时间。

注意:当 ls 命令不使用任何选项时,默认只会显示非隐藏文件的名称,并以文件名进行排序,同时会根据文件的具体类型给文件名配色(蓝色显示目录,白色显示一般文件)

有多个选项的时候,我们可以将选项连写,也可以分开写,用空格隔离,比如: ls   -al 或 ls   -a   -l

选项有简写,和完整写之分,一般简写前只有一个“-”,完整写有两个“--” 比如:ls   --all

 

2、常用命令:

     注意不加参数它显示除隐藏文件外的所有文件及目录的名字。

ls –l 显示文件及其详细信息(这个命令有一个别名:ll):

# ls -l
第一列: 文件类型(共10个字符) + 权限   -->  man find 搜索type可看
            -:普通文件
            d:目录
            c:字符设备 --> /dev/tty     例如 USB接口、猫等一些串行端口设备
            b:块设备   --> /dev下查找  例如光驱,硬盘等属于块设备
            .:SELINUX相关 
            l:链接文件 --> 软连接
   后面的9个字符每3个为一组[rwx],分别代表文件所有者、文件所有者所在用户组、其它用户对文件拥有的权限。
   [r]代表可读(read)、[w]代表可写(write)、[x]代表可执行(execute)。若没有其中的任何一个权限则用“-”表示。
   执行的权限有两个字符可选,最常见的一个是“x”代表可执行。另一个是“s”代表套接口文件。

第二列:硬链接个数 默认从1开始  
    如果是目录,则默认是2(目录不做硬链接)为这个目录下的目录文件数目(这个数目=隐藏目录数目+普通目录数目)。
   (如果这只是一个普通文件,那“2”就代表这个文件有两个别名,这个文件被人创建了一个硬链接文件),总而言之它就是一个计数

第三列:所有者,也就是这个文件属于哪个用户。默认所有者是文件的建立用户。
第四列:所属组,默认所属组是文件建立用户的有效组,一般情况下就是建立用户的所在组。
第五列:文件大小(默认字节数),如果想看K或者M等,前面加一个选项-h
第六-八列:文件修改时间,文件状态修改时间或文件数据修改时间都会更改这个时间,注意这个时间不是文件的创建时间。
第九列:文件名或目录名。

   

列出根目录(\)下的所有目录:

# ls /

列出根目录(\)下的所有目录,按照时间顺序排序,越新的排越后面 :

# ls -ltr

  

文件安装大小倒叙:

# ll -hSr 

  

 

   命令及命令组合很多种,会查会用,熟能生巧,常用命令要熟记

 

   站在前辈的肩膀上,每天进步一点点

ends~

 

发布了248 篇原创文章 · 获赞 59 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/qq_42402854/article/details/103348972