1.liunux简介
1.1什么是操作系统?
操作系统是一种安装在计算机的硬件上,用来管理计算机的硬件和软件资源的系统软件。
为什么要用linux?
相对于window,linux是一个开源的,免费的操作系统,linux相对于更加安全,注重稳定性,高并发处理能力,但是没有优异的可视化界面。windows一般用于个人计算机上,linux一般应用在企业服务器上。
linux的应用领域
1.个人桌面
是linux最薄弱的地方,但是最近几年已经逐渐优化了
2.服务器
linux在服务器领域的应用是最强的,
linux的免费,开源,稳定高效,特点在这里有很好的体现,
3.嵌入式
1.2 linux发行版本
linux是在1991年发布的,后来有很多软件开发组织和公司对linux进行了二次开发,但是内核版本都是相同的,最常见的linux版本有:Ubuntu。RedHat.Centos
1.3安装linux
1.虚拟机:可以用软件模拟出一套具有完整硬件功能的,运行在一个完全隔离环境中的完整计算机系统。
2.安装linux操作系统:
CentOS8.1: http://mirrors.aliyun.com/centos/8.1.1911/isos/x86_64/CentOS-8.1.1911-x86_64-dvd1.iso
CentOS7: http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso
1.linux镜像文件,
https://vault.centos.org/7.6.1810/isos/x86_64/
2.vmware:
https://www.nocmd.com/windows/740.html
需要设置的内容

2.vmware简单操作:
1.虚拟机的克隆
方式1:直接拷贝一份安装好的虚拟机文件
方式2:使用vmware的克隆操作,注意,需要先将运行的linux关闭。
2.虚拟机快照
3.安装vmtools
可以设置linux系统可以读取windeow系统中的共享文件夹。
2.linux入门
2.1linux目录(重点)

linux:只有一个根目录,linux采用的是层级式的目录结构
bin
—》user/bin:放的是系统的的可执行程序,该命令可以在任何目录都可以执行
—》user/local/bin:放的是用户自己的可执行文件,该命令可以在任何目录都可以执行
sbin:放的也是linux的命令
dev:放的是设备文件
etc(掌握):放的是系统中各个软件的配置文件的
配置环境变量文件:etc/profile
root:管理员目录
usr:(掌握)在user中有一个常用的文件夹:local,一般是放开发人员安装的软件的。
var:放的是各种增长文件的例如日志
home:每一个普通用户在home目录下都有一个根目录,默认情况下,用户名和目录名相同,
是用来保存用户的私人数据.
opt:存放额外安装的软件.默认存放位置,相当于windows的profilegramer
2.2远程工具操作服务器系统。
1.安装远程工具 : Xshell
linux的远程模拟终端
1.安装并破解
2.启动,连接远程linux,创建会话:
查看linux的ip地址.使用ifconfig命令


2.安装xftp:文件传输软件
1.安装并破解后启动
2.3linux中的vi和vim
1.什么是vi和vim:
是linux中的文本编辑器,用来在linux中创建、查看或者编辑文本文件,就好像windows中的记事本一样.
vim功能更加强大一些,是vi的一个增强
2.vi和vim的使用


