LINUX系统笔记

一,Linux文件管理

目录

一,Linux文件管理

快捷光标管理

;与 &&

启动网卡获取ip      

修改系统时间         

同步系统时间

修改硬件时间              

格式化显示时间

系统初始化

防火墙:

ls    

alias

创建文件 

查看当前所在位置

创建目录

复制文件

复制目录

移动命令

删除命令

查看命令

查看文件全部内容        

翻页

查看头部(默认十行) 

查看尾部(同理)

过滤关键字

修改文件内容 vi/vim

插入

末行模式  

查找替换  

设置环境

另存为

光标定位键盘

vim操作

切换目录---cd

文件基本信息

二.Linux用户管理

用户与账号

用户基本信息文件    /etc/passwd              

用户密码信息文件     /etc/shadow(9列)        

组信息文件   /etc/group    

创建组

删除组

修改组

将存在的用户添加到组中

创建用户

删除用户

用户密码

修改用户信息 

三.Linux文件权限管理

Linux用户权限解析

RWX对文件的影响

RWX对目录的影响

设置权限

一,更改权限 :

1.使用符号

 2.使用数字      

高级权限

visudo修改权限

隐藏权限

二,更改属主,属组   

四.Linux进程及磁盘操作

什么是进程?

进程管理 process

静态查看进程 ps(precess status)进程状态 

查找进程

进程排序       

进程的父子关系     

查看端口

查网络进程和正在监听的端口

查看单个PID              

进程状态--了解

动态查看进程top

查看cpu负载及已经登陆到终端的进程信息     

查看当前CPU负载

查看内存使用      

查看版本

看查正在运行的内核版本   

查看内核版本  

修改主机名   

安装下载上传工具 

将程序挂在后台持续运行(允许用户在退出终端或注销系统)

作业控制

使用信号控制进程kill

重定向

管道 | (进程管道Piping)

查看目录及目录中文件的大小

排序

五.存储管理

硬盘的命名方式    

磁盘分区类型

磁盘管理三部曲

查看磁盘信息

重启挂载失效的解决问题

查看挂载信息

磁盘分区如何超过4个分区    

逻辑卷管理LVM

创建LVM

逻辑卷扩容

交换分区

RAID实战

创建RAID

六.Linux文件查找,打包压缩

文件查找    

命令文件查找        

打包   

七.Linux链接文件

文件链接

发送邮件

八.Linux软件管理

rpm

yum操作

配置yum源 

制作本地源

克隆源

计划任务

一次性调度执行 at

循环调度执行cron:  

日志管理

一.rsyslog系统日志管理

rsyslogd配置

.logrotate日志轮转

tcpwrapper---访问控制工具

telnet

九.DNS域名解析

TTL  Time  To   Live 

TLD Server

DNS  Resolver

Root  Server

十.Linux文件服务器

NFS  远程共享存储

服务端操作

客户端操作

FTP

ftp主动模式

ftp被动模式

vsftpd配置

编辑vsftpd配置文件

允许匿名用户登陆

ftp本地用户登录

十一.WEB服务器

Apache服务的搭建与配置

认识主配置文件

访问控制

虚拟主机

基于域名

基于IP

十二.网络配置

网络配置

十二.网络管理实战

网OSI简介

Open System Interconnection(开放系统互联网模型),定义了不同计算机互联的标准,设计和描述了计算机网络通信的框架。

OSI 全世界网络通信的工作分为7层                                                                                                                      应用层:应用程序/原始数据        qq,爱奇艺 ;    

TCP/IP  (5层结构/功能)

OSI模型和TCP/IP模型的区别

TCP协议簇

TCP三次握手和四次挥手

IP地址的组成

子网划分


快捷光标管理

ctrl+a   移到命令行首

ctrl+e   移到命令行尾

ctrl+u   从光标处删除至命令行首

ctrl+k   从光标处删除至命令行尾

;与 &&, ||

;分号用于在同一行中分隔多个命令,并按顺序依次执行它们。每个命令都会独立执行,无论前一个命令是否成功。

&& 逻辑与符号用于连接两个命令,只有当第一个命令成功执行(返回值为0)时,才会执行第二个命令。如果第一个命令失败(返回值非0),则第二个命令不会执行。

||  双或符号用于连接两个命令,只有当第一个命令失败执行(返回值非0)时,第二个命令才会被执行。

查看ip      

ip    a

ip  -f   inet   a   show  dev   ens33

