今天我们就来介绍一下Linux文件目录结构,首先我们来看看一个图:
我们都习惯了Windows系统的 C 盘、D 盘、E 盘这些概念,这里我们先说说Windows的C、D、E、F 盘,如果你用的是英文版的Windows系统你就会发现,其实我们到它在电脑的资源管理器上的名字是 volume ,中文翻译就是“卷”,但是我们大多数人都习惯了叫它 c 盘了,事实上呀它叫一个卷,,我们到电脑城买电脑装系统的时候,经常别人都会问到你电脑要分多少个盘呀,其实你买的电脑可能就只有一个240GB的固态硬盘,然后被分了两个分区,一个装系统的C盘,另外一个就被格式化了用来存放文件的 D 盘。
在Linux系统里没有C盘、D盘这些东西的呢,Linux的目录结构以 / 为根目录,然后所有的文件文件都在此目录下;
好, 既然我们知道了Linux的目录是怎么一回事之后,我们接下来就展开介绍一下Linux / 目录下这些文件夹是干什么用的:
[root@cen76lab ~]# ls /
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
[root@cen76lab ~]#
目录 | 说明 |
---|---|
/bin | 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。 |
/dev | 用于存放设备文件,比如磁带机、打印件、磁盘呀什么的等等。 |
/home | 存放所有用户文件的根目录,是用户主目录的基点,比如用户lab01的主目录就是/home/lab01。 |
/lib64 | 存放跟文件系统中的64位的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件。 |
/mnt | 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统。 |
/proc | 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息。 |
/run | 此目录里面的东西是系统运行时需要的,不能随便删除,但是重启的时候会释放,下次。 |
/srv | 主要用来存储本机或本服务器提供的服务或数据 。 |
/tmp | 保存在使用完毕后可随时销毁的缓存文件。(有可能是由系统或程序产生,也有可能是用户主动放入的临时数据,系统会自动清理) |
/var | 系统产生的不可自动销毁的缓存文件、日志记录。(系统和程序运行后产生的数据、不对外提供服务、只能用户手动清理)(包括mail、数据库文件、日志文件) |
/boot | 存放用于系统引导时使用的各种文件。 |
/etc | 存放系统管理和配置文件。 |
/lib | 存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件。 |
/media | 放置的就是可移除的装置, 包括软盘、光盘、DVD等等装置都暂时挂载 |
/opt | 额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里。 |
/root | 超级用户(系统管理员)的主目录 |
/sbin | 存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等。 |
/sys | 硬件设备的驱动程序信息 |
/usr | 用于存放系统应用程序,比较重要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。 |
OK,很多很复杂是吗?没关系的啦,今天其实大概跟大家先熟悉一下Linux的文件系统结构基本是怎么样子的,这只是很小的一部分。
到这里我们基本了解了Linux的目录结构,下面,我们带大家先学习一下文件夹或者文件类型的几条命令:
[root@cen76lab ~]# ls #查看当前路径的内容
anaconda-ks.cfg
[root@cen76lab ~]# pwd #查看所在当前位置
/root
[root@cen76lab ~]# cat anaconda-ks.cfg 查看anaconda-ks.cfg文件内容
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
cdrom
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=ens32 --ipv6=auto --activate
network --hostname=localhost.localdomain
# Root password
rootpw --iscrypted $6$28/mGpjBetxI9cXc$A4wn7V2n8snCVOz9O7Bx9AXJH4JnDo2vrKKHQaZIv13202kiit71O5Sc0AtvN/r9oyLWtgdfPNCqEomHuZZIU1
# System services
services --disabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc --nontp
user --name=lab --password=$6$5nyzD6xUd7kEjGCd$SQJB527YkY7RHkEKVtwadqm.tZ6hZok2Zu1GHH2u4TOg7jyozST9yunCK4S3OMfWBs/o7MJ5yXYS8VWE3SUVP1 --iscrypted --gecos="lab"
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel
%packages
@^minimal
@core
kexec-tools
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
[root@cen76lab ~]# file /* #查看“/”目录下内容类型
/bin: symbolic link to `usr/bin'
/boot: directory
/dev: directory
/etc: directory
/home: directory
/lib: symbolic link to `usr/lib'
/lib64: symbolic link to `usr/lib64'
/media: directory
/mnt: directory
/opt: directory
/proc: directory
/root: directory
/run: directory
/sbin: symbolic link to `usr/sbin'
/srv: directory
/sys: directory
/tmp: sticky directory
/usr: directory
/var: directory
[root@cen76lab ~]#