Linux创建文件的方式有几种?
mkdir 文件夹名
touch
使用touch命令来创建一个空文件,或者多个文件。当文件存在时,只会修改文件的访问和修改时间,不会清空内容。
批量创建 touch test{001..050}
创建单个,vi&vim
使用vi&vim编辑器,输入内容并保存退出,来创建一个文件
testb
使用>创建文件,需要注意,当文件存在时,会清空文件内容,并且不会提示
Linux如何删除文件夹
单个删除:rm -f + 文件名
批量删除:rm -f + *文件关键字*
rm -rf + 文件名 (加上-f表示强制删除,不提示确认删除,也可以直接用 rm -r )
如何查看Linux进程
ps aux
a:显示当前终端下的所有进程信息,包括其他用户的进程
u:使用以用户为主的格式输出进程信息
x:显示当前用户在所有终端下的进程
ps -elf
-e:显示系统内的所有进程信息
-l:使用长(long)格式显示进程信息
-f:使用完整的(full)格式显示进程信息。
top
基本类似于Windows系统中的任务管理器
pstree -aup
以树状图的方式展现进程之间的派生关系,显示效果比较直观
ps -aux | grep name
搜索此名称的所有进程
Linux tar压缩和解压缩命令
○ 语法:tar [-c -v -x -f -z -C] 参数1 参数2 ….参数N
-c:创建压缩文件,用于压缩模式
-v:显示压缩、解压过程,用于查看进度
-x:解压模式
-f:要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个
-z:gzip模式,不使用-z就是普通的tarball格式
-C:选择解压的目的地,用于解压模式
压缩组合:
tar -cvf test.tar 1.txt 2.txt 3.txt,将1.txt 2.txt 3.txt压缩到test.tar文件内
tar -zcvf test.tar.gz 1.txt 2.txt 3.txt,将1.txt 2.txt 3.txt压缩到test.tar.gz文件内,使用gzip模式
注意:
-z选项,如果使用的话,一般处于选项位第一个
-f选项,必须在选项位最后一个
解压组合:
tar -xvf test.tar,解压test.tar,将文件解压至当前目录
tar -xvf test.tar -C /home/app,解压test.tar,将文件解压至指定目录(/home/app)
tar -zxvf test.tar.gz -C /home/app,以Gzip模式解压test.tar.gz,将文件解压至指定目录(/home/app)
注意:
-f选项,必须在选项组合体的最后一位
-z选项,建议在开头位置
-C选项,单独使用,和解压所需的其它参数分开
Linux如何终止进程
kill [参数] 进程号
killall [参数] 进程名称
显示进程
命令:ps
ps -aux | grep 名称 例:redis
查看虚拟机IP地址
命令:ifconfig / ip addr
虚拟机防火墙
检查防火墙状态:systemctl status firewalld
重新加载配置:firewall-cmd --reload
查看开放的端口:firewall-cmd --list-ports
配置防火墙开放端口:firewall-cmd --permanent --add-port=80/tcp --permanent
移除端口命令:firewall-cmd --permanent --remove-port=8080/tcp --permanent
设置开机启用防火墙:systemctl enable firewalld.service
设置开机禁用防火墙:systemctl disable firewalld.service
启动防火墙:systemctl start firewalld
关闭防火墙:systemctl stop firewalld
虚拟机网卡
永久修改网卡IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
IPADDR=192.168.***.*** //改成自己要的ip
NETMASK=255.255.255.0
GATEWAY=192.168.1.106
DNS1=114.114.114.114
DNS2=8.8.8.8
DEFROUTE=yes
ONBOOT=yes
#重启网卡
service network restart
nginx
到启动文件目录 cd /usr/local/nginx/sbin/
查看 nginx 的版本号 ./nginx -v
启动 nginx ./nginx
关闭nginx ./nginx -s stop
重新加载 nginx ./nginx -s reload
redis
基本操作
启动服务 redis-server redis6379.conf
停止服务 redis-cli shutdown
退出客户端 exit
连接redis
redis-cli
redis-cli --raw (转化中文格式)
redis-cli -h 127.0.0.1 -p 6379
redis-cli -h 127.0.0.1 -p 6379 --raw
String类型
查询所有Key(测试使用)
keys *
添加key
set key value
setex key 超时时间 value 添加key并设置超时时间
setnx key value 如果不存在 默认会创建一个新的值,存在不操作
mset key value [key value ...] 批量存储
对象添加
set 对象名 {属性1:值;属性2:值;属性3:值}
(注意:字符串需要去掉引号)
保存数据
bgsave
查看key
get key
mget key1 key2 ... 批量查看
*占多个匹配 keys m*
? 占一个匹配 keys n?me
[az] 当前必须符合a或者z n[az]me
[^a] 不匹配什么
[a-c] 匹配范围
删除单个key
del key
删除所有Key
flushdb 删除当前库
flushall 删除所有库
切换数据库
select 0~15
浮点数增删
incrbyfloat 5/-0.5
设置key超时时间
expire key 超时时间(秒)
ttl 查看key过期时间
追加字符串 append key value
获取key指定范围值 getrange key index1(开始下表) index2(结束下标 -1表示最大长度)
替换key指定位置值 setrange key 开始下标 替换内容
List类型
list
添加list列表
lpush listname zhangsan lisi
list列表取值
lrange listname 0 -1 #取值
list追加数据
lpush listname wangwu #追加值
list结尾插入值
rpush listname zhaoliu # 结尾插入值
list获取当前列表长度
llen listname # 获取当前列表长度
删除list
del key #这种是直接将整个列表都删除 del删除删除任意类型
删除list列表中的某一些数据
# 没给count值,默认左弹出(删除)第一个值 返回的信息是弹出(删除)的值
lpop listname
# count 提供值,可以弹出多个,返回值就是弹出的值得列表
lpop listname 10
删除指定值
lrem key count value ---- 默认从左侧开始查询并删除
(删除几个什么值)
例:lrem listname 2 zhangsan---删除两个zhangsan
通过索引获取数据
lindex listname 1(下标)
截取范围的数据(下标)
ltrim listname 1 4
替换列表中的值(下标)
lset listname 1 zhaoliu
在指定的一个位置前面插入值(不是索引)
linsert stu before zhaoliu lisi
在指定的一个位置后面插入值(不是索引)
linsert stu after lisi wangwu
set类型
特点: 无序、不能重复 所有命令 s 开头
用途:点赞,签到,like等功能、抽奖功能
重复的值无法添加成功,并且值得顺序也不是固定的
添加值
sadd key v........
查询值
smembers key
删除指定指定的元素
srem key value
判断当前集合中是否存在指定的值
sismember key v 是返回1 否返回0
查看当前集合中值个数
sacrd key 返回个数
随机获取
srandmember key count(要返回的个数)
随机删除
spop key count
差集 diff 差异 只返回第一个集合的差值
例:
127.0.0.1:6379> sadd zb1 xiaozhi dasima caixukun lijiaqi
4
127.0.0.1:6379> sadd zb2 liziqi xiaozhi dasima wangdaxian xuxubaobao
5
127.0.0.1:6379> sdiff zb1 zb2
caixukun
lijiaqi
交集 sinter 交集
127.0.0.1:6379> sinter zb2 zb1
dasima
xiaozhi
Hash类型(map结构)
key-value(map) 比较适合对象类型的数据存储 key -(key-value)
存值 (key (key - value))
语法:
hset key k1 v1 k2 v2 k3 v3
获取单个值
hget key k
存储对象
hset student name zhangsan age 19 hobbies chouyanhejiutangtou
存储对象集合
hset student 1 {id:1,name:zhangsan} 2 {id:2,name:lisi}
获取 hget student 2
获取多个key
hmget student 1 2
获取全部的值 hgetall 名称k
hgetall student
通过值的key删除指定的数据
hdel student 2
读取当前hash表(map集合)中数据的个数
hlen student
判断是否存在
hexists student 10 (存在返回1.无则返回0)
读取所有的key ----- 1w条数据 取某一些特定的数据,取到所有key 循环 取值 判断 筛选。
hkeys student
取所有的value --- 案例:Java中想将redis中的hash结构转化为set结构
hvals student
Zset类型
有序不重复集合,在set的基础上多增加一个值 set k1 * v1 (zset k1 排序的值(score) v1)
有序不可重复的set集合
主要使用方向:工资、班级成绩等等之类的数据。 或者 权重处理 0 普通 1 重要
增加数据
zadd key 权重值 value
(例:8000) (例:{id:1,name:zhangsan,sal:8000})
查询数据
zrange key 0 -1 (默认升序)
随机读取
zrandmember key 1(随机获取的个数)
删除数据
zrem key value
###复杂查询###
显示所有信息,从小到大 (范围) -inf 负无穷 +inf正无穷
语法:zrange by score key min max --- min max使用的是排序字段的值
升序操作
默认取所有数据
zrange key 0 -1 取索引的范围
根据当前排序结果取所有数据
zrangebyscore key -inf +inf
根据当前排序结果取所有数据 并显示排序字段
zrangebyscore key -inf +inf withscores
根据当前排序结果取所有数据 并显示排序字段 并截取某一部分值
zrangebyscore key -inf +inf withscores limit 0 1
取排序字段值大于**的数据
zrangebyscore key **(例:8000) +inf
取排序字段值小于**的数据
zrangebyscore key -inf **(例:8000)
降序操作
默认取所有数据
zrevrange key 0 -1 取索引的范围
##其余同升序操作,zrange更换为zrevrange##
geospatial 地理位置
作用:朋友圈定位,附近的人,打车距离计算。
添加地理位置信息 GEOADD
geoadd key 经度 纬度 地址名称
查询指定位置的经纬度 GEOPOS
geopos maps 地址名称
查询两地点之间的距离 GEODIST
geodist key 地点1 地点2 单位(默认 米)
例: geodist maps xuejiaao hongyun M
查询附近的城市(定位) GEORADIUS
georadius key 经度 纬度 范围(例:1500) 距离单位 (注:范围与单位之间需要用空格隔开)
例:georadius maps 116.22518499110029 39.951383565611934 1500 KM
查询附近的城市(定位)--显示到中间的距离 GEORADIUS
georadius key 经度 纬度 范围 距离单位 withdist
查询附近的城市(定位)--显示他人精准信息 GEORADIUS
georadius maps 经度 纬度 范围 距离单位 withdist withcoord
查询附近的城市(定位)--显示他人精准信息 并指定返回个数 GEORADIUS
georadius maps 经度 纬度 范围 距离单位 withdist withcoord count 返回个数
通过元素(非坐标)定位信息(即通过名称)
georadiusbymember key 名称 范围 距离单位
georadius maps 经度 纬度 范围 距离单位 withdist withcoord
查询附近的城市(定位)--显示他人精准信息 并指定返回个数 GEORADIUS
georadius maps 经度 纬度 范围 距离单位 withdist withcoord count 返回个数
通过元素(非坐标)定位信息(即通过名称)
georadiusbymember key 名称 范围 距离单位
Bitmaps位图
案例:是否打卡(一周) 0 未打卡 1 打卡
增加数据
setbit key1 key2 value
例:
setbit kq 1 1
考勤 周几 是否打卡 1:是 0:否
查看某一天的打卡记录 getbit
get kq
统计打卡的天数 bitcount
bitcount kq
扩展
setbit kq:geng:2023:3 6 1
考勤:谁的:年:月 日 是否打卡
Bitmaps位图
案例:是否打卡(一周) 0 未打卡 1 打卡
增加数据
setbit key1 key2 value
例:
setbit kq 1 1
考勤 周几 是否打卡 1:是 0:否
查看某一天的打卡记录 getbit
get kq
统计打卡的天数 bitcount
bitcount kq
扩展
setbit kq:geng:2023:3 6 1
考勤:谁的:年:月 日 是否打卡