(Linux)01_Linux(下)

八、组管理和权限管理

8.1.组管理

在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。

1) 所有者
2) 所在组
3) 其它组
4) 改变用户所在的组

组的创建

groupadd 组名

文件/目录 所有者
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
修改文件的所有者:

指令:chown 用户名 文件名

在这里插入图片描述
修改文件所在的组:

chgrp 组名 文件名

在这里插入图片描述
改变用户所在的组:

 1) usermod   –g   组名  用户名
 2) usermod   –d   目录名  用户名  改变该用户登陆的初始目录。

在这里插入图片描述
其他组
除所有者和所在组之后的用户 系统的其他的用户都是改文件的其他组

8.2.权限管理

8.2.1.权限的基本介绍

0-9位说明:-rwxrw-r-- 1 root root 1212 Feb 2 09:39 abc.txt
1)第0位确定文件类型(说明: -:普通文件, ==d:==目录,l : 连接文件, ==c: ==字符设备文件[键盘,鼠标] b: 块设备文件[硬盘] )
2)1-3位 文件的所有者对改文件的权限 r 读权限 w 写权限 x 执行权限
3)4-6位 文件所在组及所在组的用户对改文件的权限
4)7-9位 其他用户对改文件的权限
5)如果是文件 则表示改文件的连接数 如果是目录 表示该目录拥有多少个子目录
6)文件的所有者
7)文件所在组
8)1212 表示文件的大小
9)文件最后一次的修改时间
10)文件名

l是链接,相当于windows的快捷方式
d是目录,相当于windows的文件夹
c是字符设备文件,鼠标,键盘算是
b是块设备,硬盘就是一个例子
1)第0位确定文件类型(d, - , l , c , b)
2)第1-3位确定所有者(该文件的所有者)拥有该文件的权限。—User
3)第4-6位确定所属组(同用户组的)拥有该文件的权限,—Group
4)第7-9位确定其他用户拥有该文件的权限 —Other

8.2.2.rwx权限详解

rwx 权限说明 既可以表示文件的权限 也可以表示目录的权限
rwx作用到文件(重要)

  1. r 表示可读 查看文件
  2. w 表示可以写文件 写入内容 修改 不一定表示拥有删除该文件的权限 你要删除改文件 必须拥有对改文件所在目录拥有写的权限才可以
  3. x 表示可执行改文件
    作用在目录上(重要)
  4. [ r ]代表可读(read): 可以读取,ls查看目录内容
  5. [ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
  6. [ x ]代表可执行(execute):可以进入该目录

8.2.3.修改权限 -chmod

第一种方式 +、-、=来修改权限

u 表示修改拥有者的权限
g 表示修改所在组的权限
o 表示修改其他组的权限

赋予权限
在这里插入图片描述
在这里插入图片描述
回收权限
在这里插入图片描述
第二种方式:通过数字变更权限
在这里插入图片描述
r=4 w=2 x=1 rwx=4+2+1=7
x w r= 0
如果要赋予某一个权限则该位对应的数字就是1 否则就是0
在这里插入图片描述

8.2.4.课后练习

练习文件权限管理[课堂练习]
建立两个组(神仙,妖怪)
建立四个用户(唐僧,悟空,八戒,沙僧)
设置密码
把悟空,八戒放入妖怪 唐僧 沙僧 在神仙
用悟空建立一个文件 (monkey.go该文件要输出 i am monkey)
给八戒一个可以r w 的权限
八戒修改monkey.go 加入一句话( i am pig)

唐僧 沙僧 对该文件没有权限
把 沙僧 放入妖怪组
让沙僧 修改 该文件 monkey, 加入一句话 (“我是沙僧,我是妖怪!”);

九、定时任务调度(了解)

9.1.概述

任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:

1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
2.个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
crontab [选项]

常用选项:
在这里插入图片描述
在这里插入图片描述

9.2.快速入门

设置任务调度文件:/etc/crontab
设置个人任务调度。执行crontab –e命令。
接着输入任务到调度文件
如:*/1 * * * * ls –l /etc/ > /tmp/to.txt
意思说每小时的每分钟执行 ls –l /etc/ > /tmp/to.txt命令

9.3.参数说明

5个占位符的说明

项目 含义 范围
第一个“*” 一小时当中的第几分钟 0-59
第二个“*” 一天当中的第几小时 0-23
第三个“*” 一个月当中的第几天 1-31
第四个“*” 一年当中的第几月 1-12
第五个“*” 一周当中的星期几 0-7(0和7都代表星期日)

特殊符号的说明

符号 含义
* 代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。
, 代表不连续的时间。如“0 8,12,16 * * * 命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次
- 代表连续的时间范围。比如“0 5 * * 1-6命令”,代表在周一到周六的凌晨5点0分执行命令
*/n 代表每隔多久执行一次。比如“*/10 * * * * 命令”,代表每隔10分钟就执行一遍命令

特定时间执行任务案例

时间 含义
45 22 * * * 命令 在22点45分执行命令
0 17 * * 1 命令 每周1 的17点0分执行命令
0 5 1,15 * * 命令 每月1号和15号的凌晨5点0分执行命令
40 4 * * 1-5 命令 每周一到周五的凌晨4点40分执行命令
*/10 4 * * * 命令 每天的凌晨4点,每隔10分钟执行一次命令
0 0 1,15 * 1 命令 每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。

9.4.crond 相关指令

  1. conrtab –r:终止任务调度。
  2. crontab –l:列出当前有那些任务调度
  3. service crond restart [重启任务调度]
    在这里插入图片描述
    在这里插入图片描述

十、进程管理(重点)

10.1.基本介绍

  1. 在LINUX中,每个执行的程序(代码) 都称为一个进程。每一个 进程都分配一个ID号。
  2. 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器。
  3. 每个进程都可能以两种方式存在的。前台 与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行[sshd , crond]。
  4. 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。

10.2.显示系统执行的进程

查看进程:ps命令
在这里插入图片描述
在这里插入图片描述

ps -a 显示所有进程信息
ps -u 以用户名的格式 显示进程信息
ps -x  显示后台进程

查看所有进程 ps -aux
在这里插入图片描述
| 管道符 将前边命令执行的结果 作为后续命令的数据来源
在这里插入图片描述
ps详解
1)指令:ps –aux|grep xxx ,比如我看看有没有sshd服务
2)指令说明
•System V展示风格
•USER:用户名称
•PID:进程号
%CPU:进程占用CPU的百分比
%MEM:进程占用物理内存的百分比
VSZ:进程占用的虚拟内存大小(单位:KB)
RSS:进程占用的物理内存大小(单位:KB)
•TTY:终端名称,缩写 .
•STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
•STARTED:进程的启动时间
•TIME:CPU时间,即进程使用CPU的总时间
•COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
应用实例
ps -ef
要求:以全格式显示当前所有的进程,查看进程的父进程。
•ps -ef是以全格式显示当前所有的进程
•-e 显示所有进程。-f 全格式。
•ps -ef|grep xxx
•是BSD风格
•UID:用户ID
PID:进程ID
PPID:父进程ID
•C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
•STIME:进程启动的时间
•TTY:完整的终端名称
•TIME:CPU时间
CMD:启动进程所用的命令和参数
在这里插入图片描述

