Linux基础

安装虚拟机

配置虚拟网络环境

编辑–虚拟网络编辑器–选择vment(NAT模式)–关闭DHCP功能–设置网络地址信息。

开始安装操作系统

第一步操作: 需要有系统镜像(iso文件)

旧版本镜像下载:
http://vault.centos.org/
新版本镜像下载:
https://opsx.alibaba.com/mirror

CentOS-7-x86_64-DVD-1810.iso            --- 正常操作系统镜像  ******
CentOS-7-x86_64-Everything-1810.iso      --- 完整版操作系统镜像
CentOS-7-x86_64-LiveGNOME-1810.iso       --- 演示版本
CentOS-7-x86_64-LiveKDE-1810.iso         --- 演示版本
CentOS-7-x86_64-Minimal-1810.iso	     --- 最小化版本	     阉割版  大白菜
CentOS-7-x86_64-NetInstall-1810.iso	     --- 通过网络安装系统

第二步操作:加载好需要的镜像
第三步操作:启动虚拟主机
问题: 电脑CPU默认不支持虚拟化功能
1) 重启系统 --> F2 F8 F12 | Fn+F2 --> BIOS(基础输入输出系统) --> CPU支持虚拟化功能 --> F10

第四步操作: 菜单选择界面:
1) install centos7 
2) Test this media & install centos7    --- 检测镜像数据信息
3) Troublesshooting                     --- 排错

修改网卡名称: centos4~6  eth0  centos7  ens33
统一网卡名称:
方法一: 安装好系统调整网卡名称
方法二: 安装前调整网卡名称
选择install centos7  --> tab --> 设置信息
net.ifnames=0 biosdevname=0

第四步操作: 系统安装界面选择设置
1) network & host name 
2) 分区操作   标准分区 --- 
3) 关闭安全策略功能	
4) 选择预装软件        --- 最小化  1236
5) 给root设置密码      --- 123456

虚拟主机网络配置

第一个里程

  1. 执行命令进入配置界面:
nmtui   进入图形化界面进行配置

第二个里程

重启网络服务
systemctl restart network
systemctl status network

第三个里程

检查网卡地址信息
ip address show eth0 查看指定网卡信息
ip a s eth0 缩写(查看指定网卡信息)
ip a 查看所有网卡信息

远程连接排错思路

1.检查道路是否通畅:ping 10.0.0.200

解决问题:
a 检查虚拟主机网卡配置信息
b 检查虚拟软件网络配置信息
c 检查主机虚拟网卡配置信息
d 检查虚拟软件服务状态信息
e 虚拟软件遇到程序异常问题

2.通常的时候查看是否被阻止:检查防火墙设置 telnet 10.0.0.200 22
3.查看网络服务是否打开:
       telnet 10.0.0.200 22    检查防火墙设置
	   systemctl status sshd   查看服务状态,inactive(不可用),active(可用)
	   systemctl start sshd    开启服务
	   systemctl stop sshd     关闭服务
	   systemctl restart sshd  重启服务
	   systemctl reload sshd   重新加载服务配置

系统操作知识必知必会

a 系统命令提示符(系统可以正常输入命令信息)
[root@yangzhou ~] #
命令提示符有三个部分组成

  1. 登陆系统用户信息 root 超级用户管理员
  2. 操作系统主机名称 yangzhou 主机名
  3. 当前所在目录名称 ~ 用户家目录
    b 系统命令语法结构
    命令+空格+参数(一些要求和条件)+空格 对象(文件或者目录)
    c 系统目录结构说明
    Linux 一切从根开始

绝对路径信息:从根开始寻找数据信息(比较标准,不容易出错)
相对路径信息:从当前目录寻找信息 (比较快捷,容易出错)

运行系统相关命令

 shutdown   关闭系统(系统会在一分钟之后关闭)

hutdown scheduled for Tue 2019-10-15 22:15:19 EDT, use ‘shutdown -c’ to cancel.
关机计划关于2019-10-15 22:15:19开始执行 ,使用‘ shutdown -c’ 命令取消计划
[root@yangzhou ~]#
Broadcast message from root@yangzhou (Tue 2019-10-15 22:14:19 EDT):
广播消息从 yangzhou主机进行 在2019-10-15 22:14:19进行的广播

 The system is going down for power-off at Tue 2019-10-15 22:15:19 EDT!
 这个系统将关闭电源在2019-10-15 22:15:19
 shutdown -c        取消关机操作

Broadcast message from root@yangzhou (Tue 2019-10-15 22:22:31 EDT):

 The system shutdown has been cancelled at Tue 2019-10-15 22:23:31 EDT!
 这个系统关机计划被取消了
shutdown  -h(10)   会在十分钟后关机
shutdown  -h(0)/now  立即关机
shutdown -reboot   重启系统
shutdown -r0/now 立即重启

补充关机命令:power off init 0 halt
补充开机命令:

系统目录相关命令

ls
ls /    查看/目录
mkdir    创造一个目录出来    
mkdir /yangzhou       在根目录下面创建一个 yangzhou 目录
mkdir /server /data /backup  /application  在区下创建多个目录
mkdir /server/tools /server/conf server/scripts   在/server 目录下创建多个子目录
mkdir -p /server/data/backup/application     创建多级目录
ls /yangzhou   查看yangzhou 里面的目录
ls -d/yangzhou  查看yangzhou 目录(查看指定目录)
ls -d (esc+.)  调取上一个命令最后一个参数或者数据对象信息

rm -rf    删除目录

切换目录的命令

cd
cd   改变切换目录    (chenge  directory)
cd / 绝对路径
cd /server 切换到根目录下的server目录中   (绝对路径)
cd  conf  切换到server目录下的conf 目录中  (相对目录中)

切换目录特殊方式:
cd     快速回家
cd ..  返回上一级   (cd ../../../..)   输入几次  回到几次目录
cd -   快速回到上一次所在目录
cd /   快速回到根目录

pwd  查看目录所在(print working directory)    

系统文件相关命令

查看文件信息

ls   /yangzhou/yangzhou.txt     查看文件
ls   -l   /yangzhou/yangzhou.txt    查看文件详细信息

创建文件信息

touch   /yangzhou/yangzhou.txt    创建文件  
touch   还有一个作用就是   修改文件时间 ; 创建文件时不会覆盖文件

查看文件内容

cat    /yangzhou/yangzhou.txt

编辑文件内容

第一种编辑命令

vi  (系统默认)    vim  (需要安装)
vi  /yangzhou/yangzhou.txt     编辑内容文件

编辑文件步骤:
第一 : 开始进行编辑 (输入 i) 进入编辑状态
第二 :退出编辑状态 (esc )
第三 :保存文件内容并回到命令 (:wq)
write 写 quit 退出
ps: vi 和vim 都是非常重要而且功能强大的命令
只能编辑文件信息 不能编辑目录信息

第二种 :利用一种特殊符号
>
echo =print (将制定信息默认输出到屏幕上)

echo   “扬州” > /yangzhou/yangzhou.txt   将扬州输入到指定文件信息里

ps: > 会先清空文件内容 再将新的内容输出到文件中
>> 在文件的最后一行追加新的内容

文件信息的备份

cp (copy 复制)
命令语法格式 :cp 参数 需要备份的文件信息 备份的文件路径
备份文件操作过程:

[root@linux67 ~]# cp /oldboy/oldboy.txt  /backup/
[root@linux67 ~]# ls /backup/
oldboy.txt
[root@linux67 ~]# cp /oldboy/oldboy.txt  /oldboy/
cp: ‘/oldboy/oldboy.txt’ and ‘/oldboy/oldboy.txt’ are the same file
[root@linux67 ~]# cp /oldboy/oldboy.txt  /backup/
cp: overwrite ‘/backup/oldboy.txt’? n  
[root@linux67 ~]# cp /oldboy/oldboy.txt  /oldboy/oldboy.txt.bak
[root@linux67 ~]# ls -l /oldboy/
total 8
drwxr-xr-x. 3 root root 22 Oct 16 12:11 oldboy01
-rw-r--r--. 1 root root 19 Oct 17 09:32 oldboy.txt
-rw-r--r--. 1 root root 19 Oct 17 09:59 oldboy.txt.bak

