1 Liunx
【狂神说 Java】服务器购买及宝塔部署环境说明:https://www.bilibili.com/video/BV177411K7bH/
【狂神说 Java】Linux 最通俗易懂的教程阿里云真实环境学习:https://www.bilibili.com/video/BV187411y7hF/
服务器相关知识
【为什么程序员都需要一个自己的服务器】
1. 作为一个程序员,必须要发布自己的网站和项目
2. 练习 Linux 操作
3. 自己的远程仓库、远程数据库、远程 Tomcat……搭建在服务器上
4. 练习,Linux 进行任意的环境部署操作。Windows 下开发,不熟悉 Liunx。
5.……
【购买服务器】
趁打折买
香港服务器可以避免备案,但是尽量不要挂 VPN,容易被封。
【操作服务器】
1. 在阿里云购买的,需要开通安全组设置
开启端口,否则外部无法访问。
2. 获取服务器的公网 IP 地址,修改实例名称和密码,修改后需要重启
使用 xshell 远程连接,开启 22 端口
【搭建环境】
1. 傻瓜式(宝塔面板)
宝塔面板安装教学:https://www.bt.cn/
下载完毕,得到一个地址:宝塔的管理面板
url 地址
username 随机账号
password 随机密码
自定义安装环境,一键部署应用。
开启端口
放入网站进行访问,比如 tomcat 直接放到 webapps 目录下。
特殊的网站:开源项目,按照自己操作来。
(上传文件尽量使用 xftp)
网站如果访问失败,一定是防火墙。(Linux 服务器,阿里云安全组)
2. 命令式(原生)
从零入门 Linux
说 Linux
我们为什么要在这个点学习 Linux?Java 全栈开发需要掌握哪些知识?要准备什么工作?
Java 开发之路:JavaSE、MySQL、前端(HTML、CSS、JS)、JavaWeb、SSM 框架(可以开始找工作)、SpringBoot、Vue、SpringCloud、MyBatisPlus、Git
Linux(CentOS 7)
消息队列(Kafka、RabbitMQ、RockeetMQ),缓存(Redis)、搜素引擎(ES)
集群分布式(需要购买多台服务器,如果没有多台只能使用虚拟机)
学习方式:
Linux 一切皆文件:读、写、控制权限
基于 Java 全栈开发的 Linux,不是运维级别。
1. 认识 Linux
2. 基本的命令(重点):文件操作、目录管理、文件属性、Vim 编辑器、账号管理、磁盘管理
3. 软件的安装和部署:Java、Tomcat、Docker
入门概述
环境搭建
走近 Linux 系统
系统目录结构
/bin:bin 是 Binary 的缩写, 这个目录存放着最经常使用的命令。
/boot: 这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev : dev 是 Device(设备) 的缩写, 存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
/etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。
/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media:linux 系统会自动识别一些设备,例如 U 盘、光驱等等,当识别后,linux 会把识别的设备挂载到这个目录下。
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
/opt:这是给主机额外安装软件所摆放的目录。比如你安装一个 ORACLE 数据库则就可以放到这个目录下。默认是空的。
/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
/root:该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin:s 就是 Super User 的意思,这里存放的是系统管理员使用的系统管理程序。
/srv:该目录存放一些服务启动之后需要提取的数据。
/sys:这是 linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。
/tmp:这个目录是用来存放一些临时文件的。
/usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
/usr/bin: 系统用户使用的应用程序。
/usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src: 内核源代码默认的放置目录。
/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
常用的基本命令
目录管理
cd 切换目录
./ 当前目录
cd .. 返回上一级目录
cd 目录名(绝对路径,相对路径)
ls 列出目录
-a 显示隐藏目录 all
-l 显示全部文件,包括属性和权限
-al 参数组合使用
pwd 显示用户当前目录
mkdir 创建目录
-p 递归创建目录
rmdir 移除目录
-p 递归删除目录
cp 复制文件或目录
如果文件存在提示是否 overwride,y 或 n
rm 移除文件或目录
-f 忽略不存在的文件,不会出现警告,强制删除
-r 递归删除
-i 删除询问是否删除
rm -rf / 删除系统中全部文件,删库跑路,千万不能用
mv 移动文件或目录,重命名文件
-f 强制移动
-u 只替换已经更新的文件
基本属性
权限共 10 位
第 1 位字母代表文件类型,是目录、文件或链接文件等等:
d 目录
- 文件
l 链接文档 link file
b 可供存储的接口设备
c 串行端口设备,例如键盘、鼠标
后 9 位字母,每 3 个一组,每个字母读写操作可执行,r 可读 read,w 可写 write,x 可执行 execute,- 代表没有权限
属主权限、属组权限、其他用户权限
1、chgrp 更改文件属组
chgrp -R 属组名 文件名
2、chown 更改文件属主,也可以同时更改文件属组
chown -R 属主名 文件名
chown -R 属主名:属组名 文件名
3、chmod 更改文件 9 个属性(必须要掌握)
chmod -R xyz 文件或目录
Linux 文件属性有两种设置方法,一种是数字(常用),一种是符号
r:4 w:2 x:1
可读可写不可执行 rw- 6
文件内容查看
Linux 系统中使用以下命令来查看文件的内容:
经常使用cat 由第一行开始显示文件内容,看配置文件
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写
经常使用nl 显示的时候,顺道输出行号,看代码时显示行号
经常使用more 一页一页的显示文件内容(空格代表翻页,enter 向下看一行,:f 行号)
经常使用less 与 more 类似,但是比 more 更好的是,可以往前翻页(空格翻页,上下键上下翻页,退出 q 命令,查找字符串 / 要查询的字符向下查询,向上查询? 要查询的字符串,n 向下查找下一个,N 向上查找下一个)
head 只看前几行,通过 -n 参数控制查看几行
tail 只看后几行,通过 -n 参数控制查看几行
可以使用 man[命令] 来查看各个命令的使用文档,如:man cp
网络配置目录 CentOS7 系统:cd /etc/sysconfig/network-scripts/
默认网络配置文件 ifcfg-eth0
ping 命令(Windows 相同)
ifconfig 命令(Windows 不同 ipconfig)
拓展:硬链接和软链接(了解)
Linux 的链接分为两种:硬链接、软链接(也称符合链接)
硬链接:A---B,假设 B 是 A 的硬链接,那么指向同一个文件,允许一个文件拥有多个路径,用户可以通过硬链接到一些重要的文件。
软链接:类似 Windows 下的快捷方式,删除了源文件,快捷方式也访问不了。
创建链接 ln 源文件 目标文件(不加参数硬链接,-s 软链接)
touch 命令创建文件
echo 输入字符串,也可以输出到文件中 echo “abc 字符串” >> 文件
Vim 编辑器
Vim 是从 vi 发展出来的一个文本编辑器。vim 通过一些插件可以实现和 IDE 一样的功能。
Linux 中,必须学会使用 Vim(查看内容、编辑内容、保存内容)。
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Lastline mode)。
命令模式:
用户启动 vi/vim,便进入了命令模式。
i 切换到输入模式,以输入字符
x 删除当前光标所在处的字符
: 切换到底线命令模式,以在最底一行输入命令
输入模式:
在命令模式输入按下 i 就进入了输入模式。
字符按键以及 Shift 组合,输入字符
enter,回车键,换行
backspace,退格键,删除光标前一个字符
del,删除键,删除光标后一个字符
方向键,在文本中移动光标
home/end,移动光标到行首 / 行尾
pageup/pagedown,上 / 下翻页
insert,切换光标为输入 / 替换模式,光标将变成竖线 / 下划线
esc,退出输入模式,切换到命令模式
底线命令模式:
在命令模式下按下:(英文冒号)进入到了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
q 退出程序
w 保存文件
wq 保存并退出
按 esc 键可随时退出底线命令模式。
完整的流程:vim 新建或编辑文件,按 i 进入编辑模式,编写完成 esc 退出编辑模式,退出之后进入底线命令模式,:wq 保存退出。
除了上面简易范例的 i,esc,:wq 之外,vim 还有非常多的按键可以使用。
上下左右 移动光标
数字 space 横向移动光标
数字 enter 纵向移动光标
/word 搜素字符串
n 向上搜素
N 向下搜素
:set nu 设置行号
:set nonu 与 set nu 相反,取消行号
账号管理
【添加用户 useradd】
useradd - 选项 用户名
-m 自动创建这个用户的主目录
-G 给用户分配组
【删除用户 userdel】
userdel - 选项 用户名
-r 同时删除主目录
【修改用户 usermod】
-d 参数
修改完毕查看配置文件
【切换用户】
1. 切换用户的命令是 su uername
2. 从普通用户切换到 root 用户,可以使用命令 sudo su
3. 在终端输入 exit 或 logout 或使用快捷方式 ctrl+d,退回到原来用户
4. 想在切换用户之后使用新用户的工作环境,可以再 su 和 username 之间加 -
$ 表示普通用户
#表示超级用户,就是 root 用户
hostname 查看主机名,hostname 名称 修改主机名,修改后重新连接
【用户的密码设置】
root 可以修改任何用户密码:
passwd 用户名,输入 1 次密码
普通用户修改自己密码:
passwd,输入 2 次密码
【锁定账号】
passwd -l 用户名,锁定之后这个用户就不能登录了
passwd -d 用户名,清空密码了也不能登录
用户组管理
用户组的管理涉及用户组的添加、删除和修改。
组的添加、删除和修改实际上就是对 /etc/group 文件的更新。
【创建用户组】
groupadd 组名,添加用户组,可以得到一个组的 id,自增的 id
groupadd -g 520 组名,设置组的 id
【删除用户组】
groupdel 组名
【修改用户组的权限信息和名字】
-g 修改 id
-n 修改名称
【切换用户组】
newgrp
【拓展:文件的查看】
/etc/passwd
用户名: 口令(登录密码,不可见): 用户标识号: 组标识号: 注释性描述: 主目录: 登录 shell
加密后的用户口令存放在 /etc/shadow 文件中,保证密码安全性。
用户组的所有信息都存放在 /etc/group 文件中。
磁盘管理
df 列出文件系统整体的磁盘使用量,默认磁盘字节
df -h 磁盘 M
du 检查磁盘空间使用量,不显示隐藏文件
du -a 显示隐藏文件,可以看到子文件夹
du -sm /* 检查根目录下每个目录所占用的容量
Mac 或者使用 Linux 挂载本地磁盘或文件:
挂载 mount /dev/u 盘 /mnt/ 目录
卸载 unmout,-f 强制卸载
进程管理
1、在 Linux 中,每一个程序都有自己的一个进程,每一个进场都有一个 id 号。
2、每一个进场,都有一个父进程。
3、进程可以有两种存在方式,前台,后台运行。
4、一般服务都是后台运行的,基本的程序是前台运行的。
ps 查看当前正在执行的各种进场的信息
-a 显示当前终端显示所有进程信息
-u 以用户的信息显示进程
-x 显示后台运行进场的信息
| 在 linux 中叫做管道符, A|B,A 命令的结果作为输出操作 B 命令
ps -aux|grep java 查找 java 进程
ps -aux|grep mysql 查找 mysql 进场
ps -ef 可以查看到父进程
pstree -pu 进程树,-p 显示父 id,-u 显示用户组
结束进程 kill -9 id 号
如果写的程序死循环了,可以选择结束进程 / 杀进程。
nohup,代表后台执行程序。
Linux 中一切皆文件。
文件:读写执行(查看、创建、删除、移动、复制、编辑),权限(用户、用户组)。
系统:磁盘、进程。
环境安装
安装软件一般有三种方式:
rpm(jdk)、解压缩(tomcat)、yum 在线安装(docker)
JDK 安装
Tomcat 安装
Docker 安装
第四种方式,宝塔安装
扩展:Vmware 使用
快照
本地网络配置
需要保证 Linux 虚拟机和本机在同一个网段。
ifcfg-eno16777736 文件