0928
接之前的内容Linux学习笔记1
学习笔记3:
六、组管理和权限管理
6.1 Linux 用户user/组group/ 文件/目录 chown chgrp usermod
Linux中的每个用户必须属于一个组,不能独立于组外。在Linux中每个文件有所有者user、所在组group、其他组others的概念。
(注意:以下指令都要用root权限)
指令 | 功能 |
---|---|
①修改文件/目录的 所有者(用户名user)和所在组(group) | 文件/目录 —> 用户名&组 |
chown 用户名 文件/目录 | 修改 文件/目录 所有者(用户名) |
chgrp 组名 文件/目录 | 修改 文件/目录 所在的组 |
chown -R 用户名:组名 目录/文件列表 | 将目录或文件的拥有者修改为参数指定的用户名和组,目录或文件名列表用空格分隔。(见Linux实操篇—第四章—4.9) |
修改用户(user)所在的组(group) | |
usermod -g 组名 用户名 | 修改用户所在的组(见Linux实操篇—第四章—4.8) |
usermod -d 目录名 用户名 | 改变用户登录的初始目录/家目录 |
①修改文件/目录的 所有者(用户名user)和所在组(group): | |
②修改用户(user)所在的组(group): | |
6.2 权限管理
6.2.1 权限介绍
上图中的**-rw-r–r–. 和 drwx------.**具体含义见下图:
补充:
第0位中 字母d表示目录,-表示文件,字母l表示软链接(快捷方式),c表示字符设备(鼠标、键盘),字母b表示块文件(硬盘)。
rwx | 文件 | 目录 |
---|---|---|
r(read) | 可以读取,查看 | 可以读取,ls查看目录内容 |
w(write) | 可以修改,但不代表可以删除该文件,除非对该文件所在的目录有写权限,才可以删除该文件 | 可以修改,目录内创建+删除+重命名目录 |
x(execute) | 可以被执行 | 可以进入该目录 |
实例:
补充
数字1的含义:
如果是文件,表示硬链接的数;
如果是目录,则表示该目录的子目录个数。
6.2.2 权限修改 chmod
指令:chmod ①/② 文件/目录
①通过+、-、=变更权限:
+(添加权限)、-(除去权限)、=(赋予权限)
r(只读)、w(可写)、x(可执行)
u(所有者)、g(所在组)、o(其他人)、a(所有人,u+g+o)
例如:
+:chmod u=rwx,g=rx,o=x 文件/目录
-:chmod o+w 文件/目录
=:chmod a-x 文件/目录
②通过数字变更权限:
r=4 w=2 x=1
例如:rwx=4+2+1=7,
因此指令 chmod u=rwx,g=rx,o=x 文件名
就相当于 chmod 751 文件名
6.2.3 案例
实现:
图一
图二
图三
图四
七、定时任务调度 crond(crontab)
7.1 概念
任务调度就是指系统在某个时间执行可以完成特定任务的命令/程序/脚本/代码,比如备份mysql数据。
如果只是简单的任务,可以不用写脚本,直接在crontab中加入任务即可(见下面7.4 示例一);
对于比较复杂的任务,需要些脚本,即Shell编程(见下面7.5 示例二)。
7.2 分类
1.系统工作:有些重要的工作必须周而复始地执行,如病毒扫描等;
2.个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
7.3 基本语法
crontab [选项]
常用选项:
-e — edit,编辑crontab定时任务
-l — 查询crontab任务
-r — remove,删除当前用户所有的crontab任务
7.4 示例一(直接在crontab中加入任务)
任务调度文件在 /etc/crontab 中。
示例一:
解释:
注意:星期几和几号最好不要同时出现,因为它们定义的都是具体的某一天,容易让管理员混乱。
注意上图中的第六个例子。
7.5 示例二(Shell编程)
1.先编写一个shell文件:
vim /home/reus/文档/myShell/recordDateAndCal.sh
2.给recordDateAndCal.sh文件一个可执行权限:
chmod 744 /home/reus/文档/myShell/recordDateAndCal.sh
3.编辑调度任务 (设定执行recordDateAndCal.sh的时段)
crontab -e:
7.6 示例三(shell编程,涉及数据库)
要求:每天凌晨2:00将mysql数据库testdb,备份到文件中 mydb.bak
步骤:
第一步:先编写一个文件 /home/mytask1.sh
/user/local/mysql/bin/mysqldump -u root -proot testdb >> /tmp/mydb.bak
第二步:给mytask1.sh一个可执行权限
第三步:crontab -e
第四步:02*** /home/mytask3.sh
第五步:成功
7.7 crond相关指令
指令 | 功能 |
---|---|
conrtab-r | 终止/删除任务调度 |
conrtab-l | 列出当前有哪些任务调度 |
service crond restart | [重启任务调度] |
八、磁盘分区
8.1 分区的基础知识
1. 分区的方式
2. Windows和Linux磁盘分区的区别
Windows:
Linux:
原理介绍:
挂载mount:把某个磁盘分区挂载到某个目录下,即将一个分区和一个目录联系起来。
卸载umount:想把某个分区删除掉的时候,就用卸载指令。
原理示意图:
硬盘说明:
硬盘说明示意图:
8.2 挂载的经典案例(给Linux添加一块新硬盘)
1. 需求
当虚拟机的磁盘空间快用完时,需要给磁盘添加空间,即给Linux添加一块新硬盘,这就是挂载。
2. 步骤
①给虚拟机添加硬盘
(1) 点击虚拟机;再点击下面的设置
(2)点击硬盘;再点击添加
(3)点击硬盘;再点击下一步
(4)选择SCSI;点击下一步
(5)选择创建新的虚拟磁盘;再点击下一步
(6)指定磁盘容量;选择将虚拟机磁盘拆分成多个文件;点击下一步;点击完成
(7)点击确定保存
(8)输入命令发现没有看见新建硬盘;这里重启一次
(9)重启成功,再次登录进入系统
(10)再次输入命令查看到硬盘(但是这里还没有分区)
②分区
(1)输入命令fdisk /dev/sdb
fdisk /dev/sdb
(2)再输入m
m
(3)再输入n
n
(4)再输入p
p
//这里输入e也可以
(5)再输入1;回车;回车
(6)输入w点回车
w
(7)再次输入命令 lsblk -f;可以查看到分区(但是没有其对应的id号和文件类型)——因为只是分了区没有格式化【只有格式化之后才能存储数据】
lsblk -f
③格式化
1)输入命令回车,去格式化
mkfs -t ext4 /dev/sdb1
(2)再次输入命令回车,发现磁盘格式化成功了
lsblk -f
④挂载
(1)先创建一个目录 /home/newdisk(但是进去之后发现里面是空的,因为没有挂载)
(2)挂载mount /dev/sdb1 /home/newdisk(这里有一个毛病,因为这是临时挂载,当你重启机器的时候设备和文件之间的挂载关系会断开)
mount /dev/sdb1 /home/newdisk
⑤设置为自动挂载(永久挂载)
(1)编辑文件,输入命令vim /etc/fstab;进入界面
vim /etc/fstab
(2)按yyd拷贝一份
(3)重新编辑,输入wq保存退出
(4)使编辑后可以永久挂载,为了使之生效输入mount -a命令回车;再次重启
mount -a
8.3 如何卸载断开
1.进入终端;进入查看;执行umount /dev/sdb1 命令(发现不能卸载——在同一个目录相互冲突)
umount /dev/sdb1
2.从新返回上级目录,再次执行命令发现卸载成功
8.4 磁盘情况查询
1.查询系统整体磁盘使用情况(查看百分比)
基本语法:df -lh
2.查询指定目录的磁盘占用情况
指令 | 功能 |
---|---|
du -h /目录 | 查看当前目录的磁盘占用情况 |
选项 | 含义 |
-s | 指定目录占用大小汇总 |
-h | 带计量单位 |
-a | 含文件 |
–max-depth=1 | 子目录深度,这里的深度为1 |
-c | 列出明细的同时,增加汇总值 |
3.磁盘情况—工作实用指令
①统计 目录/home/reus/文档 下的文件个数
ls -l /home/reus/文档 | grep “^-” | wc -l
②统计 目录/home/reus/文档 下的目录个数
ls -l /home/reus/文档 | grep “^d” | wc -l
③统计 目录/home/reus/文档 下的文件个数,包括子目录里的文件
ls -lR /home/reus/文档 | grep “^r” | wc -l
④统计 目录/home/reus/文档 下的目录个数,包括子目录里
ls -lR /home/reus/文档 | grep “^d” | wc -l
⑤以树状显示目录结构
(1)先安装tree中间一直确定(提示输入:y)
yum install tree
(2)输入tree命令
tree