linux系统目录结构
普通计算机小白从Window操作系统直接转到Linux操作系统一时间是有些不习惯的。熟悉的鼠标嗒嗒嗒的没有了,转而全是各种命令的使用,如同传说中的黑客一般。。。
既然很多编程大佬都投入Linux,那么想必你也急切的想投入Linux。但路也得一步一步走。先从Linux最简单的文件目录开始。至于怎么搭建一个Linux的操作系统,相信聪明的你一定有方法。
接下来就开始仔细地了解Linux操作系统的文件目录(什么,你还没有linux操作系统???那不影响你往下面学(白)习(嫖)
(这边我使用的是远程服务器的方式使用Linux操作系统)
- mr_zhou@192 ~ %% ssh root@39.108.135.218
- Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-47-generic x86_64)
-
-
- * Documentation: https://help.ubuntu.com
- * Management: https://landscape.canonical.com
- * Support: https://ubuntu.com/advantage
-
- Welcome to Alibaba Cloud Elastic Compute Service !
-
-
- Last login: Sun Oct 31 17:52:40 2021 from 58.61.51.97
- root@iZwz97xz5ndfb3m44fxpr2Z:~#
进入Linux操作系统之后,你的鼠标突然没了,而是这一串提示。首先需要搞清楚这代表着什么含义。
root@iZwz97xz5ndfb3m44fxpr2Z:~#
- 首先首先root是当前用户,使用whoami命令查询当前用户,root用户具有最大的权限。至于权限有多大,它可以对真个操作系统进行干预。
- iZwz97xz5ndfb3m44fxpr2Z这一长串是主机名,使用hostname命令查询当然的主机名。你觉得他太丑了,你可以修改它。使用命令`hostname 修改主机名`就可以修改它。
- ~这个是路径的含义,你是否觉得路径还可以有波浪号奇怪?是的,的确可以。使用pwd命令可以查看当前的路径。
(下面是命令演示)
- root@iZwz97xz5ndfb3m44fxpr2Z:~# whoami
- root
- root@iZwz97xz5ndfb3m44fxpr2Z:~# hostname
- iZwz97xz5ndfb3m44fxpr2Z
- root@iZwz97xz5ndfb3m44fxpr2Z:~# hostname xiaozhou
- root@iZwz97xz5ndfb3m44fxpr2Z:~# su
- root@xiaozhou:~# pwd
- /root
- root@xiaozhou:~#
了解整个 Linux 文件系统的目录结构以及各个目录的功能是学习Linux最关键的一步。Linux 系统的根目录(/)最为重要(没有之一),其原因有以下 2 点:
- 所有目录都是由根目录衍生出来的;
- 根目录与系统的开机、修复、还原密切相关;
由于系统开机时需要特定的开机软件、核心文件、开机所需程序、 函式库等文件数据,若系统出现错误时,根目录也必须要包含有能够修复文件系统的程序才行。(因为根目录是这么的重要,所以在FHS的要求根目录不要放在非常大的分区, 因为越大的分区内你会放入越多的数据,如此一来根目录所在分区就可能会有较多发生错误的机会.)
下面是Linux的文件系统,我们可以看到根目录是有独立分区的。
- root@iZwz97xz5ndfb3m44fxpr2Z:~# df
- Filesystem 1K-blocks Used Available Use%% Mounted on
- udev 936552 0 936552 0%% /dev
- tmpfs 192956 680 192276 1%% /run
- /dev/vda1 61795304 8271104 50781704 15%% /
- tmpfs 964772 0 964772 0%% /dev/shm
- tmpfs 5120 0 5120 0%% /run/lock
- tmpfs 964772 0 964772 0%% /sys/fs/cgroup
- tmpfs 192952 0 192952 0%% /run/user/0
这个是MacOS的操作系统,根目录同样存放在单独的分区下
- mr_zhou@192 ~ %% df
- Filesystem 512-blocks Used Available Capacity iused ifree %%iused Mounted on
- /dev/disk3s1s1 478724992 38839968 207669072 16%% 568975 2393055985 0%% /
- devfs 705 705 0 100%% 1220 0 100%% /dev
- /dev/disk3s6 478724992 2097192 207669072 1%% 1 2393624959 0%% /System/Volumes/VM
- /dev/disk3s2 478724992 477192 207669072 1%% 182 2393624778 0%% /System/Volumes/Preboot
- /dev/disk3s4 478724992 1180160 207669072 1%% 192 2393624768 0%% /System/Volumes/Update
- /dev/disk1s2 1024000 12328 986872 2%% 3 5119997 0%% /System/Volumes/xarts
- /dev/disk1s1 1024000 14456 986872 2%% 39 5119961 0%% /System/Volumes/iSCPreboot
- /dev/disk1s3 1024000 624 986872 1%% 30 5119970 0%% /System/Volumes/Hardware
- /dev/disk3s5 478724992 224418544 207669072 52%% 1277436 2392347524 0%% /System/Volumes/Data
- map auto_home 0 0 0 100%% 0 0 100%% /System/Volumes/Data/home
- /dev/disk2s1 10485672 1923008 8524056 19%% 30 52428330 0%% /System/Volumes/Update/SFR/mnt1
- /dev/disk3s1 478724992 38839968 207669072 16%% 500193 2393124767 0%% /System/Volumes/Update/mnt1
下面我们来看看Linux各个目录有什么作用。
-
/ 根目录
目录 | 描述 |
/ | 第一层次结构的根、整个文件系统层次结构的根目录。 |
/bin | 可用的必要命令(可执行文件),面向所有用户。例如:cat、 ls、 cp,和/usr/bin目录类似。 |
/boot | 引导程序文件,例如:kernel、 initrd;时常是一个单独的分区 |
/dev | 必要设备, 例如:dev/null、/dev/random. |
/etc | 特定主机系统范围内的配置文件。用来存放系统中的配置文件,基本上所有的配置文件都可以在这里找到。 |
/proc | 虚拟文件系统,将内核与进程状态归档为文本文件(系统信息都存放这目录下)。该目录下文件只能看不能改(包括root) |
/home | 用户的家目录,包含保存的文件、个人设置等,一般为单独的分区。 |
/root | 超级用户的家目录,一般用~表示 |
/usr | 默认软件都会存于该目录下。用于存储只读用户数据的第二层次;包含绝大多数的( 多)用户工具和应用程序。 |
/lost+found | 当系统意外崩溃或机器意外关机,会产生一些文件碎片在这里。当系统在开机启动的过程中fsck工具会检查这个文件夹并修复已经损坏的文件系统。 |
/var | 变量文件,在正常运行的系统中其内容不断变化的文件,如日志,脱机文件和临时电子邮件文件。 |
- /usr目录
- /usr目录的作用是:系统默认的软件都会被放置到/usr下面这个目录有点类似windows下的C:/windows 或 C:/Program file的结合体
目录|描述 | 目录|描述 |
/usr/include | /usr/include|用来存放Linux下开发和编译应用程序所需要的头文件; |
/usr/lib | /usr/lib|存放一些常用的动态链接共享库和静态档案库 |
/usr/sbin | /usr/sbin|非必要的系统二进制文件,例如:大量 网络服务的 守护进程 |
/usr/share | /usr/share|体系结构无关(共享)数据 |
/usr/src | /usr/src|源代码,例如:内核源代码及其头文件 |
/usr/bin | /usr/bin|非必要 可执行文件 (在 单用户模式中不需要);面向所有用户。 |
/usr/local | /usr/local|本地数据的第三层次,具体到本台主机。通常而言有进一步的子目录,例如:bin/、lib/、share/.这是提供给一般用户的/usr目录,在这里安装一般的应用软件 |
- /etc目录
- /etc的作用是:用来存放系统中的配置文件,基本上所有的配置文件都可以在这里找到。
目录| | 描述 |
/etc/init.d/ | 存放系统启动脚本 |
/etc/cron.hourly/ | 这个目录中执行文件每小时执行一次 |
/etc/cron.daily/ | 这个目录中执行文件每天执行一次 |
/etc/cron.weekly/ | 这个目录中执行文件每周执行一次 |
/etc/cron.monthly/ | 这个目录中执行文件每月执行一次 |
/etc/passwd | 里面一行记录对应着一个用户信息。用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell |
/etc/group | 类似于passwd文件,说明的不是用户而是组。组名:密码:GID:该用户组中的用户列表。 |
/etc/fstab | 开机自动挂载系统,所有分区开机都会自动挂载 |
/etc/hosts | 本地域名解析文件 |
/etc/profile | 全局系统环境配置变量 |
/etc/issue | 每次终端登录前的提示 |
/etc/issue.net | 每次telnet远程登录前提示 |
/etc/motd | 登录成功后提示(可自定义炫酷样式) |
- /proc目录
- proc目录的作用是:proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。
目录| | 描述 |
/proc/meminfo | 查看内存信息 |
/proc/uptime | uptime命令。查看服务器已经运行了多久,当前登录的用户有多少,以及服务器在过去的1分钟、5分钟、15分钟的系统平均负载值 |
/proc/cpuinfo | cpu处理器相关参数 |
/proc/filesystem | 目前加载的文件系统 |
/proc/diskstats | 磁盘状态 |
/proc/stat | cpu状态和进程状态.cpu的利用率通过此文件计算 |
/proc/version | 核心的版本 |
/proc/mounts | 系统已挂载的数据,mount命令 |
/proc/modules | linux加载的模块列表 |
/proc/数字 | 进程信息 |
- /dev目录
- /dev目录是系统使用或可以使用的设备。在Linux中,所有东西都被看作是一个文件,因此硬盘被作为一个文件保存在那里。如果使用的是IDE硬盘(而不是SCSI),那么硬盘将被称为/dev/hda。
目录| | 描述 |
/dev/tty[0-63] | 虚拟终端 |
/dev/ttyS[0-3] | 串口 |
/dev/loop[0-7] | 本地回环设备 |
/dev/lp[0-3] | 并口 |
/dev/null | 无限数据接收设备,相当于黑洞 |
/dev/zero | 无限零资源 |
/dev/random | 随机数设备 |
/dev/urandom | 随机数设备 |
/dev/stderr | -> /proc/self/fd/2 |
/dev/stdout | -> /proc/self/fd/1 |
/dev/stdin | -> /proc/self/fd/0 |
通过以上对Linux的目录结构有大概了解。有一台Linux的操作系统的设备是接下来的首要任务啦。可以先关注我的VX公众号(同名)安装熟悉系统环境,或者继续等待我的下一篇文章给大家带来Linux环境的安装。