Linux目录管理
一、Linux核心目录结构
1.概述
在linux中目录一切从跟开始,linux目录类似于倒挂的大树
2.Linux核心目录(根下)
目录(windows叫文件夹),一般用来分类存放文件
/ 根,斜线 \ 反斜线
| 根下核心目录 | 说明 | |
|---|---|---|
| /etc/ | 系统服务配置文件的目录,存放系统,服务的配置 | |
| /home/ | 普通用户家目录,比如oldboy 目录为/home/oldboy | |
| /root/ | root用户的家目录 | |
| /dev/ | device 设备文件目录,硬盘,光盘 | |
| /tmp/ | temp临时目录,临时存放文件的地方 | |
| /proc/ | process 系统服务,进程信息 |

3.路径表示形式
| 路径形式 | 说明 | |
|---|---|---|
| 绝对路径 | 从根开始的路径是绝对路径, /etc/ |
|
| 相对路径 | 不是从根开始的路径就是相对路径 进入etc etc/hostname |
补充:相对路径相当于当前所在目录
二、目录结构深入-文件
1.1 /etc/ 下面
| 文件名称 | 说明 | 企业应用 |
|---|---|---|
| /etc/hostname | 主机名配置文件 | 每个linux主机配置主机名,根据主机名区别不同功能 |
| /etc/hosts | 主机名和ip的对应关系 | 在网站中做访问使用 |
| /etc/sysconfig/network-scripts/ifcfg-eth0 | 网卡配置文件 | 物理机需要修改,云服务器自动 |
| /etc/fstab | 开机自动挂载的配置文件 | 配置磁盘挂载使用 |
| /etc/motd | 文件中的内容会在用户登录系统后显示出来 | 显示温馨提示 |
| /etc/issue /etc/issue.net |
文件中的内容会在用户登录系统钱显示出来 | 这个文件内容一般会被清空 |
1) 修改主机名 (必会)
建议:
- 看到主机名就能知晓,这个节点的作用
- 推荐英文,“-”,“.” 就行,不要加入其它特殊符号,不要加入中文
#命令同时修改临时+永久 表示一直生效
[root@lnh oldboy]# hostnamectl set-hostname lnh
#查看主机名
[root@lnh oldboy]# cat /etc/hostname
lnh
旧系统修改建议:
- 命令行通过hostname命令修改(临时修改,重启linux后失效)
- 手动修改/etc/hostname 文件内容(永久修改,重启linux后生效)
2)网卡配置文件
[root@lnh oldboy]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.200
PREFIX=24
GATEWAY=10.0.0.2
DNS1=223.5.5.5
DNS2=8.8.8.8
#修改网卡配置文件后要重启服务
[root@lnh oldboy]# systectl restart network
补充:DNS(域名解析服务) 用于把域名转换为ip
域名baidu.com --->DNS--->ip地址
3)/etc/rc.local 开机自启动配置文件
第一次使用这个文件之前需要给/etc/rc.d/rc.local 增加执行权限
chmod +x /etc/rc.d/rc.local
提示:
/etc/rc.local 本质是个快捷方式(软链接),源文件是/etc/rc.d/rc.local
4) /etc/motd /etc/issue
建议motd 写入系统基本信息
issue文件清空。 使用命令 >/etc/issue
1.2 /var/ 下面
variable
| 文件路径 | 说明 | 应用建议 |
|---|---|---|
| /var/ | 经常变化的内容 | |
| /var/log | 系统及服务的各种日志目录 | |
| /var/log/secure | 存放用户登录情况日志 | 分析是否有恶意破解情况 |
| /var/log/messages | 通用各种服务的日志 | 分析服务,系统异常 |
以secure为例,查看登录日志
先连接几次,失败,然后查看日志
[root@lnh oldboy]# ssh -p 22 root@10.0.0.200 #ssh远程连接的命令 -p 指定端口号 root 用户名 ip
root@10.0.0.200's password:
Permission denied, please try again.
root@10.0.0.200's password:
Permission denied, please try again.
[root@lnh ~]# cat /var/log/secure
Nov 30 00:08:40 lnh sshd[5328]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
Nov 30 00:08:42 lnh sshd[5328]: Failed password for root from 10.0.0.200 port 56366 ssh2
Nov 30 00:08:42 lnh unix_chkpwd[5332]: password check failed for user (root)
Nov 30 00:08:42 lnh sshd[5328]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
Nov 30 00:08:44 lnh sshd[5328]: Failed password for root from 10.0.0.200 port 56366 ssh2 #提示密码错误
Nov 30 00:08:44 lnh sshd[5328]: Connection closed by 10.0.0.200 port 56366 [preauth]
1.3 /proc/ 下面
| 文件路径 | 说明 | 应用建议 |
|---|---|---|
| /proc | 存放的是各种内存中的进程信息,linux内核配置,系统信息。 这个是虚拟目录,不会占用磁盘空间 |
|
| /proc/cpuinfo | cpu信息 | 未来监控使用,获取cpu指标 |
| /proc/meminfo | 内存信息 | 未来监控使用,获取内存指标 |
| /proc/loadavg | 系统负载信息,衡量系统繁忙程度 | |
| /proc/mounts | 系统挂载信息 |
补充:
1)CPU信息
cpu 颗数,cpu核心数
- cpu颗数,有多少个物理的cpu
- cpu核心数:1颗中有多少个核心,每个核心相当于是一个工人
[root@lnh oldboy]# lscpu #查看cpu信息,核心数,颗数
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 1 #核心数
On-line CPU(s) list: 0 #cpu颗数
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 1
2)内存信息
内存与磁盘(硬盘)的区别
- 硬盘:永久存储数据的地方
- 内存:临时存放数据的地方
内存:
- cpu速度太快了,硬盘速度较慢,cpu就要等着硬盘,早晨系统缓慢
- 内存速度比cpu慢,比硬盘快
- 运行磁盘中程序,运行在内存中
cpu:
- 用于处理数据,速度最快
三、文件属性体系
1.概述
[root@lnh ~]# ls -lhi
total 20M
33575828 drwxr-xr-x. 80 root root 8.0K Dec 1 09:35 etc

