Linux

Linux

Linux

1、Linux 简介

Linux 与 Windows 的不同:

  1. Linux 严格区分大小写
  2. Linux汇总所有内容都以文件形式保存,包括硬件
  3. Linux不靠拓展名区分文件类型
    1. 压缩包:.gz、.bz2、.taar.bz2、.tgz
    2. 二进制软件包:.rpm
    3. 网页文件:.html、.php
    4. 脚本文件:.sh
    5. 配置文件:.conf
  4. Windows 下的程序不能直接在 Linux 中安装和运行

发行版本:Linux内核与应用软件做一个打包

1.1、安装虚拟机

安装 VMware,当达到以下设置,说明安装成功

1.2、安装CenOS

打开官网下载 mini 版本

安装前说明:

安装 CentOS 可能出现以下错误提示:

是因为没有启用 Intel VirtualTechnology(VT) 虚拟化技术,这种技术可以让一个CPU工作起来像多个CPU并行运行,从而使得一部电脑内同时运行多个操作系统成为可能

解决方式:

开机按 F2 或 F12 ( 有可能是 Esc 或 Del )进入 BIOS ,启用 VT ,进入以下界面,将 disable 改为 enable

开始安装 CentOS

(这里安装的是 mini 版,没有可视化界面)

打开 VMware ,单击 “创建新的虚拟机”;

单击 “典型”;

然后在 “安装程序光盘映像文件” 里面填入 下载的 CentOS 的路径,路径不可包含中文;

然后选择文件位置 ,最好磁盘空间预留 20G

单击 “开启此虚拟机”

点击黑色窗口,鼠标开始用不了了,现在是键盘控制,选择 安装 install

安装完成进行配置:

然后会重启虚拟机,重启之后是如下页面,输入用户名 root ,密码(密码不会显示出来,直接敲就行)

输入密码之后出现以下信息说明安装成功

20220215142207010.png" alt="image-20220215142207010" style="zoom:67%;" />

SSH 协议 SecureCRT 客户端

SSH 是专为远程登录会话和其他网络服务提供安全性的协议,利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aTMWTPQR-1649925487833)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215143823556.png)]

SecureCRT 是一款支持SSH(SSH1和SSH2)、Telnet、串口等的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件。在我们今后接下来的学习或工作中会经常使用它远程登录到Linux系统上去工作

  1. 安装 SecureCRT ,解压到目录后,双击打开SecureCRTPortable.exe

  2. 第一步:在 VM ware 上输入命令,查看 ip ip addr

  3. 第二步:在 SecureCRT 上连接上面显示的 ip

  4. 第三步:因为 SecureCRT 默认不支持中文,需要配置

    选项—>会话选项---->外观–> 字符编码:选为 UTF-8

    选项—>会话选项---->终端 --> 仿真:终端选为 Linux

1.3、Linux 系统的目录结构

目录结构是一个树状结构,每个文件或目录都是从根目录开始,并且根目录只能有一个

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vrP0H85m-1649925487838)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215150018037.png)]

/user :用户目录,每个用户都有自己的用户目录,有几个用户就有几个对应的用户目录

2、Linux 命令

2.1、磁盘命令

命令提示符:[root@localhost ~]#

  1. root:当前登录用户

  2. @localhost:主机名

  3. ~ :当前所在目录,也称为家目录

    不同用户家目录不同:

    1. 如果是 root ,则表示在 /root 目录
    2. 如果是普通用户 user1 ,则表示在 /home/user1 目录
  4. #:超级用户的提示符#

    普通用户的提示符 $

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rJ5iOcbt-1649925487839)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215150601916.png)]

命令格式:命令 [选项] [参数]

中括号表示可有可无

查询目录中内容:ls

  1. 命令格式:ls [选项] [参数]

  2. 选项:

    1. -a 显示所有文件,包括隐藏文件(隐藏文件就是 . 开头的文件)
    2. -l 显示详细信息
    3. -h 人性化显示文件大小
  3. 命令语句:

    1. ★★ ls -a

      查看所有

    2. ls -l

      查看详情

    3. ls -h

      人性化查看详情

    4. ★★ ll

      是 ls -l 的缩写,通过 alias ll 查看快捷方式

    5. ls -alh

      所有

查询所在目录位置 pwd

切换所在目录 cd

简化操作:

  1. cd ~

    切换到用户目录(家目录)

  2. cd -

    切换到上一个访问目录

  3. cd …

    切换到上一级目录

  4. cd .

    切换到当前目录

  5. cd /etc

    切换到 etc 目录

2.2、文件管理

(1)创建文件 touch

touch 文件名 :创建文件

注意是文件不是目录,文件名需要带上后缀

例如:touch a.txt

(2)创建目录:mkdir 目录名

mkdir -p [目录名] :

  1. mkdir 目录名

    创建目录

  2. mkdir -p xx/yy/zz

    创建多级目录

选项:-p 是递归创建

(3)删除空目录 rmdir

目录为空时(无文件、目录)才可以执行: rmdir 目录名

如果目录里面有目录(多级目录),无法删除,不是空目录

(4)删除文件或目录 rm -rf

rm -rf [文件或目录]:

选项:

  1. -r :递归删除目录,就是可以删除多级目录
  2. -f :强制

示例:

  1. rm 文件

    rm 单独使用可以删除文件,不可以删除目录

  2. rm -r 目录

    递归文件夹,带提示,提示后面输入 y 或者 n

  3. rm -f 文件

    删除文件

  4. rm -rf 文件/文件夹

    递归删除,无提示

