本篇是所有的Linux笔记的最后一篇,后续还会有下载java开发环境的状态的一篇。
系列文章
- 第一讲解然后的安装篇。Linux软件安装篇:https://blog.csdn.net/weixin_46635575/article/details/121268261
- 实操篇的第一篇:https://blog.csdn.net/weixin_46635575/article/details/121268261
- 实操篇的第二篇:https://blog.csdn.net/weixin_46635575/article/details/121343856
- 实操篇的第三篇:https://blog.csdn.net/weixin_46635575/article/details/121377870
- 实操篇的第四篇:https://blog.csdn.net/weixin_46635575/article/details/121489375
- 实操篇的第五篇::https://blog.csdn.net/weixin_46635575/article/details/121489408
一、任务调度
1、定时任务
1、定时任务调度
2、原理
- 其实差不多就是我们写的shell脚本,当要在某一个时间执行,这时候可以利用Linux的一种机制,就定时任务调用(调度)去定时执行。你要做的就如下
- 编写脚本
- 定制某任务调度
2、入门案例
1、问题
- 设置一个任务调度文件:/etc/crontab
- 设置一个任务调度:执行crontab -e
- 接着输入一个任务到调度文件:如
- */1 * * * * ls -l >> /temp/to.txt【就是把某个东西查询出来,然后写到/temp/to.txt文件里面,
*/1 * * * *
是用来写设置时间的后续会讲,每隔多少时间】 - 每个一小时的每一分钟执行ls -l /etc/ > /temp/to.txt
- */1 * * * * ls -l >> /temp/to.txt【就是把某个东西查询出来,然后写到/temp/to.txt文件里面,
2、分析
如果是简单的问题,不用写写脚本,就在crontab中添加任务即可,如果是复杂的任务,就要写脚本了。这次我们选择第一种方式
- crontab -e到里面去
- 在里面写*/1 * * * * ls -l /etc >> /tmp/to.txt
- 保存退出程序
- 当我们ls -l查看的时候,会在一分钟后创建to.txt文件,每隔开一分钟执行一次
来查看一下
3、任务调度里面的文件能写什么
1、占位符
- 以这句话分析:
*/1 * * * * ls -l >> /temp/to.txt
2、每一格能写什么
3、特定时间的执行
4、应用实例
1、问题来源
2、问题解决
1)解决上面的第一个问题
之前我们是直接执行某一个任务调度,这次我们虽然能简单完成,但是用shell脚本来编写
- 编写一个文件:再home下编写一个mytask1.sh文件【在里面写date >> /tmp/mydate】
- 然后给mytask1.sh一个可执行权限,如果没有可执行权限时不行的
- 然后crontab -e【在里面写:*/1 * * * * /home/mytask1.sh】
- 然后就OK了
2)第二个和上面个问题差不多的
- 就改上面的第一步为mytask2.sh:【date >> /temp/mycal cal >> /temp/mycal
- 其他的差不多
3)第三个
- 首先创建文件:/home/mytask3【在里面编写:
/user/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak
里面去】 - 同样的要改为可执行文件
- 同样的crontab -e【这里应该写:0 2 * * * /home/mytask3.sh】
- 然后OK了
5、相关指令
二、磁盘分区和挂载
1、磁盘分区
(1)分区的概念和win分区
- 分区的方式(了解)
- Windows下的分区
(2)Linux分区
-
先来看基本概念
-
分区的原理示意图(通过挂载和卸载来将不同的内存区分给不同的用户使用)
-
硬盘说明
-
在Linux查看自己的分区情况(或者用lsblk)
最后通过挂载点技术进行处理得到了一个系统
2、给我们的Linux增加一块硬盘
(1)需求
- 假设我们的硬盘系统不够用了,现在想要增加一块硬盘。然后把它挂载到系统上面。
- 图理解
(2)案例演示
1、步骤
- 虚拟机增加磁盘
- 分区:
fdisk /dev/sdb
- 格式化(不格式化的话是不会有那个UUID的):
mkfs -t ext4 /dev/sdb1
- 挂载(先创建一个目录在home下newdisk):
mount /dev/sdb1 /home/newdisk
- 设置永久挂载(即当你重启系统后还是挂载好的)
- 编辑vim /etc/fstab的一个文件
- 就是记录了我们的挂载点的一个情况
2、看步骤图
-
第一步看增加硬盘
来查看一下,发现什么都没有啊(要重新启动才能看见)
再来看一下
-
第二步来看分区
其他的就是回车
-
第三步来格式化(没有),相当于里面没有小房间,不能住人一样的。
-
第四步设置挂载点
-
第五步,设置永久挂载【因为像前面一样挂载过后的是在我们重启系统后会消失的】
增加这么一行
然后保存
最后执行一个指令
(3)小补充一个知识
在Linux下面用reboot重启虚拟机
3、断掉之前配置的磁盘
- umount XXXX
4、磁盘查询指令
(1)磁盘情况查询
- 基本语法
- 练习
swap分区不显示
(2)查询指定目录的磁盘占用情况
- 基本语法
- 练习(要记住ach组合)
(1)练习
- 统计/home文件夹下文件的个数
- ls -l /home:是查询出/home目录下的文件来
- 用管道符|连接过滤grep “-”【过滤得到以-开头的】
- wc -l统计个数
- 统计/home文件夹下的目录个数【就改了一个grep那个过滤条件】
- 统计/home文件夹下文件的个数,包括子文件夹里的【带个R进行递归统计】
- 统计文件夹下目录的子目录,包括子文件夹【】
- 以树状显示目录结构
- 首先安装:tree指令
- 首先安装:tree指令
三、网络配置
之前我们是点的配置网卡,然后在里面配置的。IP地址是随机的,这种肯定是有问题的。
1、网络配置原理图
(1)原理图
- 我们现在配置的模式是NAT模式:大概的模式是一个 下面样子
-
可以在Windows下用:ipconfig来查看自己的IP地址
-
Linux下可以用ifconfig进行查看自己的IP地址
-
你的Linux和Windows之间可以用ping命令自己的另外一个ip地址,进行查看
- 首先我们配置的Linux自己动态的生成ip地址,通过自己的真实ip动态代理进行与外界进行通信。
- 我们现在要解决的问题就是配置确定网络ip地址。
-
(2)查看我们的IP
(3)修改虚拟网卡的ip地址
修改虚拟网卡的ip地址(其实就是上面一张图片中的vmnet8那个)
- 进行修改
(4)查看和修改网关
2、Linux网络环境配置
(1)自动获取方式
- 登录后自动获取ip,进行自动配置(不过好像CentOS7都是自动配置吧,我好像)
- 配置
然后应用即可(下次重启没问题)
(2)指定固定Ip(修改一个文件)
-
上面的配置是有一个问题的:每次启动都是自动获取ip地址,但是但是但是,我们在开发过程中,如果你的ip地址和域名对不上,那完蛋了,每次都变化,所以不适合在服务器这样配置,所以有指定固定ip地址
-
第一种方式(有多个网卡就对应多个文件:eth0可以是看你自己的eth1等)
- 记住这个文件:/etc/sysconfig/network-scripts/ifcfg-eh0
- 首先那个static就是要指定以静态的那种方式
- 下面的三个是网关和ip和dns的配置
- 那个yes就是启用这boot去获取ip
- 记住这个文件:/etc/sysconfig/network-scripts/ifcfg-eh0
-
最后重启网络服务就OK了
- service network restart
- 或者重启Linux系统
四、进程管理
1、进程介绍
(1)基本介绍
(2)显示系统执行的进程
- 查看我们进程的指令是ps 参数一本为ps -aux
- 基本语法一般为:ps -aux
- 但是看起来太多了:我们用ps -aux | more 进行分页查询
- 查看父进程:ps -ef | grep xxxx
- ps -ef | more
- ps -grep | more
(3)思考题
假设我们要查看某个进程的父进程
2、进程的终止
(1)基本命令
(2)案例演示
1、第一个解决
2、第二个解决
3、第三个解决(就是一个一个的杀掉太慢了,所以我们一锅端了)
4、第四个解决(这个bash显示我们的shell终端)
当我们执行:kill -9 4090后,后面个界面就干掉了
3、进程服务管理(就是进程管理的一部分)
(1)基本介绍
通常这些服务都会监听一个端口
(2)使用案例:查看关闭防火墙
-
来查看防火墙状态
- 只有一个22端口是打开的,其他的就是关闭的
-
关闭防火墙
(3)使用细节
- 可以这样来查看你是否能查看
- 而且不是永久的,要用特定的才是永久生效
(4)Linux的服务
- 查看我们的服务名
- 第一种
- 第二种方式
(5)服务的运行级别
- 要背的哦,面试是会问的
(6)服务的级别应用
- 案例演示
可以查看各个服务在各个级别下的是否自启动
- 设置是否自启动
(7)进程的监控指令
-
动态进程管理
- 案例演示:输入top【如果你要想查找的,直接输入一个u,然后你找OK了】
-
要注意的是灰色包裹起来的框框,它代表的是负载均衡,如果三个数字相加除3都大于0.7的话,那你的系统就有点问题了【可以建议你老板升级一下你们的Linux情况】
-
杀死某个进程
-
修改默认刷新时间
-
互动:假设我们要使用PID进行排序显示的话,你也可以进top后,输入一个N【大写N】
-
- 案例演示:输入top【如果你要想查找的,直接输入一个u,然后你找OK了】
-
系统网络情况netstat【很重要的】
- 案例演示
- 查看一下:netstat -anp | more
- 查看一下:netstat -anp | more
- 案例演示
五、RPM和YUM包管理
1、RMP包管理
(1)大致介绍
- node.js都是这种pom包管理的模式
(2)RMP查询指令
- rmp -qa | grep xx【xx就是你要关注的哪个文件】
- 案例演示:查看Linux是否安装了firefox浏览器
(3)RMP包管理
- 太简单了,自己可以试着去搞
- 如果你没有安排某个软件,则不显示任何的数据
- 查询软件包信息
- 如果你没有安排某个软件,则不显示任何的数据
(4)RMP卸载和安装
1、删除的基本语法
- 删除的细节【如果别人在引用的话,会提示你是否要强制删除,但是尽量不要强制删除】
2、安装RMP命令
-
安装步骤
-
案例演示
2、YUM包管理
(1)基本介绍
(2)基本指令的使用
基本就是两句话:查询能不能安装,然后安装或者不能安装。
- 来查看是否firefox浏览器包是否在YUM浏览器服务器
- 然后就是按着 yum install XXX【默认安装最新版】