Linux基础

注意:这个总结是用 Xmind 写的,源文件阅读更佳:蓝奏
密码:6y92

有 Xmind 和 word 两种形式

推荐 Xmind 食用,亲测舒适

一.基础

1.1 远程

1.1.1Xshell

1.1.2 Xftp

1.2 编辑器

1.2.1 vim

1.2.1.1 介绍

vim 是vi 的增强版,支持编写代码

1.2.1.2 三种模式
  • 普通模式

    • 就是你输入 vim 文件名后那个界面,不能输入,只能移动光标,删除(delete),粘贴复制。
  • 插入模式

    • 进入方式:在普通模式下按airo任意一个字母的任意大小写,一般是按i
    • 功能:完成对文件的写入
  • 命令行模式

    • 进入方式:一般是在插入模式中输入 Esc 然后输入:就ok。(这里建议大家用:用/会有一些小问题)
    • 功能:用于编辑后文件的保存等处理
1.2.1.3 三种模式的具体切换
1.2.1.4 快捷键
  • 复制

    • (普通模式) yy 就是复制当前行,xyy就是复制连同当前行以及下面的一共x行
  • 粘贴

    • (普通模式)p:就会在光标行粘贴
  • 撤销

    • 在插入模式输入后想撤销,Esc 退出到普通模式,然后按u
  • 删除

    • (普通模式)dd就是删除当前行,xdd就是删除加上当前行的下面x行
  • 查找

    • 文件中查找某个单词
    • (命令行)输入 /查找的单词 然后回车。
    • 找到的单词就会高亮,然后按n就在找到的单词中跳下一个,N是上一个
  • 行号

    • (命令行下)输入 set nu 设置行号
    • (命令行)输入 set nonu 取消行号
  • 跳转

    • (普通模式)gg到开头
    • (普通模式)G到文尾
    • (普通模式)数字 Shift +g:跳转到数字行
  • 注意:上面都是建立在用 vim 打开文件后使用的

1.3 基础环境安装

  • VM 虚拟机的下载及配置

  • Centos 的下载以及配置

  • 虚拟机的克隆

    • 方法一:直接把那个系统的文件夹复制一份
    • 方法二:在 VM 里面按图形页面整
  • 虚拟机的迁移和删除

    • 虚拟机系统的本质就是哪一个生成的文件夹,所以直接对那个文件夹操作即可
  • 虚拟机快照

  • VMtools

  • Linux文件目录

    • 在 Linux 中一切皆文件,Linux 系统自己在主机上就是一个文件夹,他的内部也是由各种文件组成的

    • 主要目录介绍

      • /home:存放普通用户的
      • /root:系统管理员的
      • /etc:系统管理所需要的配置文件和子目录
      • /usr:应用程序和文件的主要集中地
      • /temp:临时文件
      • /dev:硬盘
      • /media:外接设备
      • /mnt:临时挂别的文件系统–比如myshare
      • /opt:格外安软件的
      • /usr/local:另一个额外装软件的,一般是通过源码编译的执行文件
      • /var:不断扩充的东西–日志
      • 子主题 12

1.4 Linux 下 JavaEE 开发环境安装

二.实操

2.1 开关机,重启

  • shutdown -h now – 现在马上关机

  • shutdown -h 数字 – 数字分钟后关机

  • shutdown -r now – 现在马上重启

  • halt – 关机

  • reboot – 重启

  • sync – 数据同步到磁盘

    • 建议每次重启关机前都自己输入一次,虽然一般来说会自动给你备份,小心驶得万年船。

2.2 用户登录和注销

  • 一般来说建议开始登录一个普通用户然后 su -
    root 这样切换成 管理员,记得-和root之间有空格

  • logout 为注销用户(也就是退出当前用户),在图形页面没用(有桌面那个),运行级别3(Xshell 或者没桌面那个多用户 Linux)下有用

    • exit也行

