(Linux)01_Linux(下)

01_Linux(下)

  • 八、组管理和权限管理
    • 8.1.组管理
    • 8.2.权限管理
      • 8.2.1.权限的基本介绍
      • 8.2.2.rwx权限详解
      • 8.2.3.修改权限 -chmod
      • 8.2.4.课后练习
  • 九、定时任务调度(了解)
    • 9.1.概述
    • 9.2.快速入门
    • 9.3.参数说明
    • 9.4.crond 相关指令
  • 十、进程管理(重点)
    • 10.1.基本介绍
    • 10.2.显示系统执行的进程
    • 10.3.终止进程kill和killall
      • 10.3.1.介绍:
      • 10.3.2.基本语法:
      • 10.3.3.常用选项:
    • 10.4.看进程树pstree
    • 10.5.服务(service)管理
  • 十一、RPM 与 YUM
    • 11.1.rpm包的管理
    • 11.2.Yum
  • 十二、项目环境搭建
    • 12.1.安装JDK
    • 12.2.安装MySQL
    • 12.3安装Tomcat
    • 安装maven

八、组管理和权限管理

8.1.组管理

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

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

组的创建

groupadd 组名

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

指令:chown 用户名 文件名

(Linux)01_Linux(下)_第1张图片
修改文件所在的组:

chgrp 组名 文件名

(Linux)01_Linux(下)_第2张图片
改变用户所在的组:

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

(Linux)01_Linux(下)_第3张图片
其他组
除所有者和所在组之后的用户 系统的其他的用户都是改文件的其他组

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 表示修改其他组的权限

赋予权限
(Linux)01_Linux(下)_第4张图片
(Linux)01_Linux(下)_第5张图片
回收权限
(Linux)01_Linux(下)_第6张图片
第二种方式:通过数字变更权限
(Linux)01_Linux(下)_第7张图片
r=4 w=2 x=1 rwx=4+2+1=7
x w r= 0
如果要赋予某一个权限则该位对应的数字就是1 否则就是0
(Linux)01_Linux(下)_第8张图片

8.2.4.课后练习

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

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

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

9.1.概述

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

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

常用选项:
(Linux)01_Linux(下)_第9张图片
(Linux)01_Linux(下)_第10张图片

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命令
(Linux)01_Linux(下)_第11张图片
(Linux)01_Linux(下)_第12张图片

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

查看所有进程 ps -aux
(Linux)01_Linux(下)_第13张图片
| 管道符 将前边命令执行的结果 作为后续命令的数据来源
在这里插入图片描述
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:启动进程所用的命令和参数
(Linux)01_Linux(下)_第14张图片

10.3.终止进程kill和killall

10.3.1.介绍:

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

10.3.2.基本语法:

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

10.3.3.常用选项:

-9 :表示强迫进程立即停止
终止某一个进程 kill -9 进程ID
(Linux)01_Linux(下)_第15张图片

10.4.看进程树pstree

pstree

常用选项:

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

(Linux)01_Linux(下)_第16张图片

10.5.服务(service)管理

介绍:

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

方式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软件包
(Linux)01_Linux(下)_第21张图片
rpm –qa|grep xx 查询某一个特定的rpm软件包
rpm –q firefox 查询是否安装了某个软件包
在这里插入图片描述
rpm -qi XX查询软件包信息
(Linux)01_Linux(下)_第22张图片
卸载某一个rpm软件包:
基本语法
rpm -e 软件名称
强制删除:
rpm -e --nodeps 软件名称
安装rpm包:

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

11.2.Yum

介绍:

Yum 是一个Shell 软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
(Linux)01_Linux(下)_第23张图片
yum的基本指令

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

(Linux)01_Linux(下)_第24张图片

十二、项目环境搭建

12.1.安装JDK

所有的安装包统一放置在 opt目录下的soft目录
所有的软件统一安装在opt下的programfiles下
  1. 在opt目录下创建所需目录
    (Linux)01_Linux(下)_第25张图片

  2. 上传需要安装的软件包
    (Linux)01_Linux(下)_第26张图片
    (Linux)01_Linux(下)_第27张图片
    在这里插入图片描述

  3. 解压
    (Linux)01_Linux(下)_第28张图片
    进入解压的目录 对解压目录进行重命名
    (Linux)01_Linux(下)_第29张图片

  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

在这里插入图片描述在这里插入图片描述
(Linux)01_Linux(下)_第30张图片

  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

(Linux)01_Linux(下)_第31张图片
(Linux)01_Linux(下)_第32张图片
(Linux)01_Linux(下)_第33张图片

  1. 编写一个helloworld
    (Linux)01_Linux(下)_第34张图片
    (Linux)01_Linux(下)_第35张图片

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

(Linux)01_Linux(下)_第36张图片

  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)
    (Linux)01_Linux(下)_第37张图片
  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  保存退出

(Linux)01_Linux(下)_第38张图片
需要重启mysql服务:

service mysqld restart

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

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

(Linux)01_Linux(下)_第39张图片
然后删除/etc/my.cnf文件中新增的

skip-grant-tables

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

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

使上述设置立即生效

flush privileges;

(Linux)01_Linux(下)_第40张图片
给root用户开启远程登录权限

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

在这里插入图片描述
(Linux)01_Linux(下)_第41张图片

12.3安装Tomcat

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

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

在这里插入图片描述
改名
(Linux)01_Linux(下)_第42张图片
查看tomcat目录并启动
(Linux)01_Linux(下)_第43张图片
在这里插入图片描述
(Linux)01_Linux(下)_第44张图片
(Linux)01_Linux(下)_第45张图片
(Linux)01_Linux(下)_第46张图片

安装maven

上传
(Linux)01_Linux(下)_第47张图片
解压
(Linux)01_Linux(下)_第48张图片
修改配置
配置环境变量

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

http://192.168.124.7:8080/ssm-1.0-SNAPSHOT/emp/

你可能感兴趣的:(Linux,笔记)