一般模式:使用vi或者vim命令打开文件,进入了一般模式;可以查看文件内容
但是不能编辑文件内容,只能查看文件内容
编辑模式:在一般模式下,按 i 或者 I a 或者 A可以进入编辑模式
可以编辑文件内容,但是不能保存文件内容。
按esc键可以回到一般模式
命令行模式:在一般模式下,按shift + :,进入命令模式
常用指令、q!:不保存,并且退出编辑器
wq:保存并且退出编辑器
3.vi 和 vim的常用快捷键
1)yy:在一般模式下按yy就可以把光标所在行复制到剪切板
2)nyy:赋值多行,在一般模式下按你想复制的行数+yy就可以复制多行
3)在文本文件中查找关键字:在命令行模式下,输入/ 关键字
按n表示查找下一个关键字。
4)删除光标所在行:在一般模式下,按dd删除
5) 删除光标所在的行往下5行,在一般模式下按5dd。
6)撤销上次编辑的内容:在编辑模式下,使用u。
7)显示行号:在命令行模式下:set nu
取消行号:在命令行模式下:set nonu
8)切换管理员:su 用户名
2.4linux中的实用指令
1.运行级别
1.什么时运行级别:
0:关机
1:单用户【可以找回密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用级别时3和5,也可以指定默认运行级别,后面演示
我们可以使用init[0-6]来指定当前运行级别的,我们也可以指定我们登录的时候指定的运行级别。
我们也可以指定我们系统的默认运行级别
Systemctl set-default multi-user.target:设置系统默认运行级别为3
graphical。target 设置系统默认运行级别为5
1.ifconfig:
查看linux的ip地址
2.mkdir:
创建文件夹
3.cd:
进入指定文件夹
4.ls:
查看当前文件夹所有目录
5.vim 文件名:
当存在指定的文件时,就打开该文件,如果不存在,就创建该文件。
2.5linux中的用户管理
1.用户管理
任何使用linux系统资源的用户,必须要使用一个合法的账号和密码,账号和密码一般都是向系统管理员申请,root是linux系统安装时默认创建的系统管理员账号,由root创建普通账号。
2.添加用户:
useradd 用户名 ,
默认创建到home 下面
useradd -d 指定目录 指定用户名:可以指定用户的创建位置
useradd -g 组名 用户名:创建用户的时候就指定它的组(主组)
3.设置密码:
passwd 密码
这一步其实在linux底层中做了如下事情:
1.创建了一个用户
2.在home文件中创建了一个用户的根目录
3、在linux中任何一个用户都至少属于一个组,新建用户如果不指定组,则会新建一个组,组名和用户名相同,并且把该用户添加到该组中。
4.删除用户:
userdel 用户名 并不会删除该用户的主目录
userdel -r 用户名:再删除用户的同时删除它的主目录
细节:我们平时是否要删除主目录?
建议保留!!!
5.查看用户信息:
6.切换用户:
su 用户名
细节:高权限的用户转向低权限的用户不需要密码
反之,则需要。
7.查看当前登录用户:
8.修改用户的组:
usermod -g 组名 用户名
2.6:linux中的组管理
1.什么是组:
linux中的组相当于角色的概念,可以对由某一共性/权限的用户进行统一管理。
每一个用户至少属于一个组,不能独立于组存在,也可以属于多个组。
2.添加组: groupadd 组名
3.删除组:groupdel 组名
4.把用户添加到一个组中:gpasswd -a 用户名 组名
5.把用户从一个组中移除:gpasswd -d 用户名 组名
6.改变文件的所有者:chown 用户名 文件名
7.id可以查看一个用户的详细信息
8.ls -ahl 文件名:可以查看一个文件或目录所在组
9.修改文件所在组:
chgrp 组名 文件名
10.修改用户的组:
usermod -g 组名 用户名
应用举例:
1。创建一个武当组,并且将tom添加到武当组中
groupadd wudang
gpasswd -a tom wudang
2.7:linux中的系统操作命令:
关机:shutdown now 立即关机
shutdown -h xxx 定时关机
shutdown -r now 立即重启
重启:reboot 立即重启
同步数据库:sync
clear:清除屏幕
ps -ef :查看当前系统中所有进程
ps -ef | grep 命令:根据指定命令搜索系统中对应的进程
kill pid:可以通过pid 强制终止某进程
2.8linux中的帮助命令
1)用来查看linux系统手册上的帮助信息:man 命令
分屏显示的,按回车可以往下一行,按空格往下一页,q 退出
2)用来查看linux的内置代码注释:help 命令
2.9 linux中的文件和目录操作的命令:
1):查看当前所在目录 pwd
2):查看指定 或者 当前目录下的所有子目录或文件列表 :ls
ls -l 指定文件或当前文件 以列表形式查看当前目录下的所有子目录的详细信息
ls -a 指定文件或当前文件 可以查看当前目录下的所有子目录包括虚拟目录
ls -al 指定文件或当前文件 可以以列表形式查看当前目录下所有子目录包括虚拟目录
3)切换目录:cd 目录名
|-》绝对目录:从盘符开始找叫做绝对目录
|->相对目录:以目录名开始的目录叫做相对目录
cd ~:无论当前在那个目录,进入当前用户的根目录
cd .. :当前目录的上一级目录
cd .:当前目录
4)创建目录:mkdir 目录名
|—》相对目录
|—》绝对目录
创建多级目录:mkdir -p 目录名/目录名
5)删除一个空目录:rmdir 目录名
rmdir test
6)创建一个或多个文件:touch 文件名1 文件名2
文件与文件之间用空格隔开
7)复制文件或者目录:cp 需要复制的文件 复制到何处
cp test2.txt test4
cp -r 需要复制的文件 复制到何处 可以将复制的文件的所有子目录强制覆盖到目标文件处
8)删除文件或者目录:rm 文件名或者目录名
rm -f t2.txt 强制删除文件
rm test2 提示删除目录
rm -r test2 提示删除多级目录
rm -rf test2 递归强制删除目录
9)移动目录或者文件:mv source(源文件) dest(目标文件)
mv 已存在文件 不存在文件 :重命名 
10) 查看文件内容:cat 文件名
文件内容一次性显示出来
cat test4.txt
cat -n t4.txt 显示行号
11)分页查看文件内容 :more文件名,一次性加载所有文件到内存,回车往下一行,空格往下一页
more test4.txt
12) 分页查看文件内容:less 文件名 分页加载 文件所有内容到内存, 分页显示
less test4.txt
13) 查看文件的头10行 :head 【选项】 文件名
head test4.txt
head -n test4.txt
14) 查看文件的后10行:tail 【选项】 文件名
tail -n test4.txt
15)echo :输出系统变量或者常量的值到命令行客户端
echo $PATH
16) 把前一个查看命令的结果输出到指定的文件中,如果文件不存在也会创建此文件:查看命令 > 文件名
17)输出重定向:> 和 >>
举例:
ls hello > hello.txt :将列表显示的内容覆盖到hello.txt文件中(会将原来存在的内容先删除)
ls hello >> hello.txt :将列表显示的内容追加到hello.txt文件中
18)查看历史操作指令:
history:查看已经执行过哪些指令,也可以执行历史指令
应用举例:
1.显示所有的历史指令
history
2.显示最近使用过的10个指令
history 10
3.执行历史编号为5的指令
!5
19)制作软连接,类似于windows中的快捷方式
ls -s 源文件目录 快捷方式名
2.10:时间日期类
1.基本语法:
date:显示当前时间
date +%Y:显示当前年份
date +%m:显示当前月份
date +%d:显示当前天
date +%Y-%m-%d %H-%M-%S :实现当前年月日时分秒
date -s 字符串时间:设置当前系统时间
cal指令:查看本月日历
应用举例:
1.显示当前日历 : cal
2.显示当年日历 : cal 2020
2.11搜索查找类:
1.find指令
将从指定目录向下递归地遍历其各个子目录,将满足条件或目录显示在终端。
基本语法:
find指令:find [搜索范围] [选项]
选项说明:
-name《查询方式》 按照指定的文件名查找模式查找文件
-user<用户名> 查找属于指定用户的所有文件
-size<文件大小> 按照指定的文件大小查找文件
2.应用举例
案例1:按文件名;根据名称查找/hmoe目录下的hello.txt文件
find /home/xiaoqi/ -name hello.txt
案例2:按拥有者:查找/opt目录下。用户名为nobody的文件
find /opt -user xiaoqi
案例3:查找整个linux系统下大于200M的文件(+n 大于 -n 小于 n 等于)
find / -size +200M
2.locate:
这个指令可以在系统中快速定位到要查找的文件,原因是这个指令再执行之前会先将系统中的文件建立一个locate数据库,因此查找速度非常快,但是管理员需要定期更新locate数据库
基本语法:
locate 文件名
updatedb:第一次使用locate指令的时候需要先使用这个指令更新locate数据库
3.which:
查看某个指令在哪个目录下
例如: 查看ls指令在哪个目录
which ls
4.grep指令 和 管道命令 |
grep:代表过滤查找,
|:代表将前一个命令的处理结果输出传递到后面的命令处理
应用实例:
案例1:请在hello.txt文件中,查找 “yes”所在行,并且显示行号
grep -ni “yes” /home/xiaoqi/hello.txt
2.12 压缩/解压命令
1.gzip/gunzip指令
gzip用于压缩文件,gunzip用于解压
基本语法:
gzip 文件名: 压缩文件,只能压缩成*.gz格式文件
gunzip 文件名.gz:解压文件
案例:
1.将 /home/hello.txt文件压缩
gzip /home/hello.txt
2、将 /home/hello.gz文件解压
gun /home/hello.txt.gz
2.zip / unzip
zip用于压缩 unzip用于解压
- tar 命令:
用来压缩和解压文件,tar压缩后的文件也叫作归档文件
基本语法:
tar -参数 要进行压缩的一个或多个文件或目录
常用参数:
z:使用压缩,生成文件名是xxx.tar.gz 这是linux中常用的压缩格式
c:创建压缩文档
v:显示压缩,解压过程中处理的文件名
f:指定归档文件名,tar后面就是归档文件名
压缩指定文件:tar -zcvzf 压缩后的名字 被压缩的文件名
解压指定文件:tar -zxvf 压缩的文件名
解压到指定位置:tar -zxvf 压缩的文件名 指定位置
应用实例:
1.压缩多个文件,将/home/pig.txt 和 /home/hello.txt 压缩成pc.tar.gz
tar -zcvf pc.tar.gz /home/pig.txt /home/hello.txt
2.将/home下的文件夹压缩 成myhome.tar.gz
tar -zcvf myhome.tar.gz /home
3.将pc.tar.gz解压到当前目录,切换到/opt
tar -zxvf pc.tar.gz
4.将myhome.tar.gz解压到/opt/tmp2目录下
tar -zxvf myhome.tar.gz /opt/tmp22.13 网络通讯命令
1.查看ip信息 ifconfig
2.测试网速连通:ping
2.14 网络访问
1.curl:使用url访问网络的文件传输工具
常用来:1.测试网络访问,
2.模拟用户访问
2.wget :linux在网络上下载资源的工具,比如下载软件的安装包,一般软件都会给出一个下载地址
语法:wget:下载的资源的路径
2.15权限管理
1.权限介绍
-rw-rw-r—. 1 xiaoqi xiaoqi 160 8月 15 10:25 helloworld.java
0-9位说明
1.第0位确定文件类型(d,-,l,c.b)
I是链接,链接类似于快捷方式
-:代表此文件是一个普通文件
d:是目录,相当于windows的文件夹
b:是块设备,比如硬盘
c:是字符设备文件,鼠标键盘,
2,第1-3位确定所有者(该文件的所有者),拥有该文件的权限—-User
r:可读 数字:4
x: 可执行 数字 :1
w:可写 数字:2
因此最高是7
3.第4-6位确定所属的组(同用户组)拥有该文件的权限—-group
拥有该文件的用户所在组对这个文件所拥有的权限
4.第7-9位确定其他用户拥有该文件的权限—-Other
5.修改文件所有者:chown newowner 文件/目录 改变所有者
chwon newowner:newgroup 文件/目录 改变所有者和所在组
6.修改用户的组:
usermod -g 组名 用户名

