1、组管理和权限管理
1.1、组的基本介绍
linux中的每个用户都必须属于组
1.1.1、文件/目录的所有者
一般文件的创建者即为所有者
1.1.2、查看文件所有者
- 指令:
ls -ahl
- 演示:
1.1.3、修改文件所有者
-
语法:
chown newowner file
:改变文件所有者chown newowner:newgroup file
:改变文件的所有者和所在组
-
-R
:如果是目录,则使其下所有文件和子目录递归生效 -
案例1:将hello.java文件所有者改成happy
-
案例2:将/root/home目录下的所有文件和子目录所有者改成happy
1.1.4、组的创建
- 指令:
groupadd 组名
- 案例:创建monster组,创建fox用户并加入到monster组中
1.1.5、文件/目录所在组
一般文件所在组就是创建该文件用户的所在组
1.1.6、查看文件/目录所在组
- 指令:
ls -ahl
1.1.7、修改文件/目录所在组
-
指令:
chgrp 组名 文件名
-
案例:查看hello.java文件所在组并修改成police组
1.1.8、其他组
1.1.9、改变用户所在组
- 语法:
usermod -g 组名 用户名
- 案例:将zilvx用户从zilvx组修改到happy组
1.2、权限的基本介绍
对drwxr-xr-x 3 zilvx happy 4.0K Feb 4 01:35 zilvx
的说明
-
drwxr-xr-x:
-
第0位:确定文件类型(d,-,l,c,b)d表示目录,-表示文件,l表示链接
-
第1-3位:文件所有者对该文件的权限,-表示不具有某种权限
-
第4-6位:文件所在组对该文件的权限
-
第7-9位:其他用户对该文件的权限
-
-
3 :
- 文件:硬链接数
- 目录:子目录数
-
zilvx:用户
-
happy:组
-
4.0K:文件大小,如果是文件夹则显示4.0K
-
Feb 4 01:35:最后修改时间
-
zilvx:目录名或文件名
1.2.1、rwx权限介绍
rwx作用到文件:
- r:文件可读
- w:文件可写,不代表文件可以删除(写是删除的前提条件)
- x:文件可执行
rwx作用在目录:
- r:目录可以查看(ls指令)
- w:目录可以修改,即在目录内创建删除重命名目录
- x:可执行,即可以进入该目录
1.2.2、 修改权限
方式一:+、-、=变更权限
u:所有者user
g:所在组group
o:其他人other
a:所有人(u、g和o的总和)
-
语法:
- chmod u=rwx,g=rx,o=x 文件名或目录名
- chmod o+w 文件名或目录名
- chmod a-x 文件名或目录名
-
案例1:给hello.java文件所有者读写执行权,所在组执行权,其他组读权
-
案例2:给hello.java文件所有者去除执行权,所在组增加写权
-
案例3:给hello.java文件所有用户读的权利
方式二:通过数字变更权限
-
规则:r=4,w=2,x=1
-
案例:将hello.java文件的权限rw–wxrw-用数字方式体现
rw-=4+2=6
-wx=2+1=3
2、任务调度
2.1、概述
-
任务调度:指系统在某一时间执行特定的命令或者程序
-
任务调度分类
-
系统工作:某些重要的工作必须周而复始地执行,如病毒扫描
-
个别用户工作:个别用户可能希望执行某些程序,如数据库备份
-
2.2、语法
- 语法:
crontab [选项]
- 常用选项:
- -e:编辑crontab定时任务
- -l:查询crontab任务
- -r:删除当前用户所有的crontab任务
3、磁盘分区和挂载
3.1、分区的方式
3.1.1、mbr分区
1、最多支持四个主分区
2、系统只能安装在主分区
3、扩展分区要占一个主分区
4、MBR最大只支持2TB,但是拥有最好的兼容性
3.1.2、gtp分区
1、支持无限多个主分区
2、最大支持18EB的大容量
3.2、Linux分区
3.2.1、原理
1、无论有几个分区,无论分区给哪一个目录使用,对于Linux来说,他只有一个根目录,一个独立且唯一的文件结构。Linux中的每一个分区都是组成文件系统的一部分。
2、Linux采用”载入“的处理方法。他的整个文件系统中包含一整套的文件和目录,且将一个分区和一个目录联系起来。载入一个分区将会让他的存储空间在一个目录下获得。
3、示意图
3.2.2、查看系统分区情况
-
语法:
lsblk -f
-
演示:
3.3、磁盘情况查看
3.3.1、查看系统整体的磁盘情况
- 语法:
df -h
- 演示:
3.3.2、查看指定目录的磁盘使用情况
-
语法:
du -h /目录
(不带目录则默认是当前目录)- -s:指定目录占用大小汇总
- -h:带计量单位
- -a:含文件
- –max-depth=1:子目录深度
- -c:列出明细的同时增加汇总值
-
案例:查看/opt目录的磁盘占用情况,深度为1
3.4、工作常用的关于磁盘的指令
统计/home 文件夹下的文件数量
ls -l /home | grep "^-" | wc -l
统计/home文件夹下的目录数量
ls -l /home | grep "^d" | wc -l
统计/home文件夹下文件数,包括子文件夹里面的
ls -lR /home | grep "^-" | wc -l
统计文件夹下目录的数量,包括子文件夹里面的
ls -lR /home | grep "^d" | wc -l
以树状显示目录结构
4、网络配置
Linux一般都是用来作为服务器使用的,所以需要其ip地址是静态的。可以直接修改配置文件来指定ip并可以连接到外网。
vim /etc/sysconfig/network-scripts/ifcfg-ech0
修改后需要重启服务生效
service network restart
reboot
5、进程管理
5.1、进程的基本介绍
1、程序的一次执行就是进程,每个进程都有PID(进程id)
2、每个进程都有一个父进程,这个父进程可以有多个子进程
3、进程可能以两种方式存在。前台和后台。前台进程就是用户当前屏幕上可以进行操作的进程。后台进程指屏幕看不到的进程。
4、一般系统的服务都是后台进程,常驻在系统中,直到关机才结束。
5.2、查看系统运行的进程
-
指令:
ps -aux
-
演示:
-
以全格式显示系统中所有进程:
ps -ef
5.3、终止进程
- 指令
kill [选项] 进程号
killall 进程名
- 选项:
-9
表示强制杀死进程
5.4、查看进程树
-
语法:
pstree [选项]
-
常用选项
-p
:显示pid-u
:显示进程的所属用户
-
演示:
5.5、服务管理
5.5.1、概述
服务本质上是进程,是运行在后台的进程,又被称为守护进程
5.5.2、常用指令
service 服务名 [ start | stop | restart | reload | status ]
注意:CentOS7后不用service,用systemctl
5.5.3、演示
root@iZbp1dm5fdkrqk5zoa0y07Z:~# service mysql status
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2023-02-04 07:50:04 CST; 1 day 9h ago
Process: 451 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 650 (mysqld)
Status: "Server is operational"
Tasks: 40 (limit: 2194)
Memory: 437.8M
CGroup: /system.slice/mysql.service
└─650 /usr/sbin/mysqld
Feb 04 07:50:01 iZbp1dm5fdkrqk5zoa0y07Z systemd[1]: Starting MySQL Community Server...
Feb 04 07:50:04 iZbp1dm5fdkrqk5zoa0y07Z systemd[1]: Started MySQL Community Server.
root@iZbp1dm5fdkrqk5zoa0y07Z:~# service mysql stop
root@iZbp1dm5fdkrqk5zoa0y07Z:~# service mysql status
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Sun 2023-02-05 16:58:05 CST; 12s ago
Process: 451 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Process: 650 ExecStart=/usr/sbin/mysqld (code=exited, status=0/SUCCESS)
Main PID: 650 (code=exited, status=0/SUCCESS)
Status: "Server shutdown complete"
Feb 04 07:50:01 iZbp1dm5fdkrqk5zoa0y07Z systemd[1]: Starting MySQL Community Server...
Feb 04 07:50:04 iZbp1dm5fdkrqk5zoa0y07Z systemd[1]: Started MySQL Community Server.
Feb 05 16:58:03 iZbp1dm5fdkrqk5zoa0y07Z systemd[1]: Stopping MySQL Community Server...
Feb 05 16:58:05 iZbp1dm5fdkrqk5zoa0y07Z systemd[1]: mysql.service: Succeeded.
Feb 05 16:58:05 iZbp1dm5fdkrqk5zoa0y07Z systemd[1]: Stopped MySQL Community Server.
root@iZbp1dm5fdkrqk5zoa0y07Z:~# service mysql start
root@iZbp1dm5fdkrqk5zoa0y07Z:~# service mysql status
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2023-02-05 16:58:48 CST; 16s ago
Process: 12671 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 12691 (mysqld)
Status: "Server is operational"
Tasks: 39 (limit: 2194)
Memory: 365.5M
CGroup: /system.slice/mysql.service
└─12691 /usr/sbin/mysqld
Feb 05 16:58:47 iZbp1dm5fdkrqk5zoa0y07Z systemd[1]: Starting MySQL Community Server...
Feb 05 16:58:48 iZbp1dm5fdkrqk5zoa0y07Z systemd[1]: Started MySQL Community Server.
5.5.4、查看服务名
ls -l /etc/init.d/
5.5.5、 服务的运行级别
查看或修改默认的运行级别
vim /etc/inittab
运行级别 | 介绍 |
---|---|
0 | 关机状态 |
1 | 单用户 |
2 | 多用户无网络 |
3 | 多用户有网络 |
4 | 系统未使用,保留 |
5 | 图形化界面 |
6 | 重启状态 |
5.5.6、开机流程
5.5.7、chkconfig 指令
介绍:用于给每个服务的运行级别设置自启动和关闭
语法1:chkconfig --list | grep 服务名
查看服务的每个运行级别的状态
语法2:chkconfig 服务名 --list
语法3:chkconfig --level 5 服务名 on/off
注意1:Ubuntu 中 chkconfig 已经被 sysv-rc-conf 所替代
注意2:chkconfig重新设置服务自启动或关闭后需要reboot才能生效
5.6、动态监控进程
-
介绍:top和ps指令很相似,都是显示进程信息的指令。但是top在执行一段时间后可以更新正在运行的进程
-
语法:
top [选项]
-
常用选项:
- -d 数字:指定几秒进行更新,默认是3秒
- -i:不显示限制或者僵死的进程
- -p:指定pid来监控某个进程的信息
-
交互指令
- P:以cpu使用率排序,默认就是这个
- M:以内存使用率排序
- N:以PID进行排序
- q:退出top
-
案例1:监控特定用户
先输入top指令,然后回车;在输入u指令,接着输入用户名(服务名)即可
-
案例2:终止指定进程
先输入top指令,然后回车;在输入k指令,接着输入pid即可
-
案例3:指定系统状态更新时间为10秒
5.7、查看系统网络状态
-
语法
netstat [选项]
例如:netstat -nap
-
选项说明
-an
:按顺序排序输出-p
:显示哪个进程在调用
-
案例1:查看系统中所有的网络服务
-
案例2:查看mysql的网络信息
6、RPM和YUM
6.1、rpm包的管理
- 介绍:rpm是红帽软件包管理工具,类似于windows下的setup.exe,是一种下载包的打包以及安装工具
- rpm包名基本格式:firefox-45.0.0.1-1.el6.centos.x86_64.rpm
- rpm包查询指令
rpm -qa
:查询所有已经安装的rpm软件包rpm -qa | more
:分页显示rpm -qa | grep mysql
rpm -q 软件包名
:查看软件包是否安装rpm -qi 软件包名
:查看软件包的信息rpm -ql 软件包名
:查看软件包中的文件rpm -qf 文件全路径名
:查看文件所属的软件包
- 卸载rpm包:
rpm -e rpm包名
- 安装rpm包:
rpm -ivh rpm包的全路径名
- i=install 安装
- v=verbose 提示
- h=hash 进度条
6.2、YUM
- 介绍:一个shell前端软件包管理器。基于rpm包管理,可以下载rpm包并且安装,可以自动处理依赖关系,并且一次性安装所有依赖的软件包。使用yum的前提是可以联网。
- yum的基本指令
- 查询yum服务器是否有需要安装的软件:
yum list | grep xxx
- 安装指定的yum包:
yum install xxx
- 查询yum服务器是否有需要安装的软件: