Linux目录结构

配套视频: space.bilibili.com/204411292

目录简介

在Linux中一切皆文件,这些文件按照一定的规则存放在不同的目录当中。为了能够快速找到文件及以后的操作的规范性,我们必须记清楚Linux的目录结构。

Windows以多根的方式组织文件,如C:\ D:\ E:,而Linux以单跟/的方式组织文件。

目录规范

命令相关目录

/bin : 普通用户使用的命令。例如:/bin/ls; /bin/date

/sbin : 超级管理员使用的命令。例如/sbin/service;/sbin/useradd

普通用户无法使用useradd的命令

typescript 复制代码
[snoopy@localhost ~]$ useradd jack
-bash: /usr/sbin/useradd: Permission denied

用户家目录

用户家目录是用户在登录系统后默认进入的目录,用户可以在这个目录下存储个人文件和目录。就像Windows一样,不同的用户登陆系统显示的桌面环境是不一样的。

/home: 存放普通用户的家目录。

/root : 超级管理员root的家目录,普通用户无操作权限。

系统文件目录

/usr : 相当于C:\Windows。

/usr/local : 通常用于存放用户自行编译安装的软件,相当于C:\Program File。

/usr/bin: 普通用户使用的应用程序(重要)。

/usr/sbin: 超级管理员使用的应用程序(重要)。

/usr/lib : 库文件Glibc 32bit。若删除可能导致命令不可用。可通ldd命令查看命令依赖的库文件,如ldd /usr/bin/ls.

/usr/lib64 : 库文件Glibc 64bit。若删除可能导致命令不可用。

启动目录

/boot : 存放的系统启动相关的文件,例如kernel,grub(引导装载程序)等。

ruby 复制代码
[root@localhost ~]# ll /boot | grep vm
-rwxr-xr-x. 1 root root  6639904 Jul 24 23:38 vmlinuz-0-rescue-cc09b6cf7038418bae14d61df6427b48
-rwxr-xr-x. 1 root root  6639904 Nov  9  2018 vmlinuz-3.10.0-957.el7.x86_64

下图说明/boot目录下有关于开机引导相关的文件。

配置文件目录

/etc: 配置文件目录。极其重要,后续所有服务的配置文件都在这个目录中。

/etc/sysconfig/network-scripts/ifcfg-: 网络配置文件。

/etc/hostname: 主机名。

/etc/resolv.conf : 更改DNS,优先级小于网络配置文件中的DNS。具体格式如下:

csharp 复制代码
[root@localhost ~]# vim /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 10.0.0.254
nameserver 114.114.114.114

/etc/hosts : 本地域名解析文件,相当于Windows中的C:\Windows\System32\drivers\etc\hosts文件。