禁止: rm -rf /* :删除所有文件

(5)文件复制 cp -rf

选项:-r :复制目录

示例:

  1. cp 源文件 备份文件

    复制源文件,粘贴成为备份文件

  2. cp -r 源目录 目标目录

    是递归复制,会将目录中所有内容都进行复制

cp aa.txt ./b.txt :表示将当前目录的a.txt文件复制一份到当前目录名为b.txt

(6)文件剪切或改名 mv

  1. mv 源文件 目标文件目录

    剪切到目标目录

  2. mv 源文件 不存在的文件

    重命名

  3. mv 源文件 文件夹/不存在的文件

    剪切并重命名

mv b.txt xxx/bb.txt :文件移动到xxx目录并改名为bb.txt

(7)命令搜索命令

where is 命令名

搜索命令名所在路径及帮助文档所在位置

which 命令名

搜索命令所在路径及别名

echo $PATH

查看环境变量

(8)搜索文件: find

find [搜索范围] [搜索条件]

搜索范围: 如果是 / 斜杠,表示在根目录中(所有目录中)搜索

示例:

  1. find /root -iname install.log

    按名字查询,不区分大小写

  2. find /root -user root

    按所有者搜索

  3. find /root -nouser

    查找没有所有者的文件

Linux中的通配符

* 匹配任意内容

? 匹配任意一个字符

[ ] 匹配任意一个中括号内的字符

按时间条件
  1. find /var -mtime +10

    查找10天前修改的文件

atime 文件访问时间

ctime 改变文件属性时间

mtime 修改文件时间

-10 10天前直到现在的时间内修改文件

10 10天前的那天当天修改的文件

+10 10天前再之前的时间内修改的文件

按文件大小条件
  1. find / -size 25k

    查找文件大小是 25k 的文件,k是小写

  2. find / -size 25M

    查找文件大小是 25M 的文件,M是大写

-25k 小于25k的文件

25k 等于25k的文件

+25k 大于25k的文件

复合条件
  1. find /etc -size +20k -a -size -50k

    查找/etc目录下大于20kb并且小于50kb的文件

  2. find /etc -size +20k -a -size -50k -exec ls -lh {} ;

    查找/etc目录下大于20kb并且小于50kb的文件,并且显示文件详细信息

    -exec ls -lh {} ; 是固定写法

-a 表示and,逻辑与,两个条件都满足

-o 表示or,逻辑或,两个条件满足一个即可

(9) 查看文件全部内容: cat 文件路径

  1. 后可跟相对路径 cat anaconda-ks.cfg

    当输入 an ,按 Tab 键自动补全

  2. 例如:cat /root/anaconda-ks.cfg

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wERGBY9n-1649925487840)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215220001167.png)]

(10) 分页查看文件内容:more 文件路径

逐屏输出(按空白键 space 就往下一页)、Enter 一行一行展示

例如:more /root/anaconda-ks.cfg (命令输入完按 Enter)

屏幕底下,显示当前屏幕展示总内容的百分比

按 Enter 之后

按空格之后

(11) 查看文件开头n行数据:head -n 数字

head -f : 显示文件最新追加的内容,实时监控文件新追加的内容,Ctrl+C 退出

① 例如:head /root/anaconda-ks.cfg (默认是 10 行)

② 例如显示文件开始的指定行数

head /root/anaconda-ks.cfg -n 12

n 可以省略

③ -f 显示文件最新追加的内容

(12) 显示文件尾部n行数据: tail -n 数字

① 例如:tail /root/anaconda-ks.cfg (默认是 10 行)

② 例如:显示文件尾部指定的 n 行


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LvaYlenP-1649925487841)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215220638482.png)]

(13)文件内搜索: grep

在文件中(可以多个文件同时)搜索字符串,可以使用正则表达式

语法: grep [参数] 搜索的字符串内容 文件名 1 [文件 n]

准备一个文件 aa.txt ,内容如下。 test.txt 内容同 aa.txt

① 搜索文本 ”java”: grep java aa.txt

​ 结果没有大写的 “JAVA”,默认是区分大小写的搜索

② 搜索文本 ”java” 区分大小写:grep -i java aa.txt

​ -i:不区分大小写

③ 搜索的文本中有空格,使用引号括起来

	例如 `grep  “java is”  aa.txt` 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JzL06eSr-1649925487843)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215221156652.png)]

④ 搜索整个单词,是其他字符串的一部分的不符合条件

​ -w :搜索单词

​ 搜索单词 java : grep -w java aa.txt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vZsEyCnf-1649925487844)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215221332754.png)]

⑤ 使用正则, 以 java 开头的行

​ 例如 grep “^java” aa.txt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dDdzLFpl-1649925487845)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215221356469.png)]

⑥ 在多个文件搜索

​ 例如 grep java aa.txt test.txt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vi79X9Fo-1649925487846)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215221457380.png)]

⑦ 使用管道 “|”

​ 例如: cat aa.txt | grep java

​ 表示前面表达式的结果作为后一个表达式的条件

(14)find 命令和grep 命令的区别

find命令:在系统中搜索符合条件的文件名

grep命令:在文件中搜索符合条件的字符串

2.3、帮助命令

(1)man 命令名

  1. man ls

    查看ls的帮助

  2. man 命令名

    查看帮助命令 f b 键翻页 q退出

(2)命令 --help

  1. 命令 --help

    获取命令选项的帮助,简洁版帮助

  2. ls --help

    获取 ls 命令的帮助

  3. 但是不适用内部命令,如cd:

    help cd

  4. 命令特殊时,使用 help 命令

    比如: help cd

2.4、压缩与解压命令

2.4.1、 .zip 格式

(1)压缩
  1. zip 压缩文件名 原文件

    压缩文件

  2. zip -r 压缩文件名 原文件

    递归要是文件夹 【如果不指定递归压缩,仅仅是压缩文件夹,里面内容不携带】

    zip -r bb.zip bb

  3. zip a.zip a.txt 将a.txt压缩为a.zip

使用 zip 命令会提示找不到,因为没有安装软件

  1. 先安装zip 软件

    yum install zip

    yum install -y zip : 不带确认的安装

  2. 卸载

    yum remove

(2)解压
  1. unzip 压缩文件

    解压缩.zip文件

  2. 使用 unzip 命令会提示找不到,因为没有安装软件

    yum install unzip

2.4.2、 .gz 格式

(1)压缩
  1. gzip 原文件

    压缩为.gz格式的压缩文件,原文件会消失

    gzip a.txt

  2. gzip -c 原文件 压缩文件

    压缩为.gz格式,原文件保留

    -c 的意思不是说需要保留文件,而是要把压缩的结果输出到控制台.

  3. >的意思是把结果输出到什么地方去.

  4. gzip -r 目录

    压缩目录下的所有子文件,但是不能压缩目录

  5. gzip -r 原文件夹

    遍历文件夹,压缩文件夹中文件,目录不压缩

    gzip -r learn

(2)解压
  1. gzip -d 压缩文件

    解压

  2. gunzip 压缩文件

    解压

  3. gunzip -r 压缩文件目录

    解压

2.4.3、.bz2 格式(拓展)

.bz2 和 .gz 的区别:

  1. .bz2和.gz 都是linux下压缩文件的格式,有点类似windows下的.zip和.rar文件
  2. 前者比后者压缩率更高,后者比前者花费更少的时间。也就是说同一个文件,压缩后,.bz2文件比.gz文件更小,但是.bz2文件的小是以花费更多的时间为代价的
(1)压缩
  1. bzip2 源文件

    压缩为.bz2格式,不能保留源文件

  2. bzip2 -k 源文件

    压缩之后保留源文件

  3. 注意:bzip2命令不能压缩目录

(2)解压
  1. bzip2 -d 压缩文件

    解压缩, -k 保留压缩文件

  2. bunzip2 压缩文件

    解压缩,-k 保留压缩文件

2.4.4、.tar.gz 格式(重点)

(1) tar 压缩(归档)

tar 用来压缩和解压文件, tar 压缩后的文件也叫归档文件。

语法:tar 参数 要压缩或解压的文件或目录

常用参数:

  • z :压缩打包成 xxx.tar.gz
  • c :打包
  • v : 显示处理的文件名
  • f : 指定归档文件名, tar 参数后面是归档文件名
  • x :解压
  • t :列出归档文件内容,查看文件内容
  • C : 解压到指定目录,使用方式 -C 目录 , C 是大写的。

​ ① 创建归档文件(压缩)

​ 语法:tar -zvcf 归档文件名 要归档文件列表

​ 例如:tar -zcvf txtfile.tar.gz aa.txt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KtsRG63X-1649925487846)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215222551156.png)]

​ ② 归档多个文件

​ 例如 tar -zcvf txt.tar.gz aa.txt test.txt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jzWN50KN-1649925487847)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215222721805.png)]

​ 也可以使用通配符 * 表示要压缩的文件名的一部分

​ 例如:tar -zcvf txt2.tar.gz *.txt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cTcC1crW-1649925487848)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215222811878.png)]

​ ③ 压缩目录

​ 语法:tar -zcvf 归档文件名 目录

​ 例如:tar -zcvf file.tar.gz mytest

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xxdALAHI-1649925487848)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215222849132.png)]

​ 结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kEe1c9eX-1649925487849)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215222905534.png)]

(2) 查看归档(压缩)文件

​ 显示压缩文件的内容,压缩包里面有哪些文件

​ 语法:tar -tf 归档文件名

​ t : 列出归档(压缩)文件的内容

​ f : 归档文件名

​ 例如:tar -tf file2.tar.gz

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QgNtOZDA-1649925487855)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215223058631.png)]

(3) tar 解压

​ 解压就是释放压缩的文件内容

​ 语法: tar -zxvf 已归档的文件名 -C ./

​ 参数:

​ x :解压,从归档文件中释放文件

​ -C :解压到指定目录,后跟指定目录, ./ 表示当前目录

​ 示例:解压 file.tar.gz

tar -zxvf file.tar.gz

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U2ExTZxs-1649925487857)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215223155558.png)]

2.5、系统命令

(1) 显示系统日期和时间:date

​ 显示系统当前时间

​ 例如:date

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eAtxmjS8-1649925487858)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215221707817.png)]

(2) 切换用户:su 用户名

以其他用户身份使用系统,(类似 windows10 系统,有些程序以管理员身份执行)

​ ① 从 root 用户切换到普通用户(使用安装 centos 时的普通用户 centos)

​ 例如:以 root 用户登录系统,执行su centos

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9bX0FpMg-1649925487858)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215221756129.png)]

注意 命令提示符“#”变为“$” , root@localhost 变为 centos@localhost

​ ② 从普通用户切换到 root 用户,需要输入 root 用户密码

​ 例如su root

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CivepOhx-1649925487859)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215221855451.png)]

Password 输入密码,linux 不显示输入的字符, 输入密码后直接按“Enter”

(3) 清楚屏幕:clear

​ 例如:clear

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9tJtZpjX-1649925487861)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215221934888.png)]

(4) 重启系统:reboot

reboot :重启

init 6 :重启

(5) 关机或重启:shutdown

  • 语法:shutdown [选项] 时间

  • 选项:

    ​ -c 取消前一个关机命令

    ​ -h 关机

    ​ -r 重启

  • 注意: 使用shutdown会在关机的时候帮我们保存数据

  • 示例:

    shutdown -c :取消上一个关机命令

    shutdown -h 时间 :多少时间后关机

    shutdown -h now :马上关机

    shutdown -f :重启

(6)系统服务管理命令

systemctl是CentOS7的服务管理工具中主要的工具

  • 查看开机启动项:systemctl list-unit-files
  • 启动服务:systemctl start <服务名>
  • 关闭服务:systemctl stop <服务名>
  • 重启服务:systemctl restart <服务名>
  • 查看服务状态:systemctl status <服务名>
  • 添加开机启动项:systemctl enable <服务名>
  • 禁止开机启动项:systemctl disable <服务名>

(7) 查看系统进程: ps -ef ps [命令参数]

常用参数:

  • -e :显示当前所有进程
  • -f :显示 UID,PPID,C 与 STIME 栏位信息
    • UID:拥有改程序的用户
    • PID:程序的进程 id
    • PPID:父进程的 id
    • C: CPU 使用的资源百分比
    • STIME:系统启动时间
    • TTY :登录系统的终端位置(客户端的标识)
    • TIME:使用掉的 CPU 时间
    • CMD:进程是有哪些程序启动的

​ ① 查看系统当前运行的进程(程序)

​ 例如:在任意位置执行 ps -ef

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qBVtqyxw-1649925487861)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215222154843.png)]

(8) kill 进程:kill

例如:

​ kill pid 杀掉进程

​ kill -9 pid 强制杀掉进程

例如:先使用 ps -ef 查询进程 id , 然后再使用 kill pid , 这是例子不要真的执行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r91DMSrz-1649925487862)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215222254197.png)]

不能使用 kill pid 杀掉的进程使用 kill -9 pid

不能随意使用,会被系统进程杀掉,程序不能使用。

(9)退出登录:logout

退出登录命令 : logout

2.6、其他命令

(1)查看用户登陆信息:w 用户名

​ ① w 用户名

示例: w root

命令输出以下栏位信息:

  • USER 登陆的用户名
  • TTY 登陆终端
  • FROM 从哪个IP地址登陆
  • LOGIN@ 登陆时间
  • IDLE 用户闲置时间
  • JCPU 指的是和该终端连接的所有进程占用时间。这个事件并不包括去后台作业的时间,但却包括当前正在运行的后台作业所占用时间
  • PCPU 是指当前进程所占用的时间
  • WHAT 当前正在运行的命令

​ ② who

命令输出:

  • ​ 用户名
  • ​ 登陆终端
  • ​ 登陆时间(登陆来源IP地址)

(2)查询当前过去登陆的用户信息:last

​ ① last

last 命令默认时读取 /var/log/wtmp 文件数据

所以一般登陆之后都清除此文件数据

命令输出:

  • ​ 用户名
  • ​ 登陆终端
  • ​ 登陆IP
  • ​ 登陆时间
  • ​ 退出时间(在线时间)

(3)查看最后一次登陆时间:lastlog

lastlog命令默认时读取/var/log/lastlog文件内容

命令输出

​ 用户名

​ 登陆终端

​ 登陆IP

​ 最后一次登陆时间

(4)磁盘使用情况:df

  • df:用于显示磁盘的使用情况,不太方便看
  • df -h:格式化显示输出磁盘使用情况,格式化处理了数据,方便查看,显示了百分比等

(5)查看任务进程:top

因为在实时更新,需要 Ctrl+C 退出

任务进程

  • 第一行:

    • 10:01:23 —— 当前系统时间
    • 126 days, 14:29 —— 系统已经运行了126天14小时29分钟(在这期间没有重启过)
    • 2 users ——当前有2个用户登录系统
    • load average: 1.15, 1.42, 1.44 —— load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
  • 第二行:

    • Tasks —— 任务(进程),系统现在共有183个进程,其中处于运行中的有1个,182个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。
  • 第三行:cpu状态

    • 6.7% us —— 用户空间占用CPU的百分比。
    • 0.4% sy —— 内核空间占用CPU的百分比。
    • 0.0% ni —— 改变过优先级的进程占用CPU的百分比
    • 92.9% id —— 空闲CPU百分比
    • 0.0% wa —— IO等待占用CPU的百分比
    • 0.0% hi —— 硬中断(Hardware IRQ)占用CPU的百分比
    • 0.0% si —— 软中断(Software Interrupts)占用CPU的百分比
  • 第四行:内存状态

    • 8306544k total — 物理内存总量(8GB)
    • 7775876k used — 使用中的内存总量(7.7GB)
    • 530668k free — 空闲内存总量(530M)
    • 79236k buffers — 缓存的内存量 (79M)
    • 第五行:swap交换分区
    • 2031608k total — 交换区总量(2GB)
    • 2556k used — 使用的交换区总量(2.5M)
    • 2029052k free — 空闲交换区总量(2GB)
    • 4231276k cached — 缓冲的交换区总量(4GB)
  • 第五行以下:

    • PID — 进程id
    • USER — 进程所有者
    • PR — 进程优先级
    • NI — nice值。负值表示高优先级,正值表示低优先级
    • VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
    • RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
    • SHR — 共享内存大小,单位kb
    • S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
    • %CPU — 上次更新到现在的CPU时间占用百分比
    • %MEM — 进程使用的物理内存百分比
    • TIME+ — 进程使用的CPU时间总计,单位1/100秒
    • COMMAND — 进程名称(命令名/命令行)

(6)查看内存占用:free

输出以下内容,内存占用情况:

  • total:内存总数
  • used:已经使用的内存数
  • free:空闲的内存数
  • buffers Buffer:缓存内存数
  • cached Page:缓存内存数

(7)查看历史命令记录:history

用于显示执行过的历史命令记录

(8)在显示器输出内容:echo

(9)文件查看命令

​ ① cat

​ 整个文件的内容显示出来

​ ② tail

​ 默认在屏幕上显示指定文件的末尾10行

​ 参数:

​ -f 显示文件最新追加的内容。

​ -行数 在屏幕上显示指定文件的末尾参数设置的行数

2.7、vi 编辑器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-deyLiVNt-1649925487863)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216123019968.png)]

假如编辑 cc.txt 文件的时候,出现意外关闭退出,而不是使用命令退出,会生成一个 .cc.txt.swp 文件

此文件会导致每次 vi cc.txt 的时候会有提示

只需要删除此文件即可

  1. ll -alh 查看所有文件, 查看里面是不是有一个 .cc.txt.swp 文件
  2. 然后 rm -rf .cc.txt.swp ,删除文件

启动 vi 编辑器

语法:vi 文件名

说明:如果文件存在,则打开该文件,如果参文件不存在,则会新建该文件(不是立即创建, 而是在保存的时候创建)

2.7.1、编辑器的三种模式

三种模式:

  • 编辑模式(命令模式) :所有的机键动作都会理解为编辑整个文档的操作,默认为编辑模式
  • 输入模式:大部分机键动作都会理解为输入的字符
  • 末行模式:在末行模式,输入很多文件管理命令

模式之间的相互转换:

  • 编辑–>输入

    • ​ i 在光标所在字符前开始插入
    • ​ a 在光标所在字符后开始插入
    • ​ o 在光标所在行的下面另起一新行插入
    • ​ s 删除光标所在的字符并开始插入
    • ​ -----------------------------------------
    • ​ I 在光标所在行的行首开始插入 如果行首有空格则在空格之后插入
    • ​ A 在光标所在你行的行尾开始插入
    • ​ O 在光标所在行的上面另起一行开始插入
    • ​ S 删除光标所在行并开始插入
  • 编辑模式—>末行模式

    • ​ : 按英文冒号才会进入末行模式
  • 输入模式–>编辑模式

    • ​ ESC (键盘左上方的按键)
  • 末行模式:–>编辑模式

    • ​ ESC (键盘左上方的按键)(一次或者多次)

2.7.2、打开和关闭文件

  • 打开文件
    • vi /path/to/file
    • 如果文件存在,则打开该文件,如果参文件不存在,则会新建该文件
  • 关闭文件(在末行模式下),前面的
    • ​ :wq 保存退出
    • ​ :q! 退出不保存

2.7.3、移动光标

  • 逐字符移动 :
    • ​ h 左移动
    • ​ l 右移动
    • ​ j 向下移动
    • ​ k 向上移动
  • 行内跳转 :
    • 0 跳转到行首
    • $ 跳转到行尾
  • 行间跳转;(末行模式)
    • num 跳转到某一行(末行模式)
    • G 跳转行最后一行(编辑模式)
    • gg 跳转到第一行(编辑模式)

2.7.4、翻屏操作

在编辑模式下 :

  • ctrl+f 向下翻一页
  • ctrl+b 向上翻一页

2.7.5、删除命令

  • ​ dd 删除光标所在行 (编辑模式)
  • ​ 3dd 从光标行开始删除3行(编辑模式)
  • ​ :1,4d 删除第一行到第四行(末行模式)

2.7.6、复制和粘贴命令

  • ​ yy 复制光标所在行 (编辑模式)
  • ​ 2yy 从光标行开始复制2行(编辑模式)
  • ​ p 粘贴命令

2.7.7、查找和替换

  • 文件的查找
    • ​ /parttern 从前往后查找
    • ​ ?parttern 从后往前查找
    • ​ n 下一个匹配的字符串
    • ​ N 上一个匹配的字符串
  • 文本的替换(末行模式)
    • startNum,endNums/partter/string/gi
    • g:全局替换
    • i:忽略大小写
    • %s/f/F/gi
    • :.,$s/F/f/gi

/关键字 按n找下一个

set number 设置行号

或者

set nu

取消行号

set nu!

2.8、权限管理

2.8.1、用户管理

计算资源:(一切皆文件)

权限:定义资源或服务的访问能力,称之为权限

定义某一个特定的人资源或者服务的访问能力, 用户

定义一类用户具有访问某个资源或服务的能力。 用户组(存放一些列用户的容器),同时用户组还拥有具有访问某个资源的权限

定义一个资源的权限:
① 用户具有该资源的权限(文件所有者,属主)
② 用户组具有该资源的权限(属组)
③ 其他用户(既不是属主,也不是属组)

文件权限:

r, 可读 可以执行类似cat命令的操作
w, 可写 可以编辑或者删除此文件
x 可执行

(1)创建用户 :useradd 用户名
  • 创建用户 :useradd [用户名]
  • 创建用户并分配一个组:useradd -G [组名] [用户名]
  • 查看系统用户:cat /etc/passwd ,会显示每个用户的以下信息,使用 冒号 : 隔开
    • 1 用户名
    • 2 用户的密码,用x替代
    • 3 用户的uid,一般情况下root为0,1-499默认为系统账号,有的更大些到1000,500-65535为用户的可登录账号,有的系统从1000开始。
    • 4 用户的gid,linux的用户都会有两个ID,一个是用户uid,一个是用户组id,在我们登录的时候,输入用户名和密码,其实会先到/etc/passwd查看是否有你输入的账号或者用户名,有的话将该账号与对应的UID和GID(在/etc/group中)读出来。然后读出主文件夹与shell的设置,然后再去检验密码是否正确,正确的话正常登录。
    • 5 用户的账号说明解释
    • 6 用户的家目录文件夹
    • 7 用户使用的shell,如果换成 /sbin/nologin/ 就是默认没有登录环境的。
(2)groupadd 组名

查看系统用户组:cat /etc/group

(3)usermod -G

修改用户组属性

usermod -G [组名] [用户名]

(4)删除用户:userdel -rf

删除用户:

​ -f:强制删除用户,即使用户已登录

​ -r:删除与用户相关的所有文件。

(5)groupdel
(6)添加密码:passwd 用户名

passwd 用户名

切换用户: su 用户名

超级管理员切换用户不需要密码登录

2.8.2、文件基本权限

(1)文件权限解释

当使用ls -alh命令查看所有文件信息时,会输出以下内容:

-rw-r–r–. 1 root root 12288 Aug 22 2019 aliases.db

解读以上内容:

文件类型所有者读写权限所属组读写权限其他人读写权限硬链接次数所属用户所属用户组文件大小文件修改时间文件名
-rw-r–r–.1rootroot12288Aug 22 2019aliases.db

文件类型 :

  • - : 表示文件
  • l : 软链接文件(windows 快捷方式)
  • d : 目录
  • c : 字符设备文件,一次传输一个字节的设备被称为字符设备。例如键盘,鼠标

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JJLJQ9FM-1649925487863)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216142031429.png)]

u所有者 g所属组 o其他人

r读 w写 x执行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hKnXLSKt-1649925487864)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216141806725.png)]

权限的尝试:

​ 以 root 身份登录系统 ,执行 cd / 切换到根目录,再执行 ls -l ,查看 root 目录的权限如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cGBzux4c-1649925487864)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216142145207.png)]

​ 表明其他用户对 root 目录没有任何权限,查看目录内容都不行

(2)修改文件权限:chmod

chmod [选项] 模式 文件名

​ 选项:

​ -R 递归

​ 模式:

​ [guoa] [±=] [rwx]

模式里面,前面两个都是三选一,最后一个可以选多个

更改的是前面的权限: -rw-r–r–

(3)使用chmod示例

r读 w写 x执行

u所有者 g所属组 o其他人

a 表示 all ,代表所有

更改的是前面的权限: -rw-r–r–

chmod [guoa] [±=] [rwx] 文件名

示例:

  • chmod u+x 文件

    给当前用户添加指定文件的x执行权限

  • chmod g+w,o+w 文件

    给该文件用户组合其他人添加指定文件的w写的权限

  • chmod a=rwx 文件

    给该文件的当前用户,当前组,其他人 添加rwx可读可写可执行的权限

(4)权限的数字表示

首先三种权限分别用数字表示

  • ​ r 4
  • ​ w 2
  • ​ x 1

因为权限 rwx 是固定位置的,用 1 0 来表示是否拥有此种权限,1 表示拥有,0 表示没有

  • ​ 111 —> 7 rwx
  • ​ 001 —> 1 --x
  • ​ 100 —> 4 r–
  • ​ 101 —> 5 r-x

示例:

rwx r-x r-x

111 101 101

7 5 5

chmod 755 文件

​ 0 —

​ 1 --x

​ 2 -w-

​ 3 -wx

​ 4 r–

​ 5 r-x

​ 6 rw-

​ 7 rwx

(5)修改文件所有者:chown

语法:chown 拥有者用户 被修改的文件

例如:修改原来 root 拥有的文件 aa.txt 改为 centos, 拥有者有操作的读写权限。

​ chown centos aa.txt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kvhOBtwV-1649925487865)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216144026375.png)]

(6)修改文件所属组:chgrp

语法:chgrp 组名 文件名

2.8.3、sudo权限

root 把本来只能超级用户执行的命令赋予普通用户执行

sudo 的操作对象是系统命令

  • visudo

    实际修改的是 /etc/sudoers 文件

  • root ALL=(ALL) ALL

    用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)

  • %wheel ALL=(ALL) ALL

    %组名 被管理注解的地址=(可使用身份) 授权命令(绝对路径)

示例:dafei ALL = (ALL) /usr/sbin/shutdown

切换到 dafei用户 执行 sudo + 命令

sudo shutdown -h now

被授权的用户执行命令不能像 root 一样,这样是告诉系统此用户已经被授权

2.9、网络管理

2.9.1、网络中的基本概念

网络的基本概念

​ 1)ip地址:在网络通信中主机的标识符(好比手机号码)

​ 2)mac地址:主机的物理网卡的唯一标识符(好比身份证号码)

​ 3)子网掩码:用于区分主机的IP地址中的网络地址和主机地址,并由此确定该主机的IP地址的网段

​ 4)网关:就是一个网络中的主机连接到另一个网络的主机的关口

​ 5)DNS:域名解析服务器,把域名解析成对应的IP地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GDZphj2L-1649925487866)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216153647678.png)]

2.9.2、ifcfg-eth 解释

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tmKIQdE0-1649925487866)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216154333602.png)]

​ /etc/sysconfig/network-scripts 目录下的文件 ifcfg-eth0

存放的是网络接口(网卡)的脚本文件(控制文件),ifcfg-eth0 是默认的第一个网络接口,如果机器中有多网络接口,那么名字就将依此类推ifcfg-eth1,ifcfg-eth2,ifcfg-eth3…

(注意这里面的文件是相当重要的,涉及到网络能否正常工作,所以不要轻易更改)

文件部分内容:

  • TYPE=Ethernet 网卡类型
  • DEVICE=eth0 网卡接口名称
  • ONBOOT=yes 系统启动时是否自动加载
  • BOOTPROTO=static 启用地址协议 --static静态协议 --bootp协议 --dhcp协议
  • IPADDR=192.168.1.11 网卡IP地址
  • NETMASK=255.255.255.0 网卡网络地址
  • GATEWAY=192.168.1.1 网卡网关地址
  • DNS1=8.8.8.8 网卡DNS地址
  • BROADCAST=192.168.1.255 网卡广播地址

查看ip:

ip addr

------------------------------------

TYPE=“Ethernet”

BOOTPROTO=“static”

IPADDR=“192.168.149.131”

NETMASK=“255.255.255.0”

GATEWAY=“192.168.149.2”

DNS1=“8.8.8.8”

BROADCAST=“192.168.149.255”

ONBOOT=“yes”

然后重启network服务:

systemctl restart network

ip addr 如果没有显示改动,重启虚拟centos电脑 reboot

2.9.3、防火墙

centos7的防火墙程序服务名为:firewalld

防火墙配置命令:firewall-cmd

防火墙帮助:

fireweall-cmd --help

查看防火墙状态:

firewall-cmd --state

查看所有打开的端口:

firewall-cmd --zone=public --list-ports

开启端口:

firewall-cmd --zone=public --add-port=端口号/tcp --permanent

​ (–permanent参数为永久生效,不加则重启后失效)

​ 例如:firewall-cmd --zone=public --add-port=3306/tcp --permanent

更新防火墙规则:

firewall-cmd --reload

删除端口:

firewall-cmd --zone=public --remove-port=端口号/tcp --permanent

​ 例如:firewall-cmd --zone=public --remove-port=3306/tcp --permanent

关闭防火墙:

systemctl stop firewalld

systemctl disable firewalld

2.9.4、网络访问

(1)curl :使用 url 访问网络的文件传输工具

curl 是利用 URL 语法在命令行方式下工作的开源文件传输工具

常用来:测试网络访问;模拟用户访问

例如:抓取百度的首页内容

curl www.baidu.com

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Im8vVYFo-1649925487867)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216155528249.png)]

例如:模拟用户访问

​ 查询 studentId=5 的学生

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rawtsWaH-1649925487868)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216155536471.png)]

2.10、 管道和重定向

2.10.1、 重定向输出覆盖: >

向文件输出内容,文件不存在则新建文件再输出

文件存在先清空文件,再写入内容

​ 例如: echo “write some” > t1.txt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X49MKxRJ-1649925487868)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216144334426.png)]

2.10.2、 重定向输出追加: >>

向文件输出内容,文件不存在则新建文件再输出

文件存在,则新的内容追加到文件的 后面

​ 例如:echo “hello new word” >> t1.txt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xrnZWUuD-1649925487869)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216144354216.png)]

存在文件 t1.txt , 在原来内容的后面加入新的内容 “hello new word”

2.10.3、管道 |

管道就是用 “|” 连接两个命令,以前面一个命令的输出作为后面命令的输入,用于把管道左边的输出作为右边的输入

​ 语法: 命令 1 | 命令 2 | 命令 n

​ 例如:echo “hello linux” | wc

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YTUQc1il-1649925487869)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216144532854.png)]

​ 例如:echo “hello linux” | grep “linux”

​ 在前面字符串里面查找指定字符串

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K54wpW2L-1649925487870)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216144603821.png)]

​ 例如: ps -ef | grep “cat”

​ 查看某个进程是否存在,在前面查看的进程里面查找指定字符串

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9HaXaK0N-1649925487871)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216144651560.png)]

2.11、快捷键

shift + insert 是粘贴

tab 是补全代码

y:同意

n:否定

3、Linux 应用

  1. 运行 SecureCRT 目录里面的 SecureFXPortable

  2. 可以在此处从本地传入软件包

3.1、软件的安装

软件包管理器:软件的安装,卸载,查询等功能

后端工具:rpm, dpt

rpm(RedHat package Management ),是Linux界的软件管理的一个工业标准

dpt :debian 的一个包管理器

前端工具: yum

yum 是基于后端工具的软件包的管理,主要是解决rpm安装软件的时候的依赖的解决

​ apt-get

区别:

yum 下载会将依赖的软件也一起下载

rpm 不会自动下载依赖的软件,需要自己手动单独下载

3.1.1、rpm

① 安装一个包

语法:rpm -ivh <包名>

rpm -ivh --nodeps <包名> : 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。

–force 即使覆盖属于其它包的文件也强迫安装

② 查询一个包是否被安装

语法:rpm -q <软件名>

③ 得到被安装的包的信息

语法: rpm -qi < 软件名>

④ 列出该包中有哪些文件

语法:rpm -ql < 软件名>

⑤ 列出服务器上的一个文件或目录属于哪一个RPM包

语法:rpm -qf <文件或目录名>

⑥ 列出所有被安装的rpm package

语法:rpm -qa

⑦ 卸载一个包

语法:rpm -e <软件名>

有安装包,知道依赖关系使用rpm

3.1.2、yum

1 配置一个自定义的本地仓库地址

​ /etc/yum.repos.d

​ local.repo

2 安装命令

​ yum install xxxx

3 查看软件包

​ yum list | grep mysql

​ yum list installed

4 卸载软件包

​ yum remove

没安装包, 不知道依赖关系,使用yum

修改yum源

相当于将国外中央仓库更改为国内镜像阿里云仓库

yum install wget -y

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum makecache

yum -y update #更新系统软件,不执行

3.1.3、wget :下载

wget linux 上下载资源的工具,比如下载软件的安装包。一般软件都会给出一个下载地址

语法: wget 下载的资源的地址

​ 例如:下载一个 tomcat 软件

​ 首先要得到 tomcat 的下载地址,同浏览器下载 tomcat,得到下载地址

​ 点击左侧 Download“Tomcat 9”

​ 不同浏览器,操作方式略有不同

​ 得到 tomcat 9 下载地址:

​ http://apache.fayea.com/tomcat/tomcat-9/v9.0.0.M26/bin/apache-tomcat-9.0.0.M26.tar.gz

在 linux 中使用 wget tomcat 下载地址

粘贴地址提示:右键有 copy 按钮或者使用 shift + insert 快捷键

进度 100%,下载完成

查看当前目录内容,下载的文件:apache-tomcat-9.0.0.M26.tar.gz

3.2、war 项目部署

关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

3.2.1、jdk的安装

1:将 jdk-8u161-linux-x64.tar.gz 拉入linux路径: /usr/local/software

2:将jdk解压到指定的路径

cd /usr/local/software

tar -zxvf jdk-8u161-linux-x64.tar.gz -C /usr/local

3:给解压后的文件目录改过好操作的名字, 可以不改

cd /usr/local

mv jdk1.8.0_161 jdk1.8

4:备份配置环境变量文件

	**注意,设置前先备份,养成习惯**

cp /etc/profile /etc/profile_bak

5:修改配置环境变量文件

vi /etc/profile

​ 在随便空白地方输入:

export JAVA_HOME=/usr/local/jdk1.8 #设置java_home

export PATH=$JAVA_HOME/bin:$PATH #设置环境变量, 跟window区别,是 : 分隔的

看清楚,大小写必须一致

6:重写加载环境变量

source /etc/profile

7:测试

java -version

看到这个结果表示安装成功

java version “1.8.0_161”
Java™ SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot™ 64-Bit Server VM (build 25.161-b12, mixed mode)

3.2.2、tomcat的安装

1:将tomcat安装包拉入linux路径: /usr/local/software

2:将tomcat解压到指定的路径

​ cd /usr/local/software

​ tar -zxvf apache-tomcat-7.0.78.tar.gz -C /usr/local

3:切换到tomcat的 bin目录

​ cd /usr/local/apache-tomcat-7.0.78/bin

4:执行tomcat启动命令

​ ./startup.sh #注意有点 的

5:此时因为防火墙没有开辟8080端口,需要开通, 并重启

​ firewall-cmd --zone=public --add-port=8080/tcp --permanent

​ firewall-cmd --reload

​ 关闭防火墙

​ systemctl stop firewalld

​ systemctl disable firewalld

6:访问测试tomcat是否启动

​ http://192.168.168.131:8080/ #注意: 192.168.168.131 这个是自己的虚拟主机的ip

-----------------------------------------------------------------------------------------------------------------------------------------------------------

7:观看tomcat运行日志

​ cd /usr/local/apache-tomcat-7.0.78/logs

​ tail -f catalina.out #查看新增日志

8:右击选中 SecureCRT 的连接会话拷贝一份,输入以下命令运行 tomcat

​ cd /usr/local/apache-tomcat-7.0.78/bin

​ ./startup.sh

9:切换回到刚刚查看日志命令,可以看到日志打印

-----------------------------------------------------------------------------------------------------------------------------------------------------------

10:tomcat 关闭

​ 方式1:

​ cd /usr/local/apache-tomcat-7.0.78/bin

​ ./shutdown.sh

​ 方式2:

​ ps -ef | grep tomcat #找到进程id

​ kill -9 进程id

3.2.3、mysql数据库的安装

(1)使用SecureFXPortable上传文件

(2)检查系统是否安装了 mariadb 数据库

​ 检查linux是否安装了mariadb数据库,mariadb数据库是mysql的分支,是免费开源的,mariadb和msyql 会有冲突。首先要检查是否安装mariadb,卸载掉

​ 检查命令:yum list installed | grep mariadb

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mcouL4Z6-1649925487871)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216171102774.png)]

(3) 卸载 mariadb

​ 若linux中安装了mariadb数据库,先卸载掉,mariadb数据库可能与安装mysql发生冲突

​ 执行命令: yum -y remove mariadb-libs.x86_64

​ 其中 mariadb-libs.x86_64 是第 2 步搜索出来的 mariadb 软件包,不同机器可能不一样

​ -y 参数确认删 除

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eTol9qBg-1649925487872)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216171216931.png)]

​ 等待卸载完成:提示 Complete ,卸载完成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NTbmF4iC-1649925487872)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216171311880.png)]

(4)安装 MySQL

​ 解压下载的mysql软件压缩包

​ 执行命令:tar -zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz -C /usr/local/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-htwhmcUQ-1649925487873)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216171325160.png)]

(5) 修改解压后的文件名

​ 将解压后的mysql-5.7.18-linux-glibc2.5-x86_64改名为mysql-5.7.18 或者 mysql,为了明确mysql的 版本,建议改名为mysql-5.7.18

​ 查看原文件夹名称,执行 ll

​ 修改文件夹名称,执行:mv mysql-5.7.18-linux-glibc2.5-x86_64 mysql-5.7.18

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i0hQo7db-1649925487874)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216171432822.png)]

(6) 创建数据文件夹 data

data文件夹是mysql用来存放数据库文件的,数据库的表数据都放在data目录

默认没有data目录,可以手工创建data目录,在mysql-5.7.18文件夹目录下创建一个data文件夹,切 换到mysql-5.7.18目录,执行创建文件夹命令

​ 例如:mkdir data

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DS9iTq9q-1649925487874)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216172556413.png)]

(7) 创建用户执行 mysqld 命令

创建mysql用户,用来执行MySQL的命令mysqld ,此命令用来初始化msyql基础信息。可以使用其他用 户,例如叫做 mydb.不推荐

参考地址:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html

​ 执行命令:useradd mysql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MBm3gh6g-1649925487875)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216172605179.png)]

(8) 初始化 MySQL

使用 mysql 的 mysqld 命令初始化数据库的基本信息。切换到 mysql-5.7.18/bin 目录下执行。

命令:./mysqld --initialize --user=mysql --datadir=/usr/local/mysql-5.7.18/data --basedir=/usr/local/mysql-5.7.18

参数说明:

​ --initialize 初始化 mysql,创建 mysql 的 root,随机生成密码。记住密码,登录 msyql 使用。

​ --user 执行 msyqld 命令的 linux 用户名

​ --datadir mysql 数据文件的存放位置,目录位置参照本机的设置。

​ --basedir msyql 安装程序的目录,目录位置参照本机的设置

该命令执行后,会生成一个临时的 mysql 数据库 root 用户的密码,请先拷贝出来记住,后续第一次登 录 mysql 需要使用

查看 mysqld

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zNfuS0gu-1649925487875)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216172614149.png)]

执行初始化命令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZtnkcWZB-1649925487876)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216172623178.png)]

密码: T/>%LuYxa4MS

(9) 启用安全功能

在服务器与客户机之间来回传输的所有数据进行加密。通过证书提供了身份验证机制,mysql 命令程 序,mysql_ssl_rsa_setup 提供了开启数据加密功能,生成数字证书。

​ 在mysql-5.7.18/bin目录下执行命令:

./mysql_ssl_rsa_setup --datadir=/usr/local/mysql-5.7.18/data

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hfov0tt3-1649925487877)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216172631668.png)]

(10) 修改 mysql 安装目录的权限

mysql安装后,需要更改mysql-5.7.18整个文件夹目录权限,更改所属的用户和组,是之前创建的 mysql 用户

在mysql安装目录的上级(/usr/local/)位置,执行命令chown

​ 例如:chown -R mysql:mysql /usr/local/mysql-5.7.18/

参数说明:

​ mysql:mysq 表示文件夹的所属用户,所属组

​ R : 表示递归,更改目录中所有子文件夹的权限

查看原目录所有者

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HLytHGuV-1649925487878)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216172639217.png)]

执行修改命令:chown -R mysql:mysql /usr/local/mysql-5.7.18/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8EVZphK4-1649925487879)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216172647463.png)]

(11) 启动 MySQL

​ mysql-5.7.18/bin目录下执行命令:./mysqld_safe &(其中 & 符号 表示后台启动),输入命令后按Enter

mysqld_safe程序会在启动MySQL服务器后继续监控其运行情况,并在其死机时重新启动它。用mysqld_safe程序来启动MySQL服务器的做法在unix/linux系统上很常见

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IAUHTTr4-1649925487879)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216172739090.png)]

确认 msyql 是否启动,查看进程 ,使用 ps -ef | grep mysql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ltOTt7sQ-1649925487880)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216172804149.png)]

(12) 使用 mysql 客户端进入 mysql

登录进入mysql,mysql-5.7.18/bin目录下执行命令:./mysql -uroot -p

​ -u 表示使用root用户登录系统,使用第8步生成的密码。

​ -p 表示使用密码登录

​ 例如:mysql-5.7.18/bin 下执行 ./mysql -uroot -p

​ 然后 Enter,在提示符下输入密码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sofz1SyX-1649925487881)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216172847823.png)]

(13) 修改 root 密码

​ 第 8 步的 root 用户密码是临时要修改才能使用。

	执行sql语句	 show databases;     第一次使用将会提示修改mysql的root用户密码:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ookawwM2-1649925487881)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216172936742.png)]

修改mysql的密码,命令语法:alter user ‘用户名’@‘主机域名或ip’ identified by ‘新密码’

例如:alter user 'root'@'localhost' identified by '123456';

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0M8s5kRY-1649925487882)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216173019415.png)]

(14) 授权远程访问

授权远程访问,在没有授权之前只能在本机访问msyql, 远程授权就是让其他计算机通过网络访问 mysql(这样远程客户端才能访问)

​ 授权命令:grant

​ 语法:grant all privileges on . to root@‘%’ identified by ‘123456’;

参数:

​ 其中*.* 的第一个 星号 表示所有数据库名,第二个 星号 表示所有的数据库表;

​ root@‘%’ 中的root表示用户名

​ %表示ip地址,%也可以指定具体的ip地址,比如 root@localhost,root@192.168.10.129

①执行授权命令

例如:grant all privileges on *.* to root@'%' identified by '123456';

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9pg1ighe-1649925487882)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216173300534.png)]

②更新权限信息,执行 flush 刷新权限

例如:flush privileges;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VbLvKOKn-1649925487883)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216173313762.png)]

(15) 测试 mysql

客户端访问 mysql 然后就可以使用 mysql 数据库了,可以在命令行 和 远程客户端分别连接 msyql。

HeidiSQL:官方网站:https://www.heidisql.com/

Navicat:官方网站:http://www.navicat.com/

SQLyog:官方网站:http://www.webyog.com/

举例:使用 Navicat 连接 Linux 上的 mysql

① 打开 Navicat 软件,新建连接

② 点击 “ 连接测试 ”

连接错误:可能是 Linux 的防火墙起作用。可以将防火墙先关闭

操作防火墙的命令:

​ 查看防火墙状态:systemctl status firewalld

​ 让防火墙可用:systemctl enable firewalld

​ 让防火墙不可用:systemctl disable firewalld

​ 开启防火墙:systemctl start firewalld

​ 禁用防火墙:systemctl stop firewalld

查看防火墙状态:在 linux 命令行执行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a6x17VPU-1649925487883)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216173543265.png)]

关闭防火墙(本机会话关闭):

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YPFKYbOW-1649925487884)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216173551207.png)]

测试客户端的访问:
(img-nbJgHzYh-1649925487885)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216173601935.png)]

(16) 关闭 MySQL 服务

① 在 msyql 客户端,执行 exit 退出 msyql 自己的客户端

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Img8GJn3-1649925487885)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216173618693.png)]

②关闭,停止mysql服务器

mysql-5.7.18/bin目录下执行: ./mysqladmin -uroot -p shutdown

输入密码关闭

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KtWpgAf9-1649925487886)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216173641332.png)]

查看 mysql 进程,已经没有 mysqld_safe

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TGm1A6tS-1649925487886)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216173656521.png)]

grant all privileges on . to ‘root’@‘%’ identified by ‘admin’ with grant option; 远程用户授权

flush privileges; 刷新缓存

注意: 对于linux mysql 对于表明默认区分大小写的

show variables like “%case%”;

去配置文件中vi /etc/my.cnf添加参数

lower_case_table_names=1

解决中文乱码问题:

useUnicode=true&characterEncoding=utf-8

3.2.4、war 方式部署项目

(1) 导出 web 应用为 war
(2)修改数据库数据

使用 Navicat 连接 Linux 上的 mysql ,建立项目需要使用的数据库,并建立相对应要使用的数据库表等

(3)使用 SecureFXPortable传入war

​ 在 Linux 系统中找到安装 Tomcat 的目录 ------> 找到 webapps 目录

​ ------> 找到 ROOT 目录 ------> 清空 ROOT 目录

​ 使用命令:

cd ROOTrm -rf ./*删除当前目录所有内容

​ 使用 SecureFXPortable 将左边本地项目的 war 包拖到右边 Linux 系统的 ROOT 目录

(4)解压

使用命令:

unzip xxx.war 解压

rm -f xxx.war 删除压缩包

(5)修改数据库连接数据

在 classes 目录中,数据库连接使用了外部属性配置文件 db.properties

将里面的数据库连接信息进行更改(修改地址、修改密码等)

使用命令:

cd WEB-INF/classes/ 进入目录

vi db.properties 修改文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ln8iKTOP-1649925487887)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216181325818.png)]

(6)重新启动 Linux 下的 Tomcat

在 linux 下执行启动 Tomcat 的命令,在 tomcat 安装目录/bin/ ,

执行命令:./startup.sh

3.3、项目二部署(拓展)

3.3.1、redis的安装

最新稳定版: https://redis.io/download 官方提供的

wget http://download.redis.io/releases/redis-6.0.6.tar.gz

1:将redis安装包拉入linux路径: /usr/local/software

2:将redis解压到指定的路径

cd /usr/local/software

tar -zxvf redis-5.0.5.tar.gz -C /usr/local

3:进入redis主目录

cd /usr/local/redis-5.0.5/

4.安装gcc编译器

yum install -y gcc

6:编译redis

cd /usr/local/redis-5.0.5/

make

7:安装redis 服务

cd /usr/local/redis-5.0.5/src

make install

8:修改配置文件redis.conf

vi /usr/local/redis-5.0.5/redis.conf

​ 将redis配置的 : daemonize:后台运行,值为yes | no 默认为no

​ Esc :/daemonize 搜索

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FFuCjeX9-1649925487888)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216182255484.png)]

9:设置远程连接

​ vi /usr/local/redis-5.0.5/redis.conf

注释掉
#bind 127.0.0.1
改为
bind 0.0.0.0

10:启动redis服务

/usr/local/redis-5.0.5/src/redis-server /usr/local/redis-5.0.5/redis.conf

11:验证启动是否成功:

ps -ef | grep redis #查看是否有redis服务

​ 或者查看端口:

netstat -tunpl | grep 6379

12:停掉redis, 重新启动

​ ps -ef | grep redis

​ kill 进程号

​ /usr/local/redis-5.0.5/src/redis-server /usr/local/redis-5.0.5/redis.conf

13 : 防火墙开放6379

firewall-cmd --zone=public --add-port=6379/tcp --permanent

firewall-cmd --reload

14:远程连接

redis-cli -h 192.168.149.128 -p 6379

3.3.2、mongodb的安装

1:将mongodb安装包拉入linux路径: /usr/local/software

2:安装mongodb

cd /usr/local/software

rpm -ivh mongodb-org-server-4.0.20-1.el7.x86_64.rpm

3:修改mongodb配置文件满足远程连接

vi /etc/mongod.conf

bindIp: 0.0.0.0 # 0.0.0.0 绑定所有的网卡

4:启动mongodb

systemctl start mongod

5:开放防火墙端口

firewall-cmd --zone=public --add-port=27017/tcp --permanent

firewall-cmd --reload

6:navicat连接

3.3.3、elasticsearch的安装

1:将elasticsearch安装包拉入linux路径: /usr/local/software

2:安装mongodb

cd /usr/local/software

rpm -ivh elasticsearch-6.5.4.rpm

3:es配置JAVA_HOME路径

vi /usr/share/elasticsearch/bin/elasticsearch-env

export JAVA_HOME=/usr/local/jdk1.8

4:设置远程访问配置:

find / -name elasticsearch.yml #查找配置文件

vi /etc/elasticsearch/elasticsearch.yml

network.host: 0.0.0.0

5:开放防火墙端口

firewall-cmd --zone=public --add-port=9200/tcp --permanent

firewall-cmd --zone=public --add-port=9300/tcp --permanent

firewall-cmd --zone=public --add-port=5601/tcp --permanent

firewall-cmd --reload

6:启动elasticsearch

systemctl start elasticsearch

systemctl status elasticsearch

查看端口:netstat -ntlp

head: http://192.168.168.131:9200/

​ 浏览器:http://192.168.149.128:9200/

7:安装ik分词器

rpm -ql elasticsearch #搜索es按照文件

cd /usr/share/elasticsearch/plugins #切换到该目录

cp -r /usr/local/software/elasticsearch-analysis-ik-6.5.4/ ./ #拷贝插件目录到当前目录

systemctl restart elasticsearch #重启服务

8:安装一下操作插件kibana

将安装包拉到 /usr/local/software

cd /usr/local/software

​ 解压

tar -zxvf kibana-6.5.4-linux-x86_64.tar.gz -C /usr/local

9:配置kibana,允许远程连接

vi /usr/local/kibana-6.5.4-linux-x86_64/config/kibana.yml

​ 修改: server.host: “0.0.0.0”

10:启动kibana

cd /usr/local/kibana-6.5.4-linux-x86_64/bin #切换到目录

./kibana #执行启动

11:访问kibana, 测试elasticsearch

http://192.168.168.131:5601

3.3.4、项目打包

3.3.5、项目启动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值