2.3 用户管理

  • 添加用户

    • useradd 用户名

    • 指定目录创建用户

      • useradd -d 路径 新的名字

      • 你创建的用户家目录名字是路径下的那个文件夹名

  • 删除用户

    • 保留家目录(推荐)

      • userdel 用户名
    • 全删了

      • userdel -r 用户名
  • 给用户设置密码

    • passwd 用户名
    • 普通用户只能改自己的,root可以改所有的
  • 查询用户信息

    • id 用户名
  • 切换用户

    • su - 用户名
    • 注意- 和用户名中间有空格
  • 查看当前用户

    • whoami
    • who am i
  • 用户组

    • 用处

      • 将有共性或者有相同权限的用户放在一个用户组中
    • 新建

      • groupadd 组名
      • 只有 root 有这个权利
    • 删除

      • groupdel 组名
    • 用户入组

      • 创建直接加入组

        • useradd -g 组名 用户名
      • 移动用户来这个组

        • usermod -g 组名 用户名

          • 权限一般在 root 哪里
  • 用户及组的相关文件

    • /etc/passwd

      • 用户的配置文件,记录用户的各种信息

      • 每行含义

        • 用户名:加密口令:用户id:组id:注释:位置:登录Shell
        • 这个Shell相当于编译器,翻译你指令给计算机的
        • 那个加密口令就是密码,如果没有就是!
    • /etc/shadow

      • 口令的配置文件

      • 含义

        • 登录名:加密密码:不认识的
    • /etc/group

      • 组的配置文件,记录组的信息

      • 每行含义

        • 组名:口令:组id:组内列表(也加密了,看不到)
    • 上面三打开方式:vim 加名

2.4 实用指令

  • 运行级别

  • 帮助

    • man 指令

      • q退出
    • help 指令

      • 查看 Shell 指令内部帮助
    • 百度

  • 文件目录

    • pwd

      • 显示当前工作绝对目录
    • ls 目录/文件

      • 查看当前目录所有信息

      • -a 显示所有包括隐藏的

      • -l 成行显示

        • ll也可以
    • cd 目录

      • cd ~或者 cd

        • 返回家目录
      • cd …

        • 返回上一ml
    • mkdir 目录

      • -p 创建多级目录
    • rmdir 目录

      • 只能删除空目录
      • rm -rf 目录: 删除非空目录
    • touch 文件

      • 创建新的空文件
    • cp [参数] source dest

      • -r 参数拷贝文件夹这种里面有好多的用的
      • 想要不覆盖 cp前加 \
    • rm [参数] 文件/目录

      • 删除文件或者目录

      • 参数

        • -r:删除整个文件夹
        • -f:强制删除不提示
    • mv

      • 重命名

        • mv 旧文件名 新文件名
      • 移动

        • mv 旧地址 新地址
    • cat [参数] 目标名

      • 查看目标信息

      • -n 显示行号

      • cat语句 | more :配合管道符号

        • 将 | 前的内容交给 后面的
    • more 要看的文件

      • vim 的文本编辑器,以全屏幕的方式显示文本内容

      • 快捷键

    • less 要看的文件

      • 这个也和 more 差不多,但是是看多少加载多少更加智能

      • 快捷键

    • echo 内容

      • 显示内容到控制台
    • head 文件

      • 显示文件前10行内容

      • head -n 数字 文件

        • 显示开头前数字行
    • 和>>

      • 文件:定向输出到这个文件

      • 文件:追加到文件中

    • ln -s 原文件 快捷方式

      • 这个就一自命名的快捷方式
      • 用 pwd 查看当前目录时,还是 ln 标签目录
    • 查看历史操作

      • history

      • history 数字

        • 查看最近 数字 行
      • !行号:执行第几行的指令

  • 时间日期

    • date:显示当前时间

    • date ”+%Y-%m+%d %H:%M%S“:显示年月日时分表,以此类推

    • date -s 字符串时间:修改时间

    • cal

      • 默认打印本月日历

      • cal 2022

        • 显示 2022 全年日历
  • 搜索查找

    • find [搜索范围] [选项]

      • 选项

        • -name:按文件名来找

        • -user:按作者来找

        • -size:按大小来找

          • +n大于
          • -n小于
          • n等于
          • 单位有kMG
    • locate 文件

      • 速度更快,因为塔是通过实现数据库来查找的
      • 记得使用前updatedb一下
    • which 指令名

      • 找指令在那个目录下面
    • grep [选项] 查找内容 源文件

      • 选项

        • -n:显示行号
        • -i:忽略大小写
  • 压缩解压

    • .gz

      • gzip 文件

        • 压缩文件为*.gz文件
      • gunzip 文件.gz

        • 解压文件
    • .zip

      • zip

        • zip [选项] XXX.zip 想压缩内容 [功能描述]

          • -r:压缩文件夹的
      • unzip

        • unzip [选项] XXX.zip

          • -d 指定解压目录

            • unzip -d /opt/tep xxx.zip
    • .tar.gz

      • tar [选项] XXX.tar.gz 打包内容 [功能描述]

        • 选项:

        • 可以同时打包多个