配置阿里云yum源方法


            1、mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
            2、curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
            3、yum makecache
        配置本地YUM源方法:
            rm -rf /etc/yum.repos.d/* && \
            echo "10.35.152.250 package.qf.com package2.qf.com" >>/etc/hosts && \
            curl -o /etc/yum.repos.d/centos7.repo 10.35.152.250/repo/centos7.repo && \
            yum clean all && \
            yum makecache && \
            yum repolist

        rocky默认源配置阿里源:

 sed -e 's|^mirrorlist=|#mirrorlist=|g' \
    -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
    -i.bak \
    /etc/yum.repos.d/rocky-*.repo
dnf makecache

rocky9安装epel源

dnf -y install epel-release

启动网卡获取ip      

ifup   ens33

centos7固定IP地址

cat /etc/sysconfig/network-scripts/ifcfg-ens33
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static
    DEFROUTE=yes
    DEVICE=ens33
    ONBOOT=yes
    
    IPADDR=192.168.17.2
    PREFIX=24
    #NETMASK=255.255.255.0
    GATEWAY=192.168.17.2
    DNS1=223.5.5.5
    DNS2=223.6.6.6

rocky9固定IP地址

cat /etc/NetworkManager/system-connections/ens33.nmconnection
[ipv4]
method=manual
address=192.168.100.136/24,192.168.100.2
dns1=223.5.5.5
dns2=223.6.6.6

nmcli c reload
systemctl restart NetworkManager

修改系统时间         

date    -s    "2022-01-01 10:00:00"

同步系统时间

ntpdate     time.windows.com
 

修改硬件时间              

hwclock    --set     --date    " 2022-01-01 10:00:00" 

格式化显示时间

date +%F    显示当前年月日:2024-09-19
date +%x   以中文显示当前年月日:2024年09月19日
date +%T    显示当前时间到秒:20:57:35
date +%X   以中文显示当前时间到秒:09时40分53秒
date +%Y    只显示年:2024
date +%y     只显示年后两位:24
date +%m   只显示月份:09
date +%d    只显示几号:19
date +%H    只显示小时:09
date +%M   只显示分钟:40
date +%S    只显示秒:53

date +"%m%d"
date +"%m-%d"
date +"%m*%d"
date +"%m_%d"

系统初始化

防火墙:

查看:systemctl status firewalld
关闭:systemctl stop firewalld
永久关闭:systemctl disable firewalld

 SELINUX:

 查看:getenforce
 关闭:setenforce 0
 永久关闭:
 sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

ls    

 -l    长格式显示
 -h    人性化显示
 -a    显示所有文件包括隐藏文件
 -d    查看指定目录
  -t    按照时间排序
  -r    反转

设置别名 alias

alias 别名='命令 

unalias 别名

别名永久生效
    /root/.bashrc
    alias 别名='命令'

创建文件 

touch  文件名字

查看当前所在位置

pwd

创建目录

mkdir  目录名   

创建多级目录

mkdir  -p  多级目录

复制文件

cp  文件名   文件夹

复制目录

cp -r  被复制目录    指定目录

移动命令

mv    被移动目标    指定目标文件路径
mv    被修改文件名称        要修改为文件名称

删除命令

rm    文件
rm  -rf   不询问且目录和目录下文件也可删除
rm -rf  /*   删除根目录

查看命令

查看文件全部内容        

cat              -n (显示行号)                   -A 包括控制字符(换行符/制表符)        文件名

翻页

more   文件
less   文件
              

 

查看头部(默认十行) 

head   
head   -3    文件 (指定查看头部几行)

查看尾部(同理)

tail  文件   

tail    -1   /etc/passwd       查看文件最后一行

tail    -f    /var/log/secure       #-f 动态查看文件的尾部

过滤关键字

grep    过滤的关键字   文件
grep    'root'    /etc/passwd


修改文件内容 vi/vim

插入

i(光标前插入) o(空一行插入) a(光标后退一行插入) A(行尾插入)

末行模式  

按esc +  冒号(末行模式)  输入   w保存   wq保存退出    q直接退出    q!(强制退出)

查找替换  

:1,3(一到三行)s/被替换内容/ 替换内容/          %(所有行)       g(全局替换)

  s/old/new/    替换第一行
    :%s///    所有行的第一个
    :%s///g    全局替换
    :3s///    替换第三行

设置环境

set nu    #设置行号 
set list  #显示控制字符
set nonu  #取消设置行号  
set ts=4  #设置制表符长度

 

另存为

w    新文件名

光标定位键盘

0  $            #行首行尾
gg            #页首--文本顶端
G(shift+g)  #页尾--文本底部
3G           #进入第三行
/string     #查找字符,n下一个,N上一个    (n N 可以循环的)

vim操作

yy      #复制 
 3yy     #从光标开始复制3行。在最后粘贴
 ygg     #从当前光标复制到页首
 yG      #从光标开始复制到页尾
 dd      #删除一行
 3dd     #从光标开始删除3行
 dgg     #从光标开始删除到页首 
 dG      #从光标开始删除到页尾
 d^      #删除当前光标之前的内容
 p       #粘贴到本行的下一行
大P      #粘贴到本行的上一行
 x       #删除光标所在的字符
 D       #从光标处删除到行尾
 u       #undo撤销
 r       #可以用来修改一个字符

1,5   w   /tmp/1.txt      另存为
x    保存并退出
X    加密

切换目录---cd

 .     表示当前目录
cd .. 回到上一级目录等同于相对路径
cd 或者 cd ~    直接回到家目录
cd /home/alice  切换目录=绝对路径
cd -  回到上一次所在目录,从哪来回哪去。

文件基本信息

时间类型

访问时间:atime,查看内容 
修改时间:mtime,修改内容
改变时间:ctime,文件属性,比如权限,mv改名

二.Linux用户管理

用户与账号

用户的作用:查看当前登录用户信息:    id      whoami

用户基本信息文件    /etc/passwd              

 root:x:0:0:root:/root:/bin/bash   (root是用户名,x是密码占位符,0是uid用户的身份证号0是特权用户,1-999是系统用户,1000+是普通用户;0:GID:group组号,root:描述身份:比如经理manager,/root:家目录:登陆系统时,所在目录,/bin/bash:登陆shell:命令解释器) 

用户密码信息文件     /etc/shadow(9列)        

 root:$1$MYG2N:15636:0:99999:7:  :   :(1,登录名   2,加密后的密码    3,最后一次修改口令时间,时间天数    4,修改口令间隔最小时间天数     5,口令保持最大有效天数   6,从系统开始警告到密码失效的天数     7,过期了仍然有效的最大天数    8,账号有效时间到,就不能用了    9,保留)

组信息文件   /etc/group    

root:x:0: (组名:组密码:组ID:组成员默认为空)

创建组

groupadd hr    创建一个用户组叫hr

groupadd net01 -g 2000  #创建组叫net01,并指定gid为2000

删除组

groupdel   hr      删除组hr

修改组

groupmod   hr   -g   5000   #更改组id

将存在的用户添加到组中

gpasswd -a   xiaozhang group_name       将一个用户加到用户组

gpasswd -M  user1    group_name          将一个或多个用户加到用户组中

创建用户

useradd   xiaoming     //创建用户

useradd user02 -u 503   #指定uid为503

useradd user05 -s /sbin/nologin  #创建用户并指定shell

useradd user07 -G it,hr  #创建用户,指定附加组 

useradd user10 -u 4000 -s /sbin/nologin

删除用户

 userdel   -r   user02    //删除用户user2,同时删除用户家目录

用户密码

 passwd     #root用户给自己设置密码

 passwd   alice  #root用户可以给任何用户设置密码

 echo  '123456'   |  passwd --stdin    username 

修改用户信息 

 usermod   -u   new_id   jack     修改UID

usermod    -s   /sbin/nologin   user07   #修改用户的登录shell

usermod    用户名    -aG   组名     添加用户到附属组++++

usermod    -g        指定主组

usermod   -G       指定附加组,会覆盖其他的附加组

三.Linux文件权限管理

Linux用户权限解析

ugo权限概述(赋予某个用户或组能够以何种方式访问某个文件资源,如会员特权,看VIP限定)

权限对象:属主 u       属组  g         其他人    o        所有人     a(u+g+o)

权限类型: 读 r=4      写  w=2    执行  x=1    

查看权限      ls  -l    文件           -rw-r--r--. 1   root   root   179   5月   25    14:27   /root/1.txt (- 文件类型,rw-主人的权限,属主;r--属组的权限;r--其他人的权限;.权限的扩展 ;1 文件链接   ;root文件属主;root文件的属组 ; 179 大小;最后修改时间 ; 文件名和路径)
 

RWX对文件的影响

r:只读。cat head tail less more vi vim tac tee

w:只写。可以写,但是看不到原来的内容,强制写入会覆盖原来的文件内容

x:执行。只有x权限,没有任何意义,至少要加上r的权限
              文件的x执行权限要谨慎给予

RWX对目录的影响

 r:只读。可以列出目录下的文件名,但是会报错,(因为没有执行权限)

 w:只写。没有任何意义,至少要加上x的权限

x:执行,能否进入这个目录。
              目录至少要有rx的权限。w权限要谨慎给予

设置权限

一,更改权限 :
1.使用符号

 u用户   g组   o其他     a  所有人     r读  w写    x执行 

语法     chmod     对象(u/g/o/a)赋值符(+/-/=)权限类型(r/w/x)   文件/目录                

增加执行权限       chmod   u+x    file1.txt                  取消执行权限    u-x    

属主属组读写,其他人只读      ug=rw,o=r

 2.使用数字      

 4读      2写      1执行      

 chmod     644     文件(第一位是文件的主人的权限,第二位是文件的属组权限,

第三位是文件其他人的权限)(6是读和写相加)

高级权限

    suid
        对象:命令文件
        chmod u+s    /usr/bin/cat /usr/sbin/rm 
        效果:普通用户可以像root用户一样使用这个命令
    sgid
        对象:目录
        chmod g+s    dirname
        效果:任意用户在这个目录下创建的文件或者目录,属组继承父目录的属组
    sticky:
        对象:目录
        chmod o+t dirname
        效果:目录的文件只有创建者和root用户可以删除

visudo修改权限

visudo

101行   jack    ALL=(ALL)       NOPASSWD: ALL   #添加内容


特殊权限

指定用户对某个文件的权限

    xiaocai    /opt/a.sh  rwx
    getfacl filename
    授权:
    setfacl -m u:username:rwx    filename 
    回收:
        setfacl -m u:username:--- filename
        setfacl -x u:username    filename
        setfacl -b filename

隐藏权限

    查看:lsattr
    授权:chattr +i   文件      无法修改任何
               chattr  +a     只能追加文件内容
               chattr -A    文件访问时间不变

二,更改属主,属组   

chown     设置一个文件属于谁     

语法     chown  用户名.组名      文件  /(目录    -R   目录及目录下所有文件一起更改)

四.Linux进程及磁盘操作

什么是进程?

进程是已启动的可执行程序的运行实例,进程有以下部分组成:   1,已分配内存的地址空间     2,安全属性,包括所有权凭据和特权   3,程序代码的一个或多个执行线程    4,进程状态

进程:是程序运行的过程,动态,有周期及运行状态

程序:二进制文件,静态  /usr/bin/passwd,/usr/sbin/useradd

进程与线程的区别

进程是独立的执行实体,拥有独立的资源,而线程是在进程内部运行的,共享进程的资源。
- 创建和销毁进程的开销较大,而线程的创建和销毁相对较轻量级。
- 进程间的切换开销较大,线程间的切换开销较小。
- 进程之间通信和同步需要使用操作系统提供的机制,线程间通过共享内存等方式进行通信和同步。
- 进程间相互独立,一个进程的崩溃不会影响其他进程,而线程共享同一个进程的资源,一个线程的错误可能导致整个进程崩溃。

简而言之,进程是独立的,资源独立,切换开销大;线程是共享的,资源共享,切换开销小。

进程管理 process

静态查看进程 ps(precess status)进程状态 

进程命令:        ps     aux             1.USER     2.PID   3. %CPU     4.%MEM     5.VSZ    6.RSS  7. TTY      8.STAT    9.START   10.TIME    11.COMMAND
                                                      (1.运行进程的用户;2.进程ID;3.CPU占用率;4.内存占用率;5.占用虚拟内存;6.占用实际内存;7.进程运行的终端;8.进程状态;9.进程启动时间;10.进程占用CPU总时间;11.进程文件,进程名)

查找进程

 ps   aux   |   grep    要查找的进程

进程排序       

ps  aux   --sort   %cpu(由小到大) -%cpu (由大到小)

进程的父子关系     

 ps    -ef                   PPID      父进程ID

查看端口

yum    install    lsof  #安装软件包        

lsof     -i    :80      #端口号,这能查看带端口的进程           端口号只有整数,范围是从0 到65535

通过使用 -p 选项后跟进程ID,可以查看某个特定进程打开了哪些文件

通过使用 -u 选项后跟用户名,可以查看某个特定用户打开了哪些文件

查网络进程和正在监听的端口

   netstat      -lntp                

   ss      -lntp

-a  显示全部的进程
-u  显示udp
-n  以数字的形式显示协议名称
-t   tcp
-p:显示进程的名称和pid
-l :只显示正在被监听的端口

参数解释:
recv-Q:     网络接收队列。表示收到的数据已经在本地接收缓冲,但是还有多少没有被进程取走,recv()如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了拒绝服务 denial-of-service攻击。

send-Q:   网路发送队列。对方没有收到的数据或者说没有Ack的,还是本地缓冲区.如果发送队列Send-Q不能很快的清零,可能是有应用向外发送数据包过快,或者是对方接收数据包不够快。
Foreign Address:  与本机端口通信的外部请求

 

查看单个PID              

 最后一个pid为主进程的,其余为子进程  pidof  httpd                                  

 第一个pid为主进程,其余为子进程     pgrep  httpd

 

进程状态--了解

STAT(进程状态):R 运行        S  睡眠      T  停止的进程      Z 僵尸进程        X  死掉的进程

Sl     l以线程的方式运行 ;Ss  s进程的领导者,父进程    ;R+    +表示是前台的进程组   ; S< <优先级较高的进程     ;   SN   N优先级较低的进程


动态查看进程top

 top                上半:top      tasks     %cpu    kib Mem    kibSwap (程序名;总进程数;cpu使用占比;物理内存k;交换分区)

top内部常用命令:h 或? 帮助                 M  按内存的使用排序        P按cpu使用排序       N  按pid的大小排序        z 彩色  Z设置颜色   <  向前       >向后

top使用技巧: top  (回车,立刻刷新。按z彩色显示,按F,通过光标设置列的顺序。)
                         top   -d   1(每1秒刷新)        top -d 1  -p  10126   (查看指定进程的动态信息)       top  -d  1  -p   10126,1   (查看10126和1号进程)

us: 用户态进程占用cpu
ni: nice值
id: cpu空闲率
wa: cpu等待输入/输出的进程占用的 CPU 百分比。如果使用率过高,表示硬盘该换了
hi:硬中断,请求插队
si:软中断
st:停止    

PR   优先级
VIRT 进程使用的虚拟内存总量,单位kb。
RES  进程使用的、未被换出的物理内存大小,单位kb。
SHR  共享内存大小,单位kb

计算cpu负载:load average的三个值: 0.10, 0.16, 0.12,分别除cpu的个数,得出的值,如果值大于1那么那时候的负载高。

在工作中必须监控的东西 load average(平均负载)等待cpu处理的队列长度 也是个数。
1分钟   第一个数字             5分钟   第二个数字         15分钟  第三个数字

nice 值越高:表示优先级越低,例如+19,该进程容易将CPU 使用量让给其他进程。               
nice 值越低:表示优先级越高,例如-20,该进程更不倾向于让出CPU。    renice   -n   -10   pid

查看cpu负载及已经登陆到终端的进程信息     

 w

查看当前CPU负载

 uptime 

查看内存使用      

free     -m 

查看版本

cat /etc/redhat-release       

看查正在运行的内核版本   

 uname -a               

查看内核版本  

 uname -r                   

修改主机名   

hostnamectl   set-hostname    xxxx

安装下载上传工具 

yum install -y lrzsz
上传
# rz
下载
# sz 文件  


 

将程序挂在后台持续运行(允许用户在退出终端或注销系统)

nohup     程序       &

作业控制

jobs  #查看后台的工作号

bg %2  #让暂停的程序在后台运行,%是用来修饰job number,2就是job number。(程序的工作号)

fg %1  #将后台的程序调到前台

使用信号控制进程kill

信号种类 (给进程发送信号,kill  -l 列出所有支持的信号)      kill      -信号编号     PID
 

-1   HUP  重新加载进程或者重新加载配置文件,PID不变   
-9   KILL 强制杀死
-15  TERM 正常杀死(这个信号可以默认不写)
-18  CONT 激活进程
-19  STOP 挂起进程

重定向

FD简介   file descriptors,FD,文件描述符,文件句柄。进程使用文件描述符来管理打开的文件。句柄   0 ,关联硬件(stdin,标准输入); 1 (stdout,标准输出);2(标准错误输出)1,2关联显示器

重定向案例:输出重定向案例及综合案例:  FD : 1 和  2                 &>  1和2同时
                            标准正确输出   1              1>(可以省略为  >) 覆盖             1>>(可以省略为  >>)追加   
                            标准错误输出   2              2>  (无简写)  覆盖                     2>> (无简写)追加

(cat > file <<EOF )是用来创建文件或者在脚本中使用,并向文件中输入信息输入的任何东西会被写入文件中,EOF:开始和结束的标记。成对使用,结尾的另一个必须定格写。
                                                            
 输入重定向案例及综合案例:  FD:0            0<(可以省略为 <)

管道 | (进程管道Piping)

管道命令可以将多条命令组合起来,一次性完成复杂的处理任务。

语法: 命令1  |    命令2    |     命令3          wc  统计行,列,字数
       
tee管道:三通管道,即交给另一个程序处理,有保存一份副本。         cat /etc/passwd  |   tee   保存/输出位置    |    grep   root          

命令1       | xargs   命令 2          ls cp rm  管道不能执行。所以通过xargs。

语法:
 cat     a.txt     |      xargs      -i     cp     {}    /目录                          

cat     file.txt     |      xargs       ls      -l    
 
{}:前面传过来的内容
 
-i :为了让大括号生效
 
目录时  -r
 
解释:前面传过来的东西交给大括号

查看目录及目录中文件的大小

du -h /etc/   #查看目录及目录中的文件大小

du -sh /etc/  #查看目录的总大小

du -h --max-depth=1 /etc/    #查看/etc/下子目录的大小

du  -d 1 -h /etc/            #查看/etc/下子目录的大小

ls   /etc/   |    wc   -l #查看目录中有多少个文件

排序

sort    -t":"   -k3 -n /etc/passwd  #以: 分隔,将第三列按字数升序                        

  sort   -t":"   -k3    -n     /etc/passwd -r #以: 分隔,将第三列按字数降序

sort 排序,默认升序
-t 指定分隔符
-k 指定列
-n 按数值
-r 降序

五.存储管理

磁盘分区

硬盘的命名方式    

 centos9:   IDE(并口)   /dev/hda        /dev/hdb                              

SATA(串口) /dev/sda         /dev/sdb       /dev/sdc

磁盘分区类型

MBR       主引导记录(MBR,Master Boot Record)是位于磁盘最前边的一段引导
                                        MBR支持最大的磁盘容量是<2TB。设计时分配四个分区
                                         如果希望超过4个分区,需放弃主分区,改为扩展分区和逻辑分区
                                         fdisk   命令

                         

 GPT       全局唯一标识分区表(GUIDPartition Table,缩写:GPT)是一个实体硬盘的分区表的结构布局的标准。 GPT支持大于2T的硬盘,支持128个分区
 gdisk    命令      


磁盘管理三部曲

分区(MBR或GPT)----->格式化/文件系统Filesystem------>挂载mount
                             (隔间)                               (放家具/打造格子柜)             (加个门/目录)

查看磁盘信息

ll    /dev/sd*                  

lsblk                                          

创建分区:     MBR:  把房子分成卧室和客厅               启动分区工具:          fdisk        /dev/磁盘名     (n   新建分区,p   选择主分区,分区序号,起始扇区位置默认,根据磁盘大小划分分区大小:+1G,w保存并退出) 

刷新分区表: partprobe   /dev/磁盘名

查看分区结果:   fdisk  -l  /dev/sdb      或     lsblk

创建文件系统(格式化):文件系统:房子里的格子柜                  mkfs.ext4     /dev/磁盘分区 (新建的分区都要格式化) 

挂载mount:    手动挂载 : 创建挂载点,一个分区一个挂载点       mkdir    /mnt/disk1                     挂载: mount  -t  ext4    /dev/磁盘分区     /mnt/disk1

1.2、使用UUID挂载       blkid    /dev/sdb1               vim    /etc/fstab

 UUID=deb5d8c9-f41d-40c3-93bd-26874b2b7b95     /data1    ext4          defaults      0     0


重启挂载失效的解决问题

   一.永久挂载fstab        vim   /etc/fstab      

输入:/dev/nvme0n3p1   /mnt/disk1    ext4   defaults    0  0          mount   -a(使挂载点生效)

使用UUID挂载       blkid    /dev/sdb1               vim    /etc/fstab

 UUID=deb5d8c9-f41d-40c3-93bd-26874b2b7b95     /data1    ext4          defaults      0     0

二.写入自启动文件                    

 vim /etc/rc.local            mount   /dev/sdb1    /data1               chmod +x    /etc/rc.d/rc.local

查看挂载信息

方法一:    df    -hT        

方法二:   mount 

磁盘分区如何超过4个分区    

放弃一个主分区,创建一个扩展分区      主分区已创建并使用 :   先卸载4号分区:umount   -l    /dev/分区名     fdisk   /dev/磁盘名       d      4    ,   n         e            最后扇区默认创建扩展分区。 创建逻辑分区:   n      +大小G/M

逻辑卷管理LVM

LVM目的:管理磁盘的一种方式,性质与基本磁盘无异         特点:随意扩张大小  

术语: LVM是Logical Volume Manager(逻辑卷管理)              

PV:物理卷(Physical volume):一块硬盘,或多块硬盘

VG:卷组(Volume Group):一堆磁盘的统称                    

LV:逻辑卷(Logical Volume):一个逻辑分区,一个分区

创建LVM

1.pv   将物理磁盘,转换成物理卷-PV          pvcreate   /dev/sdc              

查看PV信息: pvscan    ;     pvs    ;      pvdisplay
                (扫描pv信息)    (查看pv的摘要信息)     (显示pv的详情信息)

2.vg     创建卷组-VG            vgcreate      vg1   /dev/sdc                      

查看VG信息:同查看pv一样    vgs        vgscan        vgdisplay

3.lv      创建逻辑卷       lvcreate   -L   200M/G     -n    lv1     vg1      

                                                  -L 大小   -n   卷名    vg1(组名)   查看lv信息:同上   lvscan
                                                                                                                  
           lvcreate   -l    20    -n   lv2     vg1(指定free pe将vg剩余的全部分区)

创建文件系统(格式化)并挂载:  

mkfx.ext4    /dev/vg1/lv1(卷组名;逻辑卷名)    

创建挂载点:mkdir   /mnt/lv1            挂载:mount   /dev/vg1/lv1     /mnt/lv1

逻辑卷扩容

vg没有剩余空间时:

1、制作PV

2、vgextend cloud /dev/sde

3、lvextend       -L    15G    或者  +15G     /dev/cloud/2404

      lvextend      -l    +100%FREE    /dev/cloud/2405
        
4、xfs_growfs    /dev/cloud/2404      xfs文件系统扩容

      resize2fs          /dev/cloud/2405       etx4文件系统扩容
 
 5、df -Th

交换分区

mkswap   /dev/sdd1   #初始化                      

blkid   /dev/sdd1  #查看UUID                   vim /etc/fstab  #制作开机挂载

swapon     -a #激活swap分区          swapon   -s   显示交换分区                          

临时关闭:swapoff   /dev/sdd1            #关闭swap分区(-a  关闭所有)

永久关闭:vim /etc/fstab   将swap分区那一行注释掉。

dd    if=/dev/zero     of=/swap2.img    bs=1M     count=512
解释:dd 读入  从空设备里面拿空块 到交换分区                块多大  一共多少

mkswap  /swap2.img  #初始化                     vim   /etc/fstab                      

chmod    600    /swap2.img #交换分区权限需要设置为600,默认644权限不安全。

RAID实战

RAID:廉价磁盘冗余阵列(Redundant Array of Independent Disks)           作用:容错,提升读写速率

类型:  

RAID0(数据条带卷):RAID0 条带集2块磁盘以上,读写速率快100%*N(N块磁盘同时读写),但不容错。
             
RAID1: RAID1 镜像集(自动复制一份数据到其他磁盘)2块磁盘,容量50%(两块100G只有100G),读写速率一般,容错。

RAID5: RAID5 带奇偶校验条带集(把数据分为n-1份写入,最后一块磁盘放入校验和,反推),3块(磁盘数量n)磁盘以上,利用率(n-1)/n,读写速率快(n-1),容错

不同场景RAID的使用:硬RAID:需要RAID卡,有自己的cpu,处理速度快,有电池和无电池
                                       软RAID:通过操作系统实现,比如Windows,Linux


软RAID示例:1.  准备4块硬盘      ll   /dev/sd*               RAID:(3块数据盘)+(1块热备硬盘)            

创建RAID

mdadm   -C    /dev/md0     -l5     -n3   -x1      /dev/sd{a,b,c}
          (md0创建的磁盘组名;l小写的L,-l5是RAID5;-n3磁盘数量3;-x1热备磁盘数1)          

格式化,

挂载:    mkfs.ext4  /dev/md0                 mkdir  /mnt/raid5                  

mount      /dev/md0          /mnt/raid5              

查看RAID信息:mdadm    -D     /dev/md0 

每隔一秒持续执行命令                  watch   -n    1    ‘mdadm  -D   /dev/md0’  

六.Linux文件查找,打包压缩

文件查找    
命令文件查找        

which     ls      查找ls命令的位置      或           whereis    vim
                     
find

语法 :find    path    options   expression     action
         (命令; 路径;    选项;     表达式;      动作)
                     

按文件名:find   /etc    -name    "hosts"      -iname(忽略大小写)      “hos* "(扩大寻找范围)
                      
按文件大小:find   /etc    -size     +5M(+5M寻找大于5M的文件;5M寻找5M的文件;-5M寻找小于5M的文件)

 指定查找的目录深度:find  /    -maxdepth    4   -a(两条命令同时生效)    -name   "readme-ifcfg"
                       
 按文件属主,属组找: find  /    -user    jack    (查找属主是jack的文件)                  

 find   /    -group    hr   (查找属组是hr的文件)

 按文件类型查找:find   /    -type    f   (f普通文件;b磁盘;l链接文件;d目录;p管道)

 按文件权限:find   /    -perm(授权)      644       -ls (是find的动作之一,精确权限)
 
 找到后处理的动作(ACTIONS):找到后默认是显示文件       -print     文件名      -ls      文件属性          -delete    找到后删除      -exec    cp     -rvf      {}     /tmp(想放复制文件的位置)      \;

 按时间找(atime,mtime,ctime)
                          
 -atime = access访问时间
                         
 -mtime = modify改变时间   内容修改时间会改变          +5   修改时间五天之前                -5    修改时间五天之内
                         
 -ctime = change修改时间   属性修改时间会改变
 
 -amin  #分钟
 -mmin
 -cmin
                       

locate:文件查找,依赖数据库        locate   hosts      查找文件hosts文件                  updatedb   更新locate数据库          排除/tmp

打包压缩

打包   

语法 :   tar     选项       压缩包名称        源文件          

打包:   tar   -c(创建)f (指定文档的名称)      etc.tar(包名称)        /etc(被打包的文件)

压缩

gzip     源文件   #格式  file.gz结尾
bzip2   源文件   #格式  file.bz2结尾

解压缩

gunzip    压缩文件                  bunzip2   压缩文件

gzip     -d      压缩文件                 bzip2     -d     压缩文件

                                                                                                                                                      
 

打包压缩

tar  -czf     etc.tar.gz   /etc (z是gzip)

tar    -cjf     etc.tar.bz   /etc  (j是bzip)

tar  -cJf     ext.tar.xz   /etc  (J是xzip)    

查看压缩包:tar   -tf        etc.tar                    

解压:   tar     -x(解压)f  (解压的文件)    etc.tar       -C(指定解压位置)    /root

七.Linux链接文件

文件链接

符号链接/软连接 : symbolic link/软链接      

创建一个文件,并输入内容:echo  1111    >    file1      

创建一个软链接

ln   -s   /file1(源文件)    /home/file11(链接符号)(新文件)

对目录做链接   ln  -s   /gpp(目录)   /opt/ppp

进入ppp目录和进入gpp目录一个效果

总结:    软连接失去源文件不可用。 可以对目录做软链接;软链接和源文件的inode号是不同的;删除源文件,软链接不可用;当删除对目录做的软链接时,一定要注意不要加软链接名称后面的/,否则会将源目录下的文件也删除;
   
硬链接:1.不能跨文件系统     2.硬链接删除源文件,依然可以用      3.不允许将硬链接指向目录   4.硬链接和源文件具有相同的inode号;

创建硬链接   

ln    /file    /home/file11

发送邮件

yum -y install mailx

vim   /etc/mail.rc

set from=19991820903@163.com
set smtp=smtp.163.com
set smtp-auth-user=19991820903@163.com
set smtp-auth-password=GSLTKOHJSRNPAUBV
set smtp-auth=login

cat /etc/passwd | mail -s "测试邮件" 19991820903@189.cn

八.Linux软件管理

rpm

wget    不需要依赖

nginx    需要依赖

rpm  -ivh    *.rpm    install vh    将安装过程人性化显示    
rpm  -Uvh    *.rpm    更新并安装
rpm  -qa    查询所有的软件包
rpm  -ql     查看某一个RPM包生成了多少文件
rpm  -qc    查看某一个RPM包生成的配置文件
rpm  -qf     查看某一个文件是由哪一个RPM包生成的
rpm   -e      卸载

yum操作

安装: yum   -y   install     httpd     vsftpd  

重新安装:yum   -y    reinstall    httpd   

升级安装:    yum   -y    update      httpd           

查询YUM源 :yum   repolist    

查询http程序:yum   list   httpd          带@的是已经安装了

查询工具包和软件包的关系 :yum    provides     ifconfig

卸载:yum  -y   remove   httpd            

清理yum缓存:      yum   clean   all  

查询历史操作: yum history list

回滚     yum  history  undo  7(历史操作前面的编号)
     

缓存软件包信息提高搜索/安装软件的速度    yum makecache

yum卸载rpm查找出来所有与httpd相关的软件包全部卸载掉 

yum   -y   remove   `rpm -qa | grep httpd` 

配置yum源 

配置阿里云yum源

1、mirrors.aliyun.com

2、备份
    cd /etc/yum.repos.d/         mkdir bakup       mv *.repo       bakup/

3、配置:
    curl -o /etc/yum.repos.d/CentOS-Base.repo  https://mirrors.aliyun.com/repo/Centos-7.repo
    curl -o /etc/yum.repos.d/epel.repo   https://mirrors.aliyun.com/repo/epel-7.repo

4、清理缓存
    yum clean all

5、生成缓存
    yum makecache 

制作本地源

1.挂载镜像

mount  /dev/cdrom   /mnt/

2.配置本地源

vim   /etc/yum.repos.d/myyum.repo

[local]  不能有空格

name=local  yum

baseurl=file:///mnt

enabled=1

gpgcheck=0

3.清理缓存

yum clean  all

4.生成缓存

yum   makecache

5.列出所有yum仓库

yum   repolist

克隆源

yum  -y   install   yum-utils

yum  -y   install  nginx

cd   /usr/share/nginx/html

rm  -rf    *  

reposync   -r  base   -r   epel   -r   extras  -r   updates

createrepo base/
createrepo epel/
createrepo extras/
createrepo updates/

vim /etc/yum.repos.d/myrepo.repo

[httpd-base]

name=base

baseurl=http://192.168.182.131/base

enabled=1

gpgcheck=0

vim   /etc/nginx/nginx.conf    第43行

location / {
    root /usr/share/nginx/html;
    autoindex on;}

systemctl   restart   nginx

计划任务

作用:计划任务主要是做一些周期性的任务,目前最主要的用途是定期备份数据。

分类:   一次性调度执行at(Schedule one-time tasks with  at);      

循环调度执行cron(Schedule recurring jobs with cron)

一次性调度执行 at

yum -y install at

systemctl start atd

systemctl enable atd

语法格式:  at       <TIMESPEC>      at>  要执行的任务                  at>    

CTRL     D    输入完毕,提交任务            

查询任务: atq             删除一次性任务     atd id

at存放目录     cd /var/spool/at

               

 <TIMESPEC>示例: now  +5min(五分钟后)          teatime   tomorrow   (teatime  is  16:00)   (下午茶时间)      4:00    2020-11-27 (某年某日某月)        noon   +4    day (第四天中午)        

5pm     august   3     2020  (2020年8月3日下午5点) 

循环调度执行cron:  

简介:cron的概念和crontab是不可分割的。   crontab是一个命令,常见于Unix和Linux的操作系统之中。    用于设置周期性被执行的指令。

该命令从标准输入设备读取指令,并将其存放于  /etc/crotab  文件中,以供之后读取和执行。   

查看cron进程:systemctl   status   crond.service    ;     ps  aux  |  grep  crond                              crond程序运行是计划任务执行的根本

创建计划:   crontab     -e                  查询计划:   crontab   -l 

 -u   username    管理其他用户的计划任务                                              

  删除计划:    crontab      -r

计划任务存储位置:   ls    /var/spool/cron/

语法结构:分    时     日     月      周        命令或脚本程序    *代表每一分/时/日/月/周    例如:0   *   *    *   *     /mysql_back.sh(每个小时的第0分钟执行)  ;
 
*/5   *   *    *   *     /mysql_back.sh (每5分钟执行一次)                        

