L5 详解Linux系统目录结构,文件类型,ls命令,alias命令

来源:互联网 发布:域名跟网址的区别 编辑:程序博客网 时间:2024/04/30 08:25

1.Linux系统目录结构

目录树(directory tree), 这个目录树的启始点为根目录 (/, root)linux文件系统的最顶端是/,我们称/Linuxroot,也就是 Linux操作系统的文件系统。Linux的文件系统的入口就是/

路径名说   明/bin最核心的操作系统命令所在位置/boot内核和内核加载所需要的文件位置/dev硬盘、伪终端、打印机等设备文件的位置/etc关键的启动文件和配置文件的位置/home普通用户默认的主目录(家目录)位置/lib库、共享库、部分C编译器的位置/media可移动设备文件系统的挂在点位置,例如:U盘、移动硬盘等/mnt可移动设备文件系统的临时挂在点位置,例如:U盘、移动硬盘等/opt可选的应用软件包位置,一般情况下,自己安装的软件可以考虑放在此位置/proc虚拟文件系统位置,所有正在运行进程的信息所在位置/root根用户(root用户)的主目录位置/sbin系统最小规模运行所需命令的位置/tmp临时目录,每次重启其中的文件就会消失/usr次要文件和命令所在位置/usr/bin大多数命令和可执行程序文件的位置/usr/include编译C程序时头文件的位置/usr/lib库,标准程序运行所需的支持库位置/usr/lib64库,64位标准程序运行所需的支持库位置/usr/local用户编写或安装的软件的位置,第三方安装包大部分安装到此位置/usr/sbin不太关键的系统运维管理命令的位置/usr/share多种系统共用内容的位置/usr/share/manMan命令使用时的联机手册的位置/usr/src非本地软件包的源代码位置/usr/tmp更多的临时空间位置,重启后其中的文件依然存在/var系统专用的数据和配置文件的位置,例如:默认MySQL数据的位置为/var/lib/mysql/var/adm日志、系统设置记录、奇怪的管理信息的位置/var/log各种系统服务对应的日志文件的位置/var/spool邮件、打印机等使用的假脱机目录位置/var/tmp更多的临时空间位置,重启后其中的文件依然存在

ls / 
列出当前目录
yum install -y tree 安装tree
tree /
列出所有根目录


FHS依据文件系统使用的频繁与否与是否允许使用者随意更动, 而将目录定义成为四种交互作用的形态

 

可分享的(shareable)

不可分享的(unshareable)

不变的(static)

/usr (软件放置处)

/etc (配置文件)

/opt (第三方协力软件)

/boot (开机与核心档)

可变动的(variable)

/var/mail (使用者邮件信箱)

/var/run (程序相关)

/var/spool/news (新闻组)

/var/lock (程序相关)


因为根目录与开机有关,开机过程中仅有根目录会被挂载, 其他分区则是在开机完成之后才会持续的进行挂载的行为。就是因为如此,因此根目录下与开机过程有关的目录, 就不能够与根目录放到不同的分区去。那哪些目录不可与根目录分开呢?有底下这些:

/etc:配置文件

/bin:重要执行档

/dev:所需要的装置文件

/lib:执行档所需的函式库与核心所需的模块

/sbin:重要的系统执行文件

这五个目录千万不可与根目录分开在不同的分区。请背下来啊。 


/usr不是user的缩写,其实usr是Unix Software Resource的缩写, 也就是Unix操作系统软件资源所放置的目录,而不是用户的数据啦。这点要注意。 FHS建议所有软件开发者,应该将他们的数据合理的分别放置到这个目录下的次目录,而不要自行建立该软件自己独立的目录。

因为是所有系统默认的软件(distribution发布者提供的软件)都会放置到/usr底下,因此这个目录有点类似Windows 系统的C:\Windows\ + C:\Program files\这两个目录的综合体,系统刚安装完毕时,这个目录会占用最多的硬盘容量。 一般来说,/usr的次目录建议有底下这些:

目录

应放置文件内容

/usr/X11R6/ 

为X Window System重要数据所放置的目录,之所以取名为X11R6是因为最后的X版本为第11版,且该版的第6次释出之意。 

/usr/bin/ 

