Linux
- Linux
- 1、Linux 简介
- 2、Linux 命令
- 2.1、磁盘命令
- 2.2、文件管理
- 2.3、帮助命令
- 2.4、压缩与解压命令
- 2.5、系统命令
- 2.6、其他命令
- 2.7、vi 编辑器
- 2.8、权限管理
- 2.9、网络管理
- 2.10、 管道和重定向
- 2.11、快捷键
- 3、Linux 应用
Linux
1、Linux 简介
Linux 与 Windows 的不同:
- Linux 严格区分大小写
- Linux汇总所有内容都以文件形式保存,包括硬件
- Linux不靠拓展名区分文件类型
- 压缩包:.gz、.bz2、.taar.bz2、.tgz
- 二进制软件包:.rpm
- 网页文件:.html、.php
- 脚本文件:.sh
- 配置文件:.conf
- 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 ,密码(密码不会显示出来,直接敲就行)
输入密码之后出现以下信息说明安装成功

SSH 协议 SecureCRT 客户端
SSH 是专为远程登录会话和其他网络服务提供安全性的协议,利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aTMWTPQR-1649925487833)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215143823556.png)]](https://i-blog.csdnimg.cn/blog_migrate/9ab08d564e931656689ec89be923c7f5.png)
SecureCRT 是一款支持SSH(SSH1和SSH2)、Telnet、串口等的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件。在我们今后接下来的学习或工作中会经常使用它远程登录到Linux系统上去工作
-
安装 SecureCRT ,解压到目录后,双击打开
SecureCRTPortable.exe -
第一步:在 VM ware 上输入命令,查看 ip
ip addr
-
第二步:在 SecureCRT 上连接上面显示的 ip


-
第三步:因为 SecureCRT 默认不支持中文,需要配置
选项—>会话选项---->外观–> 字符编码:选为 UTF-8

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

1.3、Linux 系统的目录结构
目录结构是一个树状结构,每个文件或目录都是从根目录开始,并且根目录只能有一个
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vrP0H85m-1649925487838)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215150018037.png)]](https://i-blog.csdnimg.cn/blog_migrate/ed8e47dafdeafa85f9d8a1cbce007711.png)
/user :用户目录,每个用户都有自己的用户目录,有几个用户就有几个对应的用户目录
2、Linux 命令
2.1、磁盘命令
命令提示符:[root@localhost ~]#
-
root:当前登录用户
-
@localhost:主机名
-
~ :当前所在目录,也称为家目录
不同用户家目录不同:
- 如果是 root ,则表示在 /root 目录
- 如果是普通用户 user1 ,则表示在 /home/user1 目录
-
#:超级用户的提示符#
普通用户的提示符 $
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rJ5iOcbt-1649925487839)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215150601916.png)]](https://i-blog.csdnimg.cn/blog_migrate/d207edf4821afebda928033cc5bdf6e5.png)
命令格式:命令 [选项] [参数]
中括号表示可有可无
查询目录中内容:ls
-
命令格式:
ls [选项] [参数] -
选项:
- -a 显示所有文件,包括隐藏文件(隐藏文件就是 . 开头的文件)
- -l 显示详细信息
- -h 人性化显示文件大小
-
命令语句:
-
★★ ls -a
查看所有
-
ls -l
查看详情
-
ls -h
人性化查看详情
-
★★ ll
是 ls -l 的缩写,通过 alias ll 查看快捷方式
-
ls -alh
所有
-
查询所在目录位置 pwd
切换所在目录 cd
简化操作:
-
cd ~
切换到用户目录(家目录)
-
cd -
切换到上一个访问目录
-
cd …
切换到上一级目录
-
cd .
切换到当前目录
-
cd /etc
切换到 etc 目录
2.2、文件管理
(1)创建文件 touch
touch 文件名 :创建文件
注意是文件不是目录,文件名需要带上后缀
例如:touch a.txt
(2)创建目录:mkdir 目录名
mkdir -p [目录名] :
-
mkdir 目录名
创建目录
-
mkdir -p xx/yy/zz
创建多级目录
选项:-p 是递归创建
(3)删除空目录 rmdir
目录为空时(无文件、目录)才可以执行: rmdir 目录名
如果目录里面有目录(多级目录),无法删除,不是空目录
(4)删除文件或目录 rm -rf
rm -rf [文件或目录]:
选项:
- -r :递归删除目录,就是可以删除多级目录
- -f :强制
示例:
-
rm 文件
rm 单独使用可以删除文件,不可以删除目录
-
rm -r 目录
递归文件夹,带提示,提示后面输入 y 或者 n
-
rm -f 文件
删除文件
-
rm -rf 文件/文件夹
递归删除,无提示
禁止: rm -rf /* :删除所有文件
(5)文件复制 cp -rf
选项:-r :复制目录
示例:
-
cp 源文件 备份文件
复制源文件,粘贴成为备份文件
-
cp -r 源目录 目标目录
是递归复制,会将目录中所有内容都进行复制
cp aa.txt ./b.txt :表示将当前目录的a.txt文件复制一份到当前目录名为b.txt
(6)文件剪切或改名 mv
-
mv 源文件 目标文件目录
剪切到目标目录
-
mv 源文件 不存在的文件
重命名
-
mv 源文件 文件夹/不存在的文件
剪切并重命名
mv b.txt xxx/bb.txt :文件移动到xxx目录并改名为bb.txt
(7)命令搜索命令
where is 命令名
搜索命令名所在路径及帮助文档所在位置
which 命令名
搜索命令所在路径及别名
echo $PATH
查看环境变量
(8)搜索文件: find
find [搜索范围] [搜索条件]
搜索范围: 如果是 / 斜杠,表示在根目录中(所有目录中)搜索
示例:
-
find /root -iname install.log
按名字查询,不区分大小写
-
find /root -user root
按所有者搜索
-
find /root -nouser
查找没有所有者的文件
Linux中的通配符
* 匹配任意内容
? 匹配任意一个字符
[ ] 匹配任意一个中括号内的字符
按时间条件
-
find /var -mtime +10
查找10天前修改的文件
atime 文件访问时间
ctime 改变文件属性时间
mtime 修改文件时间
-10 10天前直到现在的时间内修改文件
10 10天前的那天当天修改的文件
+10 10天前再之前的时间内修改的文件
按文件大小条件
-
find / -size 25k
查找文件大小是 25k 的文件,k是小写
-
find / -size 25M
查找文件大小是 25M 的文件,M是大写
-25k 小于25k的文件
25k 等于25k的文件
+25k 大于25k的文件
复合条件
-
find /etc -size +20k -a -size -50k
查找/etc目录下大于20kb并且小于50kb的文件
-
find /etc -size +20k -a -size -50k -exec ls -lh {} ;
查找/etc目录下大于20kb并且小于50kb的文件,并且显示文件详细信息
-exec ls -lh {} ; 是固定写法
-a 表示and,逻辑与,两个条件都满足
-o 表示or,逻辑或,两个条件满足一个即可
(9) 查看文件全部内容: cat 文件路径
-
后可跟相对路径 cat anaconda-ks.cfg
当输入 an ,按 Tab 键自动补全
-
例如:
cat /root/anaconda-ks.cfg
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wERGBY9n-1649925487840)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215220001167.png)]](https://i-blog.csdnimg.cn/blog_migrate/4637de4c72a6aa09fb1d097aec1b3e10.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)]](https://i-blog.csdnimg.cn/blog_migrate/a7276d3695b6daf68f573094ebdd5a9d.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)]](https://i-blog.csdnimg.cn/blog_migrate/9e4447da33170a5faa1f1a7fd62f0a82.png)
④ 搜索整个单词,是其他字符串的一部分的不符合条件
-w :搜索单词
搜索单词 java : grep -w java aa.txt
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vZsEyCnf-1649925487844)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215221332754.png)]](https://i-blog.csdnimg.cn/blog_migrate/e6c89bcd58ed65615d711880477f841e.png)
⑤ 使用正则, 以 java 开头的行
例如 grep “^java” aa.txt
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dDdzLFpl-1649925487845)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215221356469.png)]](https://i-blog.csdnimg.cn/blog_migrate/43235ffc6520f18e2b04dfef0935162b.png)
⑥ 在多个文件搜索
例如 grep java aa.txt test.txt
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vi79X9Fo-1649925487846)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215221457380.png)]](https://i-blog.csdnimg.cn/blog_migrate/efc5f5c8b5faf5ed49f0f140244a0331.png)
⑦ 使用管道 “|”
例如: cat aa.txt | grep java
表示前面表达式的结果作为后一个表达式的条件
(14)find 命令和grep 命令的区别
find命令:在系统中搜索符合条件的文件名
grep命令:在文件中搜索符合条件的字符串
2.3、帮助命令
(1)man 命令名
-
man ls查看ls的帮助
-
man 命令名查看帮助命令 f b 键翻页 q退出
(2)命令 --help
-
命令 --help获取命令选项的帮助,简洁版帮助
-
ls --help获取 ls 命令的帮助
-
但是不适用内部命令,如cd:
help cd -
命令特殊时,使用
help 命令比如: help cd
2.4、压缩与解压命令
2.4.1、 .zip 格式
(1)压缩
-
zip 压缩文件名 原文件
压缩文件
-
zip -r 压缩文件名 原文件
递归要是文件夹 【如果不指定递归压缩,仅仅是压缩文件夹,里面内容不携带】
zip -r bb.zip bb -
zip a.zip a.txt将a.txt压缩为a.zip
使用 zip 命令会提示找不到,因为没有安装软件
-
先安装zip 软件
yum install zip
yum install -y zip : 不带确认的安装
-
卸载
yum remove
(2)解压
-
unzip 压缩文件
解压缩.zip文件
-
使用 unzip 命令会提示找不到,因为没有安装软件
yum install unzip
2.4.2、 .gz 格式
(1)压缩
-
gzip 原文件
压缩为.gz格式的压缩文件,原文件会消失
gzip a.txt -
gzip -c 原文件 压缩文件
压缩为.gz格式,原文件保留
-c 的意思不是说需要保留文件,而是要把压缩的结果输出到控制台.
-
>的意思是把结果输出到什么地方去. -
gzip -r 目录
压缩目录下的所有子文件,但是不能压缩目录
-
gzip -r 原文件夹
遍历文件夹,压缩文件夹中文件,目录不压缩
gzip -r learn
(2)解压
-
gzip -d 压缩文件解压
-
gunzip 压缩文件解压
-
gunzip -r 压缩文件目录解压
2.4.3、.bz2 格式(拓展)
.bz2 和 .gz 的区别:
- .bz2和.gz 都是linux下压缩文件的格式,有点类似windows下的.zip和.rar文件
- 前者比后者压缩率更高,后者比前者花费更少的时间。也就是说同一个文件,压缩后,.bz2文件比.gz文件更小,但是.bz2文件的小是以花费更多的时间为代价的
(1)压缩
-
bzip2 源文件
压缩为.bz2格式,不能保留源文件
-
bzip2 -k 源文件
压缩之后保留源文件
-
注意:bzip2命令不能压缩目录
(2)解压
-
bzip2 -d 压缩文件
解压缩, -k 保留压缩文件
-
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)]](https://i-blog.csdnimg.cn/blog_migrate/2d4cfaa1a5bb8f251711c7c0425d1f23.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)]](https://i-blog.csdnimg.cn/blog_migrate/469cd0939a2ea33b52daf9044a9a215f.png)
也可以使用通配符 * 表示要压缩的文件名的一部分
例如:tar -zcvf txt2.tar.gz *.txt
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cTcC1crW-1649925487848)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215222811878.png)]](https://i-blog.csdnimg.cn/blog_migrate/f897f2c17e0a94129ca1738290e26e45.png)
③ 压缩目录
语法:tar -zcvf 归档文件名 目录
例如:tar -zcvf file.tar.gz mytest
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xxdALAHI-1649925487848)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215222849132.png)]](https://i-blog.csdnimg.cn/blog_migrate/3113885ea00c9ba514004ec21c976f31.png)
结果:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kEe1c9eX-1649925487849)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215222905534.png)]](https://i-blog.csdnimg.cn/blog_migrate/fea043166110500d39de1888b4cb14e3.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)]](https://i-blog.csdnimg.cn/blog_migrate/514df17b9f1866d7379266ea5e4f5997.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)]](https://i-blog.csdnimg.cn/blog_migrate/fe3ecacf72171a0ef6771cb3b2619ce0.png)
2.5、系统命令
(1) 显示系统日期和时间:date
显示系统当前时间
例如:date
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eAtxmjS8-1649925487858)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215221707817.png)]](https://i-blog.csdnimg.cn/blog_migrate/dbd47bf8f344d7da7906b5b070fc1f0c.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)]](https://i-blog.csdnimg.cn/blog_migrate/17380e951c4ff2e6453c0f10cf72ace2.png)
注意 命令提示符“#”变为“$” , root@localhost 变为 centos@localhost
② 从普通用户切换到 root 用户,需要输入 root 用户密码
例如su root
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CivepOhx-1649925487859)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215221855451.png)]](https://i-blog.csdnimg.cn/blog_migrate/70900d0e4dca0fa7fcec5e0f38ad7148.png)
Password 输入密码,linux 不显示输入的字符, 输入密码后直接按“Enter”
(3) 清楚屏幕:clear
例如:clear
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9tJtZpjX-1649925487861)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220215221934888.png)]](https://i-blog.csdnimg.cn/blog_migrate/33e5f17e3b82ed9cafe2a339b5e19515.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)]](https://i-blog.csdnimg.cn/blog_migrate/fb37eac10f84c82dc745da72c9f7827d.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)]](https://i-blog.csdnimg.cn/blog_migrate/f6086b130e1167a7f162b9c2a7e01a7f.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)]](https://i-blog.csdnimg.cn/blog_migrate/f9b768fd2f6d3965d3b5808669019875.png)
假如编辑 cc.txt 文件的时候,出现意外关闭退出,而不是使用命令退出,会生成一个 .cc.txt.swp 文件
此文件会导致每次 vi cc.txt 的时候会有提示
只需要删除此文件即可
- 先
ll -alh查看所有文件, 查看里面是不是有一个 .cc.txt.swp 文件 - 然后
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–. | 1 | root | root | 12288 | Aug 22 2019 | aliases.db |
文件类型 :
-: 表示文件l: 软链接文件(windows 快捷方式)d: 目录c: 字符设备文件,一次传输一个字节的设备被称为字符设备。例如键盘,鼠标
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JJLJQ9FM-1649925487863)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216142031429.png)]](https://i-blog.csdnimg.cn/blog_migrate/4d7d7bc98770908827e2f5f40034bbec.png)
u所有者 g所属组 o其他人
r读 w写 x执行
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hKnXLSKt-1649925487864)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216141806725.png)]](https://i-blog.csdnimg.cn/blog_migrate/290ebdd4c7252bb93834f0bff6e6d897.png)
权限的尝试:
以 root 身份登录系统 ,执行 cd / 切换到根目录,再执行 ls -l ,查看 root 目录的权限如下:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cGBzux4c-1649925487864)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216142145207.png)]](https://i-blog.csdnimg.cn/blog_migrate/b80d8e544f4cf7aced6813f2d917f664.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)]](https://i-blog.csdnimg.cn/blog_migrate/b1ffcb66dd6e504d00422d0598125102.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)]](https://i-blog.csdnimg.cn/blog_migrate/2fdec1a4363b704d40c69ef48616f6df.png)
2.9.2、ifcfg-eth 解释
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tmKIQdE0-1649925487866)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216154333602.png)]](https://i-blog.csdnimg.cn/blog_migrate/e66de67fcc35fc304736b1d965161a04.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)]](https://i-blog.csdnimg.cn/blog_migrate/66d1472682e04b116d907e6d32e82d13.png)
例如:模拟用户访问
查询 studentId=5 的学生
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rawtsWaH-1649925487868)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216155536471.png)]](https://i-blog.csdnimg.cn/blog_migrate/426a8d265133cc49d367a2f3d441d515.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)]](https://i-blog.csdnimg.cn/blog_migrate/ad6462dae6d589605b0e05f1c141aebc.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)]](https://i-blog.csdnimg.cn/blog_migrate/8b64103659ba9a63c0485f52acfa4c7d.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)]](https://i-blog.csdnimg.cn/blog_migrate/49eb8c67e160d2dc0a83e917122039d7.png)
例如:echo “hello linux” | grep “linux”
在前面字符串里面查找指定字符串
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K54wpW2L-1649925487870)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216144603821.png)]](https://i-blog.csdnimg.cn/blog_migrate/85180b88cd3c3010edb6ad8917820b91.png)
例如: ps -ef | grep “cat”
查看某个进程是否存在,在前面查看的进程里面查找指定字符串
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9HaXaK0N-1649925487871)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216144651560.png)]](https://i-blog.csdnimg.cn/blog_migrate/2cfee9f209f0715f121211ea66b84c19.png)
2.11、快捷键
shift + insert 是粘贴
tab 是补全代码
y:同意
n:否定
3、Linux 应用
-
运行 SecureCRT 目录里面的 SecureFXPortable

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

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)]](https://i-blog.csdnimg.cn/blog_migrate/23ac9562b82e0b6c635858fef57cd8c0.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)]](https://i-blog.csdnimg.cn/blog_migrate/9cd0b0ed4124187c4e813270c50d7a2b.png)
等待卸载完成:提示 Complete ,卸载完成
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NTbmF4iC-1649925487872)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216171311880.png)]](https://i-blog.csdnimg.cn/blog_migrate/41816c307778d27f673ef08cf1a7d4b4.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)]](https://i-blog.csdnimg.cn/blog_migrate/3f70e481352e6ccf4bd704018f43715b.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)]](https://i-blog.csdnimg.cn/blog_migrate/bacbd8101ab2c5cafcb1df8da5afd7cd.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)]](https://i-blog.csdnimg.cn/blog_migrate/50e4d0f30b3d55425ed3c7dd11b0fb90.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)]](https://i-blog.csdnimg.cn/blog_migrate/0b1a918c3707593e09076e573997e5bb.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)]](https://i-blog.csdnimg.cn/blog_migrate/0ff6859dbc9a469b0e5176a01c77a31a.png)
执行初始化命令
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZtnkcWZB-1649925487876)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216172623178.png)]](https://i-blog.csdnimg.cn/blog_migrate/adc52f7faff2d24b75a5efbf5386a2e2.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)]](https://i-blog.csdnimg.cn/blog_migrate/326dba450518293efb7eeec096ff7d37.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)]](https://i-blog.csdnimg.cn/blog_migrate/c80631f38ebea69a7601dd1dd3e6f93c.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)]](https://i-blog.csdnimg.cn/blog_migrate/7df92c75a75bc660230decf98aa16bd1.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)]](https://i-blog.csdnimg.cn/blog_migrate/b4408d8fba726811a21282037f0145ce.png)
确认 msyql 是否启动,查看进程 ,使用 ps -ef | grep mysql
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ltOTt7sQ-1649925487880)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216172804149.png)]](https://i-blog.csdnimg.cn/blog_migrate/4893b27b2276d04b7f0ad488554011a0.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)]](https://i-blog.csdnimg.cn/blog_migrate/3eb727c4360ef0c081f42a679529a17e.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)]](https://i-blog.csdnimg.cn/blog_migrate/2bbb5d86dbbafd4631c60f15c945582d.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)]](https://i-blog.csdnimg.cn/blog_migrate/a22a9c9f619e18f9077c36369c0175ed.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)]](https://i-blog.csdnimg.cn/blog_migrate/31f17740d5adfbe89635d58ea1bf02a8.png)
②更新权限信息,执行 flush 刷新权限
例如:flush privileges;
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VbLvKOKn-1649925487883)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216173313762.png)]](https://i-blog.csdnimg.cn/blog_migrate/24717dbdacae678ca09fa17c97cfd63b.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)]](https://i-blog.csdnimg.cn/blog_migrate/9067e3abfd37099e1f55e7569358e422.png)
关闭防火墙(本机会话关闭):
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YPFKYbOW-1649925487884)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216173551207.png)]](https://i-blog.csdnimg.cn/blog_migrate/337c6453e0c1a6c8457e5498c147aea9.png)
测试客户端的访问:
![(img-nbJgHzYh-1649925487885)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216173601935.png)]](https://i-blog.csdnimg.cn/blog_migrate/93bba4860a2190234214635a17e2c4f9.png)
(16) 关闭 MySQL 服务
① 在 msyql 客户端,执行 exit 退出 msyql 自己的客户端
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Img8GJn3-1649925487885)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216173618693.png)]](https://i-blog.csdnimg.cn/blog_migrate/24dea11783d5998f18d8711323c517da.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)]](https://i-blog.csdnimg.cn/blog_migrate/427044cc15e91eb160ae8326ba49725a.png)
查看 mysql 进程,已经没有 mysqld_safe
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TGm1A6tS-1649925487886)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220216173656521.png)]](https://i-blog.csdnimg.cn/blog_migrate/eae611a07d549f4bee646159d0edc27c.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 ROOT、rm -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)]](https://i-blog.csdnimg.cn/blog_migrate/7da7d3affcbb82daf8638eb1a0ad91aa.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)]](https://i-blog.csdnimg.cn/blog_migrate/62208cee4e7a59e4ff1f981dd5c5c884.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
2666

被折叠的 条评论
为什么被折叠?