0    2    1,4,6    *    *     /mysql_back.sh  (每月的1,4,6日的2点整执行)  
                   
 0   2  *    *   5    /mysql_back.sh (每月的周五2点执行)                    

0    2    2   6    5     /mysql_back.sh  (6月的2号和周五的2点执行) 


编写任务计划:crontab   -e         ;输入 :*    *    *   *    *          /root/1.sh

注:crontab 执行脚本只写路径的话使用的是./执行的方式,需要给脚本执行权限

写上sh 执行,就不需要了 

文件:   /etc/cron.deny
说明:该文件中所列用户不允许使用crontab命令

文件:etc/cron.allow
当这个文件产生时,/etc/cron.deny文件失去作用,只有这个文件中的用户才能使用crontab
说明:该文件中所列用户允许使用crontab命令

日志管理
一.rsyslog系统日志管理

(关心问题:那类程序,产生的什么日志,放到什么地方)
 
处理日志的进程:第一类:   rsyslogd:系统专职日志系统   ;      处理绝大部分日志记录     ;系统操作有关的信息,如登陆信息,程序启动关闭信息,错误信息。             
                            
第二类:各类应用程序,可以以自己的方式记录日志。

常见的日志文件(系统,进程,应用程序):

存放位置:tail  /var/log/messages(系统的主日志)                 