绝大部分的用户可使用指令都放在这里。请注意到他与/bin的不同之处。(是否与开机过程有关) 

/usr/include/ 

c/c++等程序语言的档头(header)与包含档(include)放置处,当我们以tarball方式 (*.tar.gz 的方式安装软件)安装某些数据时,会使用到里头的许多包含档。 

/usr/lib/ 

包含各应用软件的函式库、目标文件(object file),以及不被一般使用者惯用的执行档或脚本(script)。 某些软件会提供一些特殊的指令来进行服务器的设定,这些指令也不会经常被系统管理员操作, 那就会被摆放到这个目录下啦。要注意的是,如果你使用的是X86_64的Linux系统, 那可能会有/usr/lib64/目录产生 

/usr/local/                                                                      

统管理员在本机自行安装自己下载的软件(非distribution默认提供者),建议安装到此目录, 这样会比较便于管理。举例来说,你的distribution提供的软件较旧,你想安装较新的软件但又不想移除旧版, 此时你可以将新版软件安装于/usr/local/目录下,可与原先的旧版软件有分别啦。 你可以自行到/usr/local去看看,该目录下也是具有bin, etc, include, lib...的次目录 

/usr/sbin/ 

非系统正常运作所需要的系统指令。最常见的就是某些网络服务器软件的服务指令(daemon) 

/usr/share/ 

放置共享文件的地方,在这个目录下放置的数据几乎是不分硬件架构均可读取的数据, 因为几乎都是文本文件嘛。在此目录下常见的还有这些次目录:/usr/share/man:联机帮助文件

/usr/share/doc:软件杂项的文件说明

/usr/share/zoneinfo:与时区有关的时区文件

/usr/src/ 

一般原始码建议放置到这里,src有source的意思。至于核心原始码则建议放置到/usr/src/linux/目录下。 

如果/usr是安装时会占用较大硬盘容量的目录,那么/var就是在系统运作后才会渐渐占用硬盘容量的目录。 因为/var目录主要针对常态性变动的文件,包括缓存(cache)、登录档(log file)以及某些软件运作所产生的文件, 包括程序文件(lock file, run file),或者例如MySQL数据库的文件等等。常见的次目录有:

目录

应放置文件内容

/var/cache/

应用程序本身运作过程中会产生的一些暂存档

/var/lib/

程序本身执行的过程中,需要使用到的数据文件放置的目录。在此目录下各自的软件应该要有各自的目录。 举例来说,MySQL的数据库放置到/var/lib/mysql/而rpm的数据库则放到/var/lib/rpm去

/var/lock/                                                                                                                          

某些装置或者是文件资源一次只能被一个应用程序所使用,如果同时有两个程序使用该装置时, 就可能产生一些错误的状况,因此就得要将该装置上锁(lock),以确保该装置只会给单一软件所使用。 举例来说,刻录机正在刻录一块光盘,你想一下,会不会有两个人同时在使用一个刻录机烧片? 如果两个人同时刻录,那片子写入的是谁的数据?所以当第一个人在刻录时该刻录机就会被上锁, 第二个人就得要该装置被解除锁定(就是前一个人用完了)才能够继续使用                                                                                                                                                                                                                                                                                                             

/var/log/

非常重要。这是登录文件放置的目录。里面比较重要的文件如/var/log/messages, /var/log/wtmp(记录登入者的信息)等。

/var/mail/

放置个人电子邮件信箱的目录,不过这个目录也被放置到/var/spool/mail/目录中,通常这两个目录是互为链接文件。

/var/run/                                     

某些程序或者是服务启动后,会将他们的PID放置在这个目录下

/var/spool/                                                                                                

这个目录通常放置一些队列数据,所谓的“队列”就是排队等待其他程序使用的数据。 这些数据被使用后通常都会被删除。举例来说,系统收到新信会放置到/var/spool/mail/中, 但使用者收下该信件后该封信原则上就会被删除。信件如果暂时寄不出去会被放到/var/spool/mqueue/中, 等到被送出后就被删除。如果是工作排程数据(crontab),就会被放置到/var/spool/cron/目录中。