2.5 组管理与权限

  • 文件和组管理

    • 所有者:谁创立谁是所有者

      • 查看文件所有者

        • ls -ahl
      • 更改文件所有者

        • chown 用户名 文件名
      • 同时改变文件和目录的所有

        • chown 新所有者:新所在组 文件/目录
    • 所在组

      • 文件的创造者是那个组,文件就是哪个组的

      • 更改文件所在组

        • chgrp 组名 文件名
    • -R 使操作对被操作的子目录也生效

    • 其他组

  • 权限

    • 开头部分

      • 代表含义

        • 第 0 位:文件类型

          • l:链接
          • d:目录
          • c:字符设备文件,鼠标键盘
          • b:块设备,硬盘
        • 第 1~3 位:所有者拥有对该文件的权限

        • 第 4~6 位:所属组拥有对该文件的权限

        • 第 7~9 位:其他用户对该文件的权限

      • 文件

        • 符号详解

          • r:可读
          • w:可写,可以 vim 编辑
          • x:可执行
      • 目录

        • 符号详解

          • r:可读,ls查看目录列表
          • w:可修改,对目录内创建,修改,重命名目录
          • x:可执行,可以进入该目录
      • 符号可以用数字代替

        • r=4,w=2,x =1。组合起来直接用
    • 其他部分

      • 1

        • 文件:硬连接数
        • 目录:子目录数
      • tom :用户

      • javacode:组

      • 101 文件大小(字节)

      • 5月 7 19:13 最后修改时间

      • Hello.java 文件名/目录名

    • 修改权限

      • ±=类型

        • 指代符号

          • u:所有者
          • g:所在组
          • o:其他人
          • a:所有人
        • 演示

          • chmod u-x,g+w,o+x 文件/目录名
          • chmod u=rwx,g=rw,o=r 文件/目录名
      • 数字类型

        • 演示

          • chomd 764 文件/目录

2.6 定时任务

  • crond

    • 语法:crontab [选项]

      • -e 编辑

                  • 语句
            • 五个占位符说明

              • 第一个是一个小时中的第几分钟 0~59
              • 第二个是一天中第几个小时 0~23
              • 第三个是一个月中的第几天 1~31
              • 第四个是一年中的第几个月 1~12
              • 第五个是一周中的星期几 0~7 0,7都是周日
            • 特殊符号说明

                • 任何时间 比如第一个 * 就是一小时中的每分钟都执行一次的意思
              • , 表示不连续的时间 “0 1,2,3 * * * 命令”就是每天 1:00 ,2:00,3:00 都执行一次
                • 连续的时间
              • */n 每隔多久来一次
      • -l 查询

      • -r 删除当前用户所有定时任务

      • service crond restart 重启任务调度

  • at

    • 一次性定时任务,atd为监护进程,每60秒检查一下作业队列

    • 使用 at 时一定要保证 atd 进程的启动

      • ps -ef | grep atd
    • 语法:at [选项] [时间]

      • 输入完成:Ctrl + D两次

      • 选项

      • 时间

        • XX:XX

        • midnight,noon,teatime(16:00)

        • 6pm,8am

        • today tomorrow

        • 相对计时

          • now + 几 时间单位

            • 时间单位

              • minutes
              • hours
              • days
              • weeks
        • 精准

          • month day

          • mm/dd/yy

          • dd.mm.yy

          • 时间 日期

            • 04:00 2021-09-9
    • atq 查看当前系统有无执行任务

    • atrm 编号 删除