2.权限修改:
chmod:可以修改文件或目录的权限
应用举例
1.
方式1:chmod u=rwx,g=rx,o=rx avc
方式2:chmod 755 abc
2.
方式1:chmod u-x,g+w
方式2:chmod 675 abc
3.
方式1:chmod a+w
方式2:chmod 676 abc
小测试:
2.16 任务调度
crond指令:linux中提供了一种指令可以使系统自己完成重复的繁琐的调度任务
这个指令可以定时的完成某些固定的操作


2.17:linux磁盘分区
1.linux分区挂载概念
2.查看所有设备的挂载情况
命令:lsblk 或者 lsblk -f
3.查看系统整体磁盘使用情况
基本语法:df -h
应用实例
查询系统zheng’ti磁盘使用情况
4.查看指定目录的磁盘使用情况
基本语法:du -h
查询指定目录的磁盘占用情况。
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
—max-depth=1 子目录深度
-c列出详细的同时,增加汇总值
应用实例:
查询/opt目录的磁盘占用情况,深度为1
5.常用指令
6.经典案例

步骤1:
步骤2:
步骤3:
步骤4:
2.18安装软件命令
1.rpm包的管理
rpm用于互联网下载包的打包及安装工具,它包含在某些linux分发版种,它生成具有.RPM扩展名的文件。
RPM时RedHat Package Manager的缩写,类似windows的setup.exe,这一文件格式名称随人打上了RedHat的标志,但理念是通用的。
Linux的分发版本都有采用,可以算是公认的行业标准了。
2.基础指令
rpm -qa|grep xx:查询已安装的rpm列表
举例:查看当前系统,是否安装了firefox
rpm -q 软件包名:查询软件是否安装
rpm -qi 软件包名:查看软件包信息
rpm -qf 文件全路径名 查询文件所属的软件包
rpm -e rpm包名称:删除rpm包
如果你要删除的软件包有其他软件依赖,删除时会有错误信息,但是还是可以添加参数 —nodeps 强制删除,但是一般不建议
1.yum命令介绍:
yum命令是一种软件包管理器,能够从指定的服务器自动下载软件包并且进行安装,可以自动处理软件包之间的依赖关系,并且一次安装所有依赖的软件包,无需繁琐的一次次进行下载,安装
2.yum命令介绍:
查找软件包命令:yum search 安装包名称中的部分关键字
例如 yum search java
1.安装指定的软件命令:yum install 安装包名称
安装openJDK,开源的java虚拟机
例如:yum install java-1.7.0-openjdk
2.删除软件包命令:yum remove 软件包名称
3.列出所有已安装的软件包命令:yum list installed
3.测试
测试题1:

4.搭建javaEE环境
4.1jdk的安装
1.jdk的下载
linux能联网,使用wget下载,下载的是linux的jdk
例如:wget:
2.jdk的安装
1.上传jdk.tar.gz文件到 opt/jdk目录
opt目录是放上传的软件的
2.解压缩 :tar -zxvf jdk.tar.gz -C /usr/local/java
usr/local下放的是解压后的运行软件的
3.cd/etc 目录下
4.vim profile 在结尾加入 配置环境变量
export JAVA_HOME=/usr/local/java/jdk1.8.0_121export PATH=$JAVA_HOME/bin:$PATH
5.编译profile
source /etc/profile
6.查看jdk是否安装成功 java -version
4.2Tomcat的安装
1.解压缩tomcat
2.进入tomcatbin目录下 运行tomcat
3.禁用防火墙
systemctl stop firewalld
4.查看防火墙状态
systemctl status firewalld
5.查看日志
logs目录下
cat
tail -f 。。。、txt:监控tomcat的所有用户操作
6.关闭tomcat
执行./shutdown.sh
7.查看指定进程
ps -ef | grep tomcat
4.3mysql的安装
1.上传mysql文件到linux中
或者 wget http://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar


3.5把web项目部署到linux系统中
1.将项目打包成war包,传输到linux的tomcat下的mywebapps下
2.关闭防火墙
3.启动mysql
4.启动tomcat
5.测试