备份一个目录

cp  -r    (recursion     递归)  
将目录下面数据进行处理  并会将目录下面的子目录数据进行处理,还要将子目录中的子目录数据及进行处理
[root@linux67 ~]# cp -r /oldboy/  /backup/
[root@linux67 ~]# ls -l /backup/
total 4
drwxr-xr-x. 3 root root 62 Oct 17 10:05 oldboy
-rw-r--r--. 1 root root 19 Oct 17 09:55 oldboy.txt
[root@linux67 ~]# ls -l /backup/oldboy
total 8
drwxr-xr-x. 3 root root 22 Oct 17 10:05 oldboy01
-rw-r--r--. 1 root root 19 Oct 17 10:05 oldboy.txt
-rw-r--r--. 1 root root 19 Oct 17 10:05 oldboy.txt.bak

文件名称的修改

mv    (move    移动)

语法结构
mv 需要移动的数据 移动的路径

mv -f     系统默认 直接移动
[root@linux67 oldgirl]# mv /oldgirl/oldgirl.txt /oldboy
[root@linux67 oldgirl]# ls /oldboy
oldboy01  oldboy.txt  oldboy.txt.bak  oldgirl.txt
[root@linux67 oldgirl]# ls
oldgirl01  oldgirl01.txt

移动文件信息的时候,相同文件名称的时候会直接覆盖

mv   -i      移动文件时会出现覆盖提示
mv   -t     (target)    先指定一个目标 在指定移动的文件
mv   -n     移动文件时 如果存在就不覆盖(没动)   如果不存在就移动过去

目录信息剪切移动

[root@linux67 oldgirl]# mv /old01  /old02  --- 剪切目录

文件信息重命名

[root@linux67 oldgirl]# mv /oldgirl/oldgg.txt /oldgirl/oldgirl.txt

文件的删除操作

rm    (remove   删除     文件/目录)
rm /yangzhou/yangzhou.txt*
删除所有叫扬州的文件

