六 Linux目录文件与系统启动知识
Linux是强大的系统工具 提供服务的工具 追求:速度,效率,安全。使用命令行来管理
一切从根开始
windows里分区和目录一一对应。
Linux里的目录和分区是分离的。每个目录都可以对应不同的分区
IDE:不同磁盘使用用字母表示:hda hdb
不同的分区用数字表示:hda1 hda2
SAS/SATA/SCSI sda sdb sda1 sda2
/dev /sada1
/etc 目录
同一个目录下,文件也可能会对应不同的分区。
分区不能直接进入
挂载:为分区找到一个入口,为分区开一个门或者窗户。
挂载点:这个分区的入口的目录名 /etc4就是分区dev/sda1的挂载点
mount 挂载命令
umount 取消
临时挂载点/mnt
*****boot 引导分区,系统内核及引导程序
*****dev 硬件设备文件所在目录
*****etc 系统配置
lib usr/lib 库文件目录 , 共享库和内核模块
media 可移除的媒体挂载点 比如:光盘 不怎么用
*****mnt 临时的要挂载的文件系统的挂载点
opt 额外的应用软件包 不怎么用
*****proc 虚拟的文件系统,存放进程和内核信息的目录。
run 正在运行的程序相关信息的文件
srv 系统提供服务的数据,用户使用的数据
sys 虚拟的文件系统,存放进程和内核信息的目录,和proc差不多
*****tmp 存在临时文件目录
*****usr 系统软件和用户相关程序所在目录 第二目录层次
*****var 可变化数据 系统 日志 缓存
6.4etc系统初始化及设置相关重要软件
一:/etc/sysconfing/network-scripts/ifcfg-eth0:网卡配置文件
c7:nmtui 图形化配置上网 本质就是修改上述文件
c6:setup
可以不用图形工具,直接改文件。
——————————————————————————————————————————————————————————————————————————————
二../etc/resolv.conf: Linux系统DNS客户端配置文件
DNS Domain Name System 域名系统
作用:把浏览器里输入的域名,解析为服务器的IP地址,然后才能找到服务器,提供内容。
早期上网,直接IP,10.0.0.200 记不住
修改DNS 一般从/etc/sysconfing/network-scripts/ifcfg-eth0中编辑
————————————————————————————————————————————————————————————————————————————————————————————
三./etc/hosts:系统本地的DNS解析文件
10.0.0.200 www.baidu.com
每个人的电脑必须要有一个hosts文件做解析 发明了DNS。 公网公共解析服务资源 。
重要功能:把浏览器里输入的域名,解析为服务器的IP地址。 这就是DNS
DNS的/etc/resolv.conf 配置文件命令基本废弃,由网卡文件替代
/etc/sysconfing/network-scripts/ifcfg-eth0
只要在网卡文件里配置DNS 不需要再使用DNS设置
但是如果先更新/etc/resolv.conf文件,网卡如果重启就会自动清除
/etc/hosts:系统本地的DNS解析文件
10.0.0.200 www.baidu.com 每个人的电脑必须要有一个hosts做解析
浏览器输入www.baidu.com时,优先找hosts文件解析。
4./etc/fstab:配置开机设备自动挂载文件
/etc/fstab 开机自动挂载。
/dev/sda1
UUID=fd35882e-bb9e-456c-ab1b-aa86f2c649ad / xfs defaults 0 0
UUID=6c013650-b7ac-49fa-810c-9b9f58a46e43 /boot xfs defaults 0 0
UUID=46a75efe-145e-4ae7-b6be-b10b2f22513f swap swap defaults 0 0
设备名 UUID 挂载点 文件系统类型 挂载参数 是否备份 是否开机检查
5./etc/rc.local:存放开机自启动程序命令的文件 /etc/rc.d/rc.local
6./etc/profile及/etc/bashrc:配置系统的环境变量/别名等的文件
各种配置的永久的配置文件。
生效条件二选一:1.退出重新登陆。2.source /etc/profile
例如:希望下面别名永久生效
alias rm=''
就放到上述配置文件里
7./etc/issue 和/etc/issue.net:
版本内核
清理命令>etc/issue.net
8./etc/motd 配置用户登录系统之后显示提示内容的文件(开机提示)
9./etc/redhat-release 查看系统版本
[root@xiaozhang ~]#
[root@xiaozhang ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
unmae-r 查看内核
10./etc/sysctl.conf Linux内核参数设置文件
Liunx系统内核的配置和优化
11./etc/init.d:软件启动程序所在的目录(CentOS7以前,现在废弃了)
------
12./etc/inittab 开机运行级别 以及启动相应脚本
现在直接用ll/usr/lib/systemd/system
定义:Linux系统运行级别当前所处于的状态。
Linux系统运行级别的说明如下:
# 0 关机(请不要把系统运行级别设置为0)
# 1 单用户模式 (root用户密码忘记,可用此模式找回)
# 2 没有NFS,多用户模式
# 3 命令行模式 文本模式(企业级服务器核心运行状态)
# 4 未使用
# 5 图形化模式 桌面模式 X11(桌面个人版系统运行状态)
# 6 重启(不要把系统运行级别设置为6)
CentOS7
systemctl get-default查看运行级别
systemctl set-default修改运行级别
CentOS6
查看运行级别 runlevel
切换 init
————————————————————————————————————————————————————————————
TYPE=Ethernet 上网类型 以太网
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none 启动协议 none 静态
DEFROUTE=yes 使用默认路由
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0 第一块网卡逻辑设别名
UUID=7c27c0a5-418b-41a6-b2a4-3f8a8b129d94 通用唯一识别码
DEVICE=eth0 第一块网卡逻辑设备名
ONBOOT=yes 开启启动
IPADDR=10.0.0.201 IP地址
PREFIX=24
GATEWAY=10.0.0.254
DNS1=223.5.5.5 DNS
IPV6_PRIVACY=no
—————————————————————————————————————————————————————/etc/hostname C7主机名配置
/etc/sysconfig/network C6主机名配置
/usr目录
1./usr/local/:源码编译安装软件默认的位置路径
软件安装:a.rpm安装 b.yum,
2./usr/src:存放源代码文件的目录
/var目录
1./var/log 记录系统及软件运行信息文件所在的目录
log 日志信息 =====记录计算机运行行为。
2./var/log/massages:Linux系统级别日志文件。 ll
记录Liunx系统运行行为的文件,正常行为,非正常行为。
3.var/log/secure:用户登陆信息日志文件。
4.var/log/dmesg:记录硬件信息加载情况的日志文件
对应命令:dmesg
/proc下的重要路径
1./proc/meminfo 查看系统内存呕6 free-m查看内存
2./proc/cpuinfo 查看CPU
3./proc/loadavg 查看负载 系统繁忙程度的一个综合指标 uptime
[root@xiaoq /usr]# uptime
09:28:29 up 11:53, 2 users, load average: 0.00, 0.01, 0.05
当前时间 开机多久 哪些用户 负载 平均 1分钟 5分钟 15分钟
负载的数字和PCU核数相当的时候就是负载的一个临界点,例如,一颗两核,临界负载就是2
4.proc/mounts 查看挂载情况
开机BIOS自检 》 读MBR引导 主引导记录 后66分区表 》 加载GRUB菜单()
vim:
普通模式,命令模式,编辑模式
vim:
普通模式开始
i 当前光标
a 第二个
o是下一行开始
进入编辑模式 加入更改内容
esc返回普通模式
: 切到命令模式 WQ保存 q 退出不保存 wq!强制保存退出
set nu 显示行号
CentOS6启动流程
四大块:
检查硬件 BIOS:内存 CPU 磁盘
MBR引导: 446字节引导启动
GRUB :选择内核
加载内核到内存:
——————————————————————————————:
启动init进程:
读取运行级别 etc/inittab
执行/etc/rc.d/rc.sysinit 设置主机名ip地址
运行etc/rc3.d下面的脚本 一些开机自启动程序
启动mingetty显示登录界面
(分先后顺序)
CentOS7启动流程
四大块:
1.检查硬件 BIOS:内存 CPU 磁盘
2.MBR引导:446字节引导启动
3.GRUB:选择内核
4.加载内核到内存
————————————————————————————:
1.运行ststemd进程
2.读取运行级别
3.并行各种服务 /usr/lib/systemd/system和/etc/systemd/system/
4.显示登录界面
Liunx里严格区分大小写
所有字符尽量加双引号
重定向符号的核心知识******
超重点。
>或者1>输出重定向,箭头方向就是数据流向,把左边的数据流向到右边,会清空右边之前的数据。
清空前备份。
>>或者1>>追加输出重定向 内容追加到文件尾部。
<或0<标准输入重定向,箭头方向就是数据流向。
<<或0<<追加输入重定向,箭头方向就是数据流向,
2>错误输出重定向 报错
2>>错误追加输出重定向
数字1 标准输出
数字0 标准输入
数字2 错误输出
cho "" 1>文件 2>文件 会把报错信息打到文件里
2>错误输出重定向 报错
2>>错误追加输出重定向
————————————————————————————————————————————————————————————————————————————————————————————————————
8.1
1153832 -rw-r--r-- 1 root root 39 Mar 13 11:49 3
1153835 -rw-r--r-- 1 root root 39 Mar 13 11:49 4
1153836 -rw-r--r-- 1 root root 12 Mar 13 11:51 5
1153837 -rw-r--r-- 1 root root 0 Mar 13 11:50 6
1153830 -rw-r--r-- 1 root root 0 Mar 13 11:46 a.txt
1153831 -rw-r--r-- 1 root root 39 Mar 13 11:46 a.xt
1153833 -rw-r--r-- 1 root root 30 Mar 13 11:46 b.txt
第一列 索引节点 身份证
第二列 共十一个字符 第一个字符为文字类型接下来表示权限
d是目录文件、l是链接文件、-是普通文件、p是管道
.表示和selinux有关的标识
第三列:硬连接数
第四列:属主:文件的拥有者,用户
第五列:属组:文件的拥有组,用户组
第六列:文件大小
第七列:月份
第八列:日
第九列:时间(文件内容最后修改时间)
第十列:文件名
——————————————————————————————————————————————————————————————————————————
8.2
第二列第一个字符:文件类型
一切皆文件 windows用扩展名区分文件,linux有自己的文件类型。liunx的扩展名兼容windows,方便区分。
1.- 普通文件(regular file)
图片视频文档都是文件
三种类型:
a纯文本文件:字符 数字等内容
b.数据文件:存放命令收集的信息
c.二进制文件:可执行的命令
lastlog查看谁登录过
2.d 目录(directory)
生成:mkdir
复制:cp -a /-r
删除:rm -rf
区分;目录是蓝色 文件类型一行开头为D ls -p 目录结尾斜线结尾
1.字符设备与块设备
以C开头的是字符设备 猫 串口
以b开头的是块设备 硬盘 光驱
2. 套接口文件
以S开头 sock文件是一类特殊的文件,常用在网络之间进行数据连接 如:
我们可以启动一个程序监听客户端请求,客户端可以通过套接字来进行数据通信。
用于进程之间通信的文件。
重点:$PATH
命令行执行命令会从PATH对应的路径中查找命令
PATH对应的路径中没有这个命令就会报command not found
软链接解压无效
特殊符号
\转义字符 *所有字符 !取反 |管道
多用户 多任务
用户:管理liunx系统而存在的。
用户一般分为用户名,用户ID。相当于我们有名字和身份证,
用户名方便管理员使用,用户ID是唯一区别一个用户(计算机只识别ID)
user UID
Liunx里所有的文件和进程都要有用户对应。
文件存在必须对应用户
进程运行必须对应用户
Liunx用户分为三类:
1.超级管理员root(皇帝)
UID为0 ,UID为0的都由皇帝对应的权限。
不要修改ID为0变管理员
作业:root 密码丢失了 如何找回。
2.虚拟用户(傀儡)
实际存在的用户,但是又不允许登录。
能够满足文件或进程运行宿主的要求,但是又不会带来管理风险。
UID 1-499
3.普通用户(大臣)
实际存在的用户,可以登录。管理员身份创建的,帮助管理员管理系统,
权限仅仅限制家目录,在一些系统级目录中可以顿不可写,不能进/root
UID C7 1000起步 C6 500起步
用户组:集合,组织(人的家庭)
Liunx里每个用户都必须要拥有一个组织,这个组织就叫做用户组。
用户组也是给人看的,用户组也有唯一标识,Group ,简称GID
默认情况创建用户,会自动创建一个和用户名相同的用户组以及UID相当。
id oldgirl
uid=1000(oldgirl) gid=1000(oldgirl) 组=1000(oldgirl)
用户和用户组的对应关系
1.1个用户对应一个组,
2.1个用户对应多个组
3.多个用户对应一个组。
文件权限:严格的权限,Liunx安全权限严格
rwxr-xr-x
9个字符
r read 可读取 4
w write 可读写 2
x execute 可执行权限 1
- 没有权限 0
字符分组:三个字符是一组
d rwx r-x r-x 2 root root 66 10月 1 05:20 2
用户的权限 用户组权限 其他权限
可读不可写
789列:文件最后的修改时间
文件时间有三种:
修改时间:modify 文件内容被改之后的时间
访问时间:access 文件内容被访问过
变化时间;change 文件属性发生改变的时间
[root@xiaozhang ~]# stat /etc/hosts
文件:"/etc/hosts"
大小:158 块:8 IO 块:4096 普通文件
设备:803h/2051d Inode:16793700 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
访问时间:2020-10-01 00:00:20.809999259 +0800
修改时间:2013-06-07 22:31:32.000000000 +0800
变化时间:2019-03-05 18:02:13.914928577 +0800
创建时间:-
索引节点:
[root@xiaozhang ~]# ls -lhi
总用量 12K
33574983 drwxr-xr-x 3 root root 75 10月 1 14:26 2
50803884 drwxr-xr-x 2 root root 6 10月 1 07:34 3
33663448 -rw-r--r-- 1 root root 160 10月 1 07:36 3.tar.gz
33574979 -rw-------. 1 root root 1.4K 3月 5 2019 anaconda-ks.cfg
33663449 -rw-r--r-- 1 root root 428 10月 1 07:38 -C
第一列:
表现形式是数字,33663449就是索引节点 类似于身份证。
是文件在系统中的唯一标识。
找一个文件最终都要通过索引节点才能找到
索引节点的概念处在ext文件系统中(ext2 ext3 ext4)
索引节点是硬盘上的一块存储空间。大小256字节或512字节。
索引节点里存放的数据是文件的属性(大小,访问时间,用户,组,权限等)
唯独不包含文件名。(文件名在上次目录的block里)
磁盘想要使用,先分区,格式化(创建文件系统)
格式化创建文件系统的时候,就会生成大量的inode(索引节点)和block
inode 用于存储文件属性信息,同时存放指向文件实体(block)的指针。
1.ext3/ext4文件系统下,任何一个非空文件都有一个inode和block
block有可能多个 因为装不下 inode 有且只有一个
2.inode节点号相同的文件,互为硬链接文件,同一个文件的不同入口
3.inode在某一个文件系统(分区)内是唯一的。
block 存放文件内容的(大片)
inode相当于首页的目录索引
block等于书的页
block 磁盘块 是用来存放实际数据的实体,真正用来存储数据
1.磁盘读取数据是按block为单位读取的
2.每度取一个Block就会消耗一次磁盘I/O
3.若文件比较大,一个文件可能占用多个block
4.若文件较小,一个Block剩余空间会被浪费,无论多小。
[root@xiaozhang ~]# df -i 看inode数量
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sda3 9944576 36333 9908243 1% /
devtmpfs 121783 373 121410 1% /dev
tmpfs 124487 1 124486 1% /dev/shm
tmpfs 124487 704 123783 1% /run
tmpfs 124487 16 124471 1% /sys/fs/cgroup
/dev/sda1 131072 332 130740 1% /boot
tmpfs 124487 1 124486 1% /run/user/0
[root@xiaozhang ~]# df -h 看block数量
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 19G 1.5G 18G 8% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 14M 473M 3% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 253M 136M 118M 54% /boot
tmpfs 98M 0 98M 0% /run/user/0
[root@xiaozhang ~]#
企业
+磁盘满了的原因有两种:
1.inode满了
2.block满了
no space left on device 报错 (没有空间在设备上了,磁盘满了)
检查步骤
1.df -h block满了?
2.df -i inode满了?
为什么inode会满?
小文件太多,
初始化的时候block数量会远大于inode数量