2.7 磁盘分区,挂载

  • 载入处理

    • 一个磁盘分区对应一个目录

    • 硬盘

      • IDE 硬盘

        • 驱动器标识符:hdx~

          • hd 表示 IDE 硬盘

          • x 盘号

            • a 基础盘
            • b 基本从属盘
            • c 辅助主盘
            • d 辅助从属盘
          • ~ 分区

            • 主分区或拓展分区

              • 1~4
            • 逻辑分区

              • 5~
          • 演示 hdb4

            • 第2个IDE硬盘的第四个主分区或拓展分区
      • SCSI 硬盘 (主流)

        • 标识 sdx~
    • 查看所有设备挂载情况

      • lsblk
      • lsblk -f
    • 虚拟机增加一块硬盘

  • 磁盘情况查询

    • 指令:df -h

    • 查询指定目录的磁盘情况

      • du -h 目录

        • -s 指定目录占用大小汇总
        • -h 带计量单位
        • -a 带文件
        • –max-depth=1 子目录深度
        • -c 列出明细的同时,增加汇总值
  • 统计

    • ls -l /opt | grep “^-” | wc -l

      • 解释:管道符后面有个正则表达式,表示只查找以-开头的。也就是文件。然后又一个管道符后面是以行列来wc统计个数
    • ls -lR /opt | grep “^-” | wc -l

      • 这个就可以统计那个目录下包括子目录的文件个数
    • ls -l /opt |grep “^d” | wc -l

      • 这个就是统计它下面目录的
    • tree 目录

      • 以树状显示目录结构

2.8 网络配置

  • 原理图

  • 查看虚拟机子网 IP 和网关

  • 查看 Windows 环境下 Vmnet8 网络配置

    • CMD 中 ipconfig
  • 查看 Linux 环境下网络配置

    • 命令行:ifconfig
  • 测网络连通性

    • ping 对方地址(ip)

      • 当前服务器是否可以连接目标主机
  • Linux 网络环境的配置

    • 自动配置

      • 默认都是这样,就是每次重启 Linux 都会自动获取 ip 每次都不一样
    • 指定固定 ip

    • 设置主机名和 hosts 映射

      • 博客:https://blog.csdn.net/qq_65224479/article/details/124714882

      • hosts 原理:hosts 就是记录主机名和 IP 之间的映射关系

        • 举例:在网址中输入www.baidu.com,他会首先在浏览器缓存中找这个名字看有没有对应的 IP ,没有就去 DNS 解析器缓存中找。以上两种属于本地解析器缓存。实在没找到回本地的 hosts 中找,还没有就去域名服务 DNS 中进行解析域,一层一层向上找。一旦找到这个网址就返回 ip 完成解析。都没找到就说 这个可能不存在。

          • 查看本地解析器缓存指令

            • ipconfig /diaplaydns
          • 清空

            • ipconfig/flushdns
        • DNS 也就是一个大型的 hosts 一样,是 IP 和域名相互映射的分布式数据库。

