目录
一:linux基础篇,linux入门
二:linux 组管理 和 权限管理:
三:crontab:定时任务调度:
四:Linux 磁盘分区,挂载
五:Linux 网络配置:
六:Linux 进程管理:(重点)
七:RPM 与 YUM
八:javaEE 定制篇(搭建 javaEE 开发环境)
九:大数据定制篇
十:Python定制篇
linux学习分几个阶段:
1.Linux 环境下,基本操作命令。包括:(文件操作命令,编辑工具使用,linux用户管理)
2.linux 各种配置。包括:(环境变量配置,网络配置,服务配置)。
3.Linux 下,如何搭建,对应语言开发环境。包括:(大数据,javaEE,Python等)。
4.能看懂,并编写 shell 脚本,对 linux 服务器进行维护。
5.能进行安全设置,防止攻击,保障服务器正常运行,能对系统调优。
6.深入理解 Linux 系统(对内核有研究),熟练掌握大型网站应用架构组成、
并熟悉各个环节的部署和维护方法。
1)Linux 介绍:
2)Linux 和 Unix 关系:
a:Linux: 是操作系统
b:Unix: 是内核
3)VM 和 Linux(CentOS) 系统安装:
a:先安装 Virtual machine ,vm15(linux运行环境)
b:在安装Linux(CentOS)
c:VM 和 CentOS 关系
-1.vm:安装在 window 操作系统上的软件。
-2.通过 vm 软件,能够创建出,虚拟机空间,
-3.在虚拟空间里,安装真正的操作系统(CentOS系统)
d:VM 安装步骤:
-1.去 BIOS 里,修改设置,开启虚拟化设备支持。然后安装vm。
e:CentOS 安装步骤:
-1.创建虚拟机(空间)。设置虚拟机,开启此虚拟机,开始安装系统。
-2.难点:虚拟机网络适配器(网络连接),三种情况说明
1.桥接模式(直接连接物理网络)
好处:Linux 可以和其他的通讯系统(计算机)通信,
直接占用一个网段,通讯比较快。
缺点:但是统一网段电脑多,可能造成ip冲突。
2.NAT 模式(网络地址转换模式)(用于共享主机的IP地址)
linux 虚拟机和本机同一个IP地址,都是虚拟ip,
linux 可以访问外网,外网不能访问虚拟机,不会造成冲突。
3.仅主机模式(与主机共享的专用网络)
linux是一个独立的主机,不能访问外网
f:安装后:
-1.使用终端
-2.配置网络,可以上网。
-3.连接 windows 和 liux,实现可以连接复制粘贴。
菜单,虚拟机,安装 vmtools :
可以在window 和 linux 直接粘贴复制,也可以设置共享文件夹。
4)Linux 目录结构
5)远程连接:
a:Xshell:速度快,解决了中文乱码问题。(使用 UTF-8)
b:服务器得开启,sshd,服务,开启远程访问,并监听 22 端口。默认连接服务器 22 端口。
c:为服务器分配ip地址,ifconfig:查看服务地地址。
d:传文件 协议要用 SFTP,传指令 SSH。
6)vi 和 vim 编辑器 介绍:
7)关机&重启命令
a:关机重启
-1.shutdown:
shutdown -h now:立即关机
shutdown -h 1 :1分钟后关机
shutdown -r now:立即重启
-2.halt: 停机,关机
-3.reboot:重启系统
b:sync:把内存数据,同步到磁盘。
-1.细节:执行关机前,都应该先执行 sync,把内存数据同步到磁盘,防止数据丢失。
8)用户登录和注销
a:用户登录,尽量不使用root用户,权限太高。
b:注销用户,退出远程连接
logout。
9)用户管理:
10)实用指令:
a:指定运行级别:
-1.指令级别:
0.关机
1.单用户【找回丢失密码时】
2.多用户状态 没有网络服务
3.多用户状态 有网络服务【常用】
4.系统未使用 保留(给用户)
5.图形界面【常用】
6.系统重启
-2.系统运行级别 配置文件
/etc/inittab 的 id:5:initdefault:
表示当前运行级别 为 5.
-3.切换指定运行级别指令:
init [012356]
-4.面试题:如何找回root密码?
思路:进入到单用户模式,修改root密码。
因为单用户模式,root 不需要密码登录,必须在linux主机操作。
b:文件操作指令:
-1.pwd:显示当前目录的绝对路径
-2.ls:
ls -a:显示所有的文件和目录,包括隐藏的
ls -l(h):以列表方式显示信息
-3.cd:切换目录
cd ..:切换上级目录
-4.mkdir:创建目录。
mkdir -p:创建多级目录
-4.rmdir 目录名:删除目录(目录下有文件,无法删除)
rm -r 目录名:递归删除整个文件夹
rm -f(rm -rf)目录名:强制删除不提示
-6.touch 文件名:创建空文件
touch abc.txt
-7.cp:拷贝指令
cp source dest: source:文件,dest:地址。把谁拷贝到哪
cp -r source dest: 递归拷贝整个文件夹。
\cp -r source dest: 强制覆盖
-8.mv:移动文件或者重命名
mv oldName newName:重命名
mv source dest:移动,把谁移动到哪
-9.rm 文件或目录:删除文件或目录
rm -r:递归删除整个文件夹
rm -f(rm -rf):强制删除不提示
-10.cat 要查看的文件:以只读的方式,查看文件内容
cat -n a.txt:显示行号,查看文件。
cat -n a.txt | more:管道服务,分页显示。
-11.more:以分页方式显示内容:整个文件加载,分页展示。
-12.less:以分页方式显示内容:一页一页加载读取,看大型日志,比较快。
-13.> ,>>:输出重定向 和 追加指令。
ls -l > a.txt:把输出内容,重写到文件
ls -l >> /etc/b.txt:写入到 etc/b.txt 文件后 追加
cat 文件1 > 文件2:将文件1的内容 覆盖到 文件 2
-14.echo:输出内容到控制台
-15.head:显示文件开头部分,默认显示前10行。
-16.tail:显示文件末尾部分,默认显示后10行。
tail -f:实时监控, 实时追踪文档的更新,【经常使用】。
-17.hishory:查看历史指令,或者执行历史指令。
!178:执行历史指令。
c:时间日期类指令:
-1.显示日期:
date:显示当前时间
date +%Y:显示年
date "+%Y-%m-%d:%H-%M-%S":实现年月日时分秒
-2.设置日期:
date -s "2020-11-03 22:35:14"
-3.cal:当前的日历情况
cal 2020:显示 202 年日历。
d:搜索查找指令:
e:压缩 和 解压缩指令:
1)定时任务调度 概念:指系统在某个时间,执行热定的命令或者程序。
a:定时任务调度 分类:
-1.系统工作:有些重要的工作,必须周而复始的执行。如病毒扫描
-2.个别用户工作:个别用户,希望定时执行某些程序。如 mysql 数据库备份
2)解释:
a:Linux 定时调用 我们的 脚本/代码。
-1.对于只是简单的任务,可以不用写脚本,直接在 crontab 中,加入任务即可。
-2.对于比较复杂的任务,需要写脚本(shell脚本) 完成。
b:用 crontab 定时调度。
-1.常用选项:
-e:编辑 crontab 定时任务。
-l:查询 crontab 定时任务。
-r:删除当前用户,所有的 crontab 定时任务(终止任务调度)。
service crond restart:重启任务调度
3)入门案例:
a:案例1:
-1.任务要求:
设置任务调度文件:/etc/crontab
设置个人任务调度:执行 crontab -e 指令
接着输入 任务 到 调度文件
如:* /1 * * * * ls -l >> /etc/temp/to.txt
意思是每小时的每分钟,执行:ls -l >> /etc/tmp/to.txt 命令
-2.实现:
crontab -e
文件中 写入:* /1 * * * * ls -l >> /etc/temp/to.txt
保存退出就生效。
在每一分钟,自动调用:ls -l >> /etc/temp/to.txt
b:案例2:
-1.每隔一分钟,就将当前的日期信息,追加到 /tmp/mydate 文件中
调用脚本实现。
1)先编写 脚本文件:/home/mytask1.sh
写入: date >> /tmp/mydate
cal >> /tmp/mydate
2)给 mytask1.sh 一个可执行权限
3)crontab -e
4)* /1 * * * * /home/mytask1.sh
-2.每天凌晨三点,将 mysql 数据库 testbd ,备份到文件 mydb.bak 中
1)先编写 脚本文件:/home/mytask3.sh
写入:/usr/local/mysql/mysqldump -uroot -proot testdb > /tmp/mydb.bak
2)给 mytask3.sh 可执行权限
3)crontab -e
4)0 3 * * * /tmp/mydb.sh
b:参数说明:
-1.五个占位符:
*:一小时当中的第几分钟:(0-59)
*:一天当中的第几个小时:(0-23)
*:一个月当中的第几天: (1-31)
*:一年当中第几个月: (1-12)
*:一周中星期几: (0-7)(0和7 都代表周日)
-2.特殊字符:
*:代表任何时间
,:一个不连续的时间(8,10,12:代表8点,10点,12点,都执行一次命令)
-:代表范围(1-6:周一到周六,执行一次命令)
* /n:代表每隔多久执行一次:(* /10:每隔十分钟执行一次)
-3.示例:
45 22 * * * :每天 22:45 分执行
0 17 * * 1:每周一 17:00 执行
* /10 4 * * *:4:00 ~ 5:00,每隔十分钟执行一次
0 5 1,15 * *: 每月 1,15 号,5:00 执行
1)Linux 磁盘分区:
a:分区两种模式:
1.mbr 分区(传统):
2.gtp 分区(主流)(优越):
b:linux分区原理介绍
无论分几个区,都是挂载到 目录下。
c:
d:查看分区挂载情况:
lsblk -f:
sda1 xfs 0f805e80-1539-49a3-b510-bc67208242c2 /boot
分区情况 分区类型 40位不重复,分区唯一标识字符串 挂载点
2)如何增加一块硬盘
a:虚拟机添加硬盘
b:分区
c:格式化
d:挂载
e:设置可以自动挂载
3)磁盘情况查询:
a:基本语法:(h:human,人观察模式)
-1.df -l/lh /目录:查询 系统整体 磁盘使用情况
-2.du -l/lh /目录:查询 指定目录 磁盘使用情况
参数:
-s: 指定目录 占用大小汇总
-h: 带计量单位
-c: 列出明晰的同时,增加汇总值
-a: 含文件
--max-depth=1:子目录深度
b:示例:
-1.查询 /opt 目录的 磁盘占用情况,深度为 1
du -ach --max-depth=1 /opt
-2.统计 /home 文件夹下文件的个数
ls -l /home | grep "^-" | wc -l
列出来 过滤 统计
-3.统计 /home 文件夹下目录的个数
ls -l /home | grep "^d" | wc -l
-4.统计 /home 文件夹下文件的个数,包括子文件里的。
ls -lR /home | grep "^-" | wc -l
-5.统计文件夹下,目录的个数,包括子文件夹里的
ls -lR /home | grep "^d" | wc -l
-6.以 树状 显示目录结构
yum install tree:安装 tree 指令
tree:查看
tree /home:查看
1)Linux 网络配置原理(含虚拟机)
b:目前,我们网络配置,采用的是 NAT 模式(网路环境)。
linux -(通信)-(vmnet8 虚拟网卡)windows-(通信)-外界
192.168.234.1 192.168.234.1/192.168.8.2 192.168.8.5
b:查看 网络ip 和 网关
vm,
b:更改 windows vm8 网址:
网络,更改适配器选项,
2)Linux 网络配置原理:
a:自动获取:
b:指定ip:
1)进程基本概念:
2)显示系统执行的进程:
3)终止进程:
4)服务(service)管理
b:管理指令:
c:使用案例:
-1.查看当前防火墙的状况、关闭防火墙、重启防火墙。
-2.systemctl status firewalld
d:查看可用端口:
-1. telnet ip 端口:windows下,启动telnet,可以检查端口是否监听 并可以访问。
e:查询自启动服务:
-1. setup
-2. ls -l /etc/init.d/
f:服务的运行级别:
-1.init 5:指定运行级别为5。
-2.vim /etc/inittab:查看或修改 ,服务默认运行级别
-3.运行级别和服务关系:
不同 服务,在每一个运行级别中,启动规则都不一样,(自启动/不启动)
5)动态监控进程:
6)监控网络状态:
1)RPM(用得少)
a:RPM 介绍:
-1.RedHat Package Manager(红帽包管理器)、
-2.可以安装文件,是红帽一种管理标准。
b:RPM 指令:
-1.查询当前Linux 有没有火狐浏览器
rpm -qa | grep -i mysql
rpm -qa | grep firefox
rpm -qa firefox
-2.查看安装路径:
rpm -ql firefox
-3.安装:
rpm -ivh RPM包全路径
-i:install 安装
-v:verbose 提示
-h:hash 进度条
-4.移除:
rpm -e firefox
2)YUM(用的多)
a:yum 是一个,Shell,前端软件包管理器,基于 RPM 包管理,能够从 指定的服务器
自动下载 RPM 包,并且安装,并且可以自动安装依赖包(需要联网)。
b:YUM 指令:
-1.查询软件:
yum list | grep XX
-2.安装指定软件:
yum install XX
1)JDK 安装 与 配置
a:在 /opt/ 目录下,解压 jdk-8u241-linux-x64.tar.gz
b:vim /etc/profile :配置环境变量
-1.JAVA_HOME=/opt/jdk/jdk1.8.0_241;java 路径
-2.PATH=/opt/jdk/jdk1.8.0_241/bin:$PATH;:连接符
-3.export JAVA_HOME PATH;输出一下,让变量生效
export JAVA_HOME=/usr/local/java/jdk1.8.0_291
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
c:更新环境变量(source /etc/profile) 或者 注销用户