由于FHS仅是定义出最上层(/)及次层(/usr, /var)的目录内容应该要放置的文件或目录数据, 因此,在其他次目录层级内,就可以随开发者自行来配置了。


2.ls命令


which ls

alias ls="ls --color"

其中颜色的含义如下:

    1. 蓝色-->目录

    2. 绿色-->可执行文件

    3. 红色-->压缩文件

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

    5. 灰色-->其他文件

   -a 列出目录下的所有文件,包含以.开头的隐藏文件。    -A 显示出.和..以外的所有文件。    -d 显示目录的自身属性,而不显示目录下的文件。    -l 列出目录或者文件的详细信息    -h 与-l参数合用,以人可读取的方式显示文件大小,如1K,2M,3G    -i 显示文件或者目录的inode信息,即索引信息    -t 按修改时间排序显示文件或者目录(时间由近及远排序)    -r 与其他参数一起使用,使之反向排序    --color=auto 让输出的内容按照类别显示颜色(grep中也有改参数)


第一列:1 第一个字母为d时意味着该内容是目录,如上图中的linux目录;第一个字母为-时意味着该内容为文件;第一个字母为l时意味着该内容是个链接文件。           2 后面的9个字符代表文件或者目录的权限,字母r w x分别代表读,写,执行权限,其对应的权限数字分别为4 2 1.前3个代表文件或者目录的拥有这的权限,中间的3个代表文件或者目录的所有组的权限,最后的3个代表其他人访问文件的权限。第二列:代表文件或者目录的链接数,即目录或者文件下还包含几个目录或者文件数。第三列:代表文件或者目录的所有者。第四列:代表文件或者目录的所有组。第五列:代表文件或者目录的大小,单位为字节(byte)第六列:代表文件或者目录的最后修改时间(使用[stat 文件名或者目录名] 用以查看文件或者目录的访问时间access,文件或者目录的修改时间modify,文件或者目录的状态改变时间change)第七咧:代表文件名或者目录名

列出当前目录下的目录详细信息,而不显示文件,可通过ls -ld */命令

ls -il 文件或者目录的inode(索引)信息

ls -lt 以修改时间排序显示

ls -ltr 以修改时间反向排序

命令:ls -l t* 列出当前目录中所有以“t”开头的目录的详细内容,可以使用如下命令:

命令ls -ltr s*列出目前工作目录下所有名称是s 开头的档案,愈新的排愈后面

计算当前目录下的文件数和目录数

命令:

ls -l * |grep "^-"|wc -l ---文件个数  

ls -l * |grep "^d"|wc -l    ---目录个数


3.文件类型

在linux中,所有东西都被当成文件。
文件权限前的第一个字母用来标识文件类型:

-:一般文件

d:目录文件

b:块设备文件

c:字符设备文件

l:链接文件

p:人工管道

s:套接口文件[如我们开启MySQL服务后,在/var/lib/mysql/下生成的mysql.sock文件,关闭MySQL服务后,这个文件就消失了]
我们用ls-al 可以查看当前目录下的所有文件,这是我们可以看到"."和".."这两个文件
  其实"."就是代表当前目录
 ".."就是代表上级目录,因为Linux把任何东西都看成文件,所以就有"."和".."这两个文件了


文件权限系统,将操作文件的用户都分成三类
文件的拥有者(u)
文件所属组的成员(g)
其他用户(o)


对于每一类用户,权限系统又分别提供他们三种权限
读(r):用户是否有权力读文件的内容
写(w):用户是否有权利改变文件的内容
执行(x):用户是否有权利执行文件


使用chmod来改变文件的当前权限

chmod  [-R]  权限  文件名

只有文件的拥有者和root才可以改变文件的权限

chmod后可以用三个数字来表示用户权限
第一位代表文件拥有者权限
第二位代表文件所属组成员权限
第三位代表其他用户权限
每一个数字都采用加和的方式
4(读)
2(写)
1(执行)


硬链接
语法:ln源文件新建链接名
软链接
语法:ln–s 源文件新建链接名


在ext2和ext3文件系统中,文件以inod+block的方式存在。
一但用rm指令删除文件中的inode记录。文件无法被找回。
stat指令可以用来检查文件的block与inode状况。

4. alias命令
alias 新的命令='原命令 -选项/参数'