2.9 进程管理

  • 进程基本介绍

    • 每个任务都是一个进程,都会有自己的进程 ID 号,并且分为前台与后台。前台就是你看到的。
  • ps :查看当前系统进程

    • 显示信息解说

      • 简略

        • PID:进程号
        • PPID:父进程 ID
        • TTY:终端机号
        • TIME:占用CPU时间
        • CMD:指定该进程的指令
      • 详细

    • 参数

      • -a 显示当前终端所有进程消息
      • -u 以用户的格式显示进程消息
      • -x 显示后台进程运行的参数
      • -e 显示所有进程
      • -f 以全格式
  • top:动态查看当前进程

    • 语法:top [选项]

      • -d 秒数 :每隔几秒刷新一次,默认3秒
      • -i 不显示闲置或者僵死的进程
      • -p PID 指定显示某个进程的情况
    • 交互操作:看的时候用

      • P 以CPU使用率排序 (默认)
      • M 以内存使用率
      • N PID
      • q 退出
      • 注意大小写
  • 杀进程

    • kill [选项] 进程号

      • 选项 -9 强制执行
    • killall 进程名

  • 进程树

    • pstree [选项]

      • -p 显示 PID
      • -u 显示进程所属用户
  • 服务

    • 服务一般在后台默默的监听着某个端口,本质就是进程,也叫守护进程。

    • service 服务 [start/stop/restart/reload/status]

      • Centos7.0后大部分用的是 systemctl

      • 他能管的服务在:/etc/init.d

        • 现在是个软连接,指向:rc.d/init.d
    • 查看服务

      • setup -> 系统服务

        • 有小星星的就是自启动的,空格就可以更改
        • tab 键退出
      • 这里看

    • 服务运行级别

      • 开机流程

      • Centos7 后简化了,35

    • chkconfig

      • 用途:给某个服务在各个运行级别下设置自 启动/关闭

      • 能搞的服务:和service一样

      • 这句话同样适用

      • 语法

        • 开关:chkconfig --level 数字 服务名 on/off
        • 查看可以操作的服务:chkconfig --list [后面可以接 grep]
      • 生效时间:虚拟机重启后

    • systemctl

      • 管理指令

        • systemctl [start/restart/stop/status] 服务

          • 这些都是立马生效的,但是重启之后就又没了。
        • 管理服务所在的文件目录

          • /usr/lib/systemd/system
      • 设置自启动

        • systemctl list-unit-files 可以接过滤

          • 查看当前所有服务的自启动现况
        • systemctl enable 服务

          • 开服务自启动
        • systemctl disable 服务

          • 关闭服务自启动
        • systemctl is-enabled 服务

          • 查询
        • 这个地方的开关是永久性的跟上面的start,stop不一样

    • 防火墙和端口

      • 端口

        • 打开端口

          • firewall-cmd --permanent --add-port=端口号/协议
        • 关闭端口

          • firewall-cmd --permanent --remove-port=端口号/协议
        • 查看端口是否开放

          • firewall-cmd --query-port=端口/协议
        • 注意:无论打开还是关闭都需要重新载入防火墙才有用

          • firewall-cmd --reload
        • telnet IP 端口

          • 测试是否可以访问某个端口
    • 监控网络状态

      • 查看系统网络情况

        • netstat [选项]

          • 选项

            • -an 按一定顺序排列输出
            • -p 显示那个进程在调用
      • 检查主机连接命令

        • ping 对方IP

2.10 RPM&YUM

  • RMP:RedHat Package Manager

    • Linux 下互联网下载和安装工具

    • 查询所有已安装的RPM

      • rmp -qa 可接过滤
    • 查询某个是否安装

      • rmp -q 软件包名
    • 查询软件包信息

      • rmp -pi 软件包名
    • 查询软件包中文件

      • rmp -pl 软件包名
    • 查询文件的软件包

      • rmp -qf 文件绝对路径
    • 删除 rpm

      • rpm -e 软件包名

        • 强制 rpm -e --nodeps 软件包名
    • 安装软件

      • rpm -ivh RPM包全路径名称

        • 参数说明

          • i=install 下载
          • v=verbose 提示
          • h=hash 进度条
  • YUM

    • 基于RPM的Shell前端软件包管理器

    • 优点:可移动处理依赖关系

    • 查询yum服务器是否有你要的安装包

      • yum list|grep xx
    • 安装

      • yum install xx

三.Shell编程

3.1 开头

#!/bin/bash

3.2 多行注释

  • :<<!
    ~
    !
  • 注意是全英文和小于号的走向

3.3 执行方式

    1. 先赋予脚本可执行权限+x,然后就是打全脚本路径回车就行。或者 ./脚本名
    1. 直接 sh 加上名字/全路径