rm /yangzhou/*.txt
删除所有后缀为.txt的文件

rm /yangzhou/*
清空所有文件
 
rm -f        (force   强制)
强制删除

删除目录的操作

rm -rf      强制删除目录信息

注:
命令帮助查看办法
方法一: 利用man 获取命令帮助信息

man  touch

方法二: 利用help获取命令帮助信息 不过只能查看内置命令
方法三: 领用info获取命令帮助信息
方法四: 利用命令的参数信息获取命令帮助信息

mkdir  --help

系统挂载概念

挂在操作目的: 实现数据可以存储到磁盘中(磁盘分区中)

如何进行分区挂载操作

系统分区说明: 使用一个文件表示一个分区

1 . 获得一个存储设备
ls -l /dev/cdrom
2 . 创建一个目录为挂载点
mkdir 雷雅茹
3 . 语法格式
mount 存储设备信息 挂载点 (空目录)
4 . 检查操纵
5 . 挂载点目录卸载过程
umount /挂载所在的目录
(尽量离开挂载点目录,再进行卸载)

系统重要目录说明

bin (binary )
存储命令文件信息(普通用户可以使用的)

which   可以查看命令文件在哪

sbin
命令文件信息(超级管理员用户可以使用的)
etc
保存程序配置文件信息
lib (library 库)
保存系统的32位库文件信息
lib64
保存系统的64位库文件信息
root
用户家目录(地主家)
home
用户家目录(农民家)
var (variable 变)
保存经常发生变化的数据信息 日志文件log
boot
系统启动引导目录
dev (device)
存储系统设备文件信息
mnt
临时挂载点
tmp (tmpporary 临时)
临时目录(通过设置可以变成回收站)
usr
根目录的替身???
opt
第三方软件程序数据保存的目录
proc
存储系统进程和内核文件信息 存储数据都是存取到了内存中

系统重要文件说明

/etc目录中重要文件

1. ifcfg-eth0

1.作用:网络服务配置文件
2.路径:/etc/sysconfig/network-scripts/ifcfg-eth0
3.配置文件信息
BOOTRROTO=none 获取地址方式 (none 静态 手动配置)
ONBOOT=yes 确认网卡是否激活
4.配置文件生效方法
方法一

systemctl restart network     重启网络服务

方法二
针对不同网卡进行重启操作

ifdown eth0   ;  ifup eth0   (针对   eth0 这个网卡进行重启)
ifdown eth0  && ifup eth0

2. resolv.conf

1.作用:用于解析名称信息
2.路径:/etc/resolv.conf

3. hosts

1.作用:用于解析名称信息
2.路径:/etc/hosts
3.手动配置文件信息 (临时性)
ip地址+名称
4. 配置完毕立即生效

4. hostname

  1. 作用:主机名称配置文件
  2. 路径:/etc/hostname
  3. 文件配置信息
cat /etc/hostname
linux67

主机名修改方式

hostname    yangzhou  (临时性的)         立即生效    (centos 6)
hostnamectl   set-hostname      yangzhou   (centos7   临时用永久修改)  
vim /etc/hostname      修改文件信息新  (永久修改)    重启系统配置生效

5.rc.local

  1. 作用:文件中的命令信息开机自启
  2. 路径:/etc/rc.local
  3. 文件配置信息
cat /etc/rc.local
  1. 开启自启动挂载命令
vim /etc/rc.local
mount /dev/cdrom  /yangzhou
  1. 配置文件生效 配置文件权限
    chmod + /etc/rc.d/rc.local

什么是脚本文件 sh

将多个命令整合在一个文件中
脚本文件的编写
vim test-1.sh
#!/bin/bash

脚本文件的运行
1 . sh
sh test-1.sh
2 . 直接运行

文件权限

r read 可读权限
w weite 可写权限
x execute 可执行权限
改变文件权限
chmod +x /server/scripts/test-1.sh

6.fstab

  1. 作用:实现开机自动挂载操作
  2. 路径:/etc/fstab
  3. 文件配置信息
cat /etc/fstab
  1. 配置文件生效
mount -a

7.inittab

  1. 作用:查看/设置系统文件运行级别
  2. 路径:/etc/inittab
  3. 文件配置信息
cat /etc/inittab
运行级别==系统的不同运行方式

centos7 修改运行级别

systemctl set-default  

centos7 修改运行级别
查看运行级别

runlevel
修改系统运行级别

临时配置
init 级别编号
0:关机级别 (不要设置)
1:单用户模式 (破解系统密码信息 一般破解的是root密码 )
2:多用户模式 (没有网络服务模式)
3:多用户模式 (具有网络服务模式)
4:未使用
5:图形化级别
6:重启级别 (无限重启)

永久配置

vim /etc/inittab

8. profile

  1. 作用: 配置系统变量或者环境变量或者别名信息
  2. 路径:/etc/profile
  3. 文件配置信息
cat /etc/profile
变量

变量的意义:在脚本中存在是由意义的
变量的意义
指定一些经常变化的信息,利用变量可以快速修改.

设置变量和调用变量

环境变量

a. 系统默认设置好的
b. 环境变量都是用大写字母表示的
c. 环境变量可以被所有用户调用
b. 系统环境变量都有存在价值

PATH

PATH的作用
修改环境变量
临时修改

永久修改
进入 vim 修改

  1. 配置文件生效
    a. 重启
    b. 利用命令立即加载
    source /etc/profile
    
  2. 设置别名的功能
    别名有什么用
    a.简化复杂命令重复输入
    b. 将危险命令进行转换 (rm 删除文件=将文件移动到 /tmp)
    实现别名配置
alias   (查看别名   设置别名)
unalias  (取消别名)

临时配置
alias 别名=‘命令信息’
永久配置

vim  /etc/profile     alias   别名='命令信息'
vim /~/.bashrc      取消你要配置的别名局部配置

练习题
6. 永久配置变量或者环境变量或者别名文件信息
a. 全局配置(对系统中所有用户都有影响)
/etc/profile /etc/bashrc
b. 局部配置(对系统某个用户有影响)
~/.bash_profile ~/.bashrc
linux系统中以 . 开头的都是隐藏文件
局部配置优先于全局配置
source或者. 可以让一个设置的文件生效

9. motd issue issue.net

  1. 作用:更改系统信息提示
    moed:在用户登陆后会显示提示信息
    issue:在登陆之前会显示提示信息
  2. 路径:/etc/motd; /etc/issue
  3. 永久配置
vim /etc/motd
vim /etc/issue

/usr

local

  1. 作用:第三方安装软件程序目录
  2. 路径/usr/local

安装软件的方法

  1. yum
    掌握利用yum方式安装软件 解决软件依赖

        安装软件程序
        yum install -y 软件名称 
        yum reinstall -y 软件名称 (重新安装软件)
        yum list|grep tree     --- 查看yum仓库中有的软件信息
        
        安装软件包组 (软件01 软件02 软件03)
        yum groupinstall -y 软件包组名称
        yum grouplist   查看yum仓库中的软件包组信息
        
        卸载软件操作
        yum erase  软件名称    --- 将软件依赖包也会卸载 了解
    
        yum provides killall   --- 查看一个命令文件输入哪个软件包		   
        
        yum repolist           --- 查看可以使用yum仓库信息
    
  2. 利用rpm
    掌握利用rpm方式安装软件 解决软件依赖/下载rpm软件包
    安装软件包
    rpm -ivh 软件包信息

        确认软件是否安装成功:
        rpm -qa   软件名称    --- 查看软件是否安装成功
        rpm -ql   软件名称    --- 软件安装好在系统目录中创建了哪些数据文件
        rpm -qf /usr/bin/animalsay  --- 查看一个命令文件属于哪个软件程序
        
        卸载软件程序:         
        rpm -e 软件名称            --- 卸载指定软件
        rpm -e 软件名称  --nodeps  --- 忽略依赖进行强制卸载
    
  3. 利用编译方法

  4. 利用二进制包安装
    安装软件的方法

/var

** /var/log/messages**
作用:记录系统或者软件的运行情况
/var/log/secure
作用:记录系统登陆时候的信息
在这里插入图片描述
日志文件如何查看

方法一:只查看最新的信息

  tail (从尾部开始默认查看十行)
  tail -n (查看文件的最后几行信息)
  tail -f (实时追踪查看)
  heat(查看文件的前十行信息)
  heat -n(查看文件的前几行信息)

方法二:关注指定信息

grep  (过滤筛选)
grep -A 3 "03" (查看03之后的所有信息)
grep -B 3 "03" (查看03之前的所有信息)
grep -C 3 "03" (AB 组合)
grep -i (忽略大小写)
grep  -c +"需要统计的信息"+ 统计信息的文件所在
grep  -c   统计
grep  -c +"需要统计的信息"+ 统计信息的文件所在 |  uniq   (去重) 
grep  -c +"需要统计的信息"+ 统计信息的文件所在 |  uniq   | wc -l    (去重 并且统计行数)
说明   |   (管道符号)    将前一个命令的输出结果交给后一个命令再次处理
补充   :
wc -c   统计字节   中文算三个字节           
wc -m   统计字符   中文算一个字符

proc(进程文件,内核文件)

系统的硬件信息:

cat /proc/cpuinfo
      lscpu     (查看cpu信息)
cat /proc/meminfo 
      free -h   (查看内存信息)
cat /proc/loadavg 
      w    
      uptime
      top        (查看负载情况)
cat /proc/mounts 
      df -h      (查看硬盘信息)

操作系统的基础优化

准备工作
查看系统版本信息 cat /etc/redhat-release
查看系统内核信息 uname -a
1 用户优化
第一个优化:如何创建用户 useradd +用户名
第二个优化:如何设置密码
1.利用root用户 passwd +用户名
2.不同用户自己创建密码 passwd 复杂度in
3.批量修改用户密码
单个用户免交互修改密码:ech0 123456|passwd --stdin yangzhou
批量修改多个用户的密码: for user in 多个用户每个用户用空格隔开 ;do echo 123456|passwd --stdin $user;done
第三个优化:如何删除用户 userdel +用户名
4.查看用户是否存在 id +用户名
5.切换用户 su - 用户名
exit 切换回root用户

系统的命令提示优化

  1. 优化提示符信息
    PS1
echo $PS1

在这里插入图片描述

  1. 设置命令提示符
    PS1=         临时设置
vim /etc/profile      永久设置
PS1= 
  1. 设置命令提示符颜色

RED=’[\e[31;1m]’
Yello=’[\e[33;1m]’
Green=’[\e[32;1m]’
End=’[\e[0m]’

 PS1="[$RED\u$End@$Yello\h$End $Green\W$End]\\$ "

网络安全优化

安全服务 firewalld (防火墙服务)

防火墙如何关闭

临时关闭     systemctl  stop  firewalld
永久关闭     systemctl  disable  firewalld

安全服务 selinux (限制root用户的行为)

如何关闭服务

临时关闭  setenforce    
永久关闭  vim /etc/selinux/config

系统字符集优化 LANG

作用:避免出现字符乱码
可以中文显示信息
字符编码如何调整
临时调整

 LANG="en_US.XX"

永久调整

1 .将配置信息放入/etc/profile
2 .将配置文件放入/etc/local.conf (配置的编码必须是系统可以识别的)  

即临时又永久

 localectl set-locale LANG='XXX' 

系统时间信息优化 timedatectl

作用:修改时间信息和系统同步
设置时间和日期

timetadectl set-time 'xxxxxx'

查看时区信息

timedatectl set-timezones

设置时区

timedatectl set-timezones xxx

BOOL

RTC 设置硬件时间信息

文件属性

文件属性的组成部分

文件的组成部分

文件权限详细说明
rw-       r--      r--
属主     属组     其他用户

r-4
w-2
x-1
--0

① inode号码 (index node 索引节点)
② 文件的权限 (x 执行 r 读 w 写)
文件的类型
1. - 普通文件(文本文件,二进制文件-命令文件,数据文件-压缩包文件)
2. d 目录文件
3. b 块文件
4. l 链接文件(软连接)
5. s socket文件(网络编程)
6. c 字符流文件(查看时会不断出现字符信息)
可以用来生成随机数
思路:1.将乱码信息屏蔽,只留下字母和数字
tr -cd "0-9a-zA-Z"
2.输出的随机数是有限制的
tr -cd “0-9a-zA-Z” < /dev/urandom|head -c 6
**
** grep只能过滤文本文件
grep 过滤
** tr可以替换文件内容**
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
特殊扩展名标记文件
xxx.txt 文本文件
xxx.log 日志文件
xxx.conf 配置文件
xxx.sh shell脚本文件
xxx.py python脚本文件
xxx.zip/xxx.gz/xxx.tar.gz 压缩文件
xxx.db 数据库文件 database(将文件表装列起来)
补充:和文件相关的命令

  1. which (查看文件的保存路径)
  2. locate 是从数据库中查找文件(查找前需要更新数据库updatedb)
  3. find (查找数据信息)
    命令语法格式: find 路径 查找数据条件
    条件:

根据文件名称信息查找

-name
在这里插入图片描述

根据文件类型查找

-type
f(普通文件);d(目录文件);l(软链接文件);c(字符流文件);b(块文件);s
在这里插入图片描述

根据文件大小查找

-size(需要加上文件单位)
b:按照一个数据块进行查找
c:查找单位为字节的文件
w:查找单位为双字节的文件
k:查找单位为k的文件
M:查找单位为M的文件
G:查找单位为G的文件

-size  10k  找出10k大小的文件
          -10k 找出小于10k的文件
          +10k 找出大于10k的文件

根据文件权限查找

-perm     根据权限查找

根据文件时间查找

stat    查看文件所有时间
date    显示时间信息  ---  +%y-%m-%d%H:%M:%S
                        %F 年月日      %T 小时分钟秒
  			      	-d "-+10"    显示过去和未来时间
      修改时间信息  ---  date -s  ""
      同步时间  ntpdate ntp1.aliyun.com 

访问时间    ----atime     access time   查看文件时间
修改时间    ----mtime     modity time   修改文件内容的时间
改变时间    ----ctime     change time   修改文件属性
根据时间查找文件
-mtime +3/-3/3    按照天查找数据
-mmin  +5/-5/5    按照分钟查找数据

根据inode号码查找

inode
概念 :文件的索引信息
特点 :

  1. 存储一个数据的属性信息(类型 权限 连接数 属主 属组 大小 时间)
  2. 存储指向相应block 的指针
  3. 数据存储的时候会占用一个
    查看 :df -i

block
概念 :文件的数据信息 内容
特点 :

  1. 存储文件属性的真实内容(文件)
  2. 存储目录下面的文件名称信息
  3. 数据存储的时候会占用多个
    查看 :df

block大小调整方案 :影响数据存储效率

根据文件用户信息查找

find

1. 更具目录层级查找数据
-maxdepth   查找数据层级最深深度
-mindepth    查找数据层级最浅深度
2.查找多个条件参数组成方式
-a  多个条件是并且关系   (and)
-o 多个条件是或者关系   (or)
-not/!     取反操作

-path 根据指定路径查找信息 确认是否存在指定数据
-print  输出满足条件的指定信息
-prune  将制定目录信息进行修剪

-delete    删除查到的数据
-exec   {}     \;    将查到的数据进行处理

在这里插入图片描述

xargs   将多个信息进行分组显示(将所有信息转化为命令参数信息)
      -i   将数据插入到命令和参数中间

在这里插入图片描述在这里插入图片描述

tree 查看目录结构

tree -L 1   /     只看/下一级目录
tree    -f/d/l              指定查看需要的信息

tar 压缩数据的命令

压缩数据

tar  zcvf   压缩包(.tar.gz)    压缩数据信息
z 压缩数据的方式  gzip
c 创建一个压缩包
v 显示压缩数据的过程
f 指定压缩文件的路径信息以及名称信息

解压压缩包(默认解压到当前路径)
tar xf   压缩包 
-C        指定解压路径

查看压缩包
tar  tf   压缩包
--exclude =   排除指定数据不要压缩  (排除时使用相对路径)

在这里插入图片描述
③ 硬链接数量
1.硬链接:查看文件数据的多个门
在这里插入图片描述
2.软连接:数据的快捷方式
④ 文件的创建者
⑤ 文件的所属组
⑥ 文件的大小 (默认占用磁盘的字节信息)
⑦ 文件的最后修改时间
在这里插入图片描述
文件链接信息
软连接
概念:文件数据的快捷方式
特点:

  1. 软连接文件会指向源文件
  2. 源文件删除连接失效
  3. 可以给目录创建软连接
    查找: -inum
    创建:ln -s 源文件 链接文件
    硬链接
    概念:查看数据内容的多个门
    特点:
  4. 硬链接文件会指向相同的inode
  5. 源文件删除不会影响硬链接
  6. 只能给普通文件创建硬链接
    查看:
    创建:ln 源文件 链接文件
    作用:防止文件误删除

通配符与正则表达式

系统的基础符号说明

  1. 基础符号系列
    #:作用
    ① 注释
    ② 命令提示中表示root用户身份
    $:作用
    ① 调取变量
    ② 命令提示中表示普通用户身份
    ③ 读取文件中指定列信息
    |:作用
    ① 将管道符号前面命令的标准输出交给后面的命令进行处理
    !:作用
    ① 取反操作
    ② 快速调取历史命令
    补充:history -c 清楚历史命令
    -w 将内存中的历史命令保存起来
  2. 引号符号系列
    ` `:作用
    将引号中的命令限制性,将执行后的命令交给引号外面的命令进行处理
    “”:作用
    将指定信息进行输出显示 可以将特殊字符信息进行解析输出
    ‘’:作用
    将指定信息进行输出显示 所见即所得
    没有引号:作用
    和双引号功能类似,但没有引号可以输出序列信息
  3. 路径符号系列
    ~:用户家目录
    .:当前目录(表示隐藏文件)
    …:上一级目录
    -:上一次所在目录
  4. 定向符号
    >:标准输出重定向
    >>:标准输出追加重定向
    2>:错误输出重定向
    2>>:错误输出追加重定向
    <:标准输入重定向
    <<:标准输入追加重定向
  5. 逻辑符号系列
    &&:前一个事情成功完成在做下一个事情
    ; :按照顺序执行命令 无论前一个成不成功
    ||:前一个事情出现失败,再做下一个事情

系统的通配符号说明

  1. *:匹配任意字符信息
    删除文件时无法匹配到隐藏文件
    在这里插入图片描述
  2. {}:匹配序列信息
    生成数字或者字母序列信息,生成组合序列信息.
    在这里插入图片描述

系统的正则符号说明

基础正则符号 BRE
^ :匹配以什么开头的信息
$ :匹配以什么结尾的信息
. :匹配任意一个且只有一个字符(三剑客有个特点,处理文件时,会按照文件每一行处理)
* :匹配星号前面一个字符连续出现0次或者多次的情况
[] :匹配括号里面每个字符信息
[^] :将匹配到的信息进行取反( -v 排除匹配到的字符所在行 )
\ :将有意义的信息变得没意义(将没有意义的字符变得有意义\n --换行 \r --换行 \t —制表符)
在这里插入图片描述

正则符号可以组合使用;正则符号做匹配时有贪婪匹配的特性
^$:匹配空行
.:匹配所有内容
扩展正则符号 ERE(扩展正则符号属于高级符号,只有awk可以直接识别 grep -E---->egrep sed -r)
+:匹配+号前面一个字符连续出现1次或者多次的情况([数字/字母}+:将连续的数字字母字符串信息进行匹配)
在这里插入图片描述
?:匹配问好前面字符出现一次或者0次的情况
{}:匹配花括号前面一个字符,连续出现指定次数的信息( {m,n}最多出现n次最少出现m次)
在这里插入图片描述
():1.将多个字符信息汇总成一个整体字符串
2.利用sed命令进行替换时,实现后项引用前项
在这里插入图片描述
在这里插入图片描述
取ip地址在这里插入图片描述
| :匹配多个字符串信息
通配符号和正则符号的区别
通配符号:匹配文件名称信息(
基础命令可以识别通配符号)
正则符号:匹配文件内容信息( 高级命令可以识别正则符号 grep awk sed)

三剑客

sed
  1. 概念:文本处理编辑的命令
    执行sed的原理过程
  2. 语法结构:sed [参数] ‘条件 指令信息’ 文件信息
  3. 使用说明:
    增:
    ① sed -i ’ 1a oldboy’ 文件信息(在第一行后面添加相应信息)
    ② sed -i ’ 3i oldboy’ 文件信息(在第三行上面添加相应信息)
    ③ sed -e ‘2i103,Alex,COO’ -e ‘3a104,yy,CFO’ person.txt (可以添加多个不连续信息)
    删:
    ① sed -i ‘6d’ 文件信息 (i 后面不能加别的选项)
    ② sed -i.bak ‘/coo/d’ 文件信息 (文件删除后会有备份信息可以恢复)
    ③ 坑 (删除的时i和n不能结合使用)
    改:
    ① sed 选项 ‘s#需要替换的信息#替换成什么信息#g’ (指定条件进行替换)
    ② 注意指定变量信息做替换的时候使用双引号
    ③ 后项引用前项替换
    查:
    ① 按照行号查询(单行查找 sed -n ‘3p’ 文件信息;多行查找 sed -n ‘2,4p’ 文件信息; 查找不连续的多行信息 sed --n ‘2p;4p’ 文件信息.
    ② 按照字符查询 sed -n ‘/oldbooy/p’ 文件信息
    在这里插入图片描述
awk
  1. 概念 :模式识别和脚本编写(#!/bin/awk)

  2. 执行原理:按行处理文件,根据匹配条件信息完成相应操作
    在这里插入图片描述

  3. 语法结构:awk [参数] ‘模式信息(条件){动作}’ 文件信息
    awk使用方法

  4. 根据行号进行处理
    ①awk ‘NR2’ 文件信息
    ②awk 'NR
    2{print $1,$3}’ 文件信息第二行第一列和第三列
    注:多个信息使用逗号隔开

  5. 根据内容信息进行处理
    ①awk ‘$2~/小于/’ 文件信息
    ②awk ‘$2~/小于/{print $1,$3}’ 文件信息
    注:awk默认以空格划分多列信息
    awk -F “:” 指定列的分隔符

    在这里插入图片描述

    gsub :替换指定信息 gsub(//,"",$x)
    在这里插入图片描述

特殊模式
BEGIN :在文件处理完之前完成相应的操作
作用①:可以实现数值运算
在这里插入图片描述
②:可以实现变量设置
内置变量
NF: 最后一列
NR==:指定行
FS:表示指定分割符号
在这里插入图片描述
③可以实现信息统计
在这里插入图片描述
END:在文件处理之后完成相应操作
在这里插入图片描述
扩展在这里插入图片描述

操作系统的权限管理

  1. 系统常见权限信息
  • r : 读权限
    文件信息: 内容信息可以读取
    目录信息:是否可以查看目录中文件属性信息
  • w : 写权限
    文件信息: 内容信息可以编辑
    目录信息:可以操作目录下的文件信息
  • x : 执行权限
    文件信息: 文件可以执行
    目录信息:cd 是否可以进入目录
  1. 系统文件权限详细说明
  • chown 修改文件属主属组
  • chmod 修改文件权限
  • 重点 :①文件要想正常编写必须要有读权限
    ②文件要想执行也必须要有读权限
    在这里插入图片描述
  • 总结 :对于文件来说,读权限是最重要的.
  1. 系统目录权限详细说明
  • 重点:①目录没有任何权限信息,管理员用户拥有目录绝对权限
    ②目录想要查看必须要有执行权限
    ③目录想正常创建删除文件必须要有执行权限
    在这里插入图片描述
  • 总结:①root在系统中属于无敌的存在只要有文件执行权限,就可以随意操作目录和文件
    ②对于目录来说执行权限最重要,可以让读写权限有意义
  • 问题:为什么目录有只读权限的时候看不到目录里面文件的属性信息(因为目录的block里面只保存了目录里面文件的名称信息)
    在这里插入图片描述

系统数据默认权限
文件默认权限 644(root) 666-umask
目录默认权限 755(root) 777-umask

如何修改权限
umask(002)
umask 是奇数信息 文件做奇数运算,做完运算还需要再加1
临时修改
文件默认权限为 600 umask 066
目录默认权限为 700 umask 077
永久修改
vim /etc/profile

系统用户提权的方法

概念:让普通用户可以获得管理员部分或者全部权力
普通用户操作系统权限拒绝, 可以如何调整

  1. 修改文件或者目录权限 (权限位信息
    chmod)
  2. 用户身份信息进行调整 (切换管理员身份 su -)
  3. 设置普通用户提权配置 (普通用户拥有管理员部分权限 sudo)
    提权(赋予权限的命令必须是绝对路径,多个权限之间必须有分割符号 , )
  • 方法一
    ①编写提权配置文件(vim /etc/sudoers)(建议使用visudo编写 visudo有语法检查过程)
    ②切换到普通用户查看自己的提权信息(sudo -l)
    ③测试提权操作是否成功(查看时需要亮出大宝剑 sudo)
    在这里插入图片描述
  • 方法二
    在这里插入图片描述
  • 方法三
    免密提权
    在这里插入图片描述
  1. 修改文件数据特殊权限 (三位特殊权限位???)
  • setuid : s(设置属主,用数字4表示)
    ①概念:可以让所有普通用户获得指定文件属主的能力.
    ②作用:特殊命令操作权限–>赋予–>所有普通用户.
    ③设置方法:chmod u+s/u-s (user 属主),chmod 4755 文件信息.
  • setgid : s(设置数组,用数字2表示)
    ① 同上
  • sticky bits(粘滞位): t(用数字1表示)
    ①chmod o+t
    ②给目录设置特殊权限,将目录变为共享目录,还可以防止被别人删除

chmod -R 递归修改 目录下所有信息的权限chown -R 递归修改目录下所有信息的属组属主

  1. 检查数据是否加锁配置 (文件数据进行加锁???)
  • 上锁 chatter +i/-i 文件
  • 检查 lsattr

操作系统用户知识管理

  1. 操作系统用户知识回顾
    用户分类:超级管理员,虚拟用户,普通用户
  • 查看系统中所有服务进程的信息命令 ps -ef
  • 系统识别用户只关注uid和gid号码信息
  1. 和用户或者用户组相关的文件信息
  • /etc/passwd (保存系统所有用户信息)
    在这里插入图片描述
    在这里插入图片描述
  • /etc/shadow(保存系统所有用户的密码信息)
    在这里插入图片描述
    在这里插入图片描述
  • /etc/group(保存系统的所有用户组信息)
  • /etc/gshadow (保存系统所有用户组密码信息)
  1. 和用户相关目录信息
  • /etc/skel —用户家目录样板房(可以用来恢复家目录)
  • /home/yangzhou —用户家目录
  1. 操作系统用户相关命令
  • useradd —创建用户
    -u 指定用户uid信息
    -c 设置用户的描述信息
    -g 指定用户属于哪个主要组
    -G 指定用户属于哪个附属组
  • 创建虚拟用户
    -s 指定登陆方式 /sbin/nologin
    -M 不能创建家目录
  • usermod —修改用户的信息
    -u 修改用户uid信息
    -c 修改用户的描述信息
    -g 修改用户属于哪个主要组
    -G 修改用户属于哪个附属组
    -s 修改登陆方式 /sbin/nologin
  • userdel —删除用户家目录
    -r 彻底删除用户
  • 家目录删除不彻底会被别人占用
  1. 操作系统密码管理方法
  • excel 表格
  • 利用密码管理软件
  • 需要密码令牌 动态变化
  1. 掌握用户相关命令信息
  • groupadd :创建指定用户组
    -g 指定组id
    在这里插入图片描述
  • groupdel : 删除指定用户组
  • groupmod : 修改指定用户组
    -g 指定组id
    在这里插入图片描述
  1. 如何查看用户信息
    whoami --以什么用户登陆系统
    id – 查看用户的uid数值 所属组信息 以及组id数值
    w – 显示系统当前状态登录用户信息
    kill --杀进程 (kill 进程号)
    last --记录谁远程连接破坏过系统
    lastlog --记录系统那些用户登陆过
    工作中 合理设置不同用户权限,和用户密码信息

定时任务

  1. 操作系统定时任务介绍
    概念介绍:周期性的完成相应的任务
    作用:
    ①周期性进行数据备份的操作
    ②周期性重启服务进程 tomcat
    ③周期性切割日志
    ④周期性让定时任务进行脚本文件
  2. 实现方式
    ① 利用crond服务实现定时任务
  • 一个命令 crontab
  • 一个文件 /var/log/cron
    ② 利用atd软件实现定时任务 类似闹钟 一次设置执行一次
    ③ 利用anacron文件实现定时任务 系统默认设置定时任务,设置的时间不灵活
    在这里插入图片描述
  1. 定时任务设置方法
    准备工作 :
    ①确认是否安装定时任务软件
    ②确认定时任务服务是否启动(systemctl status crond)
    ③配置过程
    crontab -l 查看系统是否已经有定时任务信息
    crontab -e 设置定时任务 == vim /var/spool/cron/root
    ( 编写格式 * * * * * 任务信息===时间信息 执行命令 )
  • 时间配置说明
    * 每分钟 每小时 每天 每月 每周
    */n 每隔多久进行操作, 周期为n的倍数
    , 指定时间完成任务 1,3,5,7,9
  • 指定连续时间范围 1-7
    第一个星号表示分钟 00-59
    第二个表示小时 00-23 24小时制
    第三个表示日期 01-31
    第四个星号月份 01-12
    第五个星号周 01-07 ; 0-6
    星期和日期不要同时设置
    在这里插入图片描述
  1. 查看定时任务是否执行
