大家好,又见面了,我是你们的朋友全栈君。
韩顺平图解Linux全面升级 https://www.bilibili.com/video/BV1Sv411r7vd
27 小时 、153 讲, 2021 韩顺平 一周学会Linux
简介
目录
P001_韩顺平图解Linux全面升级_课程内容 20:37
P002_韩顺平图解Linux全面升级_应用领域 05:05
P003_韩顺平图解Linux全面升级_概述 16:37
P004_韩顺平图解Linux全面升级_Linux与Unix 18:09
P005_韩顺平图解Linux全面升级_vmware15.5安装 17:36
P006_韩顺平图解Linux全面升级_CentOS7.6安装 35:15
P007_韩顺平图解Linux全面升级_网络连接三种方式 16:01
P008_韩顺平图解Linux全面升级_虚拟机克隆 09:13
P009_韩顺平图解Linux全面升级_虚拟机快照 09:15
P010_韩顺平图解Linux全面升级_虚拟机迁移删除 06:47
P011_韩顺平图解Linux全面升级_vmtools 20:39
P012_韩顺平图解Linux全面升级_目录结构介绍 07:50
P013_韩顺平图解Linux全面升级_目录结构详解 18:44
P014_韩顺平图解Linux全面升级_远程登录 15:30
P015_韩顺平图解Linux全面升级_远程文件传输 13:58
P016_韩顺平图解Linux全面升级_vi vim快速入门 08:32
P017_韩顺平图解Linux全面升级_vi vim快捷键 19:09
P018_韩顺平图解Linux全面升级_vi vim内容梳理 06:02
P019_韩顺平图解Linux全面升级_关机重启 07:54
P020_韩顺平图解Linux全面升级_登录注销 08:41
P021_韩顺平图解Linux全面升级_用户管理(1) 15:26
P022_韩顺平图解Linux全面升级_用户管理(2) 05:22
P023_韩顺平图解Linux全面升级_用户管理(3) 18:45
P024_韩顺平图解Linux全面升级_用户管理(4) 08:37
P025_韩顺平图解Linux全面升级_运行级别 12:03
P026_韩顺平图解Linux全面升级_找回root密码 08:23
P027_韩顺平图解Linux全面升级_帮助指令 08:46
P028_韩顺平图解Linux全面升级_文件目录指令(1) 15:27
P029_韩顺平图解Linux全面升级_文件目录指令(2) 07:33
P030_韩顺平图解Linux全面升级_文件目录指令(3) 12:43
P031_韩顺平图解Linux全面升级_文件目录指令(4) 14:04
P032_韩顺平图解Linux全面升级_文件目录指令(5) 24:21
P033_韩顺平图解Linux全面升级_文件目录指令(6) 10:08
P034_韩顺平图解Linux全面升级_时间日期指令 07:51
P035_韩顺平图解Linux全面升级_查找指令(1) 13:33
P036_韩顺平图解Linux全面升级_查找指令(2) 08:22
P037_韩顺平图解Linux全面升级_压缩和解压(1) 11:18
P038_韩顺平图解Linux全面升级_压缩和解压(2) 09:59
P039_韩顺平图解Linux全面升级_实用指令小结 04:57
P040_韩顺平图解Linux全面升级_linux组的介绍 07:35
P041_韩顺平图解Linux全面升级_所有者 04:03
P042_韩顺平图解Linux全面升级_所在组 08:56
P043_韩顺平图解Linux全面升级_修改所在组 04:15
P044_韩顺平图解Linux全面升级_rwx权限 15:46
P045_韩顺平图解Linux全面升级_权限说明案例 06:48
P046_韩顺平图解Linux全面升级_修改权限 09:32
P047_韩顺平图解Linux全面升级_修改所有者和所在组 09:15
P048_韩顺平图解Linux全面升级_权限管理应用实例(1) 21:57
P049_韩顺平图解Linux全面升级_权限管理应用实例(2) 17:43
P050_韩顺平图解Linux全面升级_权限管理应用实例(3) 09:50
P051_韩顺平图解Linux全面升级_权限管理应用实例(4) 14:34
P052_韩顺平图解Linux全面升级_crond快速入门 11:01
P053_韩顺平图解Linux全面升级_crond时间规则 05:05
P054_韩顺平图解Linux全面升级_crond应用实例 14:55
P055_韩顺平图解Linux全面升级_at任务调度机制 12:36
P056_韩顺平图解Linux全面升级_at任务调度实例 10:09
P057_韩顺平图解Linux全面升级_任务调度小结 09:49
P058_韩顺平图解Linux全面升级_磁盘分区机制 16:04
P059_韩顺平图解Linux全面升级_增加磁盘应用实例 23:02
P060_韩顺平图解Linux全面升级_磁盘情况查询 07:57
P061_韩顺平图解Linux全面升级_磁盘实用指令 07:24
P062_韩顺平图解Linux全面升级_磁盘分区挂载小结 10:30
P063_韩顺平图解Linux全面升级_NAT网络原理图 13:42
P064_韩顺平图解Linux全面升级_网络配置指令 07:16
P065_韩顺平图解Linux全面升级_网络配置实例 12:10
P066_韩顺平图解Linux全面升级_主机名和hosts映射 22:08
P067_韩顺平图解Linux全面升级_网络配置小结 09:42
P068_韩顺平图解Linux全面升级_进程基本介绍 06:22
P069_韩顺平图解Linux全面升级_ps指令详解 10:21
P070_韩顺平图解Linux全面升级_父子进程 08:21
P071_韩顺平图解Linux全面升级_终止进程 16:15
P072_韩顺平图解Linux全面升级_pstree指令 04:11
P073_韩顺平图解Linux全面升级_服务管理(1) 13:42
P074_韩顺平图解Linux全面升级_服务管理(2) 06:30
P075_韩顺平图解Linux全面升级_服务管理(3) 06:40
P076_韩顺平图解Linux全面升级_服务管理(4) 22:01
P077_韩顺平图解Linux全面升级_服务管理(5) 07:56
P078_韩顺平图解Linux全面升级_动态监控系统(1) 09:49
P079_韩顺平图解Linux全面升级_动态监控系统(2) 08:01
P080_韩顺平图解Linux全面升级_监控网络状态 16:14
P081_韩顺平图解Linux全面升级_进程管理小结 11:02
P082_韩顺平图解Linux全面升级_rpm管理(1) 08:13
P083_韩顺平图解Linux全面升级_rpm管理(2) 07:36
P084_韩顺平图解Linux全面升级_yum 06:47
P085_韩顺平图解Linux全面升级_软件包管理小结 03:14
P086_韩顺平图解Linux全面升级_安装配置JDK8 12:45
P087_韩顺平图解Linux全面升级_安装配置tomcat8 07:16
P088_韩顺平图解Linux全面升级_安装配置idea2020 07:03
P089_韩顺平图解Linux全面升级_安装配置mysql5.7 15:14
P090_韩顺平图解Linux全面升级_小结 02:13
P091_韩顺平图解Linux全面升级_shell编程快速入门 11:41
P092_韩顺平图解Linux全面升级_shell变量 12:49
P093_韩顺平图解Linux全面升级_设置环境变量 09:41
P094_韩顺平图解Linux全面升级_位置参数变量 05:28
P095_韩顺平图解Linux全面升级_预定义变量 04:09
P096_韩顺平图解Linux全面升级_运算符 11:57
P097_韩顺平图解Linux全面升级_条件判断 12:51
P098_韩顺平图解Linux全面升级_单分支多分支 04:20
P099_韩顺平图解Linux全面升级_case语句 04:58
P100_韩顺平图解Linux全面升级_for循环 12:12
P101_韩顺平图解Linux全面升级_while循环 04:26
P102_韩顺平图解Linux全面升级_read获取输入 05:20
P103_韩顺平图解Linux全面升级_系统函数 04:10
P104_韩顺平图解Linux全面升级_自定义函数 05:21
P105_韩顺平图解Linux全面升级_定时备份数据库(1) 07:24
P106_韩顺平图解Linux全面升级_定时备份数据库(2) 25:27
P107_韩顺平图解Linux全面升级_shell编程笔记梳理 03:44
P108_韩顺平图解Linux全面升级_ubuntu安装 09:32
P109_韩顺平图解Linux全面升级_ubuntu中文支持 02:45
P110_韩顺平图解Linux全面升级_ubuntu的root 04:12
P111_韩顺平图解Linux全面升级_hello python 01:42
P112_韩顺平图解Linux全面升级_APT原理机制图 09:45
P113_韩顺平图解Linux全面升级_APT更新源和实例 12:28
P114_韩顺平图解Linux全面升级_ubuntu远程登录和集群 19:24
P115_韩顺平图解Linux全面升级_python定制篇梳理 04:58
P116_韩顺平图解Linux全面升级_centos8安装和介绍 16:13
P117_韩顺平图解Linux全面升级_日志介绍和实例 08:51
P118_韩顺平图解Linux全面升级_日志服务原理图 04:30
P119_韩顺平图解Linux全面升级_日志服务配置文件 11:11
P120_韩顺平图解Linux全面升级_自定义日志服务 05:24
P121_韩顺平图解Linux全面升级_日志轮替介绍 11:21
P122_韩顺平图解Linux全面升级_自定义日志轮替 06:38
P123_韩顺平图解Linux全面升级_日志轮替机制 03:13
P124_韩顺平图解Linux全面升级_内存日志 03:27
P125_韩顺平图解Linux全面升级_日志管理笔记梳理 05:59
P126_韩顺平图解Linux全面升级_定制自己的Linux(1) 09:14
P127_韩顺平图解Linux全面升级_定制自己的Linux(2) 26:32
P128_韩顺平图解Linux全面升级_定制自己的Linux(3) 03:20
P129_韩顺平图解Linux全面升级_阅读Linux内核源码好处 04:57
P130_韩顺平图解Linux全面升级_阅读Linux内核源码技巧 04:55
P131_韩顺平图解Linux全面升级_内核源码阅读及main 13:19
P132_韩顺平图解Linux全面升级_内核升级 14:41
P133_韩顺平图解Linux全面升级_备份与恢复介绍 08:51
P134_韩顺平图解Linux全面升级_数据备份dump 11:45
P135_韩顺平图解Linux全面升级_数据恢复restore 12:38
P136_韩顺平图解Linux全面升级_数据备份恢复梳理 04:06
P137_韩顺平图解Linux全面升级_webmin安装和配置 11:13
P138_韩顺平图解Linux全面升级_webmin功能演示 07:46
P139_韩顺平图解Linux全面升级_bt宝塔介绍和安装 05:45
P140_韩顺平图解Linux全面升级_bt宝塔应用实例 09:13
P141_韩顺平图解Linux全面升级_可视化管理小结 02:27
P142_韩顺平图解Linux全面升级_统计访问量和连接数 14:01
P143_韩顺平图解Linux全面升级_找回Mysql的root密码 05:57
P144_韩顺平图解Linux全面升级_访问量排名和tcpdump 08:45
P145_韩顺平图解Linux全面升级_系统权限划分(1) 17:47
P146_韩顺平图解Linux全面升级_系统权限划分(2) 05:33
P147_韩顺平图解Linux全面升级_权限思考题(有趣) 15:07
P148_韩顺平图解Linux全面升级_CentOS7启动流程详解 12:01
P149_韩顺平图解Linux全面升级_io读写监控 10:55
P150_韩顺平图解Linux全面升级_统计文件个数和行数 12:16
P151_韩顺平图解Linux全面升级_无人值守备份目录 09:44
P152_韩顺平图解Linux全面升级_Linux系统优化策略 23:57
P153_韩顺平图解Linux全面升级_卖油翁和老黄牛 06:09
01基础篇
20210206 — START
P001_韩顺平图解Linux全面升级_课程内容 20:37
P002_韩顺平图解Linux全面升级_应用领域 05:05
P003_韩顺平图解Linux全面升级_概述 16:37
www.kernel.org
当前最新是 5.10 版的内核
P004_韩顺平图解Linux全面升级_Linux与Unix 18:09
第三章 vm 和 linux 安装
P005_韩顺平图解Linux全面升级_vmware15.5安装 17:36
下载官方地址: https://www.vmware.com/cn.html
下载好用地址: https://www.nocmd.com/windows/740.html
P006_韩顺平图解Linux全面升级_CentOS7.6安装 35:15
https://mirrors.163.com/centos
https://mirrors.aliyun.com/centos —-不可用
P007_韩顺平图解Linux全面升级_网络连接三种方式 16:01
网络连接的三种模式
模式1.桥接模式
虚拟系统可以和外部系统通讯,但是容易造成IP冲突
模式2.NAT模式
网络地址转换模式,虚拟系统可以和外部通讯,不造成IP冲突;
注意外部不可以访问内部
模式3.主机模式
独立的系统,不与外部联系
P008_韩顺平图解Linux全面升级_虚拟机克隆 09:13
P009_韩顺平图解Linux全面升级_虚拟机快照 09:15
P010_韩顺平图解Linux全面升级_虚拟机迁移删除 06:47
P011_韩顺平图解Linux全面升级_vmtools 20:39
gcc -v : 可以查看是否有安装gcc
将其放到 /opt 目录
/mnt/hgfs/
第四章 linux 目录结构
P012_韩顺平图解Linux全面升级_目录结构介绍 07:50
P013_韩顺平图解Linux全面升级_目录结构详解 18:44
第五章 linux 实操篇 远程登录
P014_韩顺平图解Linux全面升级_远程登录 15:30
下载 free – for home school 版本 地址
https://www.netsarang.com/en/free-for-home-school/
P015_韩顺平图解Linux全面升级_远程文件传输 13:58
第六章 linux 实操篇 vi和vim
P016_韩顺平图解Linux全面升级_vi vim快速入门 08:32
P017_韩顺平图解Linux全面升级_vi vim快捷键 19:09
VIM快捷键使用
执行动作 | 所在模式 | 具体快捷键操作 |
---|---|---|
1.拷贝 | 一般模式 | 拷贝当前行== yy ; 拷贝当前行向下5行 ==5yy ; 黏贴用 p |
2. 删除 | 一般模式 | 删除当前行 dd ; 删除当前行向下5行 5dd |
3.文件中查找 | 一般模式 、命令行模式 | /关键字 ; 回车 查找; n 下一个; |
4. 设置行号 | 命令行模式 | :set nu ; :set nonu ; |
5. 撤销 | 一般模式 | u = 撤销 |
6. 快速定位 | 一般模式 | gg=首行 ; G = 末行 ; |
7.快速定位某行 | 一般模式 | 20 , shift + g == 快速定位到20行 |
P018_韩顺平图解Linux全面升级_vi vim内容梳理 06:02
第七章 linux 实操篇 开机 重启
P019_韩顺平图解Linux全面升级_关机重启 07:54
关机&重启命令
执行动作 | 所在模式 |
---|---|
shutdown -h now | 立刻进行关机 |
shutdown | 1分钟后会关机(等同下面) |
shutdown -h 1 | 1分钟后会关机 |
shutdown -r now | 现在重新启动计算机 |
halt | 关机,作用和上面一样 |
reboot | 现在重新启动计算机 |
sync | 将内存数据同步到磁盘 |
P020_韩顺平图解Linux全面升级_登录注销 08:41
- 开始以tom身份登录
- su root 切换到root 用户
- 执行相关操作
- 在root 用户下 ,执行 logout 指令, 切换回tom 用户
- 在tom用户下,再次执行logout 退出
第八章 linux实操篇 用户管理
20210207
P021_韩顺平图解Linux全面升级_用户管理(1) 15:26
https://www.bilibili.com/video/BV1Sv411r7vd?p=21
20210317 继续
–新建用户 设置密码
----- useradd milan ;默认创建家目录 /home/milan
[root@shell37 home]# useradd milan ----新增用户milan
[root@shell37 home]# passwd milan --给milan设置密码
Changing password for user milan.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
--- 显示所有用户
cat /etc/passwd | awk -F: '$3>=500' | cut -f 1 -d :
输出/etc/passwd文件,对于每一行进行处理,判断以冒号:分割的第三个元素,抽取其中的大于500的行,并用cut输出第一列(用户账号名)。
删除用户 king ---保留家目录
userdel king
[root@shell37 home]# pwd
/home
[root@shell37 home]# ls
kinghome leo milan
--- 删除用户 milan 不保留家目录 (要慎重操作)
[root@shell37 home]# pwd
/home
[root@shell37 home]# ls
kinghome leo milan
[root@shell37 home]# userdel -r milan
[root@shell37 home]# ls
kinghome leo
P022_韩顺平图解Linux全面升级_用户管理(2) 05:22
[root@shell37 home]# id leo
uid=1000(leo) gid=1000(leo) groups=1000(leo)
[root@shell37 home]# id root
uid=0(root) gid=0(root) groups=0(root)
[root@shell37 home]# id milan
id: milan: no such user
[root@shell37 home]# useradd jack
[root@shell37 home]# passwd jack
Changing password for user jack.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@shell37 home]# su - jack
[jack@shell37 ~]$
[jack@shell37 ~]$ pwd
/home/jack
[jack@shell37 ~]$ su - root
Password:
Last login: Wed Mar 17 06:58:33 PDT 2021 on pts/0
[root@shell37 ~]# logout
[jack@shell37 ~]$ logout
[root@shell37 ~]# whoami
root
[root@shell37 ~]# who am i
root pts/0 2021-03-17 07:12 (192.168.121.1)
[root@shell37 ~]# su - jack
Last login: Wed Mar 17 07:11:14 PDT 2021 on pts/0
[jack@shell37 ~]$ who am i
root pts/0 2021-03-17 07:12 (192.168.121.1)
P023_韩顺平图解Linux全面升级_用户管理(3) 18:45
[root@shell37 ~]# groupadd wudang ---武当
[root@shell37 ~]# useradd -g wudang zwj
[root@shell37 ~]# id zwj ---张无忌
uid=1002(zwj) gid=1003(wudang) groups=1003(wudang)
---- 张无忌 划归 魔教 门下
[root@shell37 ~]# groupadd mojiao
[root@shell37 ~]# usermod -g mojiao zwj
[root@shell37 ~]# id zwj
uid=1002(zwj) gid=1004(mojiao) groups=1004(mojiao)
[root@shell37 ~]# cat /etc/passwd
...
tcpdump:x:72:72::/:/sbin/nologin
leo:x:1000:1000:CentOS7:/home/leo:/bin/bash
mongod:x:987:981:mongod:/var/lib/mongo:/bin/false
jack:x:1001:1001::/home/jack:/bin/bash
zwj:x:1002:1004::/home/zwj:/bin/bash
[root@shell37 ~]# cat /etc/shadow
tcpdump:!!:18557::::::
leo:$1$oxzRhXx2$3.4d0qInl.vMfZJCW25Pi1:18557:0:99999:7:::
mongod:!!:18581::::::
jack:$1$naZ6CVhI$OEJlUnnEECkDCXfhTKEIe0:18703:0:99999:7::: ---设置过密码的
zwj:!!:18703:0:99999:7::: -- zwj 没有设置密码,所以没有数据是!!
[root@shell37 ~]# cat /etc/group
.....
tcpdump:x:72:
leo:x:1000:
mongod:x:981:
docker:x:980:
jack:x:1001:
wudang:x:1003:
mojiao:x:1004:
P024_韩顺平图解Linux全面升级_用户管理(4) 08:37
第九章 Linux 实操篇 使用指令
P025_韩顺平图解Linux全面升级_运行级别 12:03
[root@shell37 bin]# init 5 --- 切换到图形界面
[root@shell37 bin]#
[root@shell37 bin]# init 3 --- 切换到命令行界面
[root@shell37 bin]# systemctl get-default
graphical.target
[root@shell37 bin]# systemctl set-default multi-user.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.
[root@shell37 bin]# systemctl get-default
multi-user.target
P026_韩顺平图解Linux全面升级_找回root密码 08:23
详细图示过程,见单独的文章
https://blog.csdn.net/wei198621/article/details/114956502
具体步骤
1.首先进入系统,进入开机界面,选中 上面的系统,按e进入编辑界面 (默认5秒内操作好,来回切换系统不耗费时间)
2.进入编辑页面,将光标移动到“Linux16” 开头的行,在最后面输入 init=/bin/sh ,输入完成后按ctrl +x 键 进入单用户模式
4.进入单用户模式后,启动如图, 输入 mount -o remount,rw /
注意单词间空格(mount空格-o空格remount,rw空格/ ),然后回车
5.在新的一行后面输入 passwd , 然后回车,
输入密码
再次输入密码
6.此处输入 touch /.autorelabel (touch空格/.autorelabel) 完成后回车
7.输入 exec /sbin/init (exec空格/sbin/init) 然后回车
8.等待重启
P027_韩顺平图解Linux全面升级_帮助指令 08:46
P028_韩顺平图解Linux全面升级_文件目录指令(1) 15:27
P029_韩顺平图解Linux全面升级_文件目录指令(2) 07:33
P030_韩顺平图解Linux全面升级_文件目录指令(3) 12:43
P031_韩顺平图解Linux全面升级_文件目录指令(4) 14:04
P032_韩顺平图解Linux全面升级_文件目录指令(5) 24:21
[root@hell39 ~]# head -n 5 anaconda-ks.cfg
#version=DEVEL
# System authorization information
auth --useshadow --enablemd5
# Install OS instead of upgrade
install
[root@hell39 ~]# tail -n 5 anaconda-ks.cfg
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
P033_韩顺平图解Linux全面升级_文件目录指令(6) 10:08
[root@hell39 home]# ln -s /root/ myroot
[root@hell39 home]# ll
total 4
drwxr-xr-x. 2 root root 50 Mar 14 01:31 ceshi
drwxr-xr-x. 2 root root 25 Mar 14 06:32 docker-test-volume
drwx------. 15 leo leo 4096 Dec 15 06:59 leo
drwxr-xr-x. 2 root root 60 Mar 14 07:53 mydockerfile
lrwxrwxrwx. 1 root root 6 Mar 17 09:52 myroot -> /root/
[root@hell39 home]# cd myroot/
[root@hell39 myroot]# pwd
/home/myroot
[root@hell39 myroot]# ll
total 16
-rw-r--r--. 1 root root 0 Mar 13 22:54 a124.txt
-rw-------. 1 root root 2761 Oct 22 08:55 anaconda-ks.cfg
drwxr-xr-x. 4 root root 4096 Nov 18 08:40 data
drwxr-xr-x. 2 root root 6 Dec 5 03:22 Desktop
drwxr-xr-x. 2 root root 6 Dec 5 03:22 Documents
drwxr-xr-x. 2 root root 6 Dec 5 03:22 Downloads
drwxr-xr-x. 2 root root 6 Dec 5 03:22 Music
-rw-r--r--. 1 root root 139 Mar 17 09:47 mycal.txt
-rw-------. 1 root root 2041 Oct 22 08:54 original-ks.cfg
drwxr-xr-x. 2 root root 6 Dec 5 03:22 Pictures
drwxr-xr-x. 2 root root 6 Dec 5 03:22 Public
drwxr-xr-x. 2 root root 6 Dec 5 03:22 Templates
drwxr-xr-x. 2 root root 6 Dec 5 03:22 Videos
[root@hell39 myroot]# history 10
728 link -s /root/ myroot
729 clear
730 ln -s /root/ myroot
731 ll
732 cd myroot/
733 pwd
734 ll
735 history
736 history --help
737 history 10
[root@hell39 myroot]# !733
pwd
/home/myroot
[root@hell39 myroot]#
P034_韩顺平图解Linux全面升级_时间日期指令 07:514
20210318
[root@shell37 ~]# date +%y
21
[root@shell37 ~]# date +%Y
2021
[root@shell37 ~]# date +%m
03
[root@shell37 ~]# date +%d
18
[root@shell37 ~]# date "+%Y-%m-%d %H:%M:%S"
2021-03-18 06:50:04
P035_韩顺平图解Linux全面升级_查找指令(1) 13:33
[root@shell37 shell]# find /opt -size +200M
[root@shell37 shell]# find -name time.sh
./time.sh
[root@shell37 shell]# updatedb
[root@shell37 shell]# locate time.sh
/opt/shell/time.sh
[root@shell37 shell]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
[root@shell37 shell]# which reboot
/usr/sbin/reboot
P036_韩顺平图解Linux全面升级_查找指令(2) 08:22
[root@shell37 shell]# cat time.sh | grep sleep
sleep 1
[root@shell37 shell]# cat -n time.sh | grep sleep
4 sleep 1
[root@shell37 shell]# cat time.sh | grep -n sleep
4: sleep 1
[root@shell37 shell]# grep -n "sleep" ./
grep: ./: Is a directory
[root@shell37 shell]# grep -n "sleep" time.sh
4: sleep 1
P037_韩顺平图解Linux全面升级_压缩和解压(1) 11:18
[root@shell37 shell2]# ll
total 6368
drwxr-xr-x. 4 root root 4096 Mar 18 22:29 shell
-rw-r--r--. 1 root root 6510585 Mar 18 22:28 shell2.zip
-rw-r--r--. 1 root root 46 Mar 18 22:30 whiletest.sh
[root@shell37 shell2]# gzip whiletest.sh
[root@shell37 shell2]# ll
total 6368
drwxr-xr-x. 4 root root 4096 Mar 18 22:29 shell
-rw-r--r--. 1 root root 6510585 Mar 18 22:28 shell2.zip
-rw-r--r--. 1 root root 75 Mar 18 22:30 whiletest.sh.gz
[root@shell37 shell2]# gunzip whiletest.sh.gz
[root@shell37 shell2]# ll
total 6368
drwxr-xr-x. 4 root root 4096 Mar 18 22:29 shell
-rw-r--r--. 1 root root 6510585 Mar 18 22:28 shell2.zip
-rw-r--r--. 1 root root 46 Mar 18 22:30 whiletest.sh
[root@shell37 shell2]# ll
total 6364
drwxr-xr-x. 4 root root 4096 Mar 9 07:22 shell
-rw-r--r--. 1 root root 6510585 Mar 18 22:28 shell2.zip
[root@shell37 shell2]# zip -r shell2.zip ./shell/
[root@shell37 shell2]# ll
total 6364
drwxr-xr-x. 4 root root 4096 Mar 9 07:22 shell
-rw-r--r--. 1 root root 6510585 Mar 18 22:28 shell2.zip
P038_韩顺平图解Linux全面升级_压缩和解压(2) 09:59
[root@shell37 shell2]# ll
total 6368
drwxr-xr-x. 4 root root 4096 Mar 18 22:29 shell
-rw-r--r--. 1 root root 6510585 Mar 18 22:28 shell2.zip
-rw-r--r--. 1 root root 46 Mar 18 22:30 whiletest.sh
[root@shell37 shell2]# tar -zcvf 22.tar.gz whiletest.sh
whiletest.sh
[root@shell37 shell2]# ll
total 6372
-rw-r--r--. 1 root root 158 Mar 18 22:36 22.tar.gz
drwxr-xr-x. 4 root root 4096 Mar 18 22:29 shell
-rw-r--r--. 1 root root 6510585 Mar 18 22:28 shell2.zip
-rw-r--r--. 1 root root 46 Mar 18 22:30 whiletest.sh
[root@shell37 shell2]# tar -zxvf 22.tar.gz
whiletest.sh
---将*** 解压到文件夹 shell2dir 下面
[root@shell37 shell2]# tar -zxvf 22.tar.gz -C shell2dir/
whiletest.sh
P039_韩顺平图解Linux全面升级_实用指令小结 04:57
第十章 Linux实操篇 组管理和权限管理
P040_韩顺平图解Linux全面升级_linux组的介绍 07:35
P041_韩顺平图解Linux全面升级_所有者 04:03
[root@shell37 home]# ls -ahl
total 8.0K
drwxr-xr-x. 6 root root 56 Mar 17 07:20 .
dr-xr-xr-x. 19 root root 4.0K Mar 16 07:51 ..
drwx------. 5 jack jack 128 Mar 17 07:11 jack
drwx------. 3 zwj 1002 78 Mar 17 06:52 kinghome
drwx------. 15 leo leo 4.0K Dec 15 06:59 leo
drwx------. 3 zwj mojiao 78 Mar 17 07:20 zwj
[root@shell37 home]# chown leo zwj
[root@shell37 home]# ls -ahl
total 8.0K
drwxr-xr-x. 6 root root 56 Mar 17 07:20 .
dr-xr-xr-x. 19 root root 4.0K Mar 16 07:51 ..
drwx------. 5 jack jack 128 Mar 17 07:11 jack
drwx------. 3 zwj 1002 78 Mar 17 06:52 kinghome
drwx------. 15 leo leo 4.0K Dec 15 06:59 leo
drwx------. 3 leo mojiao 78 Mar 17 07:20 zwj
P042_韩顺平图解Linux全面升级_所在组 08:56
[root@shell37 home]# groupadd monster
[root@shell37 home]# useradd -g monster fox
[root@shell37 home]# id fox
uid=1003(fox) gid=1005(monster) groups=1005(monster)
[root@shell37 home]#
[fox@shell37 ~]$ pwd
/home/fox
[fox@shell37 ~]$ touch ok.txt
[fox@shell37 ~]$ ll
total 0
-rw-r--r--. 1 fox monster 0 Mar 18 23:04 ok.txt
[fox@shell37 ~]$
[root@shell37 ~]# clear
[root@shell37 ~]# groupadd fruit
[root@shell37 ~]# touch orange.txt
[root@shell37 ~]# ll
[root@shell37 ~]# chgrp fruit orange.txt
[root@shell37 ~]# ll
P043_韩顺平图解Linux全面升级_修改所在组 04:15
[root@shell37 ~]# clear
[root@shell37 ~]# id zwj
uid=1002(zwj) gid=1004(mojiao) groups=1004(mojiao)
[root@shell37 ~]# cat /etc/group
[root@shell37 ~]# cat /etc/group | grep wudang
wudang:x:1003:
[root@shell37 ~]# usermod -g wudang zwj
[root@shell37 ~]# id zwj
uid=1002(zwj) gid=1003(wudang) groups=1003(wudang)
P044_韩顺平图解Linux全面升级_rwx权限 15:46
P045_韩顺平图解Linux全面升级_权限说明案例 06:48
[root@shell38 dev]# ll /dev
total 0
crw-rw----. 1 root video 10, 175 Mar 18 06:45 agpgart
crw-------. 1 root root 10, 235 Mar 18 06:45 autofs
drwxr-xr-x. 2 root root 140 Mar 18 06:45 block
P046_韩顺平图解Linux全面升级_修改权限 09:32
-rwxrw---x. 1 root root 46 Mar 6 00:56 whiletest.sh
[root@shell37 shell]# chmod u=rwx,g=rw,o=x whiletest.sh
P047_韩顺平图解Linux全面升级_修改所有者和所在组 09:15
chown tom /home/test2.txt
chown -R tom /home/test
chgrp newgroup 文件/目录
P048_韩顺平图解Linux全面升级_权限管理应用实例(1) 21:57
P049_韩顺平图解Linux全面升级_权限管理应用实例(2) 17:43
P050_韩顺平图解Linux全面升级_权限管理应用实例(3) 09:50
目录 rwx 权限
x: 可以进入到该目,cd 到该目录
r: 是否可以在目录下执行 ll 读取目录下的数据
w: 执行更改 ,删除操作
P051_韩顺平图解Linux全面升级_权限管理应用实例(4) 14:34
梳理知识点
第十一章 定时任务调度
P052_韩顺平图解Linux全面升级_crond快速入门 11:01
crontab
P053_韩顺平图解Linux全面升级_crond时间规则 05:05
P054_韩顺平图解Linux全面升级_crond应用实例 14:55
P055_韩顺平图解Linux全面升级_at任务调度机制 12:36
at 定时任务
P056_韩顺平图解Linux全面升级_at任务调度实例 10:09
P057_韩顺平图解Linux全面升级_任务调度小结 09:49
crontab 定时任务调度
crontab -e / -l / -r
service crond restart
at 定时任务
at ****
Ctrl + D 两次 结束at命令的输入
很多种时间定义,用时候再找,没有必要学
atq ; --------- 查看有没有at
atrm 编号; ----- 删除某个at队列
第十二章 linux磁盘分区、挂载
P058_韩顺平图解Linux全面升级_磁盘分区机制 16:04
lsblk —- list block
[root@shell37 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 300M 0 part /boot
├─sda2 8:2 0 2G 0 part [SWAP]
└─sda3 8:3 0 17.7G 0 part /
sr0 11:0 1 1024M 0 rom
[root@shell37 ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs 8786eecf-a821-4cbe-9487-c1928e125036 /boot
├─sda2 swap fc0a630f-5a4d-4489-b58f-d9e652a8d69e [SWAP]
└─sda3 xfs dd082c19-0431-4fce-9c8d-b84dca3dfad5 /
sr0
[root@shell37 ~]#
P059_韩顺平图解Linux全面升级_增加磁盘应用实例 23:02
linux vm 虚拟机挂载硬盘
内容比较多,详见单独文章
https://blog.csdn.net/wei198621/article/details/115023640
---- 查看对应关系
[root@shell37 dev]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 300M 0 part /boot
├─sda2 8:2 0 2G 0 part [SWAP]
└─sda3 8:3 0 17.7G 0 part /
sdb 8:16 0 1G 0 disk
└─sdb2 8:18 0 1023M 0 part ------看到 sdb2已经创建
P060_韩顺平图解Linux全面升级_磁盘情况查询 07:57
[root@shell37 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 12G 6.5G 64% /
devtmpfs 471M 0 471M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 8.1M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sdb2 991M 2.6M 922M 1% /newdisk
/dev/sda1 297M 147M 151M 50% /boot
tmpfs 98M 0 98M 0% /run/user/0
[root@shell37 ~]#
最简单的 du 指令是 du /opt ,常用的 要加上 –max-depth 参数
[root@shell37 opt]# du --max-depth=1 /opt
0 /opt/rh
660332 /opt/software
20688 /opt/shell
8 /opt/schwing
0 /opt/containerd
0 /opt/schwing-web
0 /opt/schwing-web-log
16164 /opt/idea
14192 /opt/shell2
0 /opt/shell20210319
717752 /opt
[root@shell37 opt]# du -hac --max-depth=1 /opt
0 /opt/rh
645M /opt/software
21M /opt/shell
8.0K /opt/schwing
0 /opt/containerd
0 /opt/schwing-web
0 /opt/schwing-web-log
16M /opt/idea
4.0K /opt/time.sh
6.3M /opt/myshell.zip
14M /opt/shell2
0 /opt/shell20210319
4.0K /opt/cron.txt
701M /opt
701M total
P061_韩顺平图解Linux全面升级_磁盘实用指令 07:24
----- 显示所有的 /opt 目录下 (一级)文件 文件夹
[root@shell37 opt]# ls -l /opt
total 6372
drwx--x--x. 4 root root 28 Mar 12 18:43 containerd
-rw-r--r--. 1 root root 716 Mar 19 21:16 cron.txt
drwxr-xr-x. 2 root root 66 Mar 16 09:16 idea
-rw-r--r--. 1 root root 6510585 Mar 18 22:24 myshell.zip
drwxr-xr-x. 2 root root 6 Oct 30 2018 rh
drwxr-xr-x. 2 root root 72 Mar 12 21:44 schwing
drwxr-xr-x. 6 root root 100 Mar 12 20:31 schwing-web
drwxr-xr-x. 2 root root 6 Mar 12 20:31 schwing-web-log
drwxr-xr-x. 4 root root 4096 Mar 9 07:22 shell
drwxr-xr-x. 4 root root 91 Mar 18 22:42 shell2
drwxr-xr-x. 2 root root 6 Mar 19 05:56 shell20210319
drwxr-xr-x. 4 root root 282 Mar 5 06:16 software
-rw-r--r--. 1 root root 83 Mar 18 22:18 time.sh
------ 显示 /opt 目录下 (以-开头的)文件
[root@shell37 opt]# ls -l /opt| grep "^-"
-rw-r--r--. 1 root root 716 Mar 19 21:17 cron.txt
-rw-r--r--. 1 root root 6510585 Mar 18 22:24 myshell.zip
-rw-r--r--. 1 root root 83 Mar 18 22:18 time.sh
------列出 /opt 目录下 (以-开头的)文件 的个数
[root@shell37 opt]# ls -l /opt| grep "^-" | wc -l
3
------列出 /opt 目录下 (以d开头的)文件夹 的个数
[root@shell37 opt]# ls -l /opt| grep "^d" | wc -l
10
------递归列出所有 /opt 目录下 (以-开头的)文件 的个数
[root@shell37 opt]# ls -lR /opt| grep "^-" | wc -l
2512
------递归列出所有 /opt 目录下 (以d开头的)文件夹 的个数
[root@shell37 opt]# ls -lR /opt| grep "^d" | wc -l
269
tree 默认没有安装
[root@shell37 opt]# tree --help
bash: tree: command not found...
[root@shell37 opt]#
[root@shell37 opt]# yum install -y tree
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
[root@shell37 opt]# tree -L 1 /opt
/opt
├── containerd
├── cron.txt
├── idea
├── myshell.zip
├── rh
├── schwing
├── schwing-web
├── schwing-web-log
├── shell
├── shell2
├── shell20210319
├── software
└── time.sh
P062_韩顺平图解Linux全面升级_磁盘分区挂载小结 10:30
lsblk
lsblk -f
fdisk /dev/sdb
---格式化
mkfs -t ext4 /dev/sdb1
-----挂载
mount /dev/sdb1 /newdisk
-----卸载
umount /dev/sdb1
-----注意命令挂载,重启后分区失效
---- 编辑 /et/fstab 让挂载永久生效
-----磁盘整体情况查询
df -h
-----目录情况查询
du -hac --max-depth /opt
---工作几个使用的查询磁盘使用情况语句
tree 默认centOS 没有安装,需要安装后使用
yum install -y tree
tree -L 2 /opt
第十三章 网络配置
P063_韩顺平图解Linux全面升级_NAT网络原理图 13:42
vmware 上面的192.168.121.37 地址
[root@shell37 opt]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.121.37 netmask 255.255.255.0 broadcast 192.168.121.255
inet6 fe80::a2cd:d26a:151d:8896 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:b0:37:c7 txqueuelen 1000 (Ethernet)
RX packets 6951 bytes 7719128 (7.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2287 bytes 352213 (343.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
--------本机ipconfig 后显示 VMnet8
以太网适配器 VMware Network Adapter VMnet8:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::d8ca:d064:1bb2:f289%10
IPv4 地址 . . . . . . . . . . . . : 192.168.121.1
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . :
P064_韩顺平图解Linux全面升级_网络配置指令 07:16
P065_韩顺平图解Linux全面升级_网络配置实例 12:10
[root@shell37 opt]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
service network start
reboot
P066_韩顺平图解Linux全面升级_主机名和hosts映射 22:08
设置主机名
----显示主机名
[root@shell37 opt]# hostname
shell37
[root@shell37 opt]# cat /etc/hostname
shell37
设置host映射
windos: c:\Windows\System32\drivers\etc\hosts
linux: /etc/hosts
域名解析过程
1.浏览器缓存
2.本地计算机中的DNS缓存 ipconfig /displaydns 可以查看
3. hosts文件中的 ip 域名 对应关系
4.外网真正的DNS服务器
----显示本地DNS缓存
C:\Users\wei19>ipconfig /displaydns
P067_韩顺平图解Linux全面升级_网络配置小结 09:42
网络配置原理
查看虚拟机的 IP 网关 等信息
ping www.baidu.com
vim /etc/sysconfig/network-scripts/ifcfg-ens33
vim /etc/hosts
C:\Windows\System32\dirvers\etc\hosts
service network restart
reboot
hostnam
vim /etc/hostname
第十四章 进程管理
P068_韩顺平图解Linux全面升级_进程基本介绍 06:22
P069_韩顺平图解Linux全面升级_ps指令详解 ps -aux 10:21
ps -aux --------- 查看系统中正在运行的进程
[root@shell37 opt]# ps -aux | grep sshd
root 4027 0.0 0.0 112708 976 pts/0 S+ 01:13 0:00 grep --color=auto sshd
root 6883 0.0 0.0 112756 716 ? Ss Mar19 0:00 /usr/sbin/sshd -D
root 7924 0.0 0.0 160848 912 ? Ss Mar19 0:00 sshd: root@pts/0
[root@shell37 opt]#
P070_韩顺平图解Linux全面升级_父子进程 ps -ef 08:21
ps -ef : 可以看到父进程号
[root@shell37 opt]# ps -ef|more
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Mar19 ? 00:00:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0 0 Mar19 ? 00:00:00 [kthreadd]
root 3 2 0 Mar19 ? 00:00:01 [ksoftirqd/0]
root 5 2 0 Mar19 ? 00:00:00 [kworker/0:0H]
root 7 2 0 Mar19 ? 00:00:00 [migration/0]
ps -aux 查看某系统进程占用内存 cpu 资源情况
[root@shell37 opt]# ps -axu|more
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.4 193868 4584 ? Ss Mar19 0:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0.0 0.0 0 0 ? S Mar19 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Mar19 0:01 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< Mar19 0:00 [kworker/0:0H]
P071_韩顺平图解Linux全面升级_终止进程 16:15
—开启一个新终端,用 jack2 登录
[root@shell37 ~]# ssh jack2@192.168.121.37
jack2@192.168.121.37's password:
Last login: Fri Mar 19 06:03:16 2021 from shell37
[jack2@shell37 ~]$ ll
total 0
-rw-r--r--. 1 jack2 police 0 Mar 19 06:04 jack2.txt
[jack2@shell37 ~]$
---------
---------- root 所在terminal 执行 kill 我的登录进程后,我被踢出了
[jack2@shell37 ~]$ Connection to 192.168.121.37 closed by remote host.
Connection to 192.168.121.37 closed.
—在原有root 登录的终端,可以看到
[root@shell37 opt]# ps -ef | grep ssh
root 6883 1 0 Mar19 ? 00:00:00 /usr/sbin/sshd -D
root 7924 6883 0 Mar19 ? 00:00:00 sshd: root@pts/0,pts/1
root 16102 13939 0 01:37 pts/1 00:00:00 ssh jack2@192.168.121.37
root 16103 6883 0 01:37 ? 00:00:00 sshd: jack2 [priv] ------------------- 此为jack2 登录的进程
jack2 16249 16103 0 01:38 ? 00:00:00 sshd: jack2@pts/2
root 16559 7943 0 01:38 pts/0 00:00:00 grep --color=auto ssh
root 61977 61758 0 Mar19 ? 00:00:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "env GNOME_SHELL_SESSION_MODE=classic gnome-session --session gnome-classic"
--------kill 16103 后 jack2 被强制退出了
[root@shell37 opt]# kill 16103
关闭SSH服务,查看效果
------6883 为ssh 服务本身,如果杀死,没有办法远程了 ,实际应该是关闭22端口
[root@shell37 opt]# ps -axu |grep sshd
root 6883 0.0 0.0 112756 972 ? Ss Mar19 0:00 /usr/sbin/sshd -D
root 7924 0.0 0.1 160848 1300 ? Ss Mar19 0:00 sshd: root@pts/0,pts/1
root 22879 0.0 0.0 112708 976 pts/0 S+ 01:51 0:00 grep --color=auto sshd
---- 删除后执行登录,提示失败
[root@shell37 ~]# ssh root@192.168.121.37
ssh: connect to host 192.168.121.37 port 22: Connection refused
重新开启服务
-------- 启动ssh 服务
[root@shell37 ~]# /bin/systemctl start sshd.service
[root@shell37 ~]#
-----重新连接
[root@shell37 ~]# ssh jack2@192.168.121.37
jack2@192.168.121.37's password:
Last login: Sat Mar 20 01:38:08 2021 from shell37
[jack2@shell37 ~]$
killall 演示
[root@shell37 opt]# killall gedit
P072_韩顺平图解Linux全面升级_pstree指令 04:11
[root@shell37 opt]# pstree
[root@shell37 opt]# pstree -p -----显示进程ID
[root@shell37 opt]# pstree -u ---- 显示进程所属用户
P073_韩顺平图解Linux全面升级_服务管理(1) 13:42
后台程序/守护进程/服务
service 服务名 [start|stop|restart|reload|status]
7.0 以后用 systemctl 替换 service ,还可以使用 service 的程序在 /etc/init.d 目录下
[root@shell37 init.d]# cd /etc/init.d
[root@shell37 init.d]# ll
total 40
-rw-r--r--. 1 root root 18281 Aug 24 2018 functions
-rwxr-xr-x. 1 root root 4569 Aug 24 2018 netconsole
-rwxr-xr-x. 1 root root 7923 Aug 24 2018 network
-rw-r--r--. 1 root root 1160 Oct 30 2018 README
[root@shell37 init.d]# service netconsole status
netconsole module not loaded
[root@shell37 init.d]# service network status
Configured devices:
lo ens33
Currently active devices:
lo ens33 virbr0 br-479c90ff8129 br-93809f7c3dbc docker0
[root@shell37 init.d]#
[root@shell37 ~]# service network status
Configured devices:
lo ens33
Currently active devices:
lo ens33 virbr0 br-479c90ff8129 br-93809f7c3dbc docker0
[root@shell37 ~]# service network stop
Stopping network (via systemctl): [ OK ]
[root@shell37 ~]#
setup 可以看到所有的服务
P074_韩顺平图解Linux全面升级_服务管理(2) 06:30
服务的运行级别
常用的是 3 5 两个运行级别
[root@shell37 ~]# systemctl get-default
multi-user.target ---- 默认3 级别
[root@shell37 ~]# systemctl set-default graphical.target ------ 修改为5级别
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.
[root@shell37 ~]# systemctl get-default ----再次查看是5 级别
graphical.target
P075_韩顺平图解Linux全面升级_服务管理(3) 06:40
[root@shell37 ~]# chkconfig --list
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@shell37 ~]# chkconfig --level 1 network on
[root@shell37 ~]# chkconfig --list
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:on 2:on 3:on 4:on 5:on 6:off
[root@shell37 ~]#
P076_韩顺平图解Linux全面升级_服务管理(4) 22:01
service 服务名 [start|stop|restart|status] 如: service network stop
systemctl [start|stop|restart|status] 服务名 如:systemctl stop network
//
service 管理的服务在 /etc/init.d — 由于 /etc/init.d 是个链接 init.d -> rc.d/init.d == ls -l rc.d/init.d
systemctl 管理的服务在 /usr/lib/systemd/system — ls -l /usr/lib/systemd/system
[root@shell37 etc]# systemctl is-enabled firewalld
disabled
[root@shell37 etc]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
[root@shell37 etc]# systemctl list-unit-files | grep fire
firewalld.service disabled
[root@shell37 etc]# systemctl enable firewalld
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.
[root@shell37 etc]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
[root@shell37 etc]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@shell37 etc]# systemctl is-enabled firewalld
disabled
[root@shell37 etc]# systemctl start firewalld
[root@shell37 etc]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: active (running) since Sat 2021-03-20 06:39:53 PDT; 7s ago
Docs: man:firewalld(1)
Main PID: 93179 (firewalld)
Tasks: 2
Memory: 30.0M
CGroup: /system.slice/firewalld.service
└─93179 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
Mar 20 06:39:51 shell37 systemd[1]: Starting firewalld - dynamic firewall daemon...
Mar 20 06:39:53 shell37 systemd[1]: Started firewalld - dynamic firewall daemon.
--- 当37 防火墙开启 无法telnet 到上面去,显示如下所示
[root@shell38 ~]# telnet 192.168.121.37 111
Trying 192.168.121.37...
telnet: connect to address 192.168.121.37: No route to host
--- 当37 防火墙关闭 正常连接上 37 111 端口的提示 (比较怪异,接受吧,中年! )
[root@shell38 ~]# telnet 192.168.121.37 111
Trying 192.168.121.37...
Connected to 192.168.121.37.
Escape character is '^]'.
P077_韩顺平图解Linux全面升级_服务管理(5) 07:56
基本信息
基础状态
192.168.121.37 —- 被访问机器
192.168.121.38 —- 访问的机器
[root@shell37 ~]# netstat -anp |more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 6964/mongod
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd ----要处理的端口111
tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN 60873/X
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 7436/dnsmasq
step1 初始状态防火墙关闭,可以访问
[root@shell37 etc]# systemctl stop firewalld
[root@shell37 etc]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead) since Sat 2021-03-20 07:14:25 PDT; 5s ago
Docs: man:firewalld(1)
Process: 108629 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
Main PID: 108629 (code=exited, status=0/SUCCESS)
Mar 20 07:09:36 shell37 systemd[1]: Starting firewalld - dynamic firewall daemon...
Mar 20 07:09:36 shell37 systemd[1]: Started firewalld - dynamic firewall daemon.
Mar 20 07:14:24 shell37 systemd[1]: Stopping firewalld - dynamic firewall daemon...
Mar 20 07:14:25 shell37 systemd[1]: Stopped firewalld - dynamic firewall daemon.
[root@shell37 etc]#
37 防火墙关闭 , 38 可以访问
[root@shell38 ~]# telnet 192.168.121.37 111
Trying 192.168.121.37...
Connected to 192.168.121.37.
Escape character is '^]'.
step2 防火墙打开,38不可以访问37
[root@shell37 etc]# systemctl start firewalld
[root@shell37 etc]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: active (running) since Sat 2021-03-20 07:18:06 PDT; 2s ago
Docs: man:firewalld(1)
Main PID: 113334 (firewalld)
Tasks: 2
Memory: 22.1M
CGroup: /system.slice/firewalld.service
└─113334 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
Mar 20 07:18:06 shell37 systemd[1]: Starting firewalld - dynamic firewall daemon...
Mar 20 07:18:06 shell37 systemd[1]: Started firewalld - dynamic firewall daemon.
[root@shell37 etc]#
[root@shell38 ~]# telnet 192.168.121.37 111
Trying 192.168.121.37...
telnet: connect to address 192.168.121.37: No route to host
step3 重复第一步 开启防火墙 ,38继续不可以访问37
[root@shell37 etc]# systemctl start firewalld
[root@shell37 etc]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: active (running) since Sat 2021-03-20 07:19:43 PDT; 1s ago
Docs: man:firewalld(1)
Main PID: 114504 (firewalld)
Tasks: 2
Memory: 21.5M
CGroup: /system.slice/firewalld.service
└─114504 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
Mar 20 07:19:43 shell37 systemd[1]: Starting firewalld - dynamic firewall daemon...
Mar 20 07:19:43 shell37 systemd[1]: Started firewalld - dynamic firewall daemon.
[root@shell37 etc]#
[root@shell38 ~]# telnet 192.168.121.37 111
Trying 192.168.121.37...
telnet: connect to address 192.168.121.37: No route to host
step4 打开 111 端口 ,让38 可以访问37 111端口
------ 增加开启端口
[root@shell37 etc]# firewall-cmd --permanent --add-port=111/tcp
success
----虽然上一步 提示成功了 ,但是显示的是 没有打开,因为没有reload
[root@shell37 etc]# firewall-cmd --query-port=111/tcp
no
------ 执行reload
[root@shell37 etc]# firewall-cmd --reload
success
-------显示 111 端口为开启状态
[root@shell37 etc]# firewall-cmd --query-port=111/tcp
yes
[root@shell37 etc]#
----- 虽然防火墙关闭,但是111 端口是开启的
[root@shell38 ~]# telnet 192.168.121.37 111
Trying 192.168.121.37...
Connected to 192.168.121.37.
Escape character is '^]'.
P078_韩顺平图解Linux全面升级_动态监控系统 top (1) 09:49
top 指令图示解析
P079_韩顺平图解Linux全面升级_动态监控系统(2) 08:01
P080_韩顺平图解Linux全面升级_监控网络状态 netstat 16:14
最常用指令参数-anp ; netstat -anp
[root@shell37 ~]# netstat -anp |more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 6964/mongod
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN 60873/X
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 7436/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 25371/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 6879/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 7144/master
tcp 0 0 192.168.121.37:22 192.168.121.1:63558 ESTABLISHED 82540/sshd: root@pt
tcp 0 52 192.168.121.37:22 192.168.121.1:63559 ESTABLISHED 82607/sshd: root@pt
P081_韩顺平图解Linux全面升级_进程管理小结 11:02
进程管理
程序–静态 ;进程–动态
ps -ef ;
ps -aux;
kill -9 进程号;
killall 进程名;删除同时会删除关联子进程
pstree
service 服务名 [start|stop|status|restart|reload] — systemctl 替换它
service 管理在 /etc/init.d 目录中的服务 查看服务
setup 查看服务
服务运行级别 0-6 ,常用 3,5
chkconfig 给服务设置在不同运行级别开启还是关闭
systemctl [start|stop|status|restart|reload] 服务名
所有systemctl 服务在目录 /usr/lib/systemd/system 目录下
firewall
打开端口:firewall-cmd –permanent –add-port=端口号/协议
关闭端口:firewall-cmd –permanent –remove-port=端口号/协议
重新载入(重新载入,打开关闭方可生效):firewall-cmd –reload
查看端口:firewall-cmd –query-port=端口号/协议
动态监控 top (对比ps 指令)
监控网路状态 netstat -anp ;
第十五章 RPM 与 YUM
P082_韩顺平图解Linux全面升级_rpm管理(1) 08:13
-----1 查询所有rpm 包
[root@shell37 ~]# rpm -qa|more
numad-0.5-18.20150602git.el7.x86_64
pcre2-10.23-2.el7.x86_64
google-noto-emoji-color-fonts-20180508-4.el7.noarch
exiv2-libs-0.26-3.el7.x86_64
--------02 查询是否有firefox关键字的包
[root@shell37 ~]# rpm -q firefox
firefox-60.2.2-1.el7.centos.x86_64
--------03 查询firefox 包详情
[root@shell37 ~]# rpm -qi firefox
Name : firefox
Version : 60.2.2
Release : 1.el7.centos
Architecture: x86_64
Install Date: Thu 22 Oct 2020 08:49:24 AM PDT
Group : Unspecified
Size : 216144933
--------04 查询firefox 包的安装文件路径
[root@shell37 ~]# rpm -ql firefox
/etc/firefox
/etc/firefox/pref
/usr/bin/firefox
/usr/lib64/firefox
/usr/share/man/man1/firefox.1.gz
---------05 rpm -ql 的反向操作,根据文件路径查找源自哪个rpm 包
[root@shell37 ~]# rpm -qf /usr/share/man/man1/firefox.1.gz
firefox-60.2.2-1.el7.centos.x86_64
P083_韩顺平图解Linux全面升级_rpm管理(2) —todo 07:36
[root@shell37 dev]# pwd
/dev
[root@shell37 dev]# ll | more
total 0
lrwxrwxrwx. 1 root root 3 Mar 20 16:40 cdrom -> sr0
drwxr-xr-x. 3 root root 200 Mar 20 16:02 snd
brw-rw----+ 1 root cdrom 11, 0 Mar 20 16:40 sr0 ---- cdrom 光驱
---- /dev/sr0 光驱挂载到了 /run/media/root/VMware Tools 目录下
[root@shell37 VMware Tools]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 12G 6.3G 65% /
devtmpfs 471M 0 471M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 27M 460M 6% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sdb2 991M 2.6M 922M 1% /newdisk
/dev/sda1 297M 147M 151M 50% /boot
tmpfs 98M 8.0K 98M 1% /run/user/42
tmpfs 98M 32K 98M 1% /run/user/0
/dev/sr0 56M 56M 0 100% /run/media/root/VMware Tools
未能加载光驱中的Firefox,取出rpm包,然后再安装
P084_韩顺平图解Linux全面升级_yum 06:47
[root@shell37 etc]# rpm -e firefox
[root@shell37 etc]# yum list |grep firefox
firefox.i686 78.8.0-1.el7.centos updates
firefox.x86_64 78.8.0-1.el7.centos updates
[root@shell37 etc]# yum install firefox
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
P085_韩顺平图解Linux全面升级_软件包管理小结 03:14
RPM : RedHat Package Manager
rpm -wq | grep XXX
rpm -qa |grep XXX
rpm -qi XXX –软件包信息详情
rpm -qf /路径 —- 查询文件所属软件包
rpm -e **** —– 删除软件包
rpm -ivh RPM包全路径名称 —–
yum
yum list |grep **
yum install ***
第十六章 JAVA EE 定制篇 搭建JavaEE 环境
P086_韩顺平图解Linux全面升级_安装配置JDK8 12:45
安装过程比较复杂,单独做了一个文件 Linux centos 安装Jdk8
https://blog.csdn.net/wei198621/article/details/113836286
P087_韩顺平图解Linux全面升级_安装配置tomcat8 07:16
内容比较多,单独放在一个文件中,以便日后访问
https://blog.csdn.net/wei198621/article/details/115051168
firewall-cmd –permanent –add-port=8080/tcp
firewall-cmd –reload
firewall-cmd –query-port=8080/tcp
P088_韩顺平图解Linux全面升级_安装配置idea2020 07:03
步骤不算多,也放在了这个目录下面。
https://blog.csdn.net/wei198621/article/details/115051806
P089_韩顺平图解Linux全面升级_安装配置mysql5.7 15:14
具体步骤需要单独文档,linux centos 安装 mysql5.7
https://blog.csdn.net/wei198621/article/details/115052757
P090_韩顺平图解Linux全面升级_小结 02:13
第十七章 大数据定制篇 –Shell 编程
P091_韩顺平图解Linux全面升级_shell编程快速入门 11:41
P092_韩顺平图解Linux全面升级_shell变量 12:49
[root@shell38 shcode]# echo $HOME
/root
[root@shell38 shcode]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/.dotnet/tools:/usr/local/java/jdk1.8.0_251/bin:/usr/local/java/jdk1.8.0_251/jre/bin:/root/bin
[root@shell38 shcode]# echo $PWD
/root/shcode
-----当前shell 的所有变量 : set
[root@shell38 shcode]# set |more
ABRT_DEBUG_LOG=/dev/null
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extglob:extquote:force_fignore:histappen
d:interactive_comments:login_shell:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
P093_韩顺平图解Linux全面升级_设置环境变量 09:41
P094_韩顺平图解Linux全面升级_位置参数变量 05:28
[root@shell38 shcode]# cat position.sh
#!/bin/bash
echo "$0"
echo "$1"
echo "$2"
echo "$*"
echo "$@"
echo "$#"
[root@shell38 shcode]# chmod u+x position.sh
[root@shell38 shcode]# sh position.sh 11 22 33 44
position.sh
11
22
11 22 33 44
11 22 33 44
4
[root@shell38 shcode]#
P095_韩顺平图解Linux全面升级_预定义变量 04:09
P096_韩顺平图解Linux全面升级_运算符 11:57
[root@shell38 shcode]# vim expresh.sh
A1=$(((2+3)*4 ))
echo "res11=$A1"
#case 1 $[]
A2=$[(2+3)*4]
echo "res12=$A2"
#case 1 expr m + n
A3=`expr 2 + 3`
echo "$A3"
RES3=`expr $A3 \* 4`
echo "res13=$RES3"
#case 2 $(())
B1=$(($1 + $2))
echo "$B1"
#case 2 $[]
B2=$[$1+$2]
echo "$B2"
#case 2 expr m + n
B3=`expr $1 + $2`
echo "$B3"
[root@shell38 shcode]# sh expresh.sh 11 22
res11=20
res12=20
5
res13=20
33
33
33
P097_韩顺平图解Linux全面升级_条件判断 12:51
[root@shell38 shcode]# sh ifdaemon.sh
equal
big than
[root@shell38 shcode]# cat ifdaemon.sh
#!/bin/bash
if [ “ok”=“ok” ]
then
echo “equal”
fi
#========================
if [ 23 -gt 22 ]
then
echo “big than”
fi
P098_韩顺平图解Linux全面升级_单分支多分支 04:20
-- 如果大于等于60 输出 pass
--- 如果小于60 输出 unpass
[root@shell38 shcode]# sh iftest.sh 88
pass
[root@shell38 shcode]# sh iftest.sh 58
unpass
[root@shell38 shcode]# cat iftest.sh
#!/bin/bash
if [ $1 -ge 60 ]
then
echo "pass"
elif [ $1 -lt 60 ]
then
echo "unpass"
fi
P099_韩顺平图解Linux全面升级_case语句 04:58
-- 参数 是 1 输出 星期一
---参数 是 2 输出 星期二
-- 参数是 其他 输出 other
[root@shell38 shcode]# cat casetest.sh
#!/bin/bash
case $1 in
"1")
echo "monday"
;;
"2")
echo "tuesday"
;;
*)
echo "other"
;;
esac
[root@shell38 shcode]# sh casetest.sh 1
monday
[root@shell38 shcode]# sh casetest.sh 2
tuesday
[root@shell38 shcode]# sh casetest.sh 3
other
[root@shell38 shcode]# sh casetest.sh 33
other
P100_韩顺平图解Linux全面升级_for循环 12:12
[root@shell38 shcode]# cat testfor1.sh
#!/bin/bash
------$* 是一个整体对待
for i in "$*"
do
echo "num is $i"
done
echo "======"
------$@ 分别对待
for i in "$@"
do
echo "num is $i"
done
[root@shell38 shcode]# ./testfor1.sh 100 200 300
num is 100 200 300
======
num is 100
num is 200
num is 300
[root@shell38 shcode]# cat testfor2.sh
#!/bin/bash
SUM=0
for(( i=1;i<=100;i++ ))
do
SUM=$[$SUM+$i]
done
echo "sum is $SUM"
[root@shell38 shcode]# ./testfor2.sh
sum is 5050
P101_韩顺平图解Linux全面升级_while循环 04:26
[root@shell38 shcode]# cat testwhile.sh
#!/bin/bash
SUM=0
i=0
-------- 注意 while [ 表达式 ] ,这三者之间都有空格
while [ $i -le $1 ]
do
SUM=$[$SUM+$i]
i=$[$i+1]
done
echo "result is $SUM"
[root@shell38 shcode]# sh testwhile.sh 100
result is 5050
[root@shell38 shcode]#
P102_韩顺平图解Linux全面升级_read获取输入 05:20
[root@shell38 shcode]# cat testRead.sh
#!/bin/bash
read -p "pls input a num =" NUM1
echo "the num input is $NUM1"
echo "===================="
-------10s 内不输入数据自动退出
read -t 10 -p "pls input a num in 10 seconds " NUM2
echo "the num input is $NUM2"
[root@shell38 shcode]# sh testRead.sh
pls input a num =11
the num input is 11
====================
pls input a num in 10 seconds 22
the num input is 22
P103_韩顺平图解Linux全面升级_系统函数 04:10
[root@shell38 shcode]# basename /home/aa/test.txt
test.txt
[root@shell38 shcode]# basename /home/aa/test.txt .txt
test
[root@shell38 shcode]# dirname /home/aa/test.txt
/home/aa
P104_韩顺平图解Linux全面升级_自定义函数 05:21
[root@shell38 shcode]# cat testfunction.sh
#!/bin/bash
function getSum(){
SUM=$[$n1+$n2]
echo "sum is $SUM"
}
echo "pls input 2 nums "
read -p "num1 is " n1
read -p "num2 is " n2
getSum $n1 $n2
[root@shell38 shcode]# ./testfunction.sh 22 33
pls input 2 nums
num1 is 22
num2 is 11
sum is 33
P105_韩顺平图解Linux全面升级_定时备份数据库(1) 07:24
P106_韩顺平图解Linux全面升级_定时备份数据库(2) 25:27
具体过程在 leo linux shell 脚本汇编
https://blog.csdn.net/wei198621/article/details/114904337
P107_韩顺平图解Linux全面升级_shell编程笔记梳理 03:44
第十八章 Python 定制篇 Python开发平台Ubuntu
P108_韩顺平图解Linux全面升级_ubuntu安装 09:32
没有安装成功,不仔细研究乌班图了,拜拜乌班图
https://blog.csdn.net/wei198621/article/details/115150075
P109_韩顺平图解Linux全面升级_ubuntu中文支持 02:45
P110_韩顺平图解Linux全面升级_ubuntu的root 04:12
P111_韩顺平图解Linux全面升级_hello python 01:42
P112_韩顺平图解Linux全面升级_APT原理机制图 09:45
P113_韩顺平图解Linux全面升级_APT更新源和实例 12:28
P114_韩顺平图解Linux全面升级_ubuntu远程登录和集群 19:24
P115_韩顺平图解Linux全面升级_python定制篇梳理 04:58
第二十章 CentOS8 安装
P116_韩顺平图解Linux全面升级_centos8安装和介绍 16:13
linux vmware 安装 centos8
https://blog.csdn.net/wei198621/article/details/115220528
第二十一章 日志管理
看懂下面几个目录,也就看懂日志了
[root@leoCentOS8 cron.daily]# ll
总用量 4
-rwxr-xr-x. 1 root root 189 1月 4 2018 logrotate
[root@leoCentOS8 cron.daily]# cat logrotate
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit $EXITVALUE
[root@leoCentOS8 cron.daily]#
-----------01 定义不同日志发往不同文件
[root@leoCentOS8 ~]# cat /etc/rsyslog.conf
... ....
# Log all the mail messages in one place.
mail.* -/var/log/maillog
----------02 定义日志轮替规则 (logrotate.conf 是全局日志轮替策略)
[root@leoCentOS8 ~]# cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
dateext
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# system-specific logs may be also be configured here.
[root@leoCentOS8 ~]#
-----------------03 对/etc/logrotate.conf的补充,分别定义某个日志轮替规则
[root@leoCentOS8 logrotate.d]# pwd
[root@leoCentOS8 logrotate.d]# ls
bootlog chrony dnf iscsiuiolog libvirtd.qemu psacct sssd syslog wtmp
btmp cups firewalld libvirtd numad samba subscription-manager wpa_supplicant
/etc/logrotate.d
P117_韩顺平图解Linux全面升级_日志介绍和实例 08:51
在本地 192.168.121.38 机器上 登录 192.168.121.8
第一次登录,使用错误密码,不成功
第二次登录,使用正确密码,成功
[root@shell38 ~]# ssh root@192.168.121.8
The authenticity of host '192.168.121.8 (192.168.121.8)' can't be established. ECDSA key fingerprint is SHA256:94op0q/+Shz+TV0vC8riIcq3docKVSbZtxMRjRuChqk. ECDSA key fingerprint is MD5:76:ce:8e:f3:27:d3:63:83:7e:4f:53:fa:c0:8f:ab:aa. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.121.8' (ECDSA) to the list of known hosts. root@192.168.121.8's password:
Permission denied, please try again.
root@192.168.121.8's password:
Activate the web console with: systemctl enable --now cockpit.socket
Last failed login: Thu Mar 25 12:18:35 EDT 2021 from 192.168.121.38 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Thu Mar 25 12:17:27 2021 from ::1
[root@leoCentOS8 ~]#
到 192.168.121.8 上面 /var/log/secure 目录上面查看登录信息
[root@leoCentOS8 log]# cat secure
Mar 25 12:18:32 leoCentOS8 unix_chkpwd[2311]: password check failed for user (root)
Mar 25 12:18:32 leoCentOS8 sshd[2309]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.121.38 user=root
----- 第一次 通过 38 登录 8 ,使用错误密码,失败
Mar 25 12:18:35 leoCentOS8 sshd[2309]: Failed password for root from 192.168.121.38 port 56520 ssh2
----- 第一次 通过 38 登录 8 ,使用正确密码,成功
Mar 25 12:20:07 leoCentOS8 sshd[2309]: Accepted password for root from 192.168.121.38 port 56520 ssh2
Mar 25 12:20:07 leoCentOS8 sshd[2309]: pam_unix(sshd:session): session opened for user root by (uid=0)
[root@leoCentOS8 log]# pwd
/var/log
[root@leoCentOS8 log]#
P118_韩顺平图解Linux全面升级_日志服务原理图 04:30
[root@leoCentOS8 log]# ps aux |grep 'rsyslog' |grep -v "grep"
root 1303 0.0 0.3 226672 6456 ? Ssl 12:03 0:00 /usr/sbin/rsyslogd -n
[root@leoCentOS8 log]# systemctl list-unit-files | grep rsyslog
rsyslog.service enabled
P119_韩顺平图解Linux全面升级_日志服务配置文件 11:11
[root@leoCentOS8 ~]# cat /etc/rsyslog.conf
# Log all the mail messages in one place.
mail.* -/var/log/maillog
# Log cron stuff
cron.* /var/log/cron
# Everybody gets emergency messages
*.emerg :omusrmsg:*
# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler
# Save boot messages also to boot.log
local7.* /var/log/boot.log
P120_韩顺平图解Linux全面升级_自定义日志服务 05:24
[root@leoCentOS8 ~]# vim /etc/rsyslog.conf
......
local7.* /var/log/boot.log
# save all to leolog.log 将所有日志放到leolog.log 文件下
*.* /var/log/leolog.log
[root@leoCentOS8 ~]# reboot
过滤所有ssh 的信息
[root@leoCentOS8 log]# cat leolog.log | grep sshd
Mar 26 08:45:05 leoCentOS8 systemd[1]: Reached target sshd-keygen.target.
Mar 26 08:45:06 leoCentOS8 sshd[1125]: Server listening on 0.0.0.0 port 22.
Mar 26 08:45:06 leoCentOS8 sshd[1125]: Server listening on :: port 22.
Mar 26 08:45:16 leoCentOS8 sshd[1665]: Accepted password for root from 192.168.121.1 port 53044 ssh2
Mar 26 08:45:16 leoCentOS8 sshd[1665]: pam_unix(sshd:session): session opened for user root by (uid=0)
Mar 26 08:46:37 leoCentOS8 sshd[1935]: Accepted password for root from 192.168.121.1 port 53066 ssh2
Mar 26 08:46:37 leoCentOS8 sshd[1935]: pam_unix(sshd:session): session opened for user root by (uid=0)
[root@leoCentOS8 log]# pwd
/var/log
[root@leoCentOS8 log]#
P121_韩顺平图解Linux全面升级_日志轮替介绍 11:21
P122_韩顺平图解Linux全面升级_自定义日志轮替 06:38
P123_韩顺平图解Linux全面升级_日志轮替机制 03:13
[root@leoCentOS8 cron.daily]# ll
总用量 4
-rwxr-xr-x. 1 root root 189 1月 4 2018 logrotate
[root@leoCentOS8 cron.daily]# cat logrotate
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit $EXITVALUE
[root@leoCentOS8 cron.daily]#
P124_韩顺平图解Linux全面升级_内存日志 03:27
[root@leoCentOS8 cron.daily]# journalctl -n 10
-- Logs begin at Fri 2021-03-26 08:45:00 EDT, end at Fri 2021-03-26 09:53:49 EDT. --
3月 26 08:55:16 leoCentOS8 systemd[1]: Starting dnf makecache...
3月 26 08:55:17 leoCentOS8 dnf[2063]: 元数据缓存近期已刷新。
3月 26 08:55:17 leoCentOS8 systemd[1]: dnf-makecache.service: Succeeded.
3月 26 08:55:17 leoCentOS8 systemd[1]: Started dnf makecache.
3月 26 09:00:16 leoCentOS8 systemd[1]: Starting Cleanup of Temporary Directories...
3月 26 09:00:16 leoCentOS8 systemd-tmpfiles[2109]: [/usr/lib/tmpfiles.d/pesign.conf:1] Line references path below legacy directory /va>
3月 26 09:00:16 leoCentOS8 systemd[1]: systemd-tmpfiles-clean.service: Succeeded.
3月 26 09:00:16 leoCentOS8 systemd[1]: Started Cleanup of Temporary Directories.
3月 26 09:26:16 leoCentOS8 chronyd[1019]: Source 2606:4700:f1::1 replaced with 203.107.6.88
P125_韩顺平图解Linux全面升级_日志管理笔记梳理 05:59
第二十二章 定制自己的Linux系统
P126_韩顺平图解Linux全面升级_定制自己的Linux(1) 09:14
P127_韩顺平图解Linux全面升级_定制自己的Linux(2) 26:32
P128_韩顺平图解Linux全面升级_定制自己的Linux(3) 03:20
第二十三章 Linux内核原码
P129_韩顺平图解Linux全面升级_阅读Linux内核源码好处 04:57
linux 内核地址: https://www.kernel.org/
P130_韩顺平图解Linux全面升级_阅读Linux内核源码技巧 04:55
P131_韩顺平图解Linux全面升级_内核源码阅读及main 13:19
P132_韩顺平图解Linux全面升级_内核升级 14:41
第二十四章 Linux 备份与恢复
P133_韩顺平图解Linux全面升级_备份与恢复介绍 08:51
P134_韩顺平图解Linux全面升级_数据备份dump 11:45
dump 可用于备份分区 及 目录
下面是用于备份分区 参数 -0ju
--------全量备份分区 /boot 到文件 /opt/boot.bak0.bz2
[root@leoCentOS8 opt]# dump -0uj -f /opt/boot.bak0.bz2 /boot
[root@leoCentOS8 opt]# ll /opt
总用量 186412
-rw-r--r--. 1 root root 182311802 3月 26 21:44 boot.bak0.bz2
--------增量备份分区 /boot 到文件 /opt/boot.bak1.bz2
[root@leoCentOS8 opt]# dump -1uj -f /opt/boot.bak1.bz2 /boot
[root@leoCentOS8 opt]# ll /opt
总用量 186412
-rw-r--r--. 1 root root 182311802 3月 26 21:44 boot.bak0.bz2
-rw-r--r--. 1 root root 11922 3月 26 21:49 boot.bak1.bz2
下面是用于备份目录 参数 -0j
----- 备份 /etc 目录到 /opt/etc.bak.bz2 下面,注意参数 -0j 没有u
[root@leoCentOS8 opt]# dump -0j -f /opt/etc.bak.bz2 /etc/
[root@leoCentOS8 opt]# ll
总用量 186412
-rw-r--r--. 1 root root 182311802 3月 26 21:44 boot.bak0.bz2
-rw-r--r--. 1 root root 11922 3月 26 21:49 boot.bak1.bz2
-rw-r--r--. 1 root root 8560095 3月 26 22:06 etc.bak.bz2
dump命令用于备份ext2或者ext3文件系统。可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。
备份过程中 我 39 这台机器没有办法执行 dump *** 指令备份文件
[root@hell39 opt]# dump -0uj -f /opt/boot.bak0.bz2 /boot/
DUMP: Date of this level 0 dump: Fri Mar 26 19:31:19 2021
DUMP: Dumping /dev/sda1 (/boot) to /opt/boot.bak0.bz2
/dev/sda1: Bad magic number in super-block while opening filesystem
DUMP: The ENTIRE dump is aborted.
原因是 我做的分区文件类型是xfs
[root@hell39 opt]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 xfs 18G 11G 7.7G 57% /
devtmpfs devtmpfs 471M 0 471M 0% /dev
tmpfs tmpfs 487M 0 487M 0% /dev/shm
tmpfs tmpfs 487M 33M 454M 7% /run
tmpfs tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 xfs 297M 147M 151M 50% /boot
tmpfs tmpfs 98M 12K 98M 1% /run/user/42
tmpfs tmpfs 98M 0 98M 0% /run/user/0
原因是 我安装centos7的时候,没有指定 ext4 分区,使用的是默认的xfs分区
https://blog.csdn.net/wei198621/article/details/109705337
这个是8 这台机器的分区类型 ext4
[root@leoCentOS8 opt]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 946M 0 946M 0% /dev
tmpfs tmpfs 975M 0 975M 0% /dev/shm
tmpfs tmpfs 975M 9.4M 966M 1% /run
tmpfs tmpfs 975M 0 975M 0% /sys/fs/cgroup
/dev/nvme0n1p3 ext4 17G 5.1G 11G 32% /
/dev/nvme0n1p1 ext4 976M 184M 726M 21% /boot
tmpfs tmpfs 195M 1.2M 194M 1% /run/user/42
tmpfs tmpfs 195M 0 195M 0% /run/user/0
[root@leoCentOS8 opt]#
P135_韩顺平图解Linux全面升级_数据恢复restore 12:38
-----/boot/目录下 将 testleo.txt 文件重命名
[root@leoCentOS8 boot]# mv testleo.txt testleo11111.txt
[root@leoCentOS8 boot]# cd /opt
[root@leoCentOS8 opt]# ll
总用量 178040
-rw-r--r--. 1 root root 182312094 3月 26 22:26 boot.bak1.bz2
[root@leoCentOS8 opt]# restore -C -f boot.bak1.bz2
Dump tape is compressed.
Dump date: Fri Mar 26 22:26:09 2021
Dumped from: the epoch
Level 0 dump of /boot on leoCentOS8:/dev/nvme0n1p1
Label: none
filesys = /boot
-----------------此句看出了/testleo.txt 的差异
restore: unable to stat ./testleo.txt: No such file or directory
Some files were modified! 1 compare errors
restore -t -f boot.bak2.bz2 查看备份了哪些文件
[root@leoCentOS8 opt]# ll
总用量 178052
-rw-r--r--. 1 root root 182312094 3月 26 22:26 boot.bak1.bz2
-rw-r--r--. 1 root root 11965 3月 26 23:00 boot.bak2.bz2
[root@leoCentOS8 opt]# restore -t -f boot.bak2.bz2
Dump tape is compressed.
Dump date: Fri Mar 26 23:00:45 2021
Dumped from: Fri Mar 26 22:26:09 2021
Level 1 dump of /boot on leoCentOS8:/dev/nvme0n1p1
Label: none
2 .
309 ./testleo11111.txt
[root@leoCentOS8 opt]#
[root@leoCentOS8 opt]# mkdir /opt/boottemp
[root@leoCentOS8 opt]# cd /opt/boottemp/
[root@leoCentOS8 boottemp]# restore -r -f /opt/boot.bak1.bz2
[root@leoCentOS8 boottemp]# ll
总用量 179880
-rw-r--r--. 1 root root 189494 9月 25 15:57 config-4.18.0-240.el8.x86_64
drwxr-xr-x. 3 root root 4096 3月 25 19:11 efi
drwx------. 4 root root 4096 3月 25 19:19 grub2
-rw-------. 1 root root 105523858 3月 25 19:18 initramfs-0-rescue-1c06c0a5048545ea95b440a89651a8d2.img
-rw-------. 1 root root 55244560 3月 25 19:20 initramfs-4.18.0-240.el8.x86_64.img
drwxr-xr-x. 3 root root 4096 3月 25 19:16 loader
drwx------. 2 root root 4096 3月 25 19:09 lost+found
-rw-------. 1 root root 142424 3月 26 23:04 restoresymtable
-rw-------. 1 root root 4032815 9月 25 15:57 System.map-4.18.0-240.el8.x86_64
-rw-r--r--. 1 root root 8 3月 26 22:19 testleo2.txt
-rw-r--r--. 1 root root 12 3月 26 21:49 testleo.txt
-rwxr-xr-x. 1 root root 9514120 3月 25 19:17 vmlinuz-0-rescue-1c06c0a5048545ea95b440a89651a8d2
-rwxr-xr-x. 1 root root 9514120 9月 25 15:57 vmlinuz-4.18.0-240.el8.x86_64
P136_韩顺平图解Linux全面升级_数据备份恢复梳理 04:06
第二十五章 linux 可视化工具 webmin 和 bt运维工具
P137_韩顺平图解Linux全面升级_webmin安装和配置 11:13
P138_韩顺平图解Linux全面升级_webmin功能演示 07:46
单独成文,见目录
linux centos 安装 可视化管理工具 webmin
https://blog.csdn.net/wei198621/article/details/115263025
P139_韩顺平图解Linux全面升级_bt宝塔介绍和安装 05:45
P140_韩顺平图解Linux全面升级_bt宝塔应用实例 09:13
bt 单独成文
linux centos 安装 可视化管理工具 bt
https://blog.csdn.net/wei198621/article/details/115263523
P141_韩顺平图解Linux全面升级_可视化管理小结 02:27
第二十六章 面试题
P142_韩顺平图解Linux全面升级_统计访问量和连接数 14:01
面试题 分析日志访问量
分析日志文件,将各个IP地址截取,并统计出现次数,按从大到小排序
step1 目录/opt/interview下 新增文件 t.txt
[root@hell39 interview]# pwd
/opt/interview
[root@hell39 interview]# cat t.txt
http://192.168.200.10/index.html
http://192.168.200.20/test.html
http://192.168.200.30/order.html
http://192.168.200.40/order.html
http://192.168.200.50/index4.html
http://192.168.200.40/index3.html
http://192.168.200.40/index2.html
http://192.168.200.30/index1.html
http://192.168.200.20/index1.html
http://192.168.200.20/index3.html
http://192.168.200.70/index2.html
http://192.168.200.10/index.html
step2 取第三段
--- 按照 / 将t.txt 分为若干段 ,取 第三段 ;下面的 cut awk 效果相同
[root@hell39 interview]# cat t.txt | cut -d "/" -f 3
[root@hell39 interview]# cat t.txt | awk -F "/" '{print $3}'
192.168.200.10
192.168.200.20
192.168.200.30
192.168.200.40
192.168.200.50
192.168.200.40
192.168.200.40
192.168.200.30
192.168.200.20
192.168.200.20
192.168.200.70
192.168.200.10
step3 排序
[root@hell39 interview]# cat t.txt | cut -d "/" -f 3 |sort
192.168.200.10
192.168.200.10
192.168.200.20
192.168.200.20
192.168.200.20
192.168.200.30
192.168.200.30
192.168.200.40
192.168.200.40
192.168.200.40
192.168.200.50
192.168.200.70
step4 去重 统计
[root@hell39 interview]# cat t.txt | cut -d "/" -f 3 | sort | uniq -c
2 192.168.200.10
3 192.168.200.20
2 192.168.200.30
3 192.168.200.40
1 192.168.200.50
1 192.168.200.70
step5 倒叙排序
[root@hell39 interview]# cat t.txt | cut -d "/" -f 3 |sort | uniq -c | sort -nr
3 192.168.200.40
3 192.168.200.20
2 192.168.200.30
2 192.168.200.10
1 192.168.200.70
1 192.168.200.50
面试题 统计链接数
统计链接到服务器的各ip情况,按照连接数从大到小排序
step1 查询所有网络链接
[root@hell39 interview]# netstat -an | more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:6666 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:22 127.0.0.1:53318 ESTABLISHED
tcp 0 0 127.0.0.1:22 127.0.0.1:53320 ESTABLISHED
tcp 0 52 192.168.121.39:22 192.168.121.1:52866 ESTABLISHED
tcp 0 0 127.0.0.1:53320 127.0.0.1:22 ESTABLISHED
tcp 0 0 127.0.0.1:53318 127.0.0.1:22 ESTABLISHED
step2 过滤只显示 ESTABLISHED 状态的网址
[root@hell39 interview]# netstat -an |grep "ESTABLISHED"
tcp 0 0 127.0.0.1:22 127.0.0.1:53318 ESTABLISHED
tcp 0 0 127.0.0.1:22 127.0.0.1:53320 ESTABLISHED
tcp 0 52 192.168.121.39:22 192.168.121.1:52866 ESTABLISHED
tcp 0 0 127.0.0.1:53320 127.0.0.1:22 ESTABLISHED
tcp 0 0 127.0.0.1:53318 127.0.0.1:22 ESTABLISHED
udp 0 0 192.168.121.39:40696 94.130.49.186:123 ESTABLISHED
step3只显示 Foreign Address 第五列
[root@hell39 interview]# netstat -an |grep "ESTABLISHED" | awk -F " " '{print $5}'
127.0.0.1:53318
127.0.0.1:53320
192.168.121.1:52866
127.0.0.1:22
127.0.0.1:22
step4 按照“:” 过滤 Foreign Address ,只保留第一列ip地址
[root@hell39 interview]# netstat -an |grep "ESTABLISHED" | awk -F " " '{print $5}'| awk -F ":" '{print $1}'
127.0.0.1
127.0.0.1
192.168.121.1
127.0.0.1
127.0.0.1
step5 排序
[root@hell39 interview]# netstat -an |grep "ESTABLISHED" | awk -F " " '{print $5}'| awk -F ":" '{print $1}' | sort
127.0.0.1
127.0.0.1
127.0.0.1
127.0.0.1
192.168.121.1
step6 去重
[root@hell39 interview]# netstat -an |grep "ESTABLISHED" | awk -F " " '{print $5}'| awk -F ":" '{print $1}' | sort |uniq -c
4 127.0.0.1
1 192.168.121.1
step7 再排序
-------------- cut -d ":" -f 1 等于 awk -F ":" '{print $1}'
[root@hell39 interview]# netstat -an |grep "ESTABLISHED" | awk -F " " '{print $5}'| awk -F ":" '{print $1}' | sort |uniq -c |sort -nr
[root@hell39 interview]# netstat -an | grep "ESTABLISHED" | awk -F " " '{print $5}' | cut -d ":" -f 1 | sort | uniq -c |sort -nr
4 127.0.0.1
1 192.168.121.1
P143_韩顺平图解Linux全面升级_找回Mysql的root密码 05:57
放在单独页面
linux centos mysql 5.7 忘记root 密码
https://blog.csdn.net/wei198621/article/details/115265837
P144_韩顺平图解Linux全面升级_访问量排名和tcpdump 08:45
vim meituan.txt
统计ip 访问情况,找出访问页面数前两位的ip
192.168.200.50 index.html
192.168.200.40 index.html
192.168.200.40 index.html
192.168.200.30 index.html
192.168.200.20 index.html
192.168.200.20 index.html
192.168.200.70 index.html
step 1 显示所有数据
[root@hell39 interview]# cat meituan.txt
192.168.200.50 index.html
192.168.200.40 index.html
192.168.200.40 index.html
192.168.200.30 index.html
192.168.200.20 index.html
192.168.200.20 index.html
step2 按 空格分隔数据 显示第一列 ip 地址的数据
[root@hell39 interview]# cat meituan.txt | awk -F " " '{print $1}'
192.168.200.50
192.168.200.40
192.168.200.40
192.168.200.30
192.168.200.20
192.168.200.20
192.168.200.70
step3 给ip地址排序 并 去重统计
[root@hell39 interview]# cat meituan.txt | awk -F " " '{print $1}'| sort
192.168.200.20
192.168.200.20
192.168.200.30
192.168.200.40
192.168.200.40
192.168.200.50
192.168.200.70
[root@hell39 interview]# cat meituan.txt | awk -F " " '{print $1}'| sort|uniq -c
1
2 192.168.200.20
1 192.168.200.30
2 192.168.200.40
1 192.168.200.50
1 192.168.200.70
[root@hell39 interview]#
step4 再次给ip地址统计 进行排序
[root@hell39 interview]# cat meituan.txt | awk -F " " '{print $1}'| sort|uniq -c|sort -nr
2 192.168.200.40
2 192.168.200.20
1 192.168.200.70
1 192.168.200.50
1 192.168.200.30
1
step5 取前两位数据
[root@hell39 interview]# cat meituan.txt | awk -F " " '{print $1}'| sort|uniq -c|sort -nr | head -n 2
2 192.168.200.40
2 192.168.200.20
用tcpdump 监听某个ip连接,将结果输出到tcpdump.log
[root@hell39 interview]# cd /etc/sysconfig/network-scripts
[root@hell39 network-scripts]# ls
ifcfg-ens33 ifdown-ippp ifdown-Team ifup-ib ifup-ppp init.ipv6-global
ifcfg-ens33.bak ifdown-ipv6 ifdown-TeamPort
[root@hell39 network-scripts]# tcpdump -i ens33 host 192.168.121.1 and port 22
[root@hell39 network-scripts]# tcpdump -i ens33 host 192.168.121.1 and port 22 >> /opt/interview/tcpdump.log
[root@hell39 interview]# more tcpdump.log
16:34:40.510928 IP hell39.ssh > 192.168.121.1.52866: Flags [P.], seq 2670983459:2670983655, ack 4029042550, wi
n 281, length 196
16:34:40.511908 IP 192.168.121.1.52866 > hell39.ssh: Flags [.], ack 196, win 4102, length 0
16:35:52.499141 IP 192.168.121.1.52866 > hell39.ssh: Flags [P.], seq 1:53, ack 196, win 4102, length 52
16:35:52.499258 IP hell39.ssh > 192.168.121.1.52866: Flags [P.], seq 196:248, ack 53, win 281, length 52
16:35:52.540418 IP 192.168.121.1.52866 > hell39.ssh: Flags [.], ack 248, win 4102, length 0
16:35:52.642710 IP 192.168.121.1.52866 > hell39.ssh: Flags [P.], seq 53:105, ack 248, win 4102, length 52
16:35:52.642873 IP hell39.ssh > 192.168.121.1.52866: Flags [P.], seq 248:300, ack 105, win 281, length 52
16:35:52.683004 IP 192.168.121.1.52866 > hell39.ssh: Flags [.], ack 300, win 4101, length 0
[root@hell39 interview]# pwd
/opt/interview
P145_韩顺平图解Linux全面升级_系统权限划分(1) 17:47
P146_韩顺平图解Linux全面升级_系统权限划分(2) 05:33
P147_韩顺平图解Linux全面升级_权限思考题(有趣) 15:07
P148_韩顺平图解Linux全面升级_CentOS7启动流程详解 12:01
完全听不懂
P149_韩顺平图解Linux全面升级_io读写监控 10:55
[root@hell39 interview]# cat cls.txt
zhangsan 40
lisi 50
wangwu 70
[root@hell39 interview]# cat cls.txt | awk -F " " '{sum+=$2} END {print sum}'
160
P150_韩顺平图解Linux全面升级_统计文件个数和行数 12:16
P151_韩顺平图解Linux全面升级_无人值守备份目录 09:44
P152_韩顺平图解Linux全面升级_Linux系统优化策略 23:57
P153_韩顺平图解Linux全面升级_卖油翁和老黄牛 06:09
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/144873.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...