10.3.终止进程kill和killall

10.3.1.介绍:

若是某个进程执行一半需要停止时,或是已消耗了很大的系统资源时,此时可以考虑停止该进程。使用kill命令来完成此项任务。

10.3.2.基本语法:

kill [选项] 进程号(功能描述:通过进程号杀死进程 -9 强制终止)
killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)

10.3.3.常用选项:

-9 :表示强迫进程立即停止
终止某一个进程 kill -9 进程ID
在这里插入图片描述

10.4.看进程树pstree

pstree

常用选项:

-p :显示进程的PID
-u :显示进程的所属用户

在这里插入图片描述

10.5.服务(service)管理

介绍:

服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程,是Linux中非常重要的知识点。
在这里插入图片描述
查看防火墙状态
在这里插入图片描述
暂时关闭防火墙 下次开机 防火墙依然会是运行状态
在这里插入图片描述
开启防火墙
在这里插入图片描述
永久关闭防火墙 开机启动不会启动防火墙
在这里插入图片描述
开启开机启动防火墙
在这里插入图片描述
查看服务名:

方式1:使用setup -> 系统服务 就可以看到。
方式2:   /etc/init.d/服务名称 【程序】

服务的运行级别(runlevel):
查看或者修改默认级别: vi /etc/inittab
Linux系统有7种运行级别(runlevel):常用的是级别3和5

•运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
•运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
•运行级别2:多用户状态(没有NFS),不支持网络
•运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
•运行级别4:系统未使用,保留
•运行级别5:X11控制台,登陆后进入图形GUI模式
•运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

开机的流程说明:
在这里插入图片描述

十一、RPM 与 YUM

11.1.rpm包的管理

介绍:
一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。
Linux的分发版本都有采用(==suse,redhat, centos ==等等),可以算是公认的行业标准了。
rpm包的简单查询指令:
查询已安装的rpm列表 rpm –qa|grep xx
在这里插入图片描述
其他的查询命令
rpm -qa 查询所有安装的rpm软件包
在这里插入图片描述
rpm –qa|grep xx 查询某一个特定的rpm软件包
rpm –q firefox 查询是否安装了某个软件包
在这里插入图片描述
rpm -qi XX查询软件包信息
在这里插入图片描述
卸载某一个rpm软件包:
基本语法
rpm -e 软件名称
强制删除:
rpm -e --nodeps 软件名称
安装rpm包:

rpm -ivh 软件包的全路径名称
-i    install 安装
-v 提示
-h 进度条

11.2.Yum

介绍:

Yum 是一个Shell 软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
在这里插入图片描述
yum的基本指令

  1. 查询yum服务器是否有需要安装的软件
  yum list|grep xx软件列表
  1. 安装指定的yum包
  yum install xxx  下载安装

在这里插入图片描述

十二、项目环境搭建

12.1.安装JDK

所有的安装包统一放置在 opt目录下的soft目录
所有的软件统一安装在opt下的programfiles下
  1. 在opt目录下创建所需目录
    在这里插入图片描述

  2. 上传需要安装的软件包
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  3. 解压
    在这里插入图片描述
    进入解压的目录 对解压目录进行重命名
    在这里插入图片描述

  4. 进行相关配置

vim /etc/profile
 
#set java environment
export JAVA_HOME=/opt/program/jdk8
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib\tools.jar

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

  1. 卸载系统自带的openjdk
rpm -qa |grep java
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.221-2.6.18.1.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.222.b03-1.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.221-2.6.18.1.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.222.b03-1.el7.x86_64

  1. 重新加载配置文件:【否则环境变量不会重新执行】
source /etc/profile

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 编写一个helloworld
    在这里插入图片描述
    在这里插入图片描述

12.2.安装MySQL

  1. 安装新版mysql前,需将系统自带的mariadb-lib卸载

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可
MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。
MariaDB由MySQL的创始人Michael Widenius(英语:Michael
Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL
AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael
Widenius的女儿Maria的名字。

[root@localhost ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.52-1.el7.x86_64
[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64

在这里插入图片描述

  1. 解压mysql安装包到目标文件夹下:
tar -xvf  mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar -C /opt/programfiles/mysql

在这里插入图片描述

  1. rpm -ivh命令依次进行安装,安装顺序rpm -ivh
    ①mysql-community-common-5.7.18-1.el7.x86_64.rpm
    ②mysql-community-libs-5.7.18-1.el7.x86_64.rpm(依赖于common)
    ③mysql-community-client-5.7.18-1.el7.x86_64.rpm(依赖于libs)
    ④mysql-community-server-5.7.18-1.el7.x86_64.rpm(依赖于common,client)
    在这里插入图片描述
  2. 启动和停止mysql服务

完成安装步骤之后,首先配置MySQL的开机自动启动,在这里使用systemctl命令。

# systemctl enable mysqld.service

接着使用systemctl start mysqld.service命令启动MySQL。

# systemctl start mysqld.service

在这里插入图片描述
停止服务:systemctl stop mysqlld.service

  1. 配置mysql登录
    这时候又会碰到困难,没有密码进不去:设置登录无需密码
    在/etc/my.cnf中添加
skip-grant-tables  保存退出

在这里插入图片描述
需要重启mysql服务:

service mysqld restart

在这里插入图片描述
然后再连接mysql就可以了

切换到mysql数据库
use mysql;
修改root用户的密码
update user set authentication_string =password('root@123')where user='root';

在这里插入图片描述
然后删除/etc/my.cnf文件中新增的

skip-grant-tables

(需要先重启mysql服务)然后再用root账号和密码进入mysql;
在这里插入图片描述
进去之后需要重新设置root密码:此时改密码需要符合密码规范

set password= password('Mysql@2020');
alter user 'root'@'localhost' password expire never;设置密码永不过期

使上述设置立即生效

flush privileges;

在这里插入图片描述
给root用户开启远程登录权限

grant all privileges on *.* to 'root'@'%' IDENTIFIED by 'Mysql@2020' with grant option;
立即生效 flush privileges;

在这里插入图片描述
在这里插入图片描述

12.3安装Tomcat

上传
将tomcat解压到指定目录下

[root@localhost soft]# tar -zxvf apache-tomcat-8.5.16.tar.gz -C /opt/programfiles/tomcat/

在这里插入图片描述
改名
在这里插入图片描述
查看tomcat目录并启动
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装maven

上传
在这里插入图片描述
解压
在这里插入图片描述
修改配置
配置环境变量

项目部署
将项目打包的war 上传到tomcat的webapps目录下
上传之后 需要修改数据库密码
重启tomcat

http://192.168.124.7:8080/ssm-1.0-SNAPSHOT/emp/
发布了67 篇原创文章 · 获赞 6 · 访问量 1916

猜你喜欢

转载自blog.csdn.net/weixin_45801537/article/details/104865540
今日推荐