3.4 变量

  • 系统变量

    • $HOME,$PWD,$SHELL,$USER

      • 显示当前shell 中所有变量 set
  • 用户自定义变量

    • 基本语法

      • 定义变量

        • 变量名=值
      • 撤销变量

        • unset 变量
      • 声明静态变量

        • readonly 变量

          • 不能被unset
    • 将指令返回的值赋给变量

      • 用反引号

        • C=date
      • 用$()

        • D=$(date)
    • 规则

      • 变量名

        • 可以包含:字母下划线数字,但是不可以用数字开头
      • 等号两边不能有空格

      • 变量名习惯大写

  • 设置环境变量

    • export 变量名=变量值

      • 将 Shell 变量输出为环境变量
    • source 配置文件

      • 让修改后的信息立刻生效
    • echo $变量名

      • 查询环境变量的值
  • 位置参数变量

    • 获取命令行的参数信息

      • ./myshell.sh 10 10
    • 基本语法

      • $n 表示第几个参数

        • $0 就是命令本身
        • $1~9 就是第几个参数
        • ${10~} 10 以后要用大括号括起来
      • $* 表示命令行中所有参数看成一个整体

      • $@ 也是代表命令行所有参数,不过是区别对待

      • $# 表示命令行参数个数

  • 预定义变量

    • 就是 Shell 设计者事先定义好了,直接用就 ok

    • 基本语法

      • $$ PID当前进程号

      • $! 后台运行的最后一个进程的 PID

      • $? 最后一次执行的命令的情况

        • 0 就是正常
        • 非0就是不正常

3.5 运算符

  • $((运算式))

  • $[运算式]

  • expr m + n

    • 乘除取余

      • * / %
    • 如果希望 expr 的结果赋值 还是``

3.6 条件判断

  • 基本语法

    • [ 判断对象 ]

      • 注意对象两边有空格
      • 非空就是 true,空就是 false
  • 常用判断条件

      1. 字符串比较
      • =
      1. 两个整数比较
      • -lt 小于
      • -le 小于等于
      • -eq 等于
      • -gt 大于
      • -ge 大于等于
      • -ne 不等于
    • 3.按照文件权限进行判断

      • -r 有读
      • -w 有写
      • -x 有执行
      1. 按照文件类型
      • -f 文件存在且是个常规文件
      • -e 文件存在
      • -d 文件存在且是个目录

3.7 流程控制

  • if 判断

    • 单分支

      • if [ 条件判断式子 ]
        then
        代码
        fi

        • 如果 if 和 then 在同一行记得在 then 前加;
    • 加上其他分支

      • if [ 条件判断式子 ]
        then
        代码
        else
        其他代码
        fi
    • 多分支

      • if [ 条件判断式子 ]
        then
        代码
        elif [ 条件判断式 ]
        fi
  • case 语句

    • 模板

      • case $变量名 in
        情况1)
        代码
        ;;
        情况2)
        ~
        ;;

        *)
        ~
        ;;
        esac
  • for 循环

    • 语法

      • for 变量 in 值1 值2 值3 …
        do
        代码
        done

        • $*与$@区别
      • for(( 初始值;循环控制条件;变量变化))
        do
        程序
        done

  • while 循环

    • 语法

      • while [ 条件判断式 ]
        do
        代码
        done

3.8 控制台读入

  • read 选项 参数

    • 选项

      • -p 指定读取值时的提示符
      • -t 指定读取值时的等待时间,要是在指定时间内没有输入就直接退出
    • 参数

      • 读来的值给到的变量名

3.9 函数

  • 系统函数

    • basename

      • 返回主要文件名,删除前面的目录名和后缀
      • basename 完整路径 文件后缀
    • dirname

      • 在给定的路径下去除文件名然后返回所在目录
      • dirname 完整路径
  • 自定义函数

    • 语法

      • 定义

        • [ function ] funname()
          {
          Action;
          [return int;]
          }
      • 调用

        • funname [值]
      • 注意:定义的时候开头那个 function 可要可不要,但是那个 funname 后面的 () 是要的。然后就是。函数可以传值进入,跟那个位置函数一样

四.进阶

