Linux系统目录结构:重要目录文件、文件管理
重要目录文件
网卡配置文件
文件信息:/etc/sysconfig/network-scripts/ifcfg-eth0
ip a
作用:
1、查看网卡配置
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens32
或
ip address show 或 nmtui
2、重载网卡信息
# 方式一
[root@localhost ~]# systemctl restart network
# 方式二
ifdown [网卡名称] && ifup [网卡名称]
关闭网络管理器(因为已经有了network)
systemctl stop NetworkManager
systemctl disable NetworkManager
或
systemctl disable --now NetworkManager
3、判断SSH服务是否开启
[root@localhost ~]# systemctl status sshd
解析配置文件
文件信息:/etc/resolv.conf
作用:用于设置DNS解析地址,网卡中配置优于此文件配置
#查看DNS信息
[root@test1 data]# cat /etc/reslov.conf #临时dns配置文件
nameserver 114.114.114.114 #中国电信
223.5.5.5/223.6.6.6 #中国阿里云
8.8.8.8 谷歌
解析映射文件
文件信息:/etc/hosts
作用:用于设置DNS域名与IP地址对应关系
#查看解析映射文件(dns解析)
[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
#查看系统版本
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
主机名称文件
文件信息:/etc/sysconfig/network
作用:配置主机名称信息
修改主机名
#查看主机名:
[root@localhost ~]# ehco $HOSTNAME
#临时修改
[root@localhost ~]# hostname baidu
#永久修改
[root@baidu ~]# vim /etc/hostname #需要重启生效
[root@baidu ~]# hostnamectl set-hostname admin #立即生效
磁盘挂载文件
文件信息:/etc/fstab
作用:实现指定设备文件信息,进行开机自动挂载
#查看磁盘挂载文件
[root@localhost ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Mon Dec 13 11:38:54 2021
#
# 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
#
/dev/mapper/centos-root / xfs defaults 0 0 #挂载在根(/)目录
UUID=9f8a98b0-805c-4adf-b9ef-517a2b527f89 /boot xfs defaults 0 0 #挂载在/boot目录
开机加载脚本
文件信息:/etc/rc.local
作用:开启开机自启动脚本
1、编辑开机自启动脚本
vim /etc/rc.local
#写入
echo 'hello worl'
2、设置开机自启动权限
chmod +x /etc/rc.d/rc.local
3、重启系统
系统启动级别文件
文件信息:/etc/inittab
作用:设置系统启动级别
0、关机
1、单用户模式(无法通过xshell的方式使用)
2、多用户无网络模式
3、完全多用户模式
4、待定
5、桌面模式
6、reboot (Do NOT set initdefault to this) 重启
设置系统级别:
init [编号] #临时设置
systemctl set-default [系统启动级别]
通过单用户模式修改密码
1、重启
2、在启动选择系统内核界面,按 e 键进入单用户模式
3、找到 linux16 开头行,删除 ro ,并且在 ro 处添加 rw init=/sysroot/bin/sh
4、按 ctrl + x 进行系统重新引导
5、执行 chroot /sysroot
6、执行 passwd root
7、执行 touch /.autorelabel
8、执行 Ctrl + D 重启系统
变量加载文件
# 在Linux中添加环境变量怎么添加呢?
文件信息:/etc/profile
作用:配置环境变量和别名文件
文件
/etc/profile
/etc/bashrc
~/.bash_profile
~/.bash_rc
文件夹
/etc/profile.d/
增加环境变量有两种方式:
1、临时添加
2、永久添加
增加环境变量的格式:
export PYTHON_HOME='D:/python'
查看本机的环境变量:
echo $PYTHON_HOME #查看某一个环境变量
printenv #查看所有的环境变量
读取环境变量的几种情况,并且测试出使用文件的先后顺序
1、重启
/etc/profile.d --> /etc/profile --> /etc/bashrc --> ~/.bashrc --> ~/.bash_profile
2、切换用户
/etc/profile.d --> /etc/bashrc --> ~/.bashrc
知识储备
创建用户:
useradd [用户名]
切换用户:
su [用户名]
3、重新登录用户
1、su - [用户名]
/etc/profile.d --> /etc/profile --> /etc/bashrc --> ~/.bashrc --> ~/.bash_profile
2、ssh root@192.168.15.101
/etc/profile.d --> /etc/profile --> /etc/bashrc --> ~/.bashrc --> ~/.bash_profile
登录提示文件
文件信息:/etc/motd
作用:登录成功之后显示的信息。
文件信息:/etc/issue
作用:登录系统之前显示的信息。
编译安装目录
文件信息:/usr/local #安装第三方软件的目录
作用:编译安装软件的默认目录
下载rpm安装包
# yum安装python
[root@localhost ~]# yum install python3
# 查看软件安装路径
[root@localhost ~]# which python3
知识储备:当前为DVD镜像需要设置阿里云的源
#第一步:把之前的源备份换个位置
[root@localhost ~]# mv /etc/yum.repos.d/* /etc/yum.repos.d/bak
#第二步:下载阿里云源repo文件
[root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
#第三步:下载阿里云源的epel文件
[root@localhost ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
重要日志文件
- 系统日志目录:/var
- 绝大部分的日志都存放在该目录下
系统日志文件
文件信息:/var/log/messages
作用:软件安装运行以及系统运行异常日志文件
#查看日志
[root@localhost /]# cat /var/log/messages
重要信息文件
- 保存系统运行状态的目录:/proc
保存CPU信息情况的文件
文件信息::/proc/cpuinfo
相关命令:lscpu
保存内存信息情况的文件
文件信息:/proc/meminfo
相关命令:free
保存系统负载信息情况的文件,用于衡量系统繁忙程度
文件信息:/proc/loadavg
相关命令:w
[root@localhost /]# cat /proc/loadavg #查看CPU负载
0.00 #1分钟内的CPU负载
0.01 #5分钟内的CPU负载
0.05 #15分钟内的CPU负载
负载:当前系统的所有进程占用CPU的时间比
保存系统挂载信息文件
文件信息:/proc/mounts
mount
umount
文件管理
Linux 系统的单根⽬录结构
linux与windows的⽬录结构对⽐
⽂件的时间
ls -l ⽂件名 仅看的是⽂件的修改时间
Linux⽂件有
三种时间,⽤stat查看
例如:stat anaconda-ks.cfg
访问时间:atime,查看内容,⽤cat检测
修改时间:mtime,修改内容
改变时间:ctime,修改内容,修改权限等属性,凡是有改动都会变
文件类型概念说明
1、文件详细信息详解
[root@localhost ~]# ls -lhi
总用量 8K
134319695 -rw-------. 1 root root 1.7K Dec 8 12:08 anaconda-ks.cfg
134319707 -rw-r--r-- 1 root root 12 Dec 13 11:48 index
文件属性信息详述图
2、inode编号
- Linux系统中文件的唯一编号,就相当于身份证号。
Linux系统内部不使用文件名,而使用inode编号来识别文件
对于系统来说,文件名只是inode编号便于识别的别称或者绰号,表面上用户通过文件名打开文件
实际上系统内部这个过程分成立三步:
首先:系统找到这个文件名对应的inode编号
其次:通过ionde编号获取inode信息
最后:根据ionde信息找到文件数据所在的block,读出数据
使用ls -i命令可以看到文件对应额inode编号
[root@localhost data]# ls -i
16781387 test
硬链接和软链接
1、什么是硬链接
- 硬链接:不具有完整的文件结构,它的文件名直接指向文件节点,它和源文件节点一致。
- 硬链接用来指向(保存)inode编号。
2、什么是软链接
- 软链接:具有完整的文件结构,最后指向的是目标文件名,它和源文件节点不一致。
- 相当于Windows中的快捷方式,主要用来指向(保存)对应文件的路径。
3、创建命令
- ln 默认创建的就是硬链接
- 参数: -s 创建的就是软链接
# 硬链接示例:ln [源文件] [链接文件名]
[root@localhost test]# echo 'hello world' >> a.txt #创建源文件添加数据
[root@localhost test]# ls -i 1.txt #查看的inode编号
16781390 1.txt
[root@localhost test]# ln 1.txt 2.txt #创建硬链接
[root@localhost test]# ls -i 1.txt
16781390 1.txt
[root@localhost test]# ls -i 2.txt #两个文件的inode编号一模一样,数据也一样
16781390 2.txt
# 软链接示例:ln -s [源文件] [链接文件名]
[root@localhost haha]# echo '123' >> a.txt #创建源文件添加数据
[root@localhost haha]# ls -i a.txt #查看的inode编号
33712451 a.txt
[root@localhost haha]# ln -s a.txt b.txt #创建软链接
[root@localhost haha]# ls -i a.txt
33712451 a.txt
[root@localhost haha]# ls -i b.txt #两个文件的inode编号不一样,数据也一样
33712452 b.txt
# 删除文件的底层逻辑
1、删除的是硬链接
2、判断该文件硬链接数是否为0
3、如果为0,则在磁盘中将其删除
4、如果不为0,则只删除一个硬链接
# 删除源文件软链接和硬链接的影响
查看软链接文件,查看的文件不存在。和windows一样,删除源文件,快捷方式也用不了。但是删除源文件,为什么硬链接文件还可以查看呢?
这里要简单说下i节点了。i节点是文件和目录的唯一标识,每个文件和目录必有i节点,不然操作系统就无法识别该文件或系统,就像没有上户口的黑户。linux操作系统是不识别些字母的。
通俗理解:
硬链接文件相当于文件硬链接数+1,在windows里没这个概念,删除文件删除的是硬链接数,硬链接数为0时,数据就没了
软连接就是指向文件的路径,文件删除了,路径就不存在了,所以软连接找不到了
文件类型
Linux⽂件没有扩展名!!!
#⽅法⼀:
ls -l ⽂件名 #看第⼀个字符
- #普通⽂件(⽂本⽂件,⼆进制,压缩⽂件,电影,图⽚。。。),例如:/bin/ls
[root@localhost ~]# ls -l
-rw-r--r-- 1 root root 0 12月 14 19:11 1
d #⽬录⽂件,例如/home/
[root@localhost home]# ls -l
drwx------ 2 test test 63 12月 14 19:13 test
b #设备⽂件(块设备)存储设备硬盘,U盘,例如:/dev/sda
[root@localhost dev]# ll
brw-rw---- 1 root disk 8, 0 12月 16 19:39 sda
c #设备⽂件(字符设备)打印机,例如:/dev/ttycc
[root@localhost dev]# ll
crw-rw-rw- 1 root tty 5, 0 12月 16 19:39 tty
s #套接字⽂件(socket),例如: /var/lib/mysql/
[root@localhost mysql]# ll
srwxrwxrwx 1 mysql mysql 0 12月 16 21:52 mysql.sock
p #管道⽂件,例如:/run/systemd/initctl/fifo
[root@localhost initctl]# ll
prw------- 1 root root 0 12月 16 19:39 fifo
l #链接⽂件,例如:/bin
[root@localhost bin]# ll
lrwxrwxrwx. 1 root root 6 12月 13 11:40 apropos -> whatis
ps:通过颜⾊判断⽂件的类型是错误的!!!
# 准备套接字文件
#安装mysql数据库
[root@localhost run]# yum install mariadb* -y
#启动
[root@localhost run]# systemctl start mariadb
# ⽅法⼆:大致判断文件的类型
[root@xxx ~]# file /etc/krb5.conf
/etc/krb5.conf: ASCII text
.conf #配置文件
.log #日志文件
.sh #脚本文件
.py #脚本文件
从来就没有正确的选择,我们只不过是要努力奋斗,使当初的选择变得正确。