tail   -f     日志位置 (将日志锁在屏幕上)
                                                                                                         
tail   /var/log/secure(安全日志)                          

tail   /var/log/yum.log(安装日志)

tail   /var/log/cron(任务计划日志)      

tail  /var/log/dmesg(系统启动相关日志)

所有用户的登录情况 /var/log/lastlog

rsyslogd配置

相关程序:yum   -y   install    rsyslog   logrotate     默认已安装

启动程序:systemctl    start    rsyslog.service                      

相关文件:rpm  -qc  rsyslog  (观察日志程序的配置文件)      
                   /etc/logrotate.d/syslog (和日志轮转相关)                    

                   etc/rsyslog.conf   (rsyslog的主配置文件)              

                    /etc/sysconfig/rsyslog  (rsyslogd相关文件)


/etc/rsyslog.conf   (rsyslog的主配置文件) :告诉rsyslogd进程什么日志,应该存到哪里。
                                                             
RULES:规则,是一套生成日志,以及存储日志的策略。  

有三部分组成(设备;级别;存放位置)  例:cron.*         /var/log/cron

vim  /etc/rsyslog.conf       (修改规则来影响日志存放的结果)                

systemctl    restart      rsyslog      重启

.logrotate日志轮转

(将大量的日志,分割管理,删除旧日志):日志轮转就像飞机里的黑匣子,记录的信息再重要也只能记录最后一段时间发生的事,为了节省空间和整理方便,日志文件经常需要按!时间或!大小等维度分成多份,删除时间久远的日志文件。