tail -f /var/log/cron
  1. 定时任务设置常见错误
    ①编写定时任务信息尽量使用绝对路径(命令的绝对路径)
    ②定时任务命令信息最好不要使用特殊符号
  • 定时任务无法识别特殊符号时
    方法一:把定时任务命令信息放入脚本中
    方法二:将特殊符号信息进行转义( \ )
    ③尽量让定时任务执行时不要产生输出信息(错误输出)
    ④定时任务操作出错的信息会追加到一个邮件文件中
    (/var/spool/mail/root)
    在这里插入图片描述
  • 处理方法
    开启邮件服务 (systemctl start postfix.service)
    然后吧信息追加到黑洞中 &>/dev/null
    ⑤尽量给定时任务设置注释信息
    ⑥大于两个任务需要同一时刻执行,尽量编写脚本执行
  1. crontab的时间编写规范
00 02 * * * ls          #每天的凌晨2点整执行
00 02 1 * * ls          #每月的1日的凌晨2点整执行
00 02 14 2 * ls         #每年的2月14日凌晨2点执行
00 02 * * 7 ls          #每周天的凌晨2点整执行
00 02 * 6 5 ls          #每年的6月周五凌晨2点执行
00 02 14 * 7 ls         #每月14日或每周日的凌晨2点都执行
00 02 14 2 7 ls         #每年的2月14日或每年2月的周天的凌晨2点执行   
*/10  02 * * * ls       #每天凌晨2点,每隔10分钟执行一次
\* * * * *  ls           #每分钟都执行
00 00 14 2 *  ls        #每年2月14日的凌晨执行命令 
*/5 * * * *  ls         #每隔5分钟执行一次
00 02 * 1,5,8 * ls      #每年的1月5月8月凌晨2点执行
00 02 1-8 * *  ls       #每月1号到8号凌晨2点执行
0 21 * * * ls           #每天晚上21:00执行
45 4 1,10,22 * * ls     #每月的1,10,22号的4:45执行
45 4 1-10 * * ls        #每月的1到10号的4:45执行
3,15 8-11 */2 * * ls    #每隔两天的上午8点到11点的第3和第15分钟执行
0 23-7/1 * * * ls       #晚上11点到早上7点之间,每隔一个小时执行
15 21 * * 1-5 ls        #周一到周五每天晚上21:15执行
 
  1. crontab命令选项
    -e #编辑定时任务
    -l #查看定时任务
    -r #删除定时任务
    -u #指定其他用户

