Linux
目标
Linux概述【了解】
Linux网络连接三种模式【了解】
Linux目录结构【掌握】
Linux常用命令【掌握】
Linux操作目录的命令【掌握】
Linux操作文件的命令【掌握】
Linux的Vi编辑器【会用】
Linux打包与解压命令【掌握】
一、Linux概述
1、Linux的概述
Linux是基于Unix的。Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机,诞生于1991年10 月5 日。是由芬兰赫尔辛基大学学生Linus Torvalds和后来加入的众多爱好者共同开发完成。
2、Linux的历史
Linux最初是由芬兰赫尔辛基大学学生Linus Torvalds(林纳斯·托瓦兹)由于自己不满意教学中使用的MINIX操作系统, 所以在1991年底由于个人爱好设计出了LINUX系统核心。后来发布于芬兰最大的ftp服务器上,用户可以免费下载,所以它的周边的程序越来越多,Linux本身也逐渐发展壮大起来,之后Linux在不到三年的时间里成为了一个功能完善,稳定可靠的操作系统
3、Linux系统的应用
-
服务器系统Web应用服务器、数据库服务器、接口服务器、DNS、FTP等等;
嵌入式系统路由器、防火墙、手机、PDA、IP 分享器、交换器、家电用品的微电脑控制器等等,
高性能运算、计算密集型应用Linux有强大的运算能力。
桌面应用系统
移动手持系统
4、 Linux的版本
Linux的版本分为两种:内核版本和发行版本;内核版本是指在Linus领导下的内核小组开发维护的系统内核的版本号
Linux的主流版本
二、Linux网络连接三种模式
1、查看当前ip
ip addr 查看当前linux的ip地址
2、网络连接模式
在VMware 中有三种网络设置方式
-
桥接模式
桥接模式是指与物理机(安装了VMware的电脑),使用同一个物理网卡,和物理主机使用同一个段的ip
-
NAT(地址转换模式)
在NAT模式中,主机网卡直接与虚拟NAT设备相连,然后虚拟NAT设备与虚拟DHCP服务器一起连接在虚拟交换机VMnet8上,这样就实现了虚拟机联网。那么我们会觉得很奇怪,为什么需要虚拟网卡VMware Network Adapter VMnet8呢?原来我们的VMware Network Adapter VMnet8虚拟网卡主要是为了实现主机与虚拟机之间的通信
-
仅主机模式
仅主机模式是出于安全考虑,将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。如果要使得虚拟机能联网,我们可以将主机网卡共享给VMware Network Adapter VMnet1网卡,从而达到虚拟机联网的目的
三、Linux目录结构
1、linux学习注意事项
- linux中严格区分大小写
- linux中所有内容以文件的形式保存,包括硬件(硬盘文件是:/dev/sd[a-p]),光盘文件是/dev/sr0 等
- linux不靠扩展名区分文件类型(压缩包:.gz,.bz2,.tar.bz2,.tgz等),二进制软件包:.rpm,网页文件:.html,脚本文件:.sh,配置文件:.config
- linux下所有的存储设备都要挂载后用户才能使用,包括硬盘、U盘
- windows下的程序不能在linux下安装和运行
2、linux目录结构
四、Linux常用命令
1、列出文件列表:ls ll【记】
ls(list)是一个非常有用的命令,用来显示当前目录下的内容。配合参数的使用,能以不同的方式显示目录内容
格式:ls[参数] [路径或文件名]
常用:在linux中以 . 开头的文件都是隐藏的文件
- ls -a 显示所有文件或目录(包含隐藏的文件)
- ls -l 缩写成ll 显示所有文件或目录的详细信息
- ls -d 显示当前目录,点表示当前目录,将目录像文件一样显示,而不是显示目录下的文件
- ls -h 智能显示
案例:显示当前路径下的所有文件(包括隐藏文件)
案例:显示当前路径下的所有文件的详细信息
2、清屏命令clear
当我们输了多次命令后屏幕就被占满了,如果我们还要输入其他命令就要往下拖动窗口,可以使用清屏命令让窗口自动往下滚一屏
清屏除了可以使用clear命令还可以使用ctrl+l快捷键
3、切换目录命令cd【记】
linux中的切换目录命令和windows中的命令一样也是使用cd
案例:使用cd切换到root帐号的home目录
cd命令其他用法:
-
切换到上一层目录cd /
-
切换到系统根目录cd ~
4、查看当前目录所在目录命令pwd
pwd命令是用来查看当前目录的路径
五、操作目录命令【记】
1、创建目录mkdir
mkdir(make directory)命令可用来创建目录
语法:mkdir 目录名称 mkdir app app1 aap2
案例:在root根目录下创建woniu目录
注意:mkdir一次只能创建一个目录或同级多个目录
2、创建多级目录mkdir -p
mkdir -p app/app1/app2
直接使用mkdir app/test会报错
创建多级目录
3、删除空目录rmdir
rmdir(remove directory)命令可用来删除“空”的目录
案例:删除root根目录中的woniu目录
六、文件命令
1、文件操作命令【记】
a、touch创建一个空文件
语法: touch a.txt
案例:在woniu目录中创建文件hello.txt
b、cp 文件拷贝
cp a.txt b.txt 将a.txt复制为b.txt文件
cp a.txt ../ 将a.txt文件复制到上一层目录中
cp a.txt ../app1/b.txt 将a.txt 拷贝到app1下改为b.txt
案例:将hello.txt拷贝到app目录中
除了可以将文件直接复制外,还可以在复制文件时修改文件的名称
案例:将install.log拷贝到microboom目录中并改名为linux.txt
c、mv 移动或者重命名
mv 移动或者重命名
mv a.txt ../ 将a.txt文件移动到上一层目录中
mv a.txt b.txt 将a.txt文件重命名为b.txt
mv a.txt ../b.txt 将a.txt文件移动到上一层目录中后文件名修改成b.txt
d、rm 删除文件或目录
用法: rm [选项]... 文件...
rm a.txt 删除a.txt文件
删除需要用户确认,y/n
rm 删除不询问
rm -f a.txt 不询问,直接删除rm 删除目录
rm -r a 递归删除,询问递归删除
rm -rf a 不询问递归删除(慎用)
rm -rf * 删除所有文件
rm -rf /* 自杀
2、文件查看命令【记】
a、cat命令
cat用于显示文件的内容,格式:cat[参数]<文件名>
案例:显示world.txt文件的内容
b、more命令
more一般用于要显示的内容会超过一个画面长度的情况。按空格键显示下一个画面。回车显示下一行内容。
案例:显示hello.txt文件的内容
c、less命令
less用法和more类似,不同的是less可以通过PgUp、PgDn键来控制
用法同上
d、tail命令
tail命令是在实际使用过程中使用非常多的一个命令,它的功能是:用于显示文件后几行的内容。
用法:
tail -10 /etc/passwd 查看后10行数据
tail -f catalina.log 动态查看日志(*****)
ctrl+c 结束查看
案例:显示hello.txt文件后1行的内容
案例:动态显示world.txt的内容
使用了-f后光标一直在等待而不会结束,当install.log文件发生变化时会直接将变化的内容显示。
修改world.txt的内容
自动显示已更新内容
七、Vi和vim编辑器
vi编辑器是所有Unix及[Linux](http://www.2cto.com/os/linux/)系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器。他是我们使用Linux系统不能缺少的工具。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,学会它后,您将在Linux的世界里畅行无阻。
vim 具有程序编辑的能力,可以以字体颜色辨别语法的正确性,方便程序设计; 因为程序简单,编辑速度相当快速。 vim可以当作vi的升级版本,他可以用多种颜色的方式来显示一些特殊的信息。
vim会依据文件扩展名或者是文件内的开头信息, 判断该文件的内容而自动的执行该程序的语法判断式,再以颜色来显示程序代码与一般信息。
vim里面加入了很多额外的功能,例如支持正则表达式的搜索、多文件编辑、块复制等等。 这对于我们在Linux上进行一些配置文件的修改工作时是很棒的功能。
vim的用法和vi一样。vim需要安装
vim安装命令:
yum -y install vim*
1、vi编辑器【记】
在Linux下一般使用vi编辑器来编辑文件。vi既可以查看文件也可以编辑文件。三种模式:命令行、插入、底行模式。
vim和vi
案例:使用vim编辑器修改app/world.txt文件
使用vi打开world.txt,vim界面如下:
使用vi
在vi中按i键切换到插入模式编写内容
切换到插入模式:按 i 、o、a键;
i 在当前位置前插入
I 在当前行首插入
a 在当前位置后插入
A 在当前行尾插入
o 在当前行之后插入一行
O 在当前行之前插入一行
使用插入模式编写内容:
输入完成后需要切换回命令模式对文件进行保存
切换到命令行模式:在vi中按Esc键;
切换到底行模式:按 :(冒号)
:wq保存并退出
:q!不保存退出
2、ps系统管理命令
ps命令是用来管理linux系统中的进程。
ps 正在运行的某个进程的状态
ps –ef 查看所有进程
ps –ef | grep redis 查找某一进程
kill 2868 杀掉2868编号的进程
kill -9 2868 强制杀死进程
案例:搜索名为hald的进程
hald进程是linux的系统进程,用来加载计算机硬件的驱动。
案例:强制杀死编号为5821的进程
八、配置静态ip
修改ip前需要知道自己的网卡名称是什么
通过查看ip命令得知网卡名称为ens33
修改网卡配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改如下内容
bootproto=static
在最后加上几行,IP地址、子网掩码、网关、dns服务器
IPADDR=192.168.1.10
NETMASK=255.255.255.0
GATEWAY=192.168.1.2 #在vm中网关地址是2
DNS1=192.168.1.2
DNS2=192.168.1.2
重启网络服务
systemctl restart network
测试外网
ping www.baidu.com
九、tar打包与解压命令【记】
tar命令位于/bin目录下,它能够将用户所指定的文件或目录打包成一个文件,但不做压缩。一般Linux上常用的压缩方式是选用tar将许多文件打包成一个文件,再以gzip压缩命令压缩成xxx.tar.gz(或称为xxx.tgz)的文件。
常用参数:
-c:创建一个新tar文件
-v:显示运行过程的信息
-f:指定文件名
-z:调用gzip压缩命令进行压缩
-t:查看压缩文件的内容
-x:解开tar文件
1、打包
打包:
tar –cvf xxx.tar 要打包的文件
打包并且压缩:
tar –zcvf xxx.tar.gz 要压缩的文件
案例:将app目录打包
案例:将microboom目录打包并压缩
2、解压
解压
tar –xvf xxx.tar 解压到当前目录中
tar -zxvf xxx.tar.gz -C /usr/aaa 解压到user/aaa目录中
案例:将app.tar.gz解压到woniu目录
-C表示要将解压结果存放到哪个目录中
十、Linux软件安装
安装分类
linux中的软件有两种安装方式:源码包安装、rpm(二进制包)安装
-
源码包安装:
特点:由于安装的是源码包,所以要先编译再安装。
注意:由于是源码包,里面都是源码,所以可以修改。有时候我们会看到一种包叫脚本包,也是源码包的一种。
-
rpm(二进制包)安装
特点:由于是经过了编译,所以直接安装。
注意:由于编译过了所以不能修改源代码。有时候我们会使用yum在线安装,yum在线安装属性rpm安装的一种。
十一、Linux安装MySql
1、yum在线安装mysql
a、第一步:查看mysql是否安装
rpm -qa|grep mysql
b、第二步:卸载旧版mysql
如果mysql的版本不是想要的版本。需要把mysql卸载
[root@localhost ~]# yum remove mysql mysql-server mysql-libs mysql-common
[root@localhost ~]# rm -rf /var/lib/mysql
[root@localhost ~]# rm /etc/my.cnf
c、上传mysql的yum源
d、安装yum源和mysql
安装yum源
yum localinstall mysql80-community-release-el7-7.noarch.rpm
安装mysql
yum -y install mysql-community-server
e、启动mysql
systemctl start mysqld.service
当安装一个服务软件时,默认是把服务启动文件放在 /etc/init.d/里面,新版mysql在该目录中没有启动文件
systemctl start mysqld.service 启动mysql
systemctl restart mysqld.service 重启mysql
systemctl status mysqld.service 查看msyql状态
systemctl stop mysqld.service 停止mysql
mysqld为mysql默认的服务名称。在linux中mysql的配置文件在/etc/my.cnf 中
f、查看mysql随机密码
cat /var/log/mysqld.log | grep password
g、用随机密码登录mysql
mysql -uroot -p
h、修改root管理员的密码
使用随机密码登录到msyql后输入mysql的修入密码命令
//1、先按mysql密码策略修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root_123R';
//修改mysql密码复杂性策略
set global validate_password.policy=0;
//设置最低密码长度为1
set global validate_password.length=1;
//再将密码修改为自己想要的
alter user 'root'@'localhost' identified by '123456';
2、开启mysql远程访问权限
//1、进入到mysql数据库,修改该库下user表的host列
update user set host='%' where user='root';
//2、执行两次下面的命令
grant all privileges on test.* to 'root'@'%';
//刷新数据库配置
flush privileges;
3、关闭linux防火墙
//临时关闭防火墙,系统重启后无效
systemctl stop firewalld.service
4、远程连接错误解决
如果使用mysql客户端连接linux上的mysql可能会报如下错误,该错误是因为mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password
解决步骤:
//进入到mysql数据库
use mysql;
//更改加密方式
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
//修改密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
//刷新数据库配置
flush privileges;
十二、脚本安装jdk(使用jdk压缩包方式)
1、上传jdk到linux
在linux中软件一般安装到/usr/local目录中
2、将jdk解压
解压命令:
tar -zxvf jdk-8u301-linux-x64.tar.gz
将解压后的jdk改名为jdk8
mv jdk1.8.0_301 jdk8
3、配置jdk环境变量
注意JAVA_HOME换成自己的地址
使用vi打开/etc/profile
在末尾行添加
#set java environment
JAVA_HOME=/ding/jdk1.8
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
保存退出
重新加载环境变量
source /etc/profile
查看jdk版本
java -version
十三、脚本安装tomcat
1、下载tomcat
tomcat官网:https://tomcat.apache.org/
2、上传tomcat到Linux
将下载的tomcat上传到linux的并解压
3、运行tomcat
启动tomcat之前要先关闭防火墙
找到tomcat安装目录下的:tomcat8/bin/startup.sh
启动tomcat
./表示当前目录下
访问
十四、关闭Linux防火墙相关命令
-
查看防火墙状态
systemctl status firewalld.service 绿的running表示防火墙开启
-
关闭防火墙
systemctl stop firewalld.service
-
开机禁用防火墙
systemctl disable firewalld.service
-
启动防火墙
systemctl start firewalld.service
-
防火墙随系统启动
systemctl enable firewalld.service
1、在防火墙中开启指定端口
在实际的使用中不会将防火墙关闭,而是配置防火墙的放行
contos7的防火墙配置文件为:vi /etc/init.d/firewall
修改/etc/init.d/firewall 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT //开放80端口
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT //开放22端口
配置完成后输入:/etc/init.d/firewall restar 重启防火墙
十五、部署项目到Linux
部署前先将项目所需的数据库添加到linux的mysql中
1、部署jar包到linux
-
修改项目pom文件
将打包方式改为jar
在pom中添加springboot插件
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.4.2.RELEASE</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> </plugin> </plugins> </build>
-
将项目打包后上传到linux
上传成功后切换到jar包所在的目录,执行:java -jar 项目jar包名称
查看实时日志
tail -f catalina.out