Linux进阶应用

Linux系统管理命令

使用ifconfig查看网卡ip

Linux进阶应用

 netstat查看网络端口号 

Linux进阶应用

网络协议  接收队列数量  发送队列数量  本地地址  远程地址  网络连接的状态  创建了网络连接的应用的进程编号(唯一标识)/名字

发送队列数量长时间不为0,可能是数据处理不过来网络阻塞了。

netstat -tulpn (推荐)

netstat -ano

netstat常用选项:

Linux进阶应用

查看进程&杀掉进程

Linux进阶应用 

图中又使用到了|通道,grep 是通过正则表达式对结果进行筛选

5412那一列是pid进程编号 vim test.txt那一列显示启动时使用的命令是什么

有些应用不需要进行网络通信,这时用netstat就无法查到它的pid,要用ps -ef

ps -ef  查看当前系统进程有哪些

kill -9 PID 在内存中将对应pid的进程删除(尽量使用应用程序特有的关闭方式来关闭程序,强制kill可能造成数据丢失等情况)

应用服务化

应用服务化是指让应用程序以服务方式在系统后台运行;

Linux系统对服务化应用进行统一管理;

服务管理命令:

  systemctl

systemctl常用指令

 Linux进阶应用

例子:将redis服务化,让redis随系统启动

1)查看redis的pid文件名及目录

  里面存放的是redis当前进程的pid,将redis服务化后,要对redis进行开启和关闭时要从这个文件中读取进程编号,再通过kill杀掉redis进程。

Linux进阶应用

Linux进阶应用

Linux进阶应用

2)进入 /usr/lib/systemd/system 目录

  里面有许多.service结尾的文件,是服务描述文件,要将redis服务化,也要在这个目录中创建一个redis的服务描述文件,文件名就是默认的服务名。

  vim打开并编辑redis.service,要注意大小写。

  [Unit]

  description:描述这个服务是干嘛的

  After:在服务启动时,先启动其后的服务,再启动redis服务。大多数情况下都是图中那些

  [Service]用于服务描述

  Type: 服务运行的类型,forking表示后台运行

  PIDFile=pid文件  指向上面介绍的描述进程号的pid文件

  ExecStart=应用服务的完整路径 配置文件  表示服务启动时使用什么命令,服务启动时会调用应用服务启动配置文件

  ExecStop=:表示服务关闭时使用什么命令,利用kill命令对指定进程进行关闭。-s QUIT表示按照正常对流程通知进程关闭,推荐。-9表示强制删除进程,无法正常退出再用。

  PrivateTmp:为每个服务设置私有的tmp临时文件目录

  [Install]安装配置项

  WantedBy:将redis服务分配到multi-user.target服务组上,multi-user.target是系统默认的一个服务组,系统为它分配了一个权限,允许当前服务组中所有的服务可以随系统自动启动,只要把服务分配到这个服务组中,这个服务就会被允许随系统自动启动

  Linux进阶应用  

3)重载redis.service使其生效

还在/usr/lib/systemd/system 目录下执行

systemctl daemon-reload

4)将之前自己启动的redis关闭

Linux进阶应用

5)启动服务 

systemctl start redis

如果没有看到报错,表示服务在后台启动成功

6)查看redis服务启动的状态

systemctl status redis

Linux进阶应用

可以看到active(running) ,表示程序是激活的并且正在运行

process后是当前redis进程号

底下是redis启动日志

7)关闭服务

systemctl stop redis

Linux进阶应用

8)重启服务

 systemctl restart redis

会先关闭当前redis,再重新启动一个新的redis服务

9)让服务随系统启动

systemctl enable redis

Linux进阶应用

软关联:类似windows中的快捷方式

立即重启:shutdown -r now 

这时当前的centos7连接就断开了,我们再手动重新连接上

再查看redis服务状态,发现已经随系统自动启动了

Linux进阶应用

10)让服务不随着系统启动

 systemctl disable redis

在multi-usr服务组 redis的软关联(快捷方式)就被删除了,自然redis服务也不会再随着系统启动了。

11)查看当前系统都有那些服务,服务的状态,这些服务都包含了哪些信息?

systemctl list-unit-files

Linux进阶应用

还可以利用通道和gref命令进行筛选 

Linux用户与权限

1)用户

Linux是多用户多任务系统,包含两个概念:用户和用户组;

用户与账户是同一概念,用于登录系统与区分资源权限;

用户让系统变得更安全,同时也保护了用户的个人数字资产。

2)用户组

用户组就是将用户分组,隶属用户自动拥有组权限;

一个用户可隶属于多个组,用户可任意切换当前组;

用户组的出现让用户权限管理变的更轻松。

3)用户与用户组常用命令

Linux进阶应用

4)项目内部文件权限管理实践

