Linux环境搭建


Linux环境搭建:

  1. java1.8——https://www.cnblogs.com/xuliangxing/p/7066913.html
  2. redis——https://www.cnblogs.com/zdd-java/p/10288734.html
  3. nacos——https://nacos.io/zh-cn/docs/quick-start.html
  4. nginx——https://blog.51cto.com/favccxx/1620159
  5. 开放端口——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
2
useradd javaapp
su javaapp

3.新建文件夹,路径在/home/javaapp下

image-20210309212430195

  • app用来放jdk文件,logs为其日志;
  • soft用来安装软件,jdk1.8,nacos,redis等等
  1. 改变目录的拥有者为javaapp :
1
chown -R javaapp:javaapp app 

5.上传安装包到soft下,然后解压

1
tar -zxvf jdk-8u251-linux-x64.tar.gz

6.编辑配置文件

修改配置文件 vi /etc/profile
放在配置文件的最下方

1
2
3
4
5
JAVA_HOME=/home/javaapp/soft/jdk1.8.0_251 
JAVA_BIN=$JAVA_HOME/bin
JAVA_LIB=$JAVA_HOME/lib
CLASSPATH=.:$JAVA_LIB/tools.jar:$JAVA_LIB/dt.rar
export PATH=$JAVA_BIN:$PATH:JAVA_HOME:JAVA_LIB:CLASSPATH

配置文件生效

1
source /etc/profile

7.测试,java -version,成功!

image-20210309212937183


vi保存命令:

wq,保存退出

w,保存不退出

q,不保存退出

q!,不保存强制退出

i,插入模式


redis安装

下载redis:https://redis.io/download

官网写了安装方法了:

1
2
3
4
$ wget https://download.redis.io/releases/redis-6.2.1.tar.gz
$ tar xzf redis-6.2.1.tar.gz
$ cd redis-6.2.1
$ make

解压文件,切换路径,编译

遇到错误两个:

  1. cc command not found
    这个是因为gcc没有安装,yum install gcc就行

  2. 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
2
yum install firewalld
yum install firewall-config

启动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 进程关键字 :查找相关进程
    image-20210310103353682

  • which 程序名:查看yum是否安装了这个软件,会显示安装在哪个目录

    • whereis 程序名:同上,不过扩大范围
  • yum list installed :查看yum已安装程序

    • yum | grep “软件名或者包名”:指定软件是否安装

用户

  • cat /etc/passwd:可以查看所有用户的列表

  • w:可以查看当前活跃的用户列表

    • who:显示当前登录系统的用户
    • whoami:当前用户

    who显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等。

    image-20210310100124085

  • su - clsung:变更帐号为 clsung 并改变工作目录至 clsung 的家目录(home dir)

文件

  • find:find 命令用来在指定目录下查找文件
    find / -name “nacos”:从/目录下开始,寻找name为“nacos”的文件。-iname则忽略大小写

Mysql

source 命令导入

source 命令导入数据库需要先登录到数库终端:

1
2
3
4
mysql> create database abc;      # 创建数据库
mysql> use abc; # 使用已创建的数据库
mysql> set names utf8; # 设置编码
mysql> source /home/abc/abc.sql # 导入备份数据库

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


文章作者: SongX64
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 SongX64 !
  目录