跟老韩学Linux第三天
学习内容:
- 用户组
- 权限
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
一、用户组
组的概念:Linux中的每一个用户必须属于一个组,不能独立于组外。在Linux中每个文件都有 所有者 所有组 其他组的概念。
一般谁创建了该文件,谁就是文件的所有者
查看或修改文件所有者
查看文件的所有者: ls -ahl
修改文件的所有者: chown 用户名 文件名
组的创建及修改
组的创建基本指令: groupadd 组名
foxc创建的文件,所有者是fox,所有组是monster
修改文件的所在组: chgrp 组名 文件名
其他组
除文件的所有者和所在组的用户以外,系统的其他用户都是文件的其他组
改变用户的所在组
在添加用户时,可以指定将用户添加到那个组当中(没有指定默认创建一个和用户同名的组)。同样使用root权限可以改变某个用户的所在组
基本语法:
usermod -g 新组名 用户名
usermod -d 目录名 用户名 (改变该用户登陆的初始目录。用户需要有进入新目录的权限!!)
权限
ls -l 可以显示文件的权限
0 - 9 位的含义:
-
第0位:确定文件的类型(d,-,l,c,b)
. i是链接,相当于windows的快捷方式
. d是目录,相当于文件夹
. c是字符设备文件(鼠标,键盘)
. b是块设备,比如硬盘… -
第 1-3 位确定文件所有者对该文件的权限(User)
-
第 4-6 位确定文件所在组的用户对该文件的权限(Group)
-
第 7-9 位确定其他用户对该文件的权限(Other)
rwx对应到文件和目录的权限
项目 | 文件 | 目录 |
---|---|---|
r (read)可读 | 可以读取查看文件 | 可以ls查看目录内容 |
w (write) 可写 | 可以修改文件(但不代表可以删除,删除需要对文件所在的目录有写权限) | 可以修改,对目录内创建+删除+重命名目录 |
x (execute)可执行 | 文件可以被执行 | 可以进入该目录 |
rwx也可以用二进制表示 r=4 w=2 x=1
修改权限
基本指令: chmod 指令
方式一:使用+ - =
u:所有者 g:所有组 o:其他人 a:所有人(u+g+o)
- chmod u=rwx,g=rw,o=x 文件/目录
- chmod o+w 文件名/目录
- chmod a-x 文件名/目录
方式二: 通过数字变更权限
chmod u=rwx,g=rw,o=x 文件/目录 => chmod 741 文件/目录
修改文件的所有者
基本语法:
chown newowner 文件/目录 改变所有者
chown newowner:newgroup 文件/目录 改变所有者和所在组
-r 如果是目录,对其下所有文件和目录递归生效
修改文件/目录所在组
基本语法: chgrp newgroup 文件/目录
crond 任务调度
任务调度:系统在某个时间执行特定的命令或者程序
基本语法: crontab [选项]
有两种任务调度方式:
- 写脚本
- 简单调度,一条指令可以完成
占位符详细说明:
每一个 * 之间需要用空格分开
项目 | 含义 | 范围 |
---|---|---|
第一个* | 一个小时当中的第几分钟 | 0-59 |
第二个* | 一天当中的第几小时 | 0-23 |
第三个* | 一个月当中第几天 | 1-31 |
第四个* | 一年当中第几个月 | 1-12 |
第五个* | 一周当中的星期几 | 0-7(0和7都代表星期天) |
特殊符号说明
特殊符号 | 含义 |
---|---|
* | 代表任何时间,比如第一个 * 就代表每一分钟都执行一次的意思 |
, | 代表不连续的时间,如 “0 8,12,16 * * *” 就代表每天八点,12点,16点都执行一次命令 |
- | 代表连续的时间范围,如"0 5 * * 1-6 " 代表周一到周六的凌晨五点执行命令 |
*/n | 代表每隔多久执行一次 如" */10 * * * * " 代表没十分钟执行一次命令 |
自己写一个脚本,并加入到crond当中
写脚本->设置权限->进行调度
vim my.sh //创建脚本文件
//脚本文件里面的内容
date >> /home/mycal //追加date信息到/home/mycal 文件
cal >> /home/mycal //追加日历信息到/home/mycal 文件
//利用root身份给脚本文件授予执行权限
chmod u+x my.sh
//执行shell脚本的方法
./my.sh
//将脚本文件添加到任务调度当中去
crontab -e //设置个人任务调度
*/1 * * * * /home/my.sh //每分钟都执行一次my.sh脚本文件
at定时任务
- at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行
- 默认情况下,atd每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业
- at命令是一次性定时计划任务,执行一次后将会将任务扔掉!
- ps -ef | grep atd => 用于检测atd是否在运行
at命令格式:
at [选项] [时间]
Ctrl + D 结束at命令的输入
命令选项:
选项 | 含义 |
---|---|
-m | 当指定任务被完成后,将给用户发送邮件 |
-I | atq的别名 |
-d | atrm的别名 |
-v | 显示任务将被执行的时间 |
-c | 打印任务的内容到标准输出 |
- V | 显示版本信息 |
- q <队列> | 使用指定的队列 |
-f <文件> | 从指定的文件读入任务而不是从标准输入读入 |
-t <时间参数> | 以时间参数的形式提交要运行的任务 |
at时间定义
**实例: **
at now + 1 minutes //(一分钟后执行)
//会出现at>
at> date >> to.txt//要执行的任务
//输入完at后,输入两次ctrl+d
atq //用于查询任务
Linux分区
原理 Linux不管有几个分区,分给哪一目录使用,它归根结低就只有一个根目录,一个独立且唯一地文件架构,Linux中每个分区都是用来组成整个文件系统的一部分
硬盘分区挂载到目录上
下面这张图可以看到sda1挂载到/boot目录下.所有存在/boot目录下的文件都存在sda1分区当中
多个分区挂载到同一个目录下面
当一个硬盘的分区满了,可以再加一个硬盘,分区挂载到目录上
sda是第一个硬盘,sdb是第二个硬盘
查看所有设备的挂载情况
**命令: ** lsblk 或者 lsblk -f
UUID:唯一标识符号
挂载/解除挂载
挂载: 将一个分区与一个目录联系起来
命令:
mount 设备名称 挂载目录
mount /dev/sdb1 /newdisk
命令行挂载重启后会失效!
永久挂载:
取消挂载:
umount 设备名称/挂载目录
umount /dev/sdb1 或 umount /newdisk
磁盘使用情况查询
基本语法: df -h (查询指定目录占用情况,默认当前目录)
-s:指定目录
-h:带计量单位
-a:含文件
- -max-depth=1 :子目录深度
-c 列出明细的同时增加汇总值
实用工作指令:
- 统计/opt文件夹下文件的数目: ls -l /opt | grep"^-" | wc -l
- 统计/opt文件夹下目录的数目: ls -l /opt | grep"^d" | wc -l
- 统计/opt文件夹下(包括子文件夹)文件的数目: ls -lR /opt | grep"^-" | wc -l
- 统计/opt文件夹下(包括子文件夹)目录的数目: ls -lR /opt | grep"^d" | wc -l
- 以树状显示目录结构: tree (如果没有tree,使用 yum install tree 安装)