Linux环境搭建:
- java1.8——https://www.cnblogs.com/xuliangxing/p/7066913.html
- redis——https://www.cnblogs.com/zdd-java/p/10288734.html
- nacos——https://nacos.io/zh-cn/docs/quick-start.html
- nginx——https://blog.51cto.com/favccxx/1620159
- 开放端口——https://blog.csdn.net/Bonie_juzi/article/details/83058604
redhat官方文档关于防火墙firewalld:https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/security_guide/sec-using_firewalls
java1.8安装
1.华为镜像下载jdk1.8,jdk-8u151-linux-x64.tar.gz:https://repo.huaweicloud.com/java/jdk/8u151-b12/
2.Linux下新建用户javaapp,并切换到此用户:
1 | useradd javaapp |
3.新建文件夹,路径在/home/javaapp下
- app用来放jdk文件,logs为其日志;
- soft用来安装软件,jdk1.8,nacos,redis等等
- 改变目录的拥有者为javaapp :
1 | chown -R javaapp:javaapp app |
5.上传安装包到soft下,然后解压
1 | tar -zxvf jdk-8u251-linux-x64.tar.gz |
6.编辑配置文件
修改配置文件 vi /etc/profile
放在配置文件的最下方
1 | JAVA_HOME=/home/javaapp/soft/jdk1.8.0_251 |
配置文件生效
1 | source /etc/profile |
7.测试,java -version,成功!
vi保存命令:
wq,保存退出
w,保存不退出
q,不保存退出
q!,不保存强制退出
i,插入模式
redis安装
下载redis:https://redis.io/download
官网写了安装方法了:
1 | $ wget https://download.redis.io/releases/redis-6.2.1.tar.gz |
解压文件,切换路径,编译
遇到错误两个:
cc command not found
这个是因为gcc没有安装,yum install gcc就行jemalloc/jemalloc.h: No such file or directory
这是因为之前编译错误,有残余文件。
正确解决办法(针对2.2以上的版本):清理上次编译残留文件,重新编译1
make distclean && make
src/redis-server运行redis就行了
开放端口
Centos7之后系统默认是firewalld,用firewalld代替了iptables;
安装 firewalld和firewalld-config:
1 | yum install firewalld |
启动firewalld防火墙
1 | systemctl start firewalld.service |
查看firewalld防火墙运行状态:
1 | firewall-cmd --state |
启动关闭防火墙服务:
- 启动一个服务:systemctl start firewalld.service
- 关闭一个服务:systemctl stop firewalld.service
- 重启一个服务:systemctl restart firewalld.service
firewall-cmd常用命令:
- 显示状态: firewall-cmd –state
- 查看所有打开的端口: firewall-cmd –zone=public –list-ports
- 更新防火墙规则(重启防火墙): firewall-cmd –reload
- 查看区域信息: firewall-cmd –get-active-zones
端口:
- 添加:firewall-cmd –zone=public –add-port=80/tcp –permanent (–permanent永久生效,没有此参数重启后失效)
- 查看:firewall-cmd –zone=public –query-port=80/tcp
- 删除:firewall-cmd –zone=public –remove-port=80/tcp –permanent
服务:
其实一个服务对应一个端口,每个服务对应/usr/lib/firewalld/services下面一个xml文件。
- 查看当前开了哪些端口:firewall-cmd –list-services
- 查看还有哪些服务可以打开:firewall-cmd –get-services
- 把一个服务加入到分区:firewall-cmd –zone=public –add-service=mysql
CentOS Linux常用命令
前后台进程相关
- jobs:查看当前有多少在后台运行的命令
- -l:显示PID
- Ctrl+Z:可以将一个正在前台执行的命令放到后台,并且处于暂停状态,不可执行
- bg:将一个在后台暂停的命令,变成继续执行 (在后台执行)
如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,
%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
将任务转移到后台运行:先ctrl + z;再bg,这样进程就被移到后台运行,终端还能继续接受命令。 - &:加在一个命令的最后,可以把这个命令放到后台执行 ,如gftp &
- fg:将后台中的命令调至前台继续运行
如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid) - Ctrl+C:前台中止进程
系统信息
cat /etc/issue,查看Linux版本,此命令也适用于所有的Linux发行版。
- cat /etc/redhat-release:查看Linux版本,这种方法只适合Redhat系的Linux
ps aux | less:显示所有运行中的进程
- -A:显示所有进程
- a:显示终端中包括其它用户的所有进程
- x:显示无控制终端的进程
au(x) 输出格式 :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND 进程拥有者 PID CPU使用率 占用内存使用率 占用虚拟内存使用率 占用内存大小 终端号码 进程状态 进程开始时间 进程持续时间 所执行的命令 - STAT: 该行程的状态:
- D: 无法中断的休眠状态 (通常 IO 的进程)
- R: 正在执行中
- S: 静止状态
- T: 暂停执行
- Z: 不存在但暂时无法消除
- W: 没有足够的记忆体分页可分配
- <: 高优先序的行程
- N: 低优先序的行程
- L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
ps -ef | grep 进程关键字 :查找相关进程
which 程序名:查看yum是否安装了这个软件,会显示安装在哪个目录
- whereis 程序名:同上,不过扩大范围
yum list installed :查看yum已安装程序
- yum | grep “软件名或者包名”:指定软件是否安装
用户
cat /etc/passwd:可以查看所有用户的列表
w:可以查看当前活跃的用户列表
- who:显示当前登录系统的用户
- whoami:当前用户
who显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等。
su - clsung:变更帐号为 clsung 并改变工作目录至 clsung 的家目录(home dir)
文件
- find:find 命令用来在指定目录下查找文件
find / -name “nacos”:从/目录下开始,寻找name为“nacos”的文件。-iname则忽略大小写
Mysql
source 命令导入
source 命令导入数据库需要先登录到数库终端:
1 | mysql> create database abc; # 创建数据库 |
Ubuntu常用命令
i386就是32位,amd64就是64位
系统
- cat /proc/version:查看系统版本
- uname -a:查看系统具体信息
软件
apt-get install “Name”:安装软件
- 列出所有已安装的包:apt list –installed
- 卸载安装的包,移除软件包及配置文件,清理不再使用的依赖和库文件:apt-get autoremove –purge
dpkg -s “packageName”:查询某个包是否安装
dpkg –list | grep mysql:查看mysql有哪些依赖包
清除软件残留数据:dpkg -l|grep ^rc|awk ‘{print$2}’|sudo xargs dpkg -P
文件
- chown filename user:更改文件/文件夹的权限,给user
防火墙
这里Ubuntu的是iptables,同时还有一个类似于客户端的ufw
iptables
- 使防火墙生效:iptables-restore < /etc/iptables/rules.v4
- 列出当前配置:iptables -L -n
ufw
- 通过ufw查看防火墙状态:ufw -status
端口
lsof -i:8888,查看8888端口号占用情况
sof -i:8080:查看8080端口占用
lsof abc.txt:显示开启文件abc.txt的进程
lsof -c abc:显示abc进程现在打开的文件
lsof -c -p 1234:列出进程号为1234的进程所打开的文件
lsof -g gid:显示归属gid的进程情况
lsof +d /usr/local/:显示目录下被进程开启的文件
lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长
lsof -d 4:显示使用fd为4的进程
lsof -i -U:显示所有打开的端口和UNIX domain文件
netstat -tunlp | grep 8000,显示占用8000端口的tcp/udp并处于listen状态的程序
netstat -tunlp | grep 端口号
- -t (tcp) 仅显示tcp相关选项
- -u (udp)仅显示udp相关选项
- -n 拒绝显示别名,能显示数字的全部转化为数字
- -l 仅列出在Listen(监听)的服务状态
- -p 显示建立相关链接的程序名
Java
jar包运行
方法一:java -jar jar包名 (这样ssh窗口被锁定,直接关闭窗口,ctrl+c打断程序运行)
方法二:java -jar jar包名 & (&表示在后台运行,ssh窗口不被锁定,但窗口关闭程序终止运行)
方法三: nohup java -jar jar包名 & (关闭窗口,用户退出登录程序仍然运行,但执行nohup命令时,缺省情况下输出作业被重定向到nohup.out文件中,除非指定文件位置)
方法四: nohup java -jar jar包名 & >a.txt
解释下 >temp.txt
command >out.fil
command >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。
可通过jobs命令查看后台运行任务
1 | jobs |
那么就会列出所有后台执行的作业,并且每个作业前面都有个编号。
如果想将某个作业调回前台控制,只需要 fg + 编号即可:fg 23
- nohup java -jar 包名 &:无界面后台启动不停止的java包,输出会默认到nohup.out
- nohup java -jar 包名 &>XXX.txt:修改输出到XXX.txt文件
Ubuntu20安装mysql
apt-get默认安装的是8.0
卸载
dpkg –list | grep mysql
将列出的mysql相关都删掉,apt-get autoremove
以及apt-get autoremove –purge
清除残留数据:dpkg -l|grep ^rc|awk '{print$2}'|sudo xargs dpkg -P
1 | apt purge mysql-server mysql-server-5.7 |
防火墙:
华为云
ufw