工作原理:按照配置进行轮转    配置文件种类      

主文件: /etc/logrotate.conf(决定每个日志文件如何轮转)

子配置文件夹:/etc/logrotate.d/*(自定义,好删,好抢救,方便管理)

logrotate   -f    /etc/logrotate.d/myapp              手动轮转

vim   /etc/logrotate.conf

/var/log/wtmp{ 

远程连接

ssh    -p 22  root@192.168.182.131    远程登陆(默认端口22)

ssh配置文件:vim   /etc/ssh/sshd_conf

产生公钥和私钥  

ssh-keygen

查看钥匙的目录

cd   /root/.ssh

将公钥拷贝给对方机器: ssh-copy-id    -i   id_rsa.pub    对方ip地址

将公钥传给对方,就可以免密登陆对方,对方的/root/.ssh目录下就会出现一个authorized_keys

文件记录着登陆者的公钥。known_hosts文件记录的是远程登陆过的服务器的信息。

远程拷贝

scp   -r(拷目录加r)    -p(改端口加p)  22    test/        192.168.182.131:/root/

tcpwrapper---访问控制工具

TCPwrapper有两个配置文件。
1./etc/hosts.allow   --允许
2./etc/hosts.deny    --拒绝
TCPwrappers先查找/etc/hosts.allow,再查找/etc/hosts.deny,如果两个配置中有冲突,先匹配中的优先,也就是hosts.allow中的配置优先,如果两个配置都没命中,默认放行。

telnet

检查tcp连接80端口是否开放

telnet  192.168.246.156   80  检查tcp连接80端口是否开放

telnet:不安全,没有对传输数据进行加密,容易被监听,还有遭受中间人攻击,telnet不能压缩传输数据,所以传输慢
ssh:对数据进行了加密,安全度高,ssh传输数据经过压缩,所以传输速度比较快

九.DNS域名解析

 DNS里面顶层是: "." 表示根域 ( 一共有十三台根服务器)
“.com”是顶级域名

分类:职能:com域,.org域(非营利机构),edu域名(教育)国家:.cn ,.us ,

“aliyun.com”是主域名(二级域),主要指企页名

 “example.aliyun.com”是子域名(也可称为托管三级域名)

“www.example.aliyun.com”是子域名的子域(也可称为托管四级域名)。

TTL  Time  To   Live 

 英文全称Time To Live ,这个值是告诉本地域名服务器,域名解析结果可缓存的最长时间,缓存时间到期后本地域名服务器则会删除该解析记录的数据,删除之后,如有用户请求域名,则会重新进行递归查询/迭代查询的过程。

TLD Server

英文全称Top-level domains Server,指顶级域名服务器。

DNS  Resolver

本地域名服务器,它是DNS查找中的第一站,是负责处理发出初始请求的DNS服务器。运营商ISP分配的DNS、谷歌8.8.8.8等都属于DNS Resolver。

Root  Server

指根域名服务器,当本地域名服务器在本地查询不到解析结果时,则第一步会向它进行查询,并获取顶级域名服务器的IP地址。

DNS解析过程

1)当用户在浏览器中输入www.qq.com域名访问该网站时,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。 

(2)如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。 

 (3)如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。 

(4)如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。 

(5)如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机。 

(6)如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
提示:从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间的交互查询就是迭代查询。

配置DNS方式

vim   /etc/resolv.conf

nameserver   114.114.114.114

十.Linux文件服务器

NFS  远程共享存储

文件系统级别共享(是NAS存储) ---------  已经做好了格式化,可以直接用。 速度慢比如:nfs,

NFS 
NFS:Network File System 网络文件系统,NFS 和其他文件系统一样,是在 Linux 内核中实现的,因此 NFS 很难做到与 Windows 兼容。NFS 共享出的文件系统会被客户端识别为一个文件系统,客户端可以直接挂载并使用。

服务端操作

yum   -y    install   rpcbind    安装rpc协议的包

yum -y  install  nfs-utils    安装nfs服务

systemctl   start  nfs-server                 systemctl    start    rpcbind

mkdir    /nfs-dir       创建存储目录

vim   /etc/exports     编辑共享文件

/nfs-dir     192.168.182.0/24(rw,no_root_squash,sync)

systemctl restart nfs-server

systemctl enable nfs-server

可选参数注释:
ro:只读
rw:读写
*:表示共享给所有网段。
sync:所有数据在请求时写入共享
root_squash: 对于使用分享目录的使用者如果是root用户,那么这个使用者的权限将被压缩成为匿名使用者,只读权限。
no_root_squash:使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限。

客户端操作

yum -y install rpcbind

yum -y install nfs-utils

mount   -t    nfs    192.168.182.131:/nfs-dir     /qf      挂载

vim   /etc/fstab    制作开机挂载

192.168.246.160:/nfs-dir    /qf          nfs     rw,nofail,bg        0 0

以读写模式挂载文件系统,即使遇到问题也不会阻止系统启动,并且会持续在后台尝试重新挂载。

FTP

ftp主动模式

客户端开启一个端口N(>1023)向服务端的21端口,建立连接,同时开启一个N+1,告诉服务端,我监听的是N+1端口,服务端接到请求之后,用自己的20端口连接到客户端的N+1端口,进行传输

21端口建立连接
20端口传输数据

ftp被动模式

客户端同时开启两个端口(1024,1025),一个端口(1024)跟服务端的21端口建立连接,并请求,大哥,我连上了,你再开一个端口呗。服务端接到请求之后,随机会开启一个端口(1027)并告诉客户端我开启的是1027端口,客户端用另一个端口(1025)与服务端的(1027)端口进行连接,传输数据

vsftpd配置

yum  -y   install  vsftpd

systemctl  start   vsftpd

systemctl    enable   vsftpd

FTP默认共享目录

/var/ftp 

cd /var/ftp       mkdir   upload        touch   upload/1.txt

修改根目录的属主与属组

chown   -R   ftp.ftp   /var/ftp/*

编辑vsftpd配置文件
允许匿名用户登陆

vim  /etc/vsftpd/vsftpd.conf       允许匿名用户登陆

anon_upload_enable=YES         允许匿名用户上传文件

anon_other_write_enable=YES      允许匿名用户对目录进行操作

anon_mkdir_write_enable=YES       允许匿名用户创建目录

anon_umask=022    匿名用户默认权限掩码

客户端

yum   -y    install   lftp

lftp   192.168.182.131

下载     get            创建目录    mkdir            上传     put       

上传目录及目录中的子文件      mirror   -R   /root/test/

下载目录       mirror    test/

ftp本地用户登录

vim   /etc/vsftpd/vsftpd.conf

anonymous_enable=NO    将允许匿名用户登录关闭

chroot_list_enable=YES      启用限制登陆用户在主目录里面

chroot_list_file=/etc/vsftpd/chroot_list      限制登陆的用户在这个文件列表中,一行一个用户    

allow_writeable_chroot=YES        允许限制的用户对目录有写权限  

local_root=/home/zhangsan          设置本地用户的FTP根目录,一般为用户的家目录

local_max_rate=0        限制最大传输速率(字节/秒)0为无限制

mkdir   /etc/vsftpd/chroot_list

vim  /etc/vsftpd/chroot_list       将允许登陆的用户添加

systemctl   restart   vsftpd

客户端

lftp   192.168.182.131   -u  zhangsan

十一.WEB服务器

Apache服务的搭建与配置

yum  -y  install  httpd

systemctl   start   httpd

netstat   -nplta   |  grep  80

默认访问网站的主页

/var/www/html

认识主配置文件

vim   /etc/httpd/conf/httpd.conf

ServerRoot "/etc/httpd"             #定义工作目录
Listen 80                           #监听端口
Listen 192.168.2.8:80 指定监听的本地网卡 可以修改
User apache                            # 子进程的用户,有可能被人改称www账户
Group apache                           # 子进程的组
ServerAdmin root@localhost          # 设置管理员邮件地址
DocumentRoot "/var/www/html"        # 发布网站的默认目录,想改改这里。
IncludeOptional conf.d/*.conf       # 包含conf.d目录下的所有*.conf配置文件

# 设置DocumentRoot指定目录的属性
<Directory "/var/www/html">           # 网站容器开始标识
Options Indexes FollowSymLinks       # 找不到主页时,链接到网站目录以外,如测试页面
AllowOverride None                   # 对网站设置特殊属性:none不设置特殊属性,all允许
Require all granted                 # granted表示允许所有人访问,denied表示拒绝所有人访问
</Directory>                        # 容器结束
DirectoryIndex index.html              # 定义主页文件,会自动访问该文件。

访问控制

<Directory "/var/www/html">

Options Indexes  FollowSymlinks

AllowOverride  None

<RequireAll>

#Require  not ip  192.168.182.131   只拒绝一部分客户端访问

#Require   all   denied     拒绝所有ip

#Require   all   granted    允许所有ip

</RequireAll>

</Directory>

虚拟主机

vim /etc/httpd/conf.d/test.conf

基于域名

<VirtualHost  *:80>         

DocumentRoot   /var/www/test

ServerName   www.jiyuyuming.com

<Directory  /var/www/test>

AllowOverride  None

Require   all   granted

</Directiory>

</VirtualHost>

基于IP

<VirtualHost  192.168.182.131:80>

DocumentRoot    /var/www/test

<Directory /var/www/test>

AllowOverride  None

Require   all   granted

</Directory>

</VirtualHost>

基于端口

在httpd的主配置文件中加入,新端口

<VirtualHost  *:80>         

DocumentRoot   /var/www/test

ServerName   www.jiyuyuming.com

<Directory  /var/www/test>

AllowOverride  None

Require   all   granted

</Directiory>

</VirtualHost>

<VirtualHost  *:81>         

DocumentRoot   /var/www/test

ServerName   www.jiyuyuming.com

<Directory  /var/www/test1>

AllowOverride  None

Require   all   granted

</Directiory>

</VirtualHost>

十二.网络配置

网络配置

NetworkManager服务

网络管理器(NetworkManager)是一个动态网络的控制器与配置系统,它用于网络设备可用时保持设备和连接开启并激活

配置网络的工具:

命令行配置       配置文件:vim                 命令行:  nmcli     

                         图形配置       简易图形: nmtui              图形界面:   nm-connection-editor

配置网络参数:

centos7配置    

方法      配置网络参数:  vim  /etc/sysconfig/network-scripts/ifcfg-ens33

查看网卡uuid: nmcli    connection     show                            查看网关:ip route

重启网络设置:nmcli   c   reload    ;   nmcli    c   up    e

十二.网络管理实战

网OSI简介

Open System Interconnection(开放系统互联网模型),定义了不同计算机互联的标准,设计和描述了计算机网络通信的框架。

优势:开放,厂商兼容性,易于理解,学习,模块化工程,故障排除


OSI 全世界网络通信的工作分为7层
                                                                                                                      
应用层:应用程序/原始数据        qq,爱奇艺 ;    

表示层: 格式/压缩/加密      快速传递,安全传递,鸡毛信 ;  

会话层:会话/全双工/半双工       身份信息,电话/对讲机

传输层 :分段/重组/端口号      传输效率                  

网络层:ip地址/寻址/路由       总目标,全球地址              

数据链路层:MAC地址/局域网      分段目标,局域地址,邮递员

物理层:传输介质/比特流    电流/光/无线信号/4G/5G


TCP/IP  (5层结构/功能)

Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议

应用层(OSI的上三层)        

传输层          

网络层            

数据链路层              

物理层                

四层:网络接口层(将数据链路层,物理层合为一层)


OSI模型和TCP/IP模型的区别

OSI:推出时间早,只有理论没有实践。

TCP/IP:美国军方由实践得出的的理论,当今通信标准

数据的封装和解封装:信息从一台计算机产生,经过TCP/IP模型加工后传递到另一台计算机,这个通信过程就像快递从厂家包装到顾客收到货物拆包一样,我们把这个通信过程称作数据的封装(发送)和数据解封装(接收)。


TCP协议簇

应用层

HTTP/超文本传输协议/网站                            
SSH/远程连接协议/远程控制                             
FTP/文件传输协议                                                                 
SMTP/简单邮件传输协议/Email
DNS/域名服务/www

传输层:TCP/传输控制协议/可靠:3次握手,4次断开。鸡毛信,挂号信 ,UDP/用户数据协议/不可靠                            

网络层:IP/互联网协议/寻址         ICMP/网络消息管理协议/测试

数据链路层:MAC:家到邮局的地址                                    

物理层:网线:公路              光纤:航道

单位换算:比特=bit=b==1/0          字节=byte=B=8个比特        1kB=1024B        1MB=1024KB

网络管理实战二

物理层:  信号        数

字信号:  两种恒定的物理量;适用计算机网络。优点:抗噪音和抗衰减比较强

介质         双绞线 :EIA/TIA568标准;8根线芯,两两互绞            

功能性:屏蔽型(STP,SFTP),非屏蔽型(UTP)

速率分类:cat 5 /5类线/10M100M          

cat 5e/超五类线/10M100M                

cat  6/六类线/1000M

 接口:RJ45/水晶头            

线序:EIA/TIA568B: 橙白,橙,绿白,蓝,蓝白,绿,棕白,棕                

标准网线:两端线序相同

光纤  : 多模/单模      纤芯粗/纤芯细       低速/高速       近/远            便宜/贵               FC/ST/LC 


数据链路层:      功能:       链路创建,维护,管理帧封装,传输,同步差错校验

                     MAC地址:媒体访问控制地址                前6位是厂商标识,后六位是硬件标识                                             帧封装: 目标MAC/源MAC/数据/CRC


交换机工作原理:   学习/广播/转发/更新 


网络层:   ip地址     

TCP三次握手和四次挥手

Seq   序列号   保障传输过程可靠。
ACK   (确认消息)
SYN   (在建立TCP连接的时候使用)
FIN   (在关闭TCP连接的时候使用)

三次握手

1)发送端首先发送一个带有SYN(synchronize)标志地数据包给接收方。
2)接收方接收后,回传一个带有SYN/ACK标志的数据包传递确认信息,表示我收到了。
3)最后,发送方再回传一个带有ACK标志的数据包,代表我知道了,表示’握手‘结束。
===================================
通俗的说法
1)Client:嘿,李四,是我,听到了吗?
2)Server:我听到了,你能听到我的吗?
3)Client:好的,我们互相都能听到对方的话,我们的通信可以开始了。

四次挥手

 1)第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送。
 2)第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1
 3)第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送.
 4)第四次挥手:Client收到FIN后,接着发送一个ACK给Server,确认序号为收到序号+1.
======================
通俗的说法
1)Client:我所有东西都说完了
2)Server:我已经全部听到了,但是等等我,我还没说完
3)Server:好了,我已经说完了
4)Client:好的,那我们的通信结束

IP地址的组成

子网掩码:用于区分IP地址中的网络部分和主机部分.

计算子网掩码:网络位全1,主机位全0

网络部分(网络位):直接决定了可以分配的网络数

主机部分(主机位):则决定了网络中最大的主机数 计算方法:2^主机号位数-2

网络地址:用来表示一个网络。网络部分不变,主机位取值全部为0,例如:192.168.1.0/24

广播地址:用于在一个网络内一对所有的通信。网络部分不变,主机部分全部换成1。

子网划分

a.这个被选用的子网可以产生多少的子网?   2的x次方=?   x表示借的主机位
b.这个子网中又会有多少个合法的主机号?   2的y次方-2=? y表示主机位
c.每个子网的广播地址是什么?           这个子网中最后一个IP地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值