Linux(Ubuntu)指令
文件操作
tar -zxvf + XXX:解压缩
cp + XXX:拷贝
cp -r + XXX:递归拷贝
cp -i + XXX:拷贝后确认操作(y/n)
ls:展示全部目录路径
pwd:查看本路径
vi + XXX:打开文件
vim + XXX:用编辑器打开文件【不确定】
- :w 保存文件但不退出vi
- :w file 将修改另外保存到file中,不退出vi
- :w! 强制保存,不推出vi
- :wq 保存文件并退出vi
- :wq! 强制保存文件,并退出vi
- :q 不保存文件,退出vi
- :q! 不保存文件,强制退出vi
- :e! 放弃所有修改,从上次保存文件开始再编辑
mkdir + XXX:创建路径
rm + XXX:删除路径/文件
- sudo ufw status:查看防火墙状态
- sudo ufw allow 80:开放80端口
- sudo ufw enable:开启防火墙
- sudo ufw disable:关闭防火墙
- sudo ufw reload:重启防火墙
netstat -aptn:查看所有开启的端口
具体基本目录
- bin:【常用】Binary缩写,这个目录存放着常用的命令
- sbin:Super User的意思,这里存放的是系统管理员的系统管理程序
- home:【常用】存放普通用户的主目录,在Linux中每个用户都有个自己的目录
- root:【常用】
- lib:系统开机所需要的最基本的动态连接共享库,其作用类似于Windows中的DLL文件,几乎所有的系统程序都需要用到这些共享库
- lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件
- ETC:【常用】所有的系统管理所需要的配置文件和子目录,比如安装mysql数据库的my.conf
- user:【常用】这是一个非常重要的目录,用户的很多应用程序和文件都存放在这个目录下,类似于windows下的program files目录
- boot:【常用】存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
- proc:【不能动】这个目录是一个虚拟的目录,他是系统内存的映射,访问这个目录来获取系统信息
- srv:【不能动】service的缩写,该目录存放一些启动之后需要提取的数据
- sys:【不能动】这是linux2.6内核的一个很大的变化,该目录安装了2.6内核中新出现的一个系统sysfs=》
- tmp:这个目录是用来存放一些临时文件的
- dev:类似于windows的设备管理器,把所有的硬件用文件的形式存储
- media:【常用】linux系统会自动识别一些设备,例如U盘、光驱等等,linux会把识别的设备挂载到这个目录下
- mnt:【常用】系统提供该目录是为了让用户临时挂在别的文件系统的,我们可以将外部的村相互挂在到mnt上然后进行该目录就可以查看里面的内容了
- opt:这是给主机额外安装软件所存放的目录。如安装ORACLE数据可以就可以放到该目录下默认为空
- user/local:【常用】这是另一个给主机额外安装软件所安装的目录,一般是通过编译源码方方式安装的程序
- var:【常用】这个目录存放着不断不断扩充的东西,习惯将经常被修改的目录存放在这个目录下,包括各种日志文件
- selinux[security-enhanced linux]:SELinux是一种安全子系统,它能控制程序只能访问特定的文件,有三种工作模式,可以自行设置
问题
可以Ping通,但无法连接实例
需要在实例中添加IP白名单
- 鼠标放在右上角头像上面
- 点击安全管控
- IP白名单
- 添加实例名称和ip
- 添加过白名单ip:0.0.0.0
通过发送远程指令开启防火墙ssh端口:22端口(远程连接最后的)
sudo ufw allow ssh
安装Zookeepre步骤
Zookeeper下载链接(Linux)
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
解压
tar -zxvf zookeeper-3.4.9.tar.gz
配置conf文件
进入到安装目录的…/conf目录下
可以看到这里有个zoookeeper给我们的一个样例配置文件:zoo_sample.cfg,我们在配置我们自己的zk时,需要做的就是将这个文件复制一份,并命名为:zoo.cfg,然后在zoo.cfg中修改自己的配置即可。
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
zoo.cfg的相关配置项其实并不多,这边各个配置项的详细说明如下:
# zookeeper内部的基本单位,单位是毫秒,这个表示一个tickTime为2000毫秒,在zookeeper的其他配置中,都是基于tickTime来做换算的
tickTime=2000
#集群中的follower服务器(F)与leader服务器(L)之间 初始连接 时能容忍的最多心跳数(tickTime的数量)。
initLimit=10
#syncLimit:集群中的follower服务器(F)与leader服务器(L)之间 请求和应答 之间能容忍的最多心跳数(tickTime的数量)
syncLimit=5
# 数据存放文件夹,zookeeper运行过程中有两个数据需要存储,一个是快照数据(持久化数据)另一个是事务日志
dataDir=/tmp/zookeeper
# 客户端访问端口
clientPort=2181
配置环境变量
cd /etc/profile(用vi打开profile文件)
export ZOOKEEPER_HOME=/opt/zookeeper/zookeeper-3.4.9
export PATH=$ZOOKEEPER_HOME/bin:$PATH
export PATH
然后 source profile使配置生效
source profile /etc/profile
启动服务
zkServer.sh start
可以看到我们的zkServer以及启动好了。
可以查看下启动状态:
zkServer.sh status
使用
启动Clint端
zlCli.sh
root@tianlang:/usr/local/src/zookeeper/zookeeper-3.4.9/conf# zkCli.sh
Connecting to localhost:2181
2022-07-04 20:35:16,806 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.9-1757313, built on 08/23/2016 06:50 GMT
2022-07-04 20:35:16,809 [myid:] - INFO [main:Environment@100] - Client environment:host.name=iZuf6jcef3xvh1ddvymxepZ
2022-07-04 20:35:16,810 [myid:] - INFO [main:Environment@100] - Client environment:java.version=1.8.0_312
2022-07-04 20:35:16,813 [myid:] - INFO [main:Environment@100] - Client environment:java.vendor=Private Build
2022-07-04 20:35:16,813 [myid:] - INFO [main:Environment@100] - Client environment:java.home=/usr/lib/jvm/java-8-openjdk-amd64/jre
2022-07-04 20:35:16,813 [myid:] - INFO [main:Environment@100] - Client environment:java.class.path=/usr/local/src/zookeeper/zookeeper-3.4.9/bin/../build/classes:/usr/local/src/zookeeper/zookeeper-3.4.9/bin/../build/lib/*.jar:/usr/local/src/zookeeper/zookeeper-3.4.9/bin/../lib/slf4j-log4j12-1.6.1.jar:/usr/local/src/zookeeper/zookeeper-3.4.9/bin/../lib/slf4j-api-1.6.1.jar:/usr/local/src/zookeeper/zookeeper-3.4.9/bin/../lib/netty-3.10.5.Final.jar:/usr/local/src/zookeeper/zookeeper-3.4.9/bin/../lib/log4j-1.2.16.jar:/usr/local/src/zookeeper/zookeeper-3.4.9/bin/../lib/jline-0.9.94.jar:/usr/local/src/zookeeper/zookeeper-3.4.9/bin/../zookeeper-3.4.9.jar:/usr/local/src/zookeeper/zookeeper-3.4.9/bin/../src/java/lib/*.jar:/usr/local/src/zookeeper/zookeeper-3.4.9/bin/../conf:
2022-07-04 20:35:16,813 [myid:] - INFO [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib
2022-07-04 20:35:16,813 [myid:] - INFO [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2022-07-04 20:35:16,814 [myid:] - INFO [main:Environment@100] - Client environment:java.compiler=<NA>
2022-07-04 20:35:16,814 [myid:] - INFO [main:Environment@100] - Client environment:os.name=Linux
2022-07-04 20:35:16,814 [myid:] - INFO [main:Environment@100] - Client environment:os.arch=amd64
2022-07-04 20:35:16,814 [myid:] - INFO [main:Environment@100] - Client environment:os.version=5.4.0-113-generic
2022-07-04 20:35:16,814 [myid:] - INFO [main:Environment@100] - Client environment:user.name=root
2022-07-04 20:35:16,814 [myid:] - INFO [main:Environment@100] - Client environment:user.home=/root
2022-07-04 20:35:16,814 [myid:] - INFO [main:Environment@100] - Client environment:user.dir=/usr/local/src/zookeeper/zookeeper-3.4.9/conf
2022-07-04 20:35:16,816 [myid:] - INFO [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@277050dc
Welcome to ZooKeeper!
2022-07-04 20:35:16,859 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2022-07-04 20:35:16,970 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@876] - Socket connection established to localhost/127.0.0.1:2181, initiating session
2022-07-04 20:35:16,982 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1299] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x181c92564ba0003, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0]
展示列表
ls /
ls /zookeeper
查看服务
get /zookeeper
查看服务中心的服务
ls /services
通过ls /services/cloud-provider-payment获取到的名称,获得流水号,然后get /流水号会生成json串,可以看到详细的注册信息。
ls /services/cloud-order-service
ls /services/cloud-order-service/b306bf36-e1c3-4f95-bc90-0076fac7ec17
get /services/cloud-order-service/b306bf36-e1c3-4f95-bc90-0076fac7ec17
[zk: localhost:2181(CONNECTED) 8] get /services/cloud-order-service/b306bf36-e1c3-4f95-bc90-0076fac7ec17
{"name":"cloud-order-service","id":"b306bf36-e1c3-4f95-bc90-0076fac7ec17","address":"DESKTOP-A25TVU0","port":9001,"sslPort":null,"payload":{"@class":"org.springframework.cloud.zookeeper.discovery.ZookeeperInstance","id":"application-1","name":"cloud-order-service","metadata":{}},"registrationTimeUTC":1656939881430,"serviceType":"DYNAMIC","uriSpec":{"parts":[{"value":"scheme","variable":true},{"value":"://","variable":false},{"value":"address","variable":true},{"value":":","variable":false},{"value":"port","variable":true}]}}
cZxid = 0x18
ctime = Mon Jul 04 21:04:43 CST 2022
mZxid = 0x18
mtime = Mon Jul 04 21:04:43 CST 2022
pZxid = 0x18
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x181c92564ba0006
dataLength = 530
numChildren = 0
[zk: localhost:2181(CONNECTED) 9] root@tianlang:/usr/local/src/zookeeper/zookeeper-3.4.9/conf#
问题
依赖冲突
服务器版本3.4.9,依赖版本3.5.3-beta。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VIvo8oJK-1659520813912)(F:\resources\Markdown\static\image-20220704204357796.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G8plE1mm-1659520813920)(F:\resources\Markdown\static\image-20220704204341024.png)]
解决方法:
添加排除依赖(替换掉现有的spring-cloud-starter-zookeeper-discovery)
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
然后添加3.4.9依赖(和服务器相同)
添加依赖同时zookeeper也引入了sl4j的依赖,会形成sl4j依赖冲突,这时候需要把sl4j和log4j排除掉
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
<version>3.4.9</version>
</dependency>
安装JDK
更新软件包列表
sudo apt-get update
安装openjdk-8-jdk
sudo apt-get install openjdk-14-jdk
配置环境变量, 编辑如下文件
vim ~/.bashrc
在最后一行加
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
查看java版本,看看是否安装成功
java -version
javac -version
安装MySQL
验证
sudo apt-get update #更新源
sudo apt-get install mysql-server #安装
安装完成后,可以通过下面的命令来查看时候安装成功
systemctl status mysql
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uEspqRXO-1659520813920)(F:\resources\Markdown\static\image-20220702213455925.png)]
登录
sudo mysql -u root -p #不需要密码
修改密码然后刷新权限
alter user "root"@"localhost" identified by "password";
flush privileges;
如果不出意外的话再次登录会出现不输入密码也能登录的问题(MySQL版本8.0.29),那就执行一下sql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; //#修改加密规则
2、ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; // #更新一下用户的密码
还有一个问题。
当要更新密码的时候mysql -u root -p
报错 ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061) 可以是没有启动服务
net start mysql 需要启动一下服务 之后 在mysql -u root -p输入这个命令
然后重新进入MySQL就可以了
安装Nginx
验证安装
sudo apt-get update #更新源
sudo apt-get install mysql-server #安装
查看nginx是否安装成功
nginx -v
启动nginx
service nginx start
记得在阿里云实例上开放端口,添加
启动后,在网页重输入ip地址,即可看到nginx的欢迎页面。至此nginx安装成功
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CFSfzTOR-1659520813921)(F:\resources\Markdown\static\image-20220703030311804.png)]
nginx文件安装完成后的文件位置:
- /usr/sbin/nginx:主程序
- /etc/nginx:存放配置文件
- /usr/share/nginx:存放静态文件
- /var/log/nginx:存放日志