2.inode与block
了解inode与block的含义即可,未来在磁盘出现故障的时候使用
1)概述
-
inode索引节点,inode号码类似于身份证号码,通过inode号码可以找到文件的内容
-
inode是一个空间,inode号是空间的位置,inode空间存放:
- inode空间存放的是文件属性信息,文件大小,修改时间,权限,所有者
- inode空间存放block的位置(指向文件实体的指针)
- 这里不存放文件名
-
block块(数据块):存放数据
2)inode与block的关系

用户访问查看oldboy.txt文件内容的流程
- 用户访问oldboy.txt的时候,系统会先找出他对应的inode空间(根据inode号码)
- 访问来到inode空间后,确认用户,确认权限
- 权限信息正确就准许通过,可以访问inode对应的block区域(也就是数据)
3)inode和block的特点
- inode索引节点,存放文件属性信息,block位置
- 每创建一个非空文件至少占用1个inode,1个block,一般文件都要有一个inode
- inode,block的数量是在格式化的时候创建的
- 正常情况下block的使用起来会更快
- 创建小文件不足4k,1个block还有剩余空间使用,无法给其他文件使用
- 创建文件大于4k,占用多个block
4)如何查看block和inode的使用情况
-
查看block的使用情况命令(也就是通常说的磁盘空间使用情况):
df -h -
查看inode的使用情况:
df -i -
补充:
文件名是存放在目录的block中,没有存放在inode中,所以文件名不是文件属性
3.文件类型
1)windows与linux文件类型的区别
- windows下面通过扩展名来区分不同文件类型,如果扩展名修改则无法使用 lidao.avi weixin.exe
- Linux下面的扩展名仅仅用于展示,随意修改
虽然Linux不区分扩展名,但是推荐创建文件的时候加上,以便区分文件
| 常用的扩展名 | 说明 | |
|---|---|---|
| .txt | 普通文件 | |
| .sh .bash | shell脚本 | |
| .conf .cfg .xml .yaml .yml | 配置文件 | |
| .py | python脚本文件 |
2)Linux文件类型 必会
| linux常见文件类型 | 含义 | |
|---|---|---|
| - | 文件 file,范围较广 | |
| d | 目录 directory | |
| l | 软链接,类似与windows快捷方式 | |
| c | 字符设备 char 特殊文件,不断输出,吸入 | |
| b | 块设备 block 硬盘 | |
| s | 套接字 scoket文件 | |
| p | 管道文件 |
[root@lnh ~]# ll -d / /etc/hostname /dev/null /dev/sda /etc/rc.local
dr-xr-xr-x. 21 root root 276 Nov 28 23:04 /
crw-rw-rw-. 1 root root 1, 3 Sep 20 17:56 /dev/null
brw-rw----. 1 root disk 8, 0 Sep 20 17:56 /dev/sda
-rw-r--r--. 1 root root 4 Sep 20 17:57 /etc/hostname
lrwxrwxrwx. 1 root root 13 Sep 14 16:37 /etc/rc.local -> rc.d/rc.local
3) 如何查看文件类型
file命令查看详细文件类型
| 文件的分类 | 说明 | |
|---|---|---|
| txt | 普通文件(文本文件),我们日常可以查看或直接修改,平时书写就是这种,脚本 | |
| data | 数据文件,需要用专用的命令查看。比如压缩包 | |
| 二进制文件 | 大部分都是命令 |
[root@lnh ~]# file / /etc/hostname /dev/null /dev/sda /etc/rc.local /bin/ls
/: directory
/etc/hostname: ASCII text
/dev/null: character special
/dev/sda: block special
/etc/rc.local: symbolic link to `rc.d/rc.local'
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=aaf05615b6c91d3cbb076af81aeff531c5d7dfd9, stripped
4.软硬链接 必会
1)概述
软链接:类似与windows中快捷方式,也是一种文件;用于存放源文件的路径(位置+名字),应用最多
硬链接:在同一个分区中,不同的文件的inode号码相同,这些文件互为硬链接,很少使用
2)如何创建
ln(link) 创建软链接或硬链接,默认创建硬链接
创建软链接 ln -s 源文件 软链接文件
创建硬链接ln 源文件 硬链接文件
#创建源文件
[root@lnh ~]# touch oldboy.txt
#创建软链接
[root@lnh ~]# ln -s oldboy.txt oldboy.txt_soft
#创建硬链接
[root@lnh ~]# ln oldboy.txt oldboy.txt_hard
[root@lnh ~]# ll -i
total 0
33654334 -rw-r--r--. 2 root root 0 Dec 1 17:38 oldboy.txt
33654334 -rw-r--r--. 2 root root 0 Dec 1 17:38 oldboy.txt_hard #硬链接的inode与源文件一致
33654335 lrwxrwxrwx. 1 root root 10 Dec 1 17:38 oldboy.txt_soft -> oldboy.txt
#从源文件位置写入内容
[root@lnh ~]# echo haha >> oldboy.txt
#从软链接位置写入内容
[root@lnh ~]# echo hehe >> oldboy.txt_soft
[root@lnh ~]# cat oldboy.txt
haha
hehe
[root@lnh ~]# cat oldboy.txt_soft
haha
hehe
#创建绝对路径的软链接
[root@lnh ~]# ln -s /root/oldboy.txt oldboy.txt_juedui_soft
[root@lnh ~]# ll
total 8
-rw-r--r--. 2 root root 10 Dec 1 17:40 oldboy.txt
-rw-r--r--. 2 root root 10 Dec 1 17:40 oldboy.txt_hard
lrwxrwxrwx. 1 root root 16 Dec 1 17:41 oldboy.txt_juedui_soft -> /root/oldboy.txt
提示:如果源文件被删除或改名或移动走,软链接会如何?
软链接指向的源位置会闪烁
3)软硬链接的区别 面试题

-
啥意思
软链接(符号链接) ,类似与windows的快捷方式,存放源文件的位置和文件的属性信息
硬链接:同一个分区中inode号码相同的文件,互为硬链接
-
咋来的
软链接通过ln -s创建,硬链接通过ln创建
-
特点
软链接比较常用,可以给文件,目录创建
硬链接只能给文件创建,不能跨分区,无法给目录创建硬链接,较少使用
-
咋没的
删除软链接,源文件不受影响
删除源文件,软链接无法使用,红底白字闪烁
删除硬链接,源文件,软链接无影响
删除源文件和硬链接,这个文件就删除了
5.用户与用户组
6.权限
7.文件大小 必会
查看文件大小
[root@lnh ~]# ll -h /etc/hosts
-rw-r--r--. 1 root root 158 Jun 7 2013 /etc/hosts
[root@lnh ~]# ll -h /etc/
total 1.1M
drwxr-xr-x. 3 root root 101 Sep 14 16:38 abrt
-rw-r--r--. 1 root root 16 Sep 14 16:41 adjtime
-rw-r--r--. 1 root root 1.5K Apr 1 2020 aliases
-rw-r--r--. 1 root root 12K Sep 14 17:05 aliases.db
drwxr-xr-x. 2 root root 261 Nov 30 21:59 alternatives
查看目录大小
[root@lnh ~]# du -hs /etc/
33M /etc/
-h 人类可读形式显示大小
-s 不要显示目录汇总所有的子目录,只显示汇总信息,不显示所有查看指定目录所占的空间
8.时间
| linux文件时间 | 说明 | |
|---|---|---|
| mtime | modify 修改时间,最常用 | |
| atime | access 访问时间 | |
| ctime | change 文件属性的变化时间 |
stat 查看文件的属性+文件名
[root@lnh ~]# stat oldboy.txt
File: ‘oldboy.txt’
Size: 10 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 33654334 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2022-12-01 17:40:24.601622910 +0800
Modify: 2022-12-01 17:40:21.604622848 +0800
Change: 2022-12-01 17:40:21.604622848 +0800
Birth: -
企业案例:一个基于软链接服务的升级流程
未来可以设计基于软链接的升级与回滚流程
- 升级:删除旧的软链接,创建软链接指向新的版本即可
- 回滚:删除旧的软链接,创建软链接指向旧的可用的版本即可


浙公网安备 33010602011771号