文章目录
一.linux操作系统的基本介绍
Linux是一套免费使用和自由传播的类unix操作系统。这么哪些是类unix操作系统呢?在1969年由unix之父KenThompson在AT&T(AmericanTelephone&Telegraph,日本电话电报公司,现今为日本第二大营运商,第一大营运商为VerizonWireless)的贝尔实验室主导研制的,当时完全是出于好奇或则兴趣。
在1974年7月首次unix首次与外界接触,当unix抵达第五版的时侯,以“仅用于教育目的”为合同,提供给各学院作为教学之用,成为当时操作系统课程中的范例教材。各学院公司开始通过Unix源码对Unix进行了各类各样的改进和扩充。于是,Unix开始广泛流行。在1979年,unix的V7版本发布,许可证开始严禁学院使用Unix的源码,包括在讲课小学习。到了1980年,unix开始一发不可拾掇地开发不停地出现各类各样的变种。
Linux操作系统包括但不限于unix所有的功能,是开源免费的,不需支付任何费用便能获取到它的源代码,可以依照自己的需求进行更改。Linux操作系统是由LinusBenedictTorvalds(林纳斯·本纳第克特·托瓦兹)在学院的时侯编撰的,并约请你们进行构建,自此Linux操作系统成为服务器领域的首选操作系统。
我们所熟知的Centos、redhat、ubuntu等操作系统都是基于linux内核(kernel)基础上进行开发,产生了自己的产品。这么在本次课程中我们为你们使用的是ubuntu操作系统讲解Linux操作系统的基本使用。
二.Linux操作系统的安装
ubuntu操作系统安装以及链接工具的安装参照视频,视频地址为:
三.Linux的目录结构
linux的目录结构与windows有很大的区别,windows有c盘的概念,比如C盘,D盘等。而Linux的目录结构类似于一棵倒着的树,最顶楼的就是根目录:如右图所示
目录名作用
/bin
储存最常常使用的命令
/boot
储存启动Linux操作系统的时侯的一些核心文件
/etc
储存系统管理和配置文件
/dev
用于储存设备文件
/home
储存的用户的目录,每位用户都有一个属于自己的目录
/opt
额外安装的可选应用程序包所放置的位置。通常情况下,我们可以把tomcat等都安装到这儿。
/usr
用于储存系统应用程序,比较重要的目录/usr/local本地系统管理员软件安装目录
/var
用于储存运行时须要改变数据的文件,也是个别大文件的溢出区,比方说各类服务的日志文件(系统启动日志等。)等。
四.Linux系统的基本操作1.目录的切换(changedirectory)2.文件内容的查看3.查看文件夹中的内容
查看到文件夹的详细信息后,会看到有七栏,那么我们分别来解释一下是什么意思:
第一栏:有10个符号,第一个符号表示表示文件的属性,-表示是文件,d是目录,l是联接文件;前面9为分别分三组,每组均为rwx,r是可读,w是可写,x是可执行,第一组表示当前的用户的权限,第二组是用户组的权限;第三组是其他用户的权限。
第二栏:是文件或则文件夹的个数,假如说文件就为1,假若目录的情况下就是该目录下文件夹的个数系统linux,其中包括当前目录和上级目录。
第三栏:当前文件或则文件夹所属的用户。
第四栏:当前文件或则文件夹所属的用户组。
第五栏:当前文件或则文件夹的大小,单位为KB。
第六栏:创建的时间。
第七栏:文件或则文件夹或则链接的名子。
4.相对路径、绝对路径
要高清相对路径首先要认清楚.和…的这两个概念,一个点表示当前目录,即我们当前操作所处的目录;两个点表示上一级目录。
相对路径,所谓相对就必需要有一个参照物,比如两个朋友A和他的同桌B,但是她们两个此时此刻正坐在一起。如果如今有人问A:“B在那里?”,A回答道:“B就在我身边呀。”,这么此时A的回答就是以自己为参照物,B就在他身边。
绝对路径,就是以一个顶尖的地址,并且这个地址我们都晓得,比如“宇宙”、“地球”、“中国”、“北京”等都可以选择作为我们的顶尖地址,我们同样以前面提及过的A和B这两个同桌为例,A还有另外一种回答:“他在月球上中国上海市西城区区XX路XX楼X层XX房第X排第X个”,这么A这些回答的形式就是以月球作为顶尖目录,之后逐层往下找。
这么我们在Linux操作系统中,相对路径所选择的参照物就是我们当前执行操作所处的目录;绝对路径所选择的顶尖目录就是我们的根(/)目录。
5.文件夹、文件的创建6.文件、文件夹的删掉7.文件或则文件夹的拷贝8.文件、文件夹的联通9.文件、文件夹的重命令五.文件、文件夹的上传、下载
我们可以直接使用xshell提供的工具实现文件的上传与下载。
六.vi、vim的使用
vi为linux操作系统自带的文本编辑器,其功能十分的强悍,我们必需要把握其使用,为我们更改各类配置或则编撰脚本文件奠定基础。其快捷键命令如下:
命令含意命令的模式
Esc(重点)
从编辑模式步入到命令行模式
编辑模式
i(重点)
在当前字符前插入
编辑模式
在当前字符后插入
编辑模式
在当前行末进行插入
编辑模式
在当前开头进行插入
编辑模式
o(重点)
步入到当前行的下一行进行编辑
编辑模式
O(重点)
步入到当前行的上一行进行编辑
编辑模式
yy(重点)
复制一行
编辑模式
p(重点)
粘贴yy复制的一行内容
编辑模式
dd(重点)
删掉一行
编辑模式
h(重点)
向左联通光标
编辑模式
l(重点)
往右联通光标
编辑模式
j(重点)
光标向下联通
编辑模式
k(重点)
光标向上联通
编辑模式
光标联通文件的末尾
命令行模式
gg
光标联通到文件的开头
命令行模式
退出文件
命令行模式
:wq(重点)
保存并退出
命令行模式
:setnu!(重点)
设置或取消行号
命令行模式
u(重点)
撤消上一次操作
命令行模式
光标跳到下一个词组的首字母
命令行模式
光标跳到上一个词组的首字母
命令行模式
光标跳到该行的末尾
命令行模式
光标跳到该行的开头
命令行模式
:/public
查找出public这个词组
命令行模式
跳转到下一个查找到内容
命令行模式
查找到上一个查找到的内容
命令行模式
:/publicc
大小写不敏感查找
命令行模式
:%s/abc/QQ
将当前行的第一个abc换成QQ
命令行模式
:%s/abc/QQ/g
将整行所有的abc替换为QQ
命令行模式
:%s/abc/QQ/gi
将全文的所有的abc忽视大小写换成qq,
命令行模式
:5,12s/abc/QQ/gi
将第5到12行所有的abc忽视大小写换成QQ
命令行模式
ctrl+j
在编辑模式实现换行操作
编辑模式
数字+G
直接跳转到对应的行
命令行模式
七.内容过滤八.管线操作
**管线操作就是将上一步操作的结果作为下一部操作的数据源,使用“|”符号。**诸如:
练习:1.查看/etc/passwd文件的第5到第8行的内容。(head-8passwod|tail-4)
2.查看/etc/passwd文件的倒数第10行到倒数第3行的内容。
九.进程的管理1.查看所有的进程2.关掉进程(杀害进程)
在关掉进程之前我们须要查看须要杀害的进程的pid,之后通过kill命令关掉进程。通过kill-l命令查看可以使用的杀害进程的形式,如右图所示:
这么杀害进程的形式如下:
为何可以使用-kill或则-9呢?我们通过kill-l可以看见杀害进程的形式有64种,所有的方法都形如SIG***,我们将SIG去除后的词组,就可以作为kill后的参数;又或则我们直接使用该命令对应的变好,比如SIGKILL对应的编号为9,所以我们也可以使用-9作为参数。
九.服务管理
关掉防火墙命令:systemctlstopfirewalld
十.软件的解压与压缩
在linux操作系统中我们最常见的两种文件是tar.gz和zip文件,这么针对这两种文件我们有不同的压缩和解压缩的形式。
tar.gz文件的解压、压缩,在实际工作中参数v不须要加,可能会造成机器卡死:
zip文件的压缩与解压,在使用zip解压缩文件须要安装zip软件:
注意:在使用unzip或则zip命令的时侯,会报错,缘由是由于没有zip的这个软件,须要使用yuminstallzip这个命令进行安装。
十一.用户、用户组的管理1.用户相关的操作2.用户组相关操作十二.yum的形式安装软件12.1配置yum源
将/etc/yum.repo.d/Centos-Base.repo进行备份:
mv CentOS-Base.repo CentOS-Base.repo.bak
下载阿里的yum源:,之后将文件上传到/etc/yum.repo.d/,命名为:Centos-Base.repo
12.2安装软件
安装unzip:yuminstall-yunzip
十三.文件权限的管理
上面我们早已讲过,对于一个文件或则文件夹,我们用户和用户组可以有rwx的权限。这么我们可以通过chmod命令更改文件的读写和执行权限。
写权限:a)对于文件夹,写权限表示是否可以在文件夹下新建文件(文件夹),以及删掉删掉。
b)对于文件来说,就是难以写入内容。
执行权限:a)对于文件,表示步入文件夹的权限;即使拥有了写权限,这么也是难以步入的。
b)对于文件来讲,通常都是shell脚本(.sh结尾的文件),是否可以执行。
读权限:对于文件来说,是难以查看文件内容的。
13.1文件夹的授权
将apache-tomcat-8.5.59整个文件夹根据递归的形式,将所有权授予test用户。
chown-Rtestapache-tomcat-8.5.59
十四.软件的安装1.jdk的安装
a.解压tar-zxvfjdk-8u60-linux-x64.tar.gz
b.步入到jdk的家目录,拷贝其家目录的路径。
c.配置环境变量,须要更改/etc/profile文件,加上如下两行内容
export JAVA_HOME=/datas/jdk1.8.0_60
export PATH=$JAVA_HOME/bin:$PATH
d.刷新环境变量:source/ect/profile
2.tomcat的安装
a.解压:tar-zxvfapache-tomcat-8.5.42.tar.gz
b.步入到/datas/apache-tomcat-8.5.42/bin/
c../startup.sh
3.mysql的安装
第一步,安装wget:
yum install -y wget #安装wget
第二步,安装mysql专有yum源:
wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
yum localinstall -y mysql57-community-release-el7-7.noarch.rpm
第三步,导出秘钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
第四步linux虚拟主机,安装mysql:
yum install -y mysql-community-server
第五步,启动mysql:
systemctl status mysqld
systemctl start mysqld
第六步,步入mysql:
mysql -uroot -p #会提示输入密码,/var/log/mysqld.log文件,中记录着mysql的临时密码。
第七步系统linux,重置为自己的密码:
alter user 'root'@'localhost' identified by 'Ab123456cd!!';
第八步(可选),假如想让其他机器的用户访问该myql,须要授权:
grant all on *.* to 'root'@'%' identified by 'Ab123456cd!!'; #授权
flush privileges;
第八步,开启手动启动:
systemctl enable mysqld
十五.c盘扩容
c盘扩容使用到LVM(LogicVolumeManager)技术.
a.在虚拟机上降低一块c盘。
b.对c盘进行分区:fdisk/dev/sdb
root@ubuntu:~# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x927bf0e2.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519):
Created a new partition 1 of type 'Linux' and of size 10 GiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
c.对c盘低格:mkfs-text4/dev/sdb1,可以通过mount命令查看文件的格式。
root@ubuntu:~# mkfs -t ext4 /dev/sdb1
mke2fs 1.44.1 (24-Mar-2018)
Creating filesystem with 2621184 4k blocks and 655360 inodes
Filesystem UUID: e7746867-675b-4c59-9fe1-7e0011e4fc8a
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
d.创建数学卷:pvcreate/dev/sdb1
root@ubuntu:~# pvcreate /dev/sdb1
WARNING: Device for PV iM84L6-hkJb-P91v-J48U-gGeD-uBhp-Xf6tGv not found or rejected by a filter.
WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y
Wiping ext4 signature on /dev/sdb1.
Physical volume "/dev/sdb1" successfully created.
e.查看所有的数学卷:pvscan
root@ubuntu:~# pvscan
PV /dev/sda3 VG ubuntu-vg lvm2 [<19.00 GiB / <15.00 GiB free]
PV /dev/sdb1 lvm2 [<10.00 GiB]
Total: 2 [<29.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 1 [<10.00 GiB]
f.查看卷组:vgdisplay
root@ubuntu:~# vgdisplay
--- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size <19.00 GiB
PE Size 4.00 MiB
Total PE 4863
Alloc PE / Size 1024 / 4.00 GiB
Free PE / Size 3839 / <15.00 GiB
VG UUID 41dd8K-nWqX-rrVd-seqy-dW6H-ypLL-8Sd8vw
g.将/dev/sdb1加入到ubuntu-vg这个组:vgextendubuntu-vg/dev/sdb1
root@ubuntu:~# vgextend ubuntu-vg /dev/sdb1
Volume group "ubuntu-vg" successfully extended
h.再度查看卷组信息:vgdisplay
root@ubuntu:~# vgdisplay
--- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 28.99 GiB
PE Size 4.00 MiB
Total PE 7422
Alloc PE / Size 1024 / 4.00 GiB
Free PE / Size 6398 / 24.99 GiB
VG UUID 41dd8K-nWqX-rrVd-seqy-dW6H-ypLL-8Sd8vw
i.查看化学卷信息:pvscan
root@ubuntu:~# pvscan
PV /dev/sda3 VG ubuntu-vg lvm2 [<19.00 GiB / <15.00 GiB free]
PV /dev/sdb1 VG ubuntu-vg lvm2 [<10.00 GiB / <10.00 GiB free]
Total: 2 [28.99 GiB] / in use: 2 [28.99 GiB] / in no VG: 0 [0 ]
k.扩充逻辑卷:lvextend-L+5G/dev/ubuntu-vg/ubuntu-lv
root@ubuntu:~# lvextend -L +5G /dev/ubuntu-vg/ubuntu-lv
Size of logical volume ubuntu-vg/ubuntu-lv changed from 4.00 GiB (1024 extents) to 9.00 GiB (2304 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
l.刷新c盘:resize2fs/dev/ubuntu-vg/ubuntu-lv
root@ubuntu:~# resize2fs /dev/ubuntu-vg/ubuntu-lv
resize2fs 1.44.1 (24-Mar-2018)
Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 2359296 (4k) blocks long.
十六.nginx安装
第一步,一些打算工作
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
第二步,下载解压,下载地址:,之后上传到linux上,之后解压
第三步,步入到解压目录,开始安装
./configure
make
make install
第四步,查看nginx安装地址
whereis nginx
第五步,步入到sbin目录下,启动nginx
./nginx
十七.前后端分离项目布署流程17.1服务端
先按照实际的情况更改响应的配置:
数据库的地址,用户名、密码等信息;jwt的过期日期
将spring-boot项目打包查看系统版本linux,打包的形式,执行maven命令:package,会在target下生产一个jar包,将jar包上传到Linux,之后启动springboot项目,启动的命令如下:
java -jarmall-manager-backend.jar --server.port=8080
17.2后端布署
第一步,安装nginx
第二步,更改响应的配置信息,比如更改@/utils/request.js文件中服务端的恳求地址,以及恳求token过期的跳转地址。
第二步,后端项目进行打包,打包的命令参考package.json文件,命令如下:
npm run build:prod
执行完如上命令以后,会在项目下形成一个dist目录。
第三步,将dist目录下的内容上传到nginx安装目录下的html目录下即可,启动nginx即可访问。
十七.其他命令