创建虚拟机
Linux使用指南
yum
# 更新yum包
sudo yum update -y
# 加入安装过旧版本,先卸载旧版本
sudo yum remove docker docker-common docker-selinux docker-engine
# 安装 yum-util 工具包和 devicemapper 驱动依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置 yum 源(加速 yum 下载速度)
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# 或者
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 用yum 下载vim
yum -y install vim
JDK
# 查看jdk版本
java -version
# 下载jdk1.8
下载路径:
https://www.oracle.com/technetwork/java/javase/
downloads/jdk8-downloads-2133151.html
下载名称:
jdk-8u401-linux-x64.tar.gz
# 在/opt/路径下创建software,用来存放外部应用
mkdir /opt/software
# 将jdk的压缩文件放到software里面,并解压
tar -zxvf jdk-8u401-linux-x64.tar.gz
# 将解压出来的jdk文件夹改一下名字,后面配置环境变量更方便,
mv jdk1.8.0_401/ /opt/software/jdk180
# 然后进去目录,记住当前路径
cd /opt/software/jdk180
pwd # /opt/software/jdk180
# 配置环境变量(jdk环境变量的配置路径在/etc/profile)
vim /etc/profile
# 指令如下
i # 插入
# 在最末尾加入下面的配置
export JAVA_HOME=/opt/software/jdk180
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
Esc # 准备退出
:wq! # 保存写入并退出
# 激活配置
source /etc/profile
# 检查是否配置成功
java -version
# 显示如下:
java version "1.8.0_401"
Java(TM) SE Runtime Environment (build 1.8.0_401-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.401-b10, mixed mode)
Docker
# 安装docker
# 查看所有可以安装的docker版本
yum list docker-ce --showduplicates | sort -r
# 安装最新版
sudo yum install docker-ce -y
# 安装指定版本
sudo yum install xxxxxxxxxx -y
sudo yum install docker-ce-20.10.11.ce -y
# 查看是否安装成功
docker -version #有显示版本等信息就是成功了
# 启动并加入开机启动
sudo systemctl start docker #启动 docker
sudo systemctl enable docker #加入开机自启动
# docker指令
systemctl status docker # 显示docker镜像状态
systemctl start docker # 启动docker
systemctl restart docker # 重启docker
systemctl stop docker # 停止docker
docker images # 查看docker里面的镜像文件
docker ps -a # 查看所有容器
docker ps -a | grep xxx # 搜索带xxx的容器名称
docker ps -s # 查看运行中的容器
docker exec -it 容器id bash # 进入容器实例
docker stop ID #停止容器
rm docker ID/名称 # 删除容器
rm docker -f ID/名称
docker rmi ID # 删除镜像
docker rm $(docker ps -a -q) # 删除所有容器
docker rmi $(docker images -q) # 删除所有镜像
Linux常用指令
# 切换管理员root,需要输入密码
su
# 切换非管理员用户
su xxxx
# 在opt路径下创建文件夹software
mkdir /opt/software/
# 显示当前所在路径
pwd
# 查找文件
find / -name *xxxx*
# 移动文件
mv /opt/1.jsp /opt/software/ # 移动opt路径下的1.jsp到software里面
# 创建文件
touch /xx/xx/daemon.json # 在xx/xx/路径下创建daemon.json
# 拷贝文件
cp /opt/1.jsp /opt/software/ # 复制opt路径下的文件,放到software里面
# 修改文件名,这个也是移动文件的方法。原文件名:jdk.1.8.441
mv /opt/jdk.1.8.441 /opt/software/jdk180
# 文件移动了,且名字也改了,当然也可以这样只改名,不移动文件
mv /opt/jdk.1.8.441 /opt/jdk180
# 查看进程
ps -ef | grep 端口|名称
# 删除文件夹
rm -rf /path/path1/path2
# 解压tar.gz
tar -zxvf xxxxxxxxxxxxxxxxx.tar.gz
Redis
Redis配置
下载地址:
https://redis.io/download/
1、将下载好的redis拖进 /opt/software目录下
2、使用命令解压
tar -zxvf redis-xxxx.tar.gz
3、进入目录,执行make命令
cd /opt/software/redis.xxxxx
make && make install
4、创建一个新文件夹
mkdir /myredis
5、将配置文件拷贝一份到新文件夹中
cp redis.conf /myredis
6、修改文件名
mv redis.conf redis7.conf
7、配置redis7.conf
默认daemonize no 改为 daemonize yes
默认protected-mode yes 改为 protected-mode no
默认bind 127.0.0.1 改为 直接注释掉(默认bind 127.0.0.1只能本机访问)或改成本机IP地址,否则影响远程IP连接
添加redis密码 改为 requirepass 你自己设置的密码
8、动redis服务,并指定访问的配置文件
redis-server /myredis/redis7.conf
9、启动客户端
redis-cli -a 密码 (-p 6379)
# 或者
redis-cli
auth 密码
10、ping一下是否可以连通redis服务
ping # 会回应 pang
11、退出客户端
quit
12、重新进入客户端,执行第一个命令
set k1 helloworld
get k1
13、关闭redis服务器
# 在客户端里面关闭
shutdown
# 在客户端外面关闭
redis-cli -a abc12345 shutdown
13、卸载redis
# 查看/usr/local/bin目录下和redis相关的文件
ls -l /usr/local/bin/redis-*
# 删除/usr/local/bin目录下和redis相关的文件
rm -rf /usr/local/bin/redis-*
key相关指令
# 查看当前库所有的key
keys *
# 判断某个key是否存在
exists key
exists key1 key2 key3
# 查看你的key是什么类型
type key
# 删除指定的Key
del key
# unlink key,非阻塞删除,仅仅将keys从keyspace元数据中删除,真正的删除会在后续异步中操作。
unlink key
# ttl key ,查看还有多久过期,-1表示永不过期,-2表示已经过期
ttl key1
# expire key seconds (秒) , 设置过期时间
expire key3 10
# move key db (0~15),一个redis服务默认有16个数据库,默认在下标0号的数据库
move key2 4
# select db (0~15),切换数据库
select 4
# 查看当前数据库的key的数量
dbsize
# flushdb , 清空当前库的key
flushdb
# flushall, 清空所有库的key
flushall
#################################
# key区分大小写
# 帮助命令: help @ xx 例如: help @string
String相关指令
# set key value
set k1 v1
set k1 v2 # 覆盖旧的key-value
# setnx key value | set key vlaue nx
setnx k1 v1
setnx k1 v2 # 失败,不会覆盖旧的key-value
# gaterange key start end
# 获取key下标从start到end的字符
set k2 "this is my aiweidong"
gaterange k2 0 3 # "this"
# mset 可以同时设置多个key-value
mset k3 v3 k4 v4
get k3 # v3
get k4 # v4
# setex key value ex seconds | set key value ex second
# 为指定的key设置值及其过期时间。如果Key已经存在,setex命令将会替换旧的值
setex key seconds value
setex k5 10 v5
# get
get k1 # v1
# decr, 对指定的key值,让value减1,如果value不为数字,报错。如果不存在key值,则key的值会被初始化为0
set k5 10
decr k5 # 9
get k5 # 9
desr k6 10
get k6 # -10
# decrby key num , 对指定的key,让value减去指定的数字。如果value不为数字,报错。如果不存在key值,则key的值会被初始化为0
get k5 # 9
decrby k5 4
get k5 # 5
# strlen key , 返回指定key所储存的字符串值的长度。当key不是字符串时,返回错误。
get k2 # "this is my aiweidong"
strlen k2 # 20
# msetnx k1 v1 k2 v2 . 用于给所有key都不存在时,设置一个或多个值。如果有一个key已经存在,就会全部失败。
get k7 # -20
MSETNX k7 v7 k8 v8 k9 v9 # 失败
MSETNX k8 v8 k9 v9
get k8 # v8
get k9 # v9
# incrby key num。给指定key加指定的数字。如果vlaue不为数字,报错。如果key不存在,则key的value会被初始化为0。
set k1 50
get k1 # 50
incrby k1 20
get k1 # 70
# incrbyfloat。增加浮点增量值。
incrby k1 2.5
get k1 # 72.5
# setrange key index str。用str替换index下标后的字符。
set k2 "Hello World"
get k2 # Hello World
setrange k2 6 "Redis"
get k2 # Hello Reids
# psetex key millseconds value。给Key设置存活时间,单位是毫秒
psetex key3 1000 value3 # 给k3设置存活时间为1000毫秒
# append key value。给指定的key追加值,如果key不存在,则改为赋值;如果存在,则在结尾合并。
exists k4 # null
append k4 "huawei"
get k4 # huawei
append k4 "phone"
get k4 # huaweiphone
# getset key value。给key赋值,并返回原先的旧值。
getset key5 value5 # 返回 null
getset key5 5 # 返回value5
# mget key1 key2 key3 ... 。 获取多个key的值
mget k1 k2 k3 k4
/*
1) "72.5"
2) "Hello Reids"
3) (nil)
4) "huawei yylx"
*/
# incr key 。将key中存储的数字值加1。如果key不存在,key的value会初始化为0,再执行incr。不为数字报错
set key5 3
incar key5 # 4