操作系统的启动顺序 (面试)

centos6:
①进行开机自检 (检查硬件,加载识别bios)
②识别MBR引导信息 (引导系统启动)
③加载grub 菜单(选择内核信息)
④加载内核信息 (控制管理硬件)
⑤启动第一个服务进程 (init服务进程)
⑥加载系统文件 /运行级别文件 (/etc/inittab)加载系统文件磁盘挂载文件 (/etc/fstab)
⑦加载系统初始化脚本文件 (/etc/rc.d/rc.sysinit)
⑧加载不同运行级别目录脚本文件 (实现服务开机自启)
⑨加载启动mingetty进程(登陆系统界面)
在这里插入图片描述
centos7
在这里插入图片描述
①进行开机自检 (检查硬件,加载识别bios)
②识别MBR引导信息 (引导系统启动)
③加载grub 菜单(选择内核信息)
④加载内核信息 (控制管理硬件)
⑤启动第一个服务进程 (systemd服务进程)
⑥加载系统文件 /运行级别文件 ()加载系统文件磁盘挂载文件 (/etc/fstab)
⑦加载系统初始化脚本文件 ()
⑧加载不同运行级别目录单元文件 ()
⑨加载启动mingetty进程(登陆系统界面)
在这里插入图片描述
总结启动过程
开机自检 - 加载MBR - 识别grub菜单 - 加载内核信息 - 启动第一个系统进程(识别系统运行级别/模式) - 加载初始化文件 - 实现系统服务开机自启 - 显示登陆界面