csharp 复制代码
[root@localhost ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.201  www.node.com

测试解析结果

ini 复制代码
[root@localhost ~]# ping www.node.com
PING www.node.com (10.0.0.201) 56(84) bytes of data.
64 bytes from www.node.com (10.0.0.201): icmp_seq=1 ttl=64 time=0.046 ms
64 bytes from www.node.com (10.0.0.201): icmp_seq=2 ttl=64 time=0.050 ms

可变项目与临时目录

/var : 非常重要的目录,用于存储经常变动的文件,例如日志文件、临时文件等。例如日志文件通常会存储到/var/log/目录下。 查看登陆到服务器的用户:

ini 复制代码
[root@localhost log]# cat /var/log/secure
# 从192.168.199.1接受了一个root的密码。端口为12892
Nov  7 04:12:51 localhost sshd[10695]: Accepted password for root from 192.168.199.1 port 12892 ssh2
# 为root用户打开了一个会话。
Nov  7 04:12:51 localhost sshd[10695]: pam_unix(sshd:session): session opened for user root by (uid=0)

/tmp: 存储临时文件。这些文件通常是应用程序在运行期间创建的临时文件或缓存文件,用于加速某些操作或处理。

/run : 一个临时目录,用于存放应用程序在运行期间需要的一些短暂存在的文件,比如socket和pid文件。

csharp 复制代码
[root@localhost ~]# cat /run/sshd.pid

设备目录文件

/dev: 存放设备文件。比如硬盘、分区、光驱、会话终端等。

/dev/sd : 硬盘分区及硬盘分区。例如sda sdb sdc等。

bash 复制代码
[root@localhost log]# ll /dev/sd*
brw-rw----. 1 root disk 8, 0 Jul 26 14:06 /dev/sda
brw-rw----. 1 root disk 8, 1 Jul 26 14:06 /dev/sda1
brw-rw----. 1 root disk 8, 2 Jul 26 14:06 /dev/sda2
brw-rw----. 1 root disk 8, 3 Jul 26 14:06 /dev/sda3

/dev/null: 黑洞设备,只进不出。

/dev/zero: 源源不断的产生数据。

typescript 复制代码
[root@localhost ~]# dd if=/dev/zero of=/opt/test.txt bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 19.7035 s, 54.5 MB/s
[root@localhost ~]# ll -h /opt/test.txt 
-rw-r--r--. 1 root root 1.0G Jul 26 15:30 /opt/test.txt

/dev/random: 生产随机数的设备。

csharp 复制代码
[root@localhost ~]# echo $RANDOM
29939
[root@localhost ~]# echo $RANDOM
26472
[root@localhost ~]# echo $RANDOM
22698

虚拟的文件系统

/proc: 反应当前系统正在运行的进程实时状态。 例:

查看ping相关的服务进程。

csharp 复制代码
[root@localhost ~]# ps -ef | grep ping
root      10748  10607  0 04:15 pts/0    00:00:00 ping baidu.com

在/proc中可以查看到这个进程号所对应的文件。

sql 复制代码
[root@localhost ~]# ll /proc/10748
total 0
dr-xr-xr-x. 2 root root 0 Nov  7 04:16 attr
-rw-r--r--. 1 root root 0 Nov  7 04:16 autogroup
-r--------. 1 root root 0 Nov  7 04:16 auxv
-r--r--r--. 1 root root 0 Nov  7 04:16 cgroup
--w-------. 1 root root 0 Nov  7 04:16 clear_refs
...

停止ping后,查看这个进程号所对应的文件。

bash 复制代码
[root@localhost ~]# ll /proc/10748
ls: cannot access /proc/10748: No such file or directory

软连接形式目录

在CentOS7中/bin,/sbin,/lib,/lib64都是以软链接的形式连接到/usr目录下。

bash 复制代码
[root@localhost ~]# ll / | grep lr
lrwxrwxrwx.   1 root root    7 Jul 24 23:31 bin -> usr/bin
lrwxrwxrwx.   1 root root    7 Jul 24 23:31 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 Jul 24 23:31 lib64 -> usr/lib64
lrwxrwxrwx.   1 root root    8 Jul 24 23:31 sbin -> usr/sbin

其他目录

/media: 提供设备的挂载点。

/mnt: 提供设备的挂载点。

挂载光盘到/mnt目录。

perl 复制代码
[root@localhost ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 is write-protected, mounting read-only

/opt : 一个可选的软件安装目录,可以用于存放第三方软件。这个目录是用户级的程序目录,可以理解为D:/Software。

相关推荐
分布式存储与RustFS11 小时前
群晖 NAS 被 C3RB3R 锁了:本地备份一起被加密,RustFS 对象锁为什么删不掉
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
真好啊又活了一天12 小时前
服务器和虚机配置IPV6
运维·服务器·github
zixu_star12 小时前
定时任务是什么?从日常自动化到 AI 应用,软件如何自动执行任务?
运维·人工智能·自动化
AR-26710-12 小时前
Linux Day33——定时任务+lvm
linux·运维
润滑卫士13 小时前
液压系统工作粘度窗口等级选型:泵允许粘度范围与油温-粘度匹配计算
运维
每月一号准时摆烂16 小时前
服务器运维笔记(一)——使用shell编写实时查看BMC功率的脚本
运维·服务器·笔记
时间售卖铺16 小时前
Chrony与SSH实战:精准时间同步与安全远程登录
运维·安全·云原生·ssh
微订校园外卖系统17 小时前
校园代取快递系统选型:现成系统与定制开发的技术核对项
大数据·运维·人工智能·外卖系统·本地生活·微订
QXWZ_IA17 小时前
管道GIS测绘如何实现自动化成图:三种成图方式怎么选
运维·人工智能·安全·自动化
一条破秋裤17 小时前
【1112】Linux中断【整理】
linux·运维·服务器