Linux目录结构
Linux目录和Windows目录有着很大的不同,Linux目录类似一个树,最顶层是其根目录,如下图:
/(根目录)
每一个文件和目录从根目录开始。
只有root用户具有该根目录下的写权限。
请注意,/root是root用户的主目录,这与/.不一样。即/root是root用户目录,而/.是根目录。
bin(二进制可执行文件)
包含基本的用户命令,可被所有用户使用。
/bin 包含能够同时被用户和系统管理员使用的命令(二进制程序),并且要能够在不挂载其他任何文件系统的情况下可用。/bin 也可以包含脚本。
/bin 中不能存在子文件夹,以下的命令是必须有的(或者提供一个符号链接,总之这些命令需要可用):
cat chgrp chmod chown cp date dd df dmesg echo false hostname kill ln login ls
mkdir mknod more mount mv ps pwd rm rmdir sed sh stty su sync trye umount uname
如果系统中存在特定的子系统,那么以下的命令必须存在:
csh ed tar cpio gzip gunzip zcat netstat ping
boot(引导加载程序文件)
该目录中存放系统的内核文件和引导装载程序文件。
BOOT目录下的文件
vmlinuz
vmlinuz是可引导的、压缩的内核。“vm”代表“Virtual Memory”。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是可执行的Linux内核,它位于/boot/vmlinuz。
vmlinuz的建立有两种方式。
一是编译内核时通过“make zImage”创建,然后通过:“cp /usr/src/linux-2.4/arch/i386/linux/boot/zImage/boot/vmlinuz”产生。zImage适用于小内核的情况,它的存在是为了向后的兼容性。
二是内核编译时通过命令make bzImage创建,然后通过:“cp/usr/src/linux-2.4/arch/i386/linux/boot/bzImage /boot/vmlinuz”产生。
如果内核比较小,那么可以采用zImage或bzImage之一,两种方式引导的系统运行时是相同的。大的内核采用bzImage,不能采用zImage。
initrd-x.x.x.img
initrd是“initial ramdisk”的简写。initrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。
System.map
System.map是一个特定内核的内核符号表。它是你当前运行的内核的System.map的链接。
dev(设备文件目录)
设备(device)文件目录,存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备。其用来存放连接到计算机上的设备(终端、磁盘驱动器、光驱及网卡等)的对应文件,包括字符设备和块设备等。
关于设备文件,详细可参考:
https://blog.csdn.net/sinat_36184075/article/details/71598834
etc(配置文件)
包含所有程序所需的配置文件。
也包含了用于启动/停止单个程序的启动和关闭shell脚本。
home(家目录)
所有用户用home目录来存储他们的文件及配置。
如home/zhangsan home/lisi
lib(系统库)
包含支持位于/bin和/sbin下的二进制文件的库文件。有点像Windows下的Program Files。
库文件名为 ld*或lib*.so.*
例如:ld-2.11.1.so,libncurses.so.5.7
media(媒体文件)
用于挂载可移动设备的临时目录。
举例来说,挂载CD-ROM的/media/cdrom,挂载软盘驱动器的/media/floppy。
mnt(挂载目录)
临时安装目录,系统管理员可以挂载文件系统。
opt(可选的附加应用程序)
opt代表可选的。包含从个别厂商的附加应用程序。
附加应用程序应该安装在/opt/或者/opt/的子目录下。
root(root用户的家目录)
sbin(系统二进制文件)
就像/bin,/sbin同样也包含二进制可执行文件。
但是,在这个目录下的linux命令通常由系统管理员使用,对系统进行维护。例如:iptables、reboot、fdisk、ifconfig、swapon等命令。
srv(服务数据)
srv可以视为service的缩写,是一些网路服务启动之后,这些服务所需要取用的资料目录。 常见的服务例如WWW, FTP等等。 举例来说,WWW伺服器需要的网页资料就可以放置在/srv/www/里面。
usr(用户目录/unix系统资源)
包含二进制文件、库文件、文档和二级程序的源代码。
/usr/bin中包含用户程序的二进制文件。如果你在/bin中找不到用户二进制文件,到/usr/bin目录看看。例如:at、awk、cc、less、scp。
/usr/sbin中包含系统管理员的二进制文件。如果你在/sbin中找不到系统二进制文件,到/usr/sbin目录看看。例如:atd、cron、sshd、useradd、userdel。
/usr/lib中包含了/usr/bin和/usr/sbin用到的库。
/usr/local中包含了从源安装的用户程序。例如,当你从源安装Apache,它会在/usr/local/apache2中。
可参考:http://www.jb51.net/LINUXjishu/451993.html
var(变量文件)
这个目录下可以找到内容可能增长的文件。
这包括:系统日志文件(/var/log),包和数据库文件(/var/lib),电子邮件(/var/mail),打印队列(/var/spool),锁文件(/var/lock),多次重新启动需要的临时文件(/var/tmp)。
补充:
proc目录
Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。
详情可参考:https://blog.csdn.net/hiyun9/article/details/51967742
Linux文件类型
文件类型包括:
d:文件夹
-:普通文件
l:链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如猫等串口设备)
s:套接口文件/数据接口文件(例如启动一个MySql服务器时会产生一个mysql.sock文件)
补充
链接分为两种:硬链接和软链接,关于他们的特点和区别,可参考:
https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/index.html
改变文件权限:命令chmod
可通过权限字符或权限数字的形式来改变文件权限
改变文件所有者权限:命令chown
命令:chown 用户名 文件
例如:chown work test.txt(将test.txt的拥有者变更为work)
改变文件所有者权限:命令chgrp
命令:chgrp 群组名称 文件
例如:chgrp named test(将test的所属群组变更为named)
参考:
1.https://www.linuxidc.com/Linux/2016-08/134701.htm
2.http://www.jb51.net/LINUXjishu/151820.html
3.https://www.linuxidc.com/Linux/2017-02/140371.htm