4.1 日志

  • 日志时一种记录系统的工具

  • 保存位置

    • /var/log
  • 系统常用日志

  • rsyslogd日志管理

    • rsyslogd(Centos7.6)

      • rsyslogd(Centos6.X)

      • 本质是个后台程序与服务

      • 配置文件

        • /etc/rsyslog.conf
      • 查询是否启动

        • ps aux | grep “rsyslog” | grep -v “grep”

          • grep -v XX:除去XX的反向筛选
      • 查询自启动状态

        • systemctl list-unit-files | grep rsyslog
    • logroate

      • 全局日志轮替规则或策略

        • 后台程序自动执行
      • 全局配置文件

        • /etc/logrotate.conf

        • 参数说明

      • 同代路径

        • /etc/logrotate.d
    • 编辑文件时的格式

      • .

        • 第一个 * 代表日志类型
        • 第二个 * 代表日志级别
    • 日志类型

      • anth pam产生的日志
    • 日志类型

      • 从上到下,级别从低到高,记录信息越来越少
    • 日志内容含义解读

      • 由 rsyslogd 记录的文件
  • 日志轮替

    • 含义

      • 将旧的日志移动并改名,当过了一段时间就会删除旧日志
    • 轮替文件命名

      • Centos7用logrotate进行日志轮替

      • 改的方法

        • /etc/logrotate.conf 配置文件中的 dateext参数

          • 如果有就会以日期作为后缀,只需要指定文件个数,多了删除就可以了。
          • 如果没有这个参数,日志文件会自动改名从老的到新的依次XX,XX1,XX2,这样
    • 原理:cron后台程序中会自动运行logrotate

  • 怎末添加自己的日志

    • 1.直接在/etc/logrotate.conf中写
    • 2.在/etc/logrotate.d写
    • 推荐第二种,利于管理和维护
  • 怎末查看内存日志

    • journalctl

      • 查看所有
    • journalctl -n 数字

      • 查看最新 数字条
    • journalctl --since 19:00 --untill 19:10:00

      • 查看这个时间段(可追加日期)
    • journalctl -p err

      • 报错日志
    • journalctl -o verbose

      • 日志详细内容
    • journalctl _PID=1234 _COMM=sshd

      • 在相信日志中查看有这些参数的日志
    • journalctl | grep sshd

4.2 定制 Linux 系统

  • 介绍

  • 原理

    • Linux 启动流程

      • 关键文件

        • kernel 文件

          • vmlinuz-3.10.0-957.e17.x86_64
        • initrd文件

          • initramfs-3.10.0-957.e17.x86_64.img
  • 思路

      1. 在现有的 Linux 系统上加一块硬盘,整好后,有/boot和/区。然后他在现有Linux系统上是/dev/sdb。
      1. 我们把Linux启动的两个关键文件拷贝到这里来
    • 3.然后新开一个 Linux 系统,磁盘直接删了,用我们这个自制的磁盘
      1. 后面需要什么功能就直接将硬盘挂载到正常机上拷贝
  • 步骤

4.3 备份与恢复

  • 方法一

    • 直接把需要备份的文件或者区直接tar打包,然后恢复的时候直接解压覆盖
  • 方法二

    • dump & restore

      • dump

        • 先安装

          • yum -y install dump

            • 那个 restore 会自动安装
        • 分类

          • 分卷备份

          • 增量备份

            • 就是比较两次不同的然后把不同的备份下来(也叫差异化备份)
            • 这个是针对分区,但是如果备份的是文件或者目录。不支持增量备份。
        • 指令

      • restore

        • 语法

          • restore [模式选择][选项]

            • 模式:不可混用每次只能指定一种

              • -C 对比模式,将备份的文件和已存在的文件互相对比

              • -i:交互模式 会一直问你跟你聊天

              • -r 还原模式

                • 如果是增量备份要依次恢复,按数字小到大
              • -t 查看模式 看哈备份的有哪些文件

            • 选项

              • -f 从指定的文件读取备份数据,进行还原操作

4.4 界面管理

  • webmin
  • 宝塔

4.5 Linux0.01源码

有兴趣的同学可以自己研究研究

五.补充

5.1 资源

5.2 多说两句

  • 期末不挂看实操和Shell线程
  • 进阶不必太深入