🌟🌟🌟 ❤️❤️❤️ 🍎🍎🍎
哈喽~大家好,欢迎进入本人【图图是个好孩纸】的博客 🥰🥰🥰
是一名主攻Java后端的程序猿,对前端也有一定的了解,未来持续更新更多的【后端技术】&【学习心得】 🔆🔆🔆
如果对【Java后端技术】感兴趣的大可爱或小可爱,欢迎关注【图图是个好孩纸】~ 💕💕💕
🌟🌟🌟 ❤️❤️❤️ 🍎🍎🍎
【云原生】-微服务(一)-Linux
🌟1、认识Linux
这里就不在细讲,相信有了解过的都知道它是一款免费的操作系统,而操作系统呢,又分为windows、Linux,IOS,如果说我们需要部署项目,首选Linux,当然是开源、安全稳定性较高,具有很强的灵活性
目前常见的Linux有以下几种,我们接下来会基于centos来创建
Ubuntu、Redhat、SUSE、CentOS
🌟2、安装vm
下载地址:
https://my.vmware.com/cn/web/vmware/downloads
win11的话就用16的版本就行,win10及其他可自行选择
🌟3、下载centos系统
下载地址:
https://www.centos.org/download/
找到以iso后缀的,上面的DVD版呢是有桌面化图标的, 而下面的是缩水版,无桌面但文件小,这里不建议用DVD版,我们一般都是用指令操作系统的,不需要桌面化,而且文件又大
🌟4、使用centos创建vm
如果是第一次接触linux的话可以先跟着我的步骤一步步来创建了解
这里我们需要选择安装好的虚拟机镜像,这里我们使用centos来创建vm
给虚拟机取个名称,存放位置,如何就可以下一步了
分配好磁盘大小,这里给它分配100GB,并不是会立即占用100GB,所以我们可以给它分配大一些
创建好之后呢,可以对虚拟机进行相应的设置,这里我主要提及一下vm网络连接模式
分为三种:1.Bridged(桥接模式)2.NAT(网络地址钻)3.Host-Only(仅主机模式)
一般都是使用桥接模式,桥接模式就是将主机网卡与虚拟机的网卡利用虚拟网桥进行通信,在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以,所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰!
注意:在桥接模式下,虚拟机ip地址需要与主机在同一个网段
直接下载centos即可
🍊Centos系统设置
🍋选择语言
一般都是选择English,不要选择中文哦,没啥意义!
🍋分区选择
🍋设置日期和时区
如果这个时候你的时区无法切换成正确的时区,那么恭喜你的网络也无法打开,下面是设置成功好的,下面给提及如何打开你的网络和设置时区
🍋网络选择设置静态IP
如果打开ip地址时,无法响应出现,出现以下的情况的,请前往https://blog.csdn.net/m0_70734549/article/details/125347987?spm=1001.2014.3001.5501
🍋设置超级用户,普通用户
进入可以登录刚刚新增的test用户,使用以下指令查看当前网关地址是否能够启用,如果说这里ens33未能显示你的当前网关地址,那么请参考上面解决时区和网关能否正常启用
https://blog.csdn.net/m0_70734549/article/details/125347987?spm=1001.2014.3001.5501
ip addr
🌟5、Linux常见命令
🍋 1.进入目录
语法:
cd 目录
示例:
cd /home #进入到 home目录 目录存在可以用tab健自动提示出来
cd /
cd ~ # /和~区别是 /是进入到根目录,~是进到当前用户的目录下
🍋 2.删除文件
语法:
rm [选项] 目录
选项:
- -i 删除前逐一询问确认。
- -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
- -r 将目录及以下之档案亦逐一删除。
示例:
rm -rf aa.txt #删除aa.txt文件
🍋 3.创建目录
语法:
mkdir [-p] dirName
选项:
-p 确保目录名称存在,不存在的就建一个。
示例:
mkdir -p /home/aa/bb #home文件夹下创建aa ,aa文件夹下创建bb
🍋 4.vi/vim编辑文件
语法:
vi 文件目录
示例:
vi aa.txt #编辑aa文件
按下 i 进入编辑模式
按下 Esc 键退出编辑模式
- q 退出程序
- w 保存文件
- ! 强制离开
🍋 5.查看文件列表命令
语法:
cat fileName
示例:
cat aa.txt # 查看aa.txt中的内容
🍋 6.查看当前目录下的文件和文件夹
语法:
ls [-alrtAFR] [name...]
选项:
- -a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
- -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
- -r 将文件以相反次序显示(原定依英文字母次序)
- -t 将文件依建立时间之先后次序列出
- -A 同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
- -F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
- -R 若目录下有文件,则以下之文件亦皆依序列出
示例:
ls #查看当前目录下的所有文件和文件夹
ls / #查看根目录下的所有文件和文件夹
🍋 7.解压tar.gz文件
语法:
tar [选项] 文件
选项:
- -x或–extract或–get 从备份文件中还原文件。
- -z或–gzip或–ungzip 通过gzip指令处理备份文件。
- -v或–verbose 显示指令执行过程。
- -f<备份文件>或–file=<备份文件> 指定备份文件。
示例:
tar -zxvf jdk-8u201-linux-x64.tar.gz #解压jdk安装文件
🍋 8.文件改名和移动文件
语法:
mv [options] source dest
选项:
- -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
- -f: 在mv操作要覆盖某已有的目标文件时不给任何指示;
示例:
mv -f jdk1.8.0_201/ /usr/local/java/jdk1.8.0_201 #把当前目录 移动到usr/local/java下去
🍋 9.yum工具使用
语法:
yum [options] [command] [package ...]
示例:
yum clean all #清除缓存
yum update -y #更新所有软件 不用确认
yum install tar wget make rpm -y #安装tar wget make rpm
yum list #列出所有可安裝的软件清单
yum remove rpm #删除rpm软件包
yum search rpm #查找软件包
🍋 10.apt-get工具使用
示例:
apt-get install docker.io -y #安装docker
apt-get update #升级列表中的软件包
apt-get upgrade #升级所有已安装的软件
apt-get remove docker.io #从系统删除一个docker的deb包
apt-get check #确认依赖的软件仓库正确
apt-get clean #从下载的软件包中清理缓存
🍋 11、查看当前ip
ip addr #查看当前ip
🍋 12.测试连接外网
ping www.baidu.com #测试连接外网
🍋 13.允许使用sudo
允许dmw使用sudo 命令
su #切换超级用户
vi /etc/sudoers #编辑此文件
找到
root ALL=(ALL) ALL
dmw ALL=(ALL) ALL #找到如上面行代码位置加入此行代码,dmw是用户名
保存
Esc + :wq! #此文件是只读,最后要加感叹号才能保存
🍋 14.修改root密码
sudo passwd #修改密码 第一次超级密码 第二次新密码 第三次确认新密码
🍋 15.设置静态IP
sudo vim /etc/resolv.conf 编辑此文件
内容如下
#设置DNS 192.168.83.250
nameserver 192.168.83.250
nameserver 192.168.83.520
修改IP
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR就是静态IP,NETMASK是子网掩码(PREFIX=24),GATEWAY就是网关或者路由地址 BOOTPROTO=static 设置为静态
重启生效
/etc/init.d/network restart
#或者
service network restart
🍋 16.复制文件
语法:
cp [-adfilprsu] source destination
选项:
- -i: 若目标文件(destination)已存在,在覆盖时会先询问是否真的操作;
- -f: 强制(force),若有重复或其它疑问时,不会询问用户,而强制复制;
- -d: 若源文件为连接文件(link file),则复制连接文件属性而非文件本身;
- -r: 递归复制,用于目录的复制操作;
示例:
cp schema.xml schema.xml.back #schema.xml文件做一个备份
scp aa.txt root@192.168.99.55:/home/dmwyw/aa.txt #本机复制一个文件到55的dmwyw目录中去
🍋 17.创建文件
语法:
touch 路径/文件名
示例:
touch /home/test.txt
🍋 18.查看本机端口状态
示例:
sudo yum install net-tools -y #安装net-tools工具
sudo netstat -tlpn
sudo netstat -lnp|grep 8080 #查看8080端口状态
🍋 19.关闭TCP6
sudo vi /etc/default/grub #修改文件
内容追加如下:
GRUB_CMDLINE_LINUX="ipv6.disable=1"
修改前
修改后
重新生成grub.cfg文件
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo reboot #重启机器
lsmod|grep ipv6 #没有IP6的显示了
🍋 20.防火墙
sudo systemctl restart firewalld.service #重启防火墙
sudo systemctl stop firewalld.service #关闭防火墙
sudo firewall-cmd --list-ports #查看开放的端口
sudo firewall-cmd --permanent --remove-port=3306/tcp #关闭端口
开放指定端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent #开放80端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent #开放8080端口
开放端口需要 reload
sudo firewall-cmd --reload
命令含义:
- –zone:作用域
- –add-port:添加端口,格式为:端口/通讯协议
- –permanent:永久生效
🌟6、使用xshell连接linux
🍋 1.安装xshell工具
https://www.xshell.com/zh/
一直点击下一步安装完成
🍋 2.连接虚拟机
点击左上角+加号 弹出新建会话属性 ,设置名称(自取,标识作用),主机(虚拟机ip地址),端口号
设置连接的用户名和密码
连接成功
🌟7、使用xftp传文件
🍋 1.安装xftp工具
在xshell官网下可以同步下载xftp,有免费版,下载步骤就下一步下一步即可
🍋 2.上传文件
需先登录你的虚拟机
上传文件很简单只需拖动你所需要的文件放置你的虚拟机即可
🌟8、使用ssh登录
🍋 1.ssh概念
SSH(远程连接工具)连接原理:ssh服务是一个守护进程(demon),系统后台监听客户端的连接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP 22端口),包括公共秘钥等交换等信息。
ssh服务端由2部分组成: openssh(提供ssh服务) openssl(提供加密的程序)
🍋 2.登录其它服务器
示例:
ssh -p22 dmwyw@192.168.55.99 #必须先安装好ssh 登录你自己的服务器
🍋 3.免密登录DSA
假设现在有A和B二台linux服务器,二台机器必须已经装好SSH。要求实现B能免密码登录A服务器
A:服务器生成公钥
sudo vi /etc/hosts #修改此文件
#内容如下
192.168.1.1 nexusA #192.168.1.1是A的ip
192.168.1.2 nexusB #192.168.1.2是B的ip
#修改/etc/hosts文件后重启
reboot
ssh-keygen -t dsa #不用输入密码,全部直接回车 id_dsa是私钥, id_dsa.pub是公钥。
cd .ssh/
mv id_dsa.pub authorized_keys #把公钥改名
B:服务器需要把私钥拷贝到自己服务器下,这样才能免密登录A
sudo vi /etc/hosts #修改此文件
#内容如下
192.168.1.2 nexusB #192.168.1.2是B的ip
192.168.1.1 nexusA #192.168.1.1是A的ip
#修改/etc/hosts文件后重启
reboot
#把A服务器生成的私钥拷贝到B的.ssh文件夹中
scp nexus@nexusA:/home/nexus/.ssh/id_dsa ./.ssh/id_dsa
rm -f ./.ssh/known_hosts #删除此文件
ssh nexus@nexusA #登录A服务器, 此时要输入一次密码,后续再使用此登录就不用输入了。
**特别注意: ** B服务器要拿私钥 这是控制端,A服务器拿公钥 这是被控端。
🍋 4.免密登录RSA
A:服务器生成公钥
sudo vi /etc/hosts #修改此文件
#内容如下
192.168.1.1 nexusA #192.168.1.1是A的ip
192.168.1.2 nexusB #192.168.1.2是B的ip
#修改/etc/hosts文件后重启
reboot
ssh-keygen -t rsa #不用输入密码,全部直接回车 id_rsa是私钥, id_rsa.pub是公钥。
cd .ssh/
cat id_rsa.pub >> authorized_keys #把公钥内容放入authorized_keys文件
ssh nexusA #测试免密登录 登录本机
scp id_rsa nexus@nexusA:/home/nexus/.ssh/id_rsa #复制私钥给B服务器
B:服务器需要把私钥拷贝到自己服务器下,这样才能免密登录A
sudo vi /etc/hosts #修改此文件
#内容如下
192.168.1.2 nexusB #192.168.1.2是B的ip
192.168.1.1 nexusA #192.168.1.1是A的ip
#修改/etc/hosts文件后重启
reboot
ssh nexus@nexusA #登录A服务器, 此时要输入一次密码,后续再使用此登录就不用输入了。
总结:
🥰🥰🥰 Linux命令是对Linux系统进行管理的命令,一般都是使用linux系统发布项目而不是使用Windows~ 🤞❣️
📖📖📖 看完还是不懂的小伙伴们,欢迎下方留言~ 📖📖📖
💮💮💮 如果这篇内容对你有用,欢迎点赞收藏加关注 💮💮💮