假如一个项目组有三名员工:两个程序猿+一个测试,分别在研发组和测试组

1??创建3个用户,并设置密码(最好8位以上,包含字母数字)

Linux进阶应用

 

2??创建两个组,将人员分配到各自组中  -g ??注意是小写

Linux进阶应用

 

3??创建3个centos副本,分别用三个用户登录

Linux进阶应用

 

查看用户隶属于哪个组,执行命令:

groups

4??root用户为初始的目录进行创建和授权 

假设资源放在共享资源目录 /usr/local/share

创建各组的文件夹

ll可以查看目录的权限

Linux进阶应用

 

第一个root列表示当前目录是哪个用户创建的(属主,拥有者,用户名) ,第二个root列表示这个目录关联的用户组是哪个

drwxr... 表示权限代码,由10位组成。权限码右边一列的数字表示权限的权重。

文件权限代表码:

Linux进阶应用

红色(1~4位)表示属主的权限

黄色(5~7位)表示与属主相同用户组下的其他用户所拥有的权限 

蓝色(8~10位)表示属主所在用户组以外的其他用户拥有的权限

-表示没有对应属性

调整dev-document目录的权限:

chown 用户:组名 目录名字   更改对应文件/目录的属主或用户组

chmod 权限码 目录  改变对应目录/文件的权限

chmod 750  组用户可读写,其他用户不允许访问;7=4+2+1属主有全部权限,5=4+1所在用户组有读和执行权限,0=其他用户没有任何权限

chmod 777  所有用户拥有完整权限;

chmod 700  只有属主拥有完整权限。

Linux进阶应用

 

设置其他用户不可访问后,其他组将没有权限查看

Linux进阶应用

 

在目录上的w写权限,表示对目录名称修改的权限 

属主d1要创建一个文件,允许研发组所有研发人员可见:

以下是默认产生的权限

Linux进阶应用

 

第一位是d表示是一个文件夹,-表示是文件

修改权限为770,d2也可以进行该文件的操作,但t2没有权限

Linux进阶应用

给一个用户赋予多个用户组 -G ??注意是大写

Linux进阶应用

 

但对于d1用户来说,如果要是新的用户组权限对他生效,需要将系统断开重新连接

Linux进阶应用

 

默认左边第一个是当前用户组

切换到新的用户组:

Linux进阶应用

5)sudo超级管理员命令

sudo可以让普通用户拥有超级管理员的执行权限;

普通用户要进行经过超级管理员授权才能使用;

对某一用户进行sudo授权,授权命令:

visudo 查看授权文件

tips:在普通模式下输入100gg 可以快速定位到100行

进入编辑模式,在root下面一行,增加用户d1 以及相关权限信息

第一个ALL表示允许d1用户从哪个客户端上进行远程连接(可修改为主机名,这样就只有主机名一致的电脑才能远程连接d1做sudo管理员的任务)

第二个ALL表示切换用户的意思,可以切换至其他任意用户来执行某个命令

第三个ALL表示利用sudo可以执行哪些超级管理员的命令

Linux进阶应用

 

:wq保存并退出

格式检查授权文件:

visudo -c

Linux进阶应用

 

这时d1就有了sudo权限。

可以测试一下,默认情况下,除了系统管理员root是不能够创建其他用户的

Linux进阶应用

 

很多拥有sudo权限的用户不希望每次使用sudo命令的时候都重新输入密码,这个可以进行配置:

在root用户上对sudo配置进行修改

执行visudo,定位至100行,在第三个ALL前增加NOPASSWD:

 

Linux进阶应用

保存并退出

格式检查授权文件:

visudo -c

重新连接d1,直接使用sudo命令,就不用再输入密码了 

Linux进阶应用 

Centos 7 防火墙firewall

防火墙是借助硬件和软件对内外部网络环境对保护措施;

centos7基于firewall实现应用层防火墙,centos基于iptables;

firewall-cmd是firewall的核心命令。

firewall-cmd

systemctl start|restart firewalld  启动防火墙

firewall0cmd --state|--reload  查看状态,重载防火墙

firewall-cmd --zone=public ==permanent --add-port=8502/tcp

 

对外开放tomcat

 

Bash Shell

什么是Shell

Shell是一个用c语言编写的脚本解释器,是用户通过代码操作Linux的桥梁;

Shell脚本描述要执行的任务,完成系列复杂操作,文件通常以.sh后缀;

Shell脚本通过Shell解释器执行,按解释器分类分为多种类型。

LinuxShell分类

Linux进阶应用

 

 

 

一键发布Tomcat应用程序

 

综合训练

Linux部署项目

部署架构

浏览器??tomcat web服务器??mysql数据服务器

centos安装mysql8

 

Linux进阶应用

上一篇:Mac-navicat premium彻底卸载的终端命令


下一篇:Linux基础知识