磁盘管理层次结构

在这里插入图片描述

  1. 磁盘的物理结构信息
    ①外部结构:(看得见)
    接口信息:sata - scsi -sas
    转速信息:10k 15k
    容量信息: k m g
    种类: 机械 / 固态
    盘片:存储数据
    机械臂:带动磁头运转(径向运动)
    磁头:读取数据
    主轴:带动盘片转动
    ②内部结构:(看不见)
    磁道:磁盘上多个同心圆
    扇区(sectors) :物理存储数据最小单位 512 字节
    逻辑存储数据最小单位 block 4 字节
    柱面: 相同大小磁道的圆柱体
    计算磁盘大小: 一个柱面存储容量大小 1G * 磁道数
  2. 逻辑结构信息
    磁盘阵列:
    ①增加磁盘容量
    ②增加磁盘数据安全性
    ③增加磁盘数据读写效率
    阵列级别:
    raid 0 :读写效率高 ! 安全性差 |存储利用率=磁盘容量总和
    raid 1 :读写效率低 ! 安全性高 |存储利用率=磁盘容量总和的一半
    raid 5 :(企业常用)安全性高 读写效率相对较高 ! 存储率=损失一块磁盘容量
    raid 10/01:一和零的结合 ! 存储率 = 损失一半容量
    在这里插入图片描述
    raid10
    在这里插入图片描述
    逻辑卷管理:
磁盘lvm弹性扩容和缩容

在这里插入图片描述
LVM应用场景:数据库服务器/存储服务器
概念原理:PV (多个PE) VG(多个PV) LV (来用VG)
在这里插入图片描述
LVM磁盘管理配置过程 (fdisk -l 查看磁盘)
第一步: 进行磁盘分区格式化操作
fdisk -l 查看系统磁盘信息
fdisk /dev/sdb 对第二块磁盘进行分区
n --> p --> 回车 --> 输入分区大小 -->p
w 保存分区过程
第二步: 进行PV创建过程
pvcreate /dev/sdb1 /dev/sdb2 创建物理卷
pvdisplay 查看
第三步:将PV划分到VG
vgcreate 名字 /dev/sdb1 /dev/sdb2
vgdisplay 查看
第四步:创建LV
lvcreate -L 大小 -n (lv名字) (vg名字)
lvs (lvdisplay)查看
第五步:挂载使用LV
mkfs(make file system )
mkfs.ext4 /dev/(vg名字)/(lv名字)
mount
lv弹性扩容过程
lvextend -L +100M /dev/(vg名字)(lv名字)
lvscan 扫描 加载未识别空间
lv弹性缩容
先卸载 umount (注意保护里面的文件信息)
lvreduce -L -200M /dev/(vg名字)(lv名字)—只能缩后面扩容的大小 ,本身大小不会被缩小
然后再挂在

磁盘分区操作

预备知识:
0磁头0磁道1扇区 :MBR(引导记录) + GPT (分区表) - - -系统分区表一般分为四个部分 (分区最多可以划分四个主分区,可以将一个主分区变为扩展分区 - - -e, 可以再划分多个分区- - -逻辑分区,逻辑分区的标号为5+ - - - 扩展分区只能有一个 ,并且扩展分区不能直接使用)
fdisk命令分区选项信息:
在这里插入图片描述

  • PS 在系统不重启的情况下 重新扫描系统磁盘变化
  • 系统分区表类型 GPT - - -可以划分大分区 - - - 128个分区 ; DOS- - -只能划分小于2T的分区 - - -四个主,一个扩展, 多个逻辑
  • fdisk划分大的分区
    在这里插入图片描述
  • parted (大于2T的分区)
  1. mklabel(创建分区表 MRB-msdos/gpt) create a new disklabel (partition table)
    修改分区表类型
    mklabel gpt / msdos
  2. mkpart (创建新的分区) make a partition
    mkpart primary 0 2500G
  3. print (显示分区表信息) display the partition table
  4. rm (删除指定分区信息) delete partition NUMBER
  5. quit (退出分区界面) exit program
硬件服务阵列配置方法

IBM服务器阵列配置步骤
第一步:是否按ctrl+ H 进入磁盘阵列配置界面
第二步:选择raid配置的向导界面
第三步:创建驱动器组
第四步:选择配置阵列级别

