在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。
1) 所有者
2) 所在组
3) 其它组
4) 改变用户所在的组
组的创建
groupadd 组名
文件/目录 所有者
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
修改文件的所有者:
指令:chown 用户名 文件名
chgrp 组名 文件名
1) usermod –g 组名 用户名
2) usermod –d 目录名 用户名 改变该用户登陆的初始目录。
其他组
除所有者和所在组之后的用户 系统的其他的用户都是改文件的其他组
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
rwx 权限说明 既可以表示文件的权限 也可以表示目录的权限
rwx作用到文件(重要)
第一种方式 +、-、=来修改权限
u 表示修改拥有者的权限
g 表示修改所在组的权限
o 表示修改其他组的权限
赋予权限
回收权限
第二种方式:通过数字变更权限
r=4 w=2 x=1 rwx=4+2+1=7
x w r= 0
如果要赋予某一个权限则该位对应的数字就是1 否则就是0
练习文件权限管理[课堂练习]
建立两个组(神仙,妖怪)
建立四个用户(唐僧,悟空,八戒,沙僧)
设置密码
把悟空,八戒放入妖怪 唐僧 沙僧 在神仙
用悟空建立一个文件 (monkey.go该文件要输出 i am monkey)
给八戒一个可以r w 的权限
八戒修改monkey.go 加入一句话( i am pig)
唐僧 沙僧 对该文件没有权限
把 沙僧 放入妖怪组
让沙僧 修改 该文件 monkey, 加入一句话 (“我是沙僧,我是妖怪!”);
任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:
1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
2.个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
crontab [选项]
设置任务调度文件:/etc/crontab
设置个人任务调度。执行crontab –e命令。
接着输入任务到调度文件
如:*/1 * * * * ls –l /etc/ > /tmp/to.txt
意思说每小时的每分钟执行 ls –l /etc/ > /tmp/to.txt命令
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分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。 |
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:启动进程所用的命令和参数
若是某个进程执行一半需要停止时,或是已消耗了很大的系统资源时,此时可以考虑停止该进程。使用kill命令来完成此项任务。
kill [选项] 进程号(功能描述:通过进程号杀死进程 -9 强制终止)
killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
-9 :表示强迫进程立即停止
终止某一个进程 kill -9 进程ID
pstree
常用选项:
-p :显示进程的PID
-u :显示进程的所属用户
介绍:
服务(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,否则不能正常启动
介绍:
一种用于互联网下载包的打包及安装工具,它包含在某些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 进度条
介绍:
Yum 是一个Shell 软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
yum的基本指令
yum list|grep xx软件列表
yum install xxx 下载安装
所有的安装包统一放置在 opt目录下的soft目录
所有的软件统一安装在opt下的programfiles下
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
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
source /etc/profile
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
tar -xvf mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar -C /opt/programfiles/mysql
完成安装步骤之后,首先配置MySQL的开机自动启动,在这里使用systemctl命令。
# systemctl enable mysqld.service
接着使用systemctl start mysqld.service命令启动MySQL。
# systemctl start mysqld.service
停止服务:systemctl stop mysqlld.service
skip-grant-tables 保存退出
service mysqld restart
切换到mysql数据库
use mysql;
修改root用户的密码
update user set authentication_string =password('root@123')where user='root';
skip-grant-tables
(需要先重启mysql服务)然后再用root账号和密码进入mysql;
进去之后需要重新设置root密码:此时改密码需要符合密码规范
set password= password('Mysql@2020');
alter user 'root'@'localhost' password expire never;设置密码永不过期
使上述设置立即生效
flush privileges;
grant all privileges on *.* to 'root'@'%' IDENTIFIED by 'Mysql@2020' with grant option;
立即生效 flush privileges;
上传
将tomcat解压到指定目录下
[root@localhost soft]# tar -zxvf apache-tomcat-8.5.16.tar.gz -C /opt/programfiles/tomcat/
项目部署
将项目打包的war 上传到tomcat的webapps目录下
上传之后 需要修改数据库密码
重启tomcat
http://192.168.124.7:8080/ssm-1.0-SNAPSHOT/emp/