2021图解Linux全面升级
Posted Spring-_-Bear
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021图解Linux全面升级相关的知识,希望对你有一定的参考价值。
视频链接:韩顺平2021图解Linux全面升级
1. 课程内容
2. 应用领域
- Linux 运维工程师、Linux 嵌入式工程师、Linux 下项目开发
- 个人桌面领域(Ubuntu、Fedora)、服务器领域、嵌入式领域
3. 概述
- 上世纪 70 年代贝尔实验室的
Ken tompson
和Dennis richres
共同发明了 Unix 操作系统 - 80 年代
Richard Stallman
提出了 GUN 计划,后由Linus
在 Minix 操作系统的基础上发明编写了 Linux 内核
4. Linux 与 Unix
5. VMware15.5 安装
6. CentOS7.6 安装
7. 网络连接三种方式
-
桥接模式:虚拟系统与母机 IP 地址必须处于同一网段,如母机:192.168.0.10,则虚拟系统 IP 地址网段必须为:192.168.0
-
NAT 模式(网络地址转换模式):虚拟系统有自己的网段,如 192.168.100,仍然可以与外部主机系统通信
-
主机模式:独立系统,不与外界发生联系
8. 虚拟机克隆
- 直接拷贝一份安装好的虚拟机文件
- 使用 VMware 软件进行克隆
9. 虚拟机快照
10. 虚拟机迁移删除
11. vmtools
12. 目录结构介绍
13. 目录结构详解
目录名 | 描述 |
---|---|
/bin(binaries) | (/usr/bin、/usr/local/bin)存放常用指令 |
/boot | 存放启动 Linux 时使用的一些核心文件,如一些链接文件以及镜像文件 |
/dev(device) | 类似 windows 的设备管理器,把所有的硬件用文件形式进行映射 |
/etc(etcetera) | 所有系统管理所需要的配置文件和子目录,如 mysql 的 my.conf 配置文件 |
/home | 存放普通用户的目录 |
/lib(library) | 系统开机时所需要的最基本的动态链接库,类似 windows 下的 .dll 文件,几乎所有的应用程序都会使用到这些共享库 |
/media | Linux 系统会自动识别一些设备,如 U 盘、光驱等,当识别成功后,Linux 会把识别的设备挂载到此 |
/mnt | 临时挂载别的文件系统,可以将外部的存储挂载到 /mnt/ 上,如共享文件夹 |
/opt(optional) | 额外安装的软件包的存放位置,如 oracle 数据库包文件 |
/proc(process) | 虚拟的目录,它是系统内存的映射,访问此目录可以获取系统相关信息 |
/root | 超级权限者的主目录 |
/run | 是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除 |
/sbin(superuser binaries) | (/usr/sbin、/usr/local/sbin)存放系统管理员使用的系统管理程序 |
/srv | 存放一些服务启动之后需要提取的数据 |
/sys | 这是 Linux 2.6 内核的一个很大的变化,该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs |
/tmp(temporary) | 存放临时文件 |
/usr(unix shared resources) | 存放用户的应用程序和文件,类似 windows 下的 program files 目录 |
/var(variable) | 存放着不断扩充的东西,如系统日志 |
/lost + found | 此目录一般情况下内容为空,当系统非法关机后,自动存放一些文件 |
/usr/local | 软件安装的目标目录,一般是通过源码编译方式安装的程序 |
/selinux | security-enhanced linux,这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放 selinux 相关的文件的 |
14. 远程登录
15. 远程文件传输
16. vi vim 快速入门
17. vi vim 快捷键
- 拷贝当前行
yy
,拷贝当前行向下的连续 5 行5yy
- 删除当前行
dd
,删除当前行向下的连续 5 行5dd
- 查找单词 bear ,
/bear
回车查找,输入n
查看下一个 - 显示行号
:set nu
,取消显示行号:set nonu
- 跳转到行尾
G
,跳转到行头gg
- 撤销
u
- 将光标移动到第 22 行
22 shift + g
- 快捷键示意图英文版
- 快捷键示意图中文版
18. vi vim 内容梳理
19. 关机重启
- 立刻关机
shutdown -h now
- 5 分钟后关机
shutdown -h 5
- 立刻重启
shutdown -r now
- 关机
halt
- 重启
reboot
- 同步内存数据到磁盘
sync
20. 登录注销
- 切换用户
su - root
- 用户注销
logout
(在图形化界面下无效,在运行级别 3 下有效)
21. 用户管理 1
- 添加 spring 用户
useradd spring
- 添加 spring 时指定 spring 的根目录
useradd -d /home/temp spring
- 给 spring 设置密码
passwd spring
22. 用户管理 2
- 删除用户但保留用户主目录
userdel spring
- 删除用户且删除用户主目录
userdel -r spring
- 查询用户信息
id root
- 猜猜我是谁
who am i
(显示的是登入系统时的用户信息)
23. 用户管理 3
-
组:系统可以对有共性的多个用户进行分组同一权限管理
-
新增组
groupadd groupname
-
删除组
groupdel groupname
-
添加用户时指定组
useradd -g groupname username
-
修改用户所在组
usermod -g groupname username
-
和用户以及组相关的文件
-
/etc/passwd 用户配置文件
每行含义:用户名:口令:用户标识号:组标识号:注释性信息:主目录:登录Shell
-
/etc/shadow 口令配置文件
每行含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
-
/ect/group 组的配置文件
每行含义:组名:口令:组标识号:组内用户列表
-
24. 用户管理 4
25. 运行级别
级别 | 功能 |
---|---|
0 | 关机 |
1 | 单用户(找回丢失密码) |
2 | 多用户无网络服务 |
3 | 多用户有网络服务 |
4 | 系统未使用保留给用户 |
5 | 图形界面 |
6 | 重启 |
- 切换运行级别
init 6
- 查看当前系统的默认运行级别
systemctl get-default
- 设置当前系统的默认运行级别
systemctl set-default multi-user.target
26. 找回 root 密码
27. 帮助指令
man ls
获得 ls 命令的帮助信息help cd
(获得 shell 内置命令的帮助信息)
28. 文件目录指令 1
- 回到自己的家目录
cd ~
29. 文件目录指令 2
- 创建多级目录
mkdir -p /home/spring/bear
- 删除空目录
rmdir /home/spring/bear
- 创建一个空文件
touch temp.java
30. 文件目录指令 3
- 递归拷贝当前文件夹到指定目录
cp -r srcdirectory dstdirectory
- 以覆盖方式递归拷贝当前文件夹到指定目录
\\cp -r srcdirectory dstdirectory
31. 文件目录指令 4
-
重命名
mv oldfilename newfilename
-
查看文件并显示行号
cat -n filename
-
more
键位 功能 space 下翻一页 enter 下翻一行 q 退出 ctrl + f 下滚一屏 ctrl + b 上滚一屏 = 输出当前行号 :f 输出文件名和当前行号
32. 文件目录指令 5
-
less 用于分屏查看文件内容,优点是根据需要显示的内容动态加载文件,对于显示大型文件具有较高的效率
键位 功能 space 下翻一页 pagedown 下翻一页 pageup 上翻一页 /字串 向下搜索字串,n:向下查找 N:向上查找 ?字串 向上搜索字串,n:向上查找 N:向下查找 q 退出 -
输出内容到控制台
echo $HOSTNAME
-
查看文件的头 5 行内容
head -n 5 /ect/profile
(默认查看 10 行) -
查看文件的尾 5 行内容
head -n 5 /ect/profile
(默认查看 10 行) -
实时监控文件内容的更新
tail -f filename
(ctrl + c 退出) -
覆盖重定向
>
,追加重定向>>
33. 文件目录指令 6
- 为文件或目录创建软链接(快捷方式)
ln -s srcfile linkname
- 查看最近使用的十个命令
history 10
- 执行曾经执行过的编号为5的指令
!5
34. 时间日期指令
- 显示当前时间
date
- 按指定格式显示时间
date "+%Y-%m-%d %H:%M:%S"
- 设置系统当前时间
date -s "2022-02-02 22:22:22"
- 查看指定年指定月的日历
cal 5 2050
35. 查找指令 1
- 在指定目录下按文件名检索文件
find /home -name hello.txt
- 在指定目录下按用户名过滤文件
find /home -user root
- 在指定目录下按文件大小过滤文件
find /home -size +200M
(+
大于-
小于) - locate 指令可以快速定位文件路径,因其无需遍历整个文件系统,基于自定义的数据库进行检索,速度较快,第一次使用该指令前,需使用
updatedb
指令生成 locate 数据库 - 查看某个指令存放的目录
which ls
36. 查找指令 2
|
管道符:表示将前一个命令的处理结果输出传递给后面的命令处理cat hello.t | grep -n -i "yes"
- 显示行号且忽略大小写方式从文件中查找内容
grep -n -i "yes" hello.txt
37. 压缩和解压 1
- 将指定目录下的文件压缩为 .gz 格式
gzip /home/hello.txt
- 解压指定目录下的 .gz 文件
gunzip /home/hello.txt.gz
- 压缩指定目录
zip -r myhome.zip /home
- 解压文件到指定目录
unzip -d /opt myhome.zip
38. 压缩和解压 2
-
tar 压缩后的文件格式 为 *.tar.gz
参数 功能 -c 产生 .tar 打包文件 -v 显示详细信息 -f 指定压缩后的文件名 -z 打包同时压缩 -x 解包 .tar 文件 -
压缩多个文件
tar -zcvf pc.tar.gz pig.txt cat.txt
-
解压到指定目录
tar -zxvf pc.tar.gz -C /opt/temp
39. 实用指令小结
40. Linux 组的介绍
- Linux 中每个用户必须属于一个组,不能独立于组外
- Linux 中每个文件有所有者、所在组和其它组的概念
41. 所有者
- 查看文件的所有者
ls -ahl
- 修改文件的所有者
chown username filename
42. 所在组
- 修改文件所在组
chgrp groupname filename
43. 修改所在组
- 修改用户登入系统的初始目录
usermod -d directoryname username
(用户需要拥有进入新目录的权限)
44. rwx 权限
-
权限示意图
-
第一列说明:
-
第 0 位确定文件类型
字符 说明 - 普通文件 d 目录 l 链接(快捷方式) c 字符设备文件,如鼠标、键盘 b 块设备,如硬盘 -
第 1 - 3 位确定文件所有者拥有的权限
-
第 4 - 6 位确定文件所在组拥有的权限
-
第 7 - 9 位确定其它用户对该文件拥有的权限
-
-
第二列表示文件数加目录数,第三列表示所有者,第四列表示所在组,第五列表示大小
-
rwx 权限作用到文件
r:可读 - 可以读取、查看
w:可写 - 可以修改,但不代表可以删除该文件,可以删除一个文件的前提是对该文件所在的目录拥有写权限
x:可执行 - 文件可以被执行
-
rwx 权限作用到目录
r:可读 - 可以查看该目录内容
w:可写 - 可重命名目录,可在目录创建、删除文件
x:可执行 - 可以进入该目录
45. 权限说明案例
- rwx 也可用数字表示依次对应
4、2、1
46. 修改权限
- u - 所有者,g - 所在组,o - 其他用户,a - 所有人
- 依次赋予权限
chmod u=rwx,g=rx,o=x filenameordirectoryname
<=>chmod 751 filenameordirectoryname
- 增加指定权限
chmod o+w filenameordirectoryname
- 回收指定权限
chmod a-x filenameordirectoryname
47. 修改所有者和所在组
- 修改文件或目录所有者
chown newowner filenameordirectoryname
- 修改文件的所有者和所在组
chown newowner:newgroup filenameordirectoryname
- 修改某个目录下的所有文件或目录的所有者和所在组
chown -R newowner:newgroup filenameordirectoryname
48. 权限管理应用案例 1
49. 权限管理应用案例 2
50. 权限管理应用案例 3
51. 权限管理应用案例 4
52. crond 快速入门
-
任务调度:系统在某个指定的事件执行特定的命令或程序
-
任务调度分类:
- 系统工作:有些重要的工作必须周而复始地执行,如病毒扫描
- 用户工作:用户希望执行某些程序,如对 MySQL 数据库的备份
-
crontab [params]
参数 功能 -e 编辑 crontab 定时任务 -l 查询 crontab 定时任务 -r 删除当前用户的所有 crontab 任务 -
重启任务调度
service crond restart
-
每分钟执行一次 ls -l /ect/ > tmp/to.txt 指令
*/1 * * * * ls -l /etc/ > /tmp/to.txt
-
五个占位符的说明:
占位符 含义 范围 第一个 一个小时当中第几分钟 0 - 59 第二个 一天当中的第几小时 0 - 23 第三个 一个月当中的第几天 1 - 31 第四个 一年当中的第几个月 1 - 12 第五个 一周当中的星期几 0 - 7(0 和 7 都表示周日)
53. crond 时间规则
-
特殊符号说明
符号 含义 * 代表任何时间。如第一个占位符为 * 代表一小时中的每分钟都执行一次命令 , 代表不连续的时间。如 “0 8,12,16 * * *” 代表每天的 8、12、16 点整执行一次命令 - 代表连续的时间范围。如 “0 5 * * 1-6” 代表周一至周六的 5 点整执行一次命令 */n 代表每隔多久执行一次。如 “*/10 * * * *” 代表每隔 10 分钟执行一次命令
54. crond 应用案例
55. at 任务调度机制
-
at 命令是一次性定时计划任务,at 的守护进程 atd 会在后台运行。默认情况下 atd 守护进程每隔 60s 检查一次作业队列,若有作业存在且作业运行时间与当前时间匹配,则运行此作业
-
在使用 at 命令时必须保证其守护进程 atd 处于运行状态,可以使用
ps -ef |grep atd
指令查看 -
at 命令格式
at [params] [time]
,可以使用ctrl + d
结束 at 命令的输入参数 含义 -m 当指定的任务完成后,就给用户发送邮件,即使没有标准输出 -I atq 的别名 -d atrm 的别名 -v 显示任务将要被执行的时间 -c 打印任务的内容到标准输出 -V 显示版本信息 -q<队列> 使用指定的队列 -f<文件> 从指定文件读入任务而不是从标准输入读入 -t<时间参数> 以时间参数的形式提交要运行的任务 -
at 命令时间
- 以 hh:mm(小时:分钟)指定,若该时间已过,则第二天执行
- 使用 midniging、noon、teatime 等比较模糊的词语来指定
- 采用 12 小时计时制来指定,如 12pm
- 使用具体的时间来指定,如 month day、mm/dd/yy、dd.mm.yy,例如 04:00 2021-03-01
- 使用相对计时法 now + count time-units,单位可以是 minutes、hours、days、weeks
- 直接使用 today、tomorrow 来指定时间
56. at 任务调度实例
- 两天后的下午 5 点执行命令
at 5pm + 2 days
,/bin/ls /home<EOT>
,输入结束按两次ctrl + d
结束 at 命令的输入 - 查看工作队列中的任务
atq
<=>at -l
- 删除已经存在的第 1 号任务
atrm 1
57. 任务调度小结
58. 磁盘分区机制
-
查看 Linux 系统硬盘分区挂载情况
lsblk
-
Linux 硬盘分为 IDE 硬盘和 SCSI 硬盘,目前基本都是 SCSI 硬盘
-
对于 IDE 硬盘,驱动器标识符为 “hdx~”,其中 “hd” 表明分区所在设备的类型,这里是指 IDE 硬盘。“x” 为盘号(a 为基本盘、b 为基本从属盘、c 为辅助主盘,d 为辅助从属盘);“~” 代表分区,前四个分区用数字 1 - 4 表示,它们是主分区或扩展分区,从 5 开始就是逻辑分区。例如:hda3 表示第一个 IDE 硬盘上的第三个主分区或扩展分区;hdb2 表示第二个 IDE 硬盘上的第二个主分区或扩展分区
-
对于 SCSI 硬盘则标识为 “sdx~”,SCSI 硬盘用 “sd” 来表示分区所在设备的类型,其余则和 IDE 硬盘的表示方法一致
-
查看磁盘详细信息
59. 增加磁盘应用案例
-
增加磁盘步骤:
-
通过虚拟机设置为 Linux 系统增加一块硬盘,重启后系统识别到新增的硬盘
-
使用
fdisk /dev/sdb
命令对新增的硬盘进行分区,分区结束时输入w
写入分区并退出,若不想保存在输入q
-
格式化分区,系统为新增的磁盘分区分配唯一的 40 位字符串的 UUID
mkfs -t ext4 /dev/sdb1
-
分区挂载到目录下
mount /dev/sdb1 /home/bear
-
-
卸载分区挂载关系
umount /dev/sdb1
或umount /home/bear
-
使用命令行挂载重启后会失效,永久挂载需修改 /etc/fstab 配置文件实现,配置文件编辑完成使用
mount -a
指令使挂载立即生效
60. 磁盘情况查询
-
查询系统整体磁盘使用情况
df -h
-
查询指定目录的磁盘占用情况
du -h
参数 含义 -s 指定目录占用大小汇总 -h 带计量单位M、K、G -a 包含文件 -c 列出明细的同时,增加汇总值 –max-depth=1 子目录深度
61. 磁盘实用指令
- 统计指定目录下的文件个数
ls -l /opt | grep "^-" | wc -l
- 以树状显示目录结构
tree /opt
(安装 tree 指令yum install tree
)
62. 磁盘分区挂载小结
63. NAT 网络原理图
64. 网络配置指令
65. 网络配置实例
-
通过修改配置文件指定 Linux 主机的 IP 地址
-
vim /etc/sysconfig/network-scripts/ifcfg-ens33
-
修改虚拟机设置:编辑 -> 虚拟网络编辑器,修改子网 IP 和网关 IP 与 Linux 虚拟机 IP 处于同一网段
-
使配置生效
service network restart
或reboot
-
66. 主机名和 hosts 映射
-
修改主机名
vim /etc/hostname
-
windows:C:\\Windows\\System32\\drivers\\etc\\hosts 中添加 IP 与主机的对应关系
192.168.222.222 machine
-
Linux:/etc/hosts
-
Hosts:一个文本文件,用来记录 IP 和 Hostname 的映射关系
-
DNS:Domain Name System,是互联网上作为域名和 IP 地址相互映射的一个分布式数据库
-
主机名解析机制分析:
- 浏览器先检查浏览器缓存中是否存在该域名对应的 IP,有则完成域名解析;否则检查操作系统的 DNS 解析器缓存中是否存在该域名对应的 IP,有则完成域名解析(即先查看本地解析器缓存)
- 如果在本地解析器缓存中没有找到域名与 IP 的对应映射,则检查系统的 hosts 文件,找到映射关系则完成域名解析
- 如果在 hosts 文件中仍未找到域名与 IP 的映射关系,则到 DNS 服务器中进行查找
-
查看本地域名解析器缓存
ipconfig /displaydns
-
清除本地域名解析器缓存
ipconfig /flushdns
67. 网络配置小结
68. 进程基本介绍
- 在 Linux 中,每一个执行的程序都称为一个进程,每一个进程都分配一个 id(pid 进程号)
69. ps 指令详解
-
ps 指令用来查看当前系统中进程的执行情况
参数 含义 -a 显示当前终端的所有进程信息 -u 以用户的格式显示进程信息 -x 显示后台进程 -
进程详细信息说明
名称 含义 USER 用户名称 PID 进程号 %CPU 进程占用 CPU 的百分比 %MEM 进程占用物理内存的百分比 VSZ 进程占用虚拟内存大小(KB) RSS 进程占用物理内存大小(KB) TT 终端名称(缩写) STAT 进程状态 STARTED 进程启动时间 TIME CPU 时间 COMMAND 启动进程所用的命令和参数 -
进程状态说明
参数 含义 S- 睡眠 s- 该进程是会话的先导进程 N- 进程优先级比普通优先级更低 R- 正在运行 D- 短期等待 Z- 僵死进程 T- 被跟踪或被停止
70. 父子进程
- 以全格式显示当前所有进程(包括父进程)
ps -ef
71. 终止进程
-
通过进程号杀死进程
kill 7940
-
重启 sshd 服务
/bin/system start sshd.service
-
通过进程名称杀掉进程(包括子进程)
killall gedit
-
查看本机终端进程
ps -aux | grep bash
,强制杀掉终端进程kill -9 8963
72. pstree 指令
73. 服务管理 1
74. 服务管理 2
75. 服务管理 3
76. 服务管理 4
77. 服务管理 5
78. 动态监控系统 1
79. 动态监控系统 2
80. 监控网络状态
81. 进程管理小结
82. rpm 管理 1
83. rpm 管理 2
84. yum
85. 软件包管理小结
86. 安装配置 JDK 8
87. 安装配置 tomcat 8
88. 安装配置 idea 2020
89. 安装配置 mysql 5.7
90. 小结
91. shell 变成快速入门
92. shell 变量
93. 设置环境变量
94. 位置参数变量
95. 预定义变量
96. 运算符
97. 条件判断
98. 单分支多分支
99. case 语句
100. for 循环
101. while 循环
102. read 获取输入
103. 系统函数
104. 自定义函数
105. 定时备份数据库 1
106. 定时备份数据库 2
107. shell 编程笔记梳理
108. ubuntu 安装
109. ubuntu 中文支持
110. ubuntu 的 root
111. hello python
112. APT 原理机制图
113. APT 更新源和实例
114. ubuntu 远程登录
115. python 定制篇梳理
116. centos 8 安装和介绍
117. 日志介绍和实例
118. 日志服务原理图
119. 日志服务配置文件
120. 自定义日志服务
121. 日志轮替介绍
122. 自定义日志轮替
123. 日志轮替机制
124. 内存日志
125. 日志管理笔记梳理
126. 定制自己的 Linux 1
127. 定制自己的 Linux 2
128. 定制自己的 Linux 3
129. 阅读 Linux 内核源码好处
130. 阅读 Linux 内核源码技巧
131. 阅读 Linux 内核源码及 main
132. 内核升级
133. 备份与恢复介绍
134. 数据备份 dump
135. 数据恢复 restore
136. 数据备份恢复管理
137. webmin 安装和配置
138. webmin 功能演示
139. bt 宝塔介绍和安装
140. bt 宝塔应用实例
141. 可视化管理小结
142. 统计访问量和连接数
143. 找回 MySQL 的 root 密码
144. 访问量排名和 tcpdump
145. 系统权限划分 1
146. 系统权限划分 2
147. 有趣权限思考题
148. CentOS 启动流程详解
149. io 读写监控
150. 统计文件个数和行数
151. 无人值守备份目录
152. Linux 系统优化策略
153. 卖油翁与老黄牛
以上是关于2021图解Linux全面升级的主要内容,如果未能解决你的问题,请参考以下文章