磁盘文件系统介绍

什么是文件系统:设置存储数据的方式
centos6: ext3/ext4
centos7: ext3/ext4 — ;xfs—存储效率高,增加数据库服务器存储数据效率,格式化磁盘效率也会更高

mkfs.ext3/ext4/xfs  /dev/sdd1 
mkfs -t ext3/ext4/xfs /dev/sdd1

磁盘挂载使用方法

  1. mount 存储设备文件 挂载点目录 (空目录)

挂载

  1. mount -o 挂载参数
    rw/ro :指定挂载点是否具有读写能力
    suid/nosuid :挂载点目录中文件setuid特殊权限是否能生效
    exec/noexec :挂载点目录中脚本文件是否有执行能力
    auto/noauto :是否实现自动挂载操作 (mount -a)
    user/nouser :是否可以让普通用户实现挂载操作(mount 跟上挂载点)
    async/sync :异步存储数据- - - 数据>内存>磁盘(定时定量)—访问量大的时候存储效率高 ; 同步存储数据- - -数据>磁盘—存储数据少,存储安全.
  • 挂载点中目录数据被服务进程使用的时候 目录进入到了挂载点目录中 都卸载不了挂载
    挂载点强制卸载 umount -lf
    l 懒惰卸载
    f 强制卸载

磁盘管理交换分区(swap)大小调整

内存空间不足 ----> 使用swap不足 ----> 系统服务自动停止 (内存溢出) java程序软件

  • 如何调整swap空间大小 :增加1G
    第一步: 将磁盘中划分一部分空间给内存使用
    dd if=/dev/zero of=/tmp/1G bs=10M count=100
    if=/dev/zero :从黑洞中取出内容
    of=/tme/1G :将从黑洞中去除的数据存放到哪
    bs=10M :从黑洞中每次取出的数量
    count=100 :总共取多少次
    在这里插入图片描述
    第二步: 将磁盘被占用的空间标记为swap使用
    mkswap /tmp/1G
    第三步: 加载使用标记的swap空间
    swapon /tmp/1G
    第四步: 卸载swap空间
    swapoff /tmp/1G
  • 如何分区时设置swap分区
    第一步 : 指定划分磁盘
    fdisk /dev/sda
    第二步 : 创建分区,并设置为swap分区
    t —> 82 —> 设置完成

网络基础知识

  1. 网络通讯的基础原理
    网络: 实现主机与主机之间的通讯
    a. 实现通讯必须要有传输介质
    b. 实现通讯必须拥有网卡设备—>将二进制信息转换电信号; 将电信号再转回二进制信心
    c. 实现通讯必须进行协商过程—协商通讯速率
    数据单位信息 : 网络传输数据–bit==1/8B ,系统存储数据Byte

  2. 网络重要设备
    交换机(switch) :
    a. 实现一个网络内部多个主机通信的需求
    b. 在进行数据通讯时,数据信息面前需要地址信息,在交换机上使用mac地址作为通讯地址(物理地址)
    在这里插入图片描述
    -----PS: 进行网络主机之间的通讯,一定确保数据传输过程是有去有回
    c. 利用交换机通讯容易产生广播风暴

路由器(router) :
a. 实现不同网络之间通讯需求
b. 在进行数据通讯时,数据信息前面有地址信息,在路由器上使用IP地址作为通讯地址 (逻辑地址 )
ip地址的组成部分 : 1网络(网段)地址部份 2主机地址信息
c. 在进行数据通讯时,需要使用路由表进行通讯
在这里插入图片描述
d. 路由器上和交换机连接的接口,可以成为网关接口
路由器配置说明
route -n 查看路由器(路由表)

  1. 路由表
    a. 配置静态路由表信息

b. 配置动态路由表信息
c. 配置静态默认路由表信息
d. 自动生成直连路由

  • 思科设备基础配置:
    设备名称> 用户模式 什么都干不了 enable en
    设备名称# 特权模式 查看设备信息 configgure terminal 终端配置
    设备名称(config)# 配置模式 对设备进行配置
  • 路由器初始配置:
    配置接口地址
    int f0/0 进入接口模式
    ip add 192.168.67.254 255.255.255.0
    int f1/0
    ip add 192.168.67.254 255.255.255.0
    no shut
  • 静态路由配置
    第一步: 所有设备配置接口地址,开启所有接口
    在这里插入图片描述
  • 动态路由配置
    在这里插入图片描述
  • 静态默认路由配置

ip route 0.0.0.0 0.0.0.0 12.0.0.2

网络通讯概念说明

网络架构层次

作用说明: 了解网络设备连接结构 (网络拓扑)
结构划分:

  1. 核心层 : 和外网运营商连接层次 实现连接互联网 路由器
  2. 汇聚层 : 将接入设备数据包进行汇聚 实现通讯管理(访问控制) 三层交换设备
  3. 接入层 : 和终端设备连接 实现主机之间的通讯 二层交换设备

网络层次模型
OSI7层模型:

  • 模型组成 : 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层
    应用层 : 产生数据信息 服务
    表示层 : 加密/解密/ 压缩/解压缩/ 分段/整合
    会话层 : 控制会话是否建立/断开
    传输层 : 保证数据传输可靠性/数据传输的高效性
    网络层 : 实现不同的网络之间可以将数据进行转发 (路由器三层设备)
    数据链路层 : 实现局域网内主机之间的通讯
    物理层 : 将数据包信息二进制信息 -电信号/光信号 光信号/电信号- 二进制信息数据
  • 模型作用 :
    数据传输封装与解封装过程
  1. 数据封装过程: 客户端
    第一步: 产生通讯数据信息 数据信息(物品) PDU(协议数据单元)
    第二步: 传输层封装过程 传输头部信息-数据信息(物品)
    第三步: 网络层封装过程 网络头部信息-传输头部信息-数据信息(物品)
    第四步: 链路层封装过程 链路层头部信息-网络头部信息-传输头部信息-数据信息(物品)
    第五步: 物理层封装过程 将数据转为二进制信息 – 电信号信息

  2. 数据解封装过程: 服务端
    第一步: 物理层解封装过程 将电信号信息 – 二进制信息
    第二步: 链路层解封装过程 链路层头部信息(目标mac地址 源mac地址)
    第三步: 网络层解封装过程 网络层头部信息(目标IP地址 源IP地址)
    第四步: 传输层解封装过程 传输层头部信息(目标端口号码 源端口号码)
    第五步: 应用层 查看到最终数据信息
    在这里插入图片描述

  3. 数据互联通讯过程 nginx
    第一个里程: 发送端(客户端) 产生数据信息
    第二个里程: 对数据信息进行封装过程
    第三个里程: 进过路由器会拆解数据包, 根据路由表进行路由
    第四个里程: 接收端(服务端) 接收数据信息
    第五个里程: 对数据信息进行解封装过程
    在这里插入图片描述

  4. 进行数据包回复响应过程

TCP/IP模型 : 四层模型

  • 模型组成 : 接入层 网络层 传输层 应用层

  • 模型作用 :

  1. 定义各种网络通讯协议信息
  2. 应用层 : HTTP FTP NFS SMTP SNMP(监控) DHCP DNS 协议=服务
    • DHCP协议---->动态主机配置协议 作用:自动获取IP地址
      DHCP 协议原理:
      第一个历程 : 主机向局域网中发送广播包 获取IP地址
      第二个历程 : 局域网中的DHCP服务器 分配IP地址
      配置过程 :
      安装软件服务 dhcp软件程序
      编写配置文件 地址池信息;地址掩码信息;网关信息;dns地址信息
      第三个历程 : 主机收到DHCP服务分配地址确认数据包发送
      第四个历程 : 局域网中DHCP服务器 收到确认信息 调整地址池信息
      第五个历程 : 局域网中DHCP服务器 定期发送IP地址使用确认信息
      第六个历程 : 主机确认地址是否使用 地址在使用中—>自动进行续租 地址未使用中—>地址分配给其他主机使用
      在这里插入图片描述
  3. 传输层: TCP/UDP
    • TCP : 传输控制协议
      概述说明 : 面向连接网络协议
      特点说明 : 可靠传输协议 传输过程有确认机制
      应用场景 : 邮件服务 FTP HTTP
    • UDP : 用户报文协议
      概述说明 : 无连接网络协议
      特点说明 : 传输效率较高协议 传输过程验证机制
      应用场景 : DNS解析 语音 视频

预备知识 : TCP报文结构
端口 : 1~65535 2*16次方
源端口 :
在这里插入图片描述
目标端口 : 访问服务信息
序列号 : seq seq=x ---- y+1 (标识拆分后数据包序列信息)
确认号 : ack seq=x+1 ---- y (标识下一次需要发送的数据包确认号信息)
控制字段 : 6个字段 实现不同的控制功能 0功能未开启;1功能开启
SYN : 请求建立连接控制字段
ACK : 请求确认控制字段
FIN : 请求断开连接控制字段
在这里插入图片描述

  • TCP三次握手 :
    在这里插入图片描述
    第一次握手过程: 客户端发送信息 发送TCP报文信息(控制字段 syn=1)
    第二次握手过程: 服务端接收信息 发送TCP报文响应(控制字段 syn=1 ack=1)
    第三次握手过程: 客户端发送信息 发送TCP报文信息(控制字段 ack=1)
    TCP四次挥手 :
    在这里插入图片描述
    第一次挥手过程: 主动方发送信息 发送TCP报文信息(控制字段 fin=1 ack=1)
    第二次挥手过程: 被动方发送信息 发送TCP报文信息(控制字段 ack=1)
    第三次挥手过程: 被动方发送信息 发送TCP报文信息(控制字段 fin=1 ack=1)
    第四次挥手过程: 主动方发送信息 发送TCP报文信息(控制字段 ack=1)
    在这里插入图片描述
    PS : TCP协议可以保证数据可靠传输
TCP十一种状态集转换

在这里插入图片描述
在这里插入图片描述
实现网络通讯 :

  1. 实现物理通讯条件
  2. 实现逻辑通讯条件
    1. 三次握手状态转换
      1. 初始状态信息 ,客户端(closed) 服务端(closed)
      2. 准备状态信息 ,服务端创建socket 服务端(clocked - listen)
      3. 握手状态信息 客户端发送syn 客户端(closed-syn_sent)
      服务端接收syn 服务端(listen-syn_rcvd)
      发送ack syn
      客户端接收ack syn 客户端(syn_sent-established)
      发送ack
      服务端接收ack 服务端(syn_rcvd-established)
    2. 四次挥手状态转换
      1. 初始状态信息 ,客户端(established) 服务端(established)
      2. 挥手状态信息 主动端发送fin 主机端(established --> fin_wait1)
      被动端接收fin 被动端(established --> close_wait)
      发送ack
      主动端接收ack 主动端(fin_wait1 --> fin_wait2)
      被动端发送ack fin 被动端(close_wait --> last_ack)
      主动端接收ack fin 主动端(fin_wait2 --> time_wait)
      发送ack
      被动端接收ack 被动端(last_ack --> closed)
      主动端等待2MSL 90s 主动端(time_wait --> closed)
      在这里插入图片描述
  • PS : 服务端可以被访问进行通讯时,必须建立socket
    五元组概念 : 协议 ,源IP地址 ,源端口 ,目标IP ,目标端口
    多个socket条目信息不能出现一致
    网络通讯限制并发连接数 设置连接超时时间
    https://blog.csdn.net/yu876876/article/details/81560122

DNS协议原理

DNS : 域名解析系统 域名 --> ip地址
原理过程 : DNS

  1. 本地解析 本地hosts文件
  2. 递归查询过程 查询DNS服务器
    1. 阿里 : 223.5.5.5 233.6.6.6
    2. 电信 : 114.114.114.114
      在这里插入图片描述
  3. 迭代查询过程

ARP协议原理

已知IP地址 —> mac地址(作用 : 减少广播产生)
在这里插入图片描述

  1. 发送ARP请求包 (以广播的方式)
  2. 接受ARP响应数据包(获得目标mac地址)
  3. 实现局域网通讯每台主机需要构建ARP表
    在这里插入图片描述
  4. 交换机里还需要有mac表
    在这里插入图片描述
  5. 动态和静态的区别
  • 动态 (自动获取MAC-IP对应关系)
    1. 自动构建ARP表
    2. ARP表会动态变化
  • 静态 (手动配置MAC - IP对应关系)

网络IP地址

IP地址的组成部分

网络部分+主机部分
IP地址是由32位二进制组成 ,每八位二进制数表示的地址称为点分十进制

二进制如何转换为十进制,十进制如何转化为二进制

在这里插入图片描述

二进制 如何转换为 十进制  求和运算
10100101 . 01010101 . 10100101 . 01010101

10000000  128    64   128
00100000   32    16    32
00000100    4     4     4 
00000001    1     1     1
          165    85   165  85


十进制 如何转换为 二进制  求差运算 
192.168.36.200

192 -128 = 64 - 64 = 0
168 -128 = 40 - 32 = 8
36  - 32 = 4
200 -128 = 72 - 64 = 8
大于等于相应数值, 做求差运算
128  64  32  16  8  4  2  1
 1    1   0   0  0  0  0  0
 1    0   1   0  1  0  0  0
 0    0   1   0  0  1  0  0
 1    1   0   0  1  0  0  0

IP地址分类方式

  1. 避免地址枯竭
    1. 创建新的IP地址类型 2的128次方 IPv6
    2. 规划使用IP地址
      1. 按照IP地址范围分类
        在这里插入图片描述
      2. 按照IP地址用途分类
        1. 公网地址 : 公网地址全球唯一
        2. 私网地址 : 私网地址可以重复
      3. 按照IP通讯方式划分
        1. 单播地址 : 主机上配置地址
        2. 组播地址 : D类地址 实现局域网中部分主机通讯
        3. 广播地址 : 局域网中所有主机可以接收 - - - - 主机位全为1地址成为广播地址;全为0的成为网段地址
  • NAT技术 : 网络地址映射技术 (端口映射,地址映射)
    在这里插入图片描述

网络的子网划分(VLSM)

  1. 将大的网络拆分成几个小网络
  2. 如何进行子网划分
    ps : 识别网络类型 , 使用掩码实现 (32位二进制,每8位为一组)
    在这里插入图片描述

企业中网络环境的配置方法

办公网环境架构 : 路由器 交换机 多个主机设备
路由器 : 命令行 图形界面 ----------- 进行路由或者拨号设置 ; DHCP服务配置 地址池范围 子网掩码 网关地址
交换机 : vlan (虚拟局域网)
vlan配置

  1. 创建vlan
  2. 进入接口模式
  3. 将接口划分到指定vlan中
    在这里插入图片描述
    access和trunk模式
    在这里插入图片描述
    单臂路由
    在这里插入图片描述

虚拟主机如何访问外网 :

  1. 虚拟主机的网络配置 (地址 , 掩码 , 网关 , DNS) ip a
  2. 虚拟主机的网络模式
  3. 虚拟主机的服务状态 service.msc
  4. 本地windos主机是否可以访问外网
  5. 本地windos主机防火墙等软件

虚拟主机如何远程连接 :

  1. 虚拟主机的网络配置 (xshell 虚拟主机地址)
  2. 虚拟主机的网卡状态 (启动 地址是否正确)
  3. 初始化虚拟网络编辑器
    在这里插入图片描述

系统路由的配置方法

在这里插入图片描述
centos6 : route net - tools 软件包
静态默认网关配置
在这里插入图片描述
静态网段路由配置
在这里插入图片描述
静态主机路由配置
在这里插入图片描述
centos7 : ip route iproute软件包
在这里插入图片描述

rsync

语法格式 :
rsync -avz
配置文件 :
uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#####################################
[backup]
comment = welcome to oldboyedu backup!
path = /backup

rsync -avz 文件 rsync_backup@172.16.1.41::backup

邮箱配置

vim /etc/mail.rc

set from=123456@qq.com
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=123456@qq.com
set smtp-auth-password=ihppxhssqsiqbfie
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值