1、Linux目录结构特点
Linux目录结构时一个有层次的倒挂树形结构
”/“根是所有目录的顶点,一切从根开始
Linux目录和设备是分离的,设备可以随意挂载到任意目录
所有目录都按照一定类别有规律的组织和命名
磁盘等设备需要挂载后使用,未挂载到目录的设备不能正常使用
挂载点是磁盘访问的入口,是一个目录
绝对路径是以根为起点的路径,如/etc/sysconfig/network-scripts
相对路径是不以根为起点的路径,如sysconfig/network-scripts
2、Linux一级目录概述
[root@template ~]# tree -L 1 /
/
├── bin -> usr/bin #/bin等同/usr/bin 普通用户使用的二进制命令目录
├── sbin -> usr/sbin #/sbin等同/usr/sbin root管理员使用的二进制命令目录
├── boot #内核程序及引导程序所在目录
├── dev #设备目录
├── etc #系统基础服务配置文件所在目录(yum rpm安装的软件)
├── home #普通用户家目录
├── root #管理员家目录
├── lib -> usr/lib #32位库文件所在目录
├── lib64 -> usr/lib64 #64位库文件所在目录
├── media #媒体 光驱等挂载点
├── mnt #临时挂载点
├── opt #第三方软件目录
├── proc #虚拟的文件系统,显示内核和进程信息的目录
├── sys #虚拟的文件系统(已弃用)
├── tmp #临时目录,所有用户对目录都是rwx权限(黑客跳板目录,需要监控)
├── usr #应用程序所在目录,相当于windows的c:/program file
└── var #数据变化的目录,日志文件存在目录
3、/etc 系统初始化及设置相关重要文件
3.1、/etc/sysconfig/network-scripts/ifcfg-eth0:网卡配置文件
[root@template ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
HWADDR=00:0C:29:9F:E1:6F #MAC地址
TYPE=Ethernet #上网类型:以太网
BOOTPROTO=none #启动协议,获取配置IP方式,有none|bootp|dhcp三个选项
IPADDR=10.0.0.101 #IP地址
PREFIX=24 #子网掩码
GATEWAY=10.0.0.254 #网关
DNS1=10.0.0.254 #域名解析服务器
DEFROUTE=yes #使用默认路由
NAME=eth1 #网卡逻辑设备名
UUID=d53eb767-cc73-3dd1-bd89-1c37bddb805e #唯一标识,当克隆的虚拟机无法启动网卡,可删除此项
DEVICE=eth1 #网卡逻辑设备名
ONBOOT=yes #网卡随着系统开机启动
3.2、/etc/resolv.conf:过时的DNS客户端配置文件
当网卡重启后,会被ifcfg-eth0中的dns配置覆盖
[root@template ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 10.0.0.254
3.3、/etc/hostname:主机名配置文件
[root@template ~]# cat /etc/hostname
template
[root@template ~]# hostname
template
[root@template ~]# uname -n
template
修改主机名方法:
1、nmtui
2、hostnamectl set-hostname newname
3、vi /etc/hostname
3.4、/etc/hosts:系统本地DNS解析文件
内部测试、临时访问
内部调用,ip变化影响小
[root@template ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.100 baidu www.baidu.com
[root@template ~]# ping baidu
PING baidu (10.0.0.100) 56(84) bytes of data.
64 bytes from baidu (10.0.0.100): icmp_seq=1 ttl=64 time=0.037 ms
64 bytes from baidu (10.0.0.100): icmp_seq=2 ttl=64 time=0.039 ms
^C
--- baidu ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.037/0.038/0.039/0.001 ms
[root@template ~]#
3.5、/etc/fstab:配置开机设备自动挂载的文件
3.5.1、临时挂载(重启后失效)
未挂载的物理设备是不能访问的
[root@template ~]# ls /dev/cdrom
/dev/cdrom
[root@template ~]# cd /dev/cdrom
-bash: cd: /dev/cdrom: Not a directory
挂载后可查看设备内容
[root@template ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@template ~]# ls /mnt
CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages RPM-GPG-KEY-CentOS-Testing-7
EULA isolinux repodata TRANS.TBL
[root@template ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 900M 0 900M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 9.4M 901M 2% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda3 13G 2.1G 11G 17% / #自动挂载
/dev/sda1 253M 164M 90M 65% /boot #自动挂载
tmpfs 182M 0 182M 0% /run/user/0
/dev/sr0 4.4G 4.4G 0 100% /mnt #挂载结果
3.5.2、永久挂载
永久挂载/dev/cdrom
[root@template ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sun Sep 25 12:09:01 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=9ddefb02-6774-4e84-a318-3ac2ba024144 / xfs defaults 0 0
UUID=009d46dc-0854-41df-bac9-2c2b0ce22b75 /boot xfs defaults 0 0
UUID=44192dcd-3105-48e7-8dad-a66546dec121 swap swap defaults 0 0
/dev/cdrom /mnt iso9660 defaults 0 0
/etc/fstab参数列 | 说明 |
第1列 | 可填设备名称或UUID或磁盘标签,通过blkid查看设备UUID |
第2列 | 设备挂载点,即访问设备的入口 |
第3列 | 设备的文件系统类型 |
第4列 | 挂载的属性 |
第5列 | 是否进行备份,0:不备份 |
第6列 | 是否开机时做磁盘检查,0:不检查、1:检查、2:检查 |
3.5.3、/etc/fstab配置错误导致无法开机
1、输入root密码登录
2、 重启挂载根后修改/etc/fstab
mount -o rw,remount /
vi /etc/fstab
3、重启修复
init 6
3.6、/etc/rc.local:存放开机自启动程序命令的文件
软连接到/etc/rc.d/rc.local
[root@template ~]# ls -l /etc/rc.local
lrwxrwxrwx. 1 root root 13 Sep 26 14:27 /etc/rc.local -> rc.d/rc.local
默认不能用,必须给执行权限
[root@template ~]# ls /etc/rc.d/rc.local -l
-rw-r--r--. 1 root root 473 Sep 1 22:57 /etc/rc.d/rc.local
给执行权限
[root@template ~]# chmod +x /etc/rc.d/rc.local
[root@template ~]# ls /etc/rc.d/rc.local -l
-rwxr-xr-x. 1 root root 473 Sep 1 22:57 /etc/rc.d/rc.local
3.7、/etc/issue:登录系统前显示信息的文件
显示系统版本,内核版本
[root@template ~]# cat /etc/issue
\S
Kernel \r on an \m
为了防止泄露服务器版本,一般会把它们都清空
[root@template ~]# >/etc/issue
[root@template ~]# cat /etc/issue
3.8、/etc/motd:登录系统后显示提示内容的文件
提醒用户自己或提醒使用服务器人员
[root@template ~]# cat /etc/motd
[root@template ~]# echo "welcome to login this server" >/etc/motd
[root@template ~]# cat /etc/motd
welcome to login this server
3.9、/etc/redhat-release:显示系统版本号和名称信息的文件
[root@template ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
查看内核版本
[root@template ~]# uname -r
3.10.0-1160.76.1.el7.x86_64
查看所有
[root@template ~]# uname -a
Linux template 3.10.0-1160.76.1.el7.x86_64 #1 SMP Wed Aug 10 16:21:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
3.10、/etc/sysctl.conf:Linux内核参数设置文件
用来优化Linux内核
直接编辑完不生效,通过如下命令生效
sysctl -p
3.11、 /etc/profile、/etc/bashrc :配置系统的环境变量/别名等的文件
修改文件内容后生效:
方法一、重启系统
方法二、source 文件
配置文件生效顺序
/etc/bashrc==》~/.bashrc==》~/.bash_profile==》/etc/profile
4、/usr目录重要文件(应用程序目录)
/usr/local/ | 编译安装软件默认的位置路径,一般用来存放用户自编译安装的软件 |
/usr/src | 存放源码文件的目录,一般用来存放再网上下载的软件源代码,可按需修改 |
5、/var目录重要文件(可变化的目录)
/var/log/message | 系统默认日志信息 |
/var/log/secure | 系统用户的登录信息,可查看是否有黑客登录攻击 |
/var/log/dmesg | 记录硬件信息加载情况的日志文件,常用dmesg查看 |
6、/proc目录重要文件(进程和内核信息的文件)
/proc/meminfo | 内存信息,常用free -h查看 |
/proc/cpuinfo | cpu信息,常用lscpu查看 |
/proc/loadavg | 系统的负载(系统繁忙程度),常用uptime查看 |
/proc/mounts | 显示系统挂载信息,常用df -h查看 |
/proc/interrupts | 当前系统中断信息文件 |
7、/dev设备目录重要文件
/dev/hd[a-t] | IDE设备 |
/dev/sd[a-z] | SCSI设备 |
/dev/null | 无限数据接收设备,相当于黑洞 |
/dev/zero | 无限零资源 |
/dev/cdrom | 光驱 |