三、实用命令
3.5 组管理和权限管理
Linux组基本介绍:在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其他组的概念。
文件:
- 所有者
- 所在组
- 其他组:除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组
3.5.1 文件/目录所有者
- 一般为文件的创建者,谁创建了文件,就自然成为该文件的所有者。
查看文件的所有者
指令:
ls -ahl-a:all所有-h:human用户-l:long长列表形式
修改文件所有者
- 指令:
chown 用户名 文件名:change owner
组的创建
指令:
groupadd举例:创建fox用户,并将它放入monster组中
groupadd monsteruseradd -g monster fox
查看文件/目录的所在组
- 当某个用户创建了一个文件后,默认这个文件的所在组就是该用户的所在的组。
- 基本指令:
ls -ahl
修改文件所在的组
- 基本指令:
chgrp 组名 文件名:change group
改变用户所在组
指令
usermod -g 组名 用户名:user modifyusermod -d 目录名 用户名 改变该用户登陆的初始目录
3.5.2 权限介绍

- rw- r-- r--第1个:文件的类型
-:普通文件d:目录l:软链接c:字符设备(鼠标、键盘)b:块文件,应盘
第234个:文件所有者权限
r:可读(read)w:可写(write),可以修改,但是不代表可以删除该文件。删除文件的前提是有写的权限x:可执行(execute)
- 第467个:文件所在组的用户的权限
- 第8910个:文件其他组的用户的权限
1- 如果是文件,表示硬链接的数量
- 如果是目录,表示该目录的子目录数量
tom:文件所有者police:文件所在组6:- 如果是文件,表示文件的大小
- 如果是目录,则为4096
3月18 19:24:文件的最后修改时间ok.txt:文件名
rwx作用到文件
r:可读(read)w:可写(write),可以修改,但是不代表可以删除该文件。删除文件的前提是有写的权限x:可执行(execute)
rwx作用到目录
r:可读(read)w:可写(write),可以修改,目录内创建+删除+重命名目录x:可执行(execute),可以进入该目录

3.5.3 权限管理
修改权限
- 指令:
chmod:可以修改文件或目录的权限 基本方式:
chmod u=rwx,g=rx,o=x 文件或目录名:指定文件或目录权限chmod o+w 文件目录名:增加其他人的可读权限chmod a-x 文件目录名:减少所有人的可执行权限
选项介绍
u:所有者g:所有组o:其他人a:所有人(u+g+o)
第二种方式
规则:
r=4w=2x=1rwx=4+2+1=7
chmod u=rwx,g=rx,o=x相当于chmod 751
修改文件所有者
指令:
chown 新所有者名 文件名chown 新所有者名:新所在组名 文件名-R:如果是目录,则使其目录下所有子文件夹或目录递归生效chown -R 新所有者名:新所在组名 文件名
修改文件所在组
指令:
chgrp 新组名 文件名chgrp -R 新组名 目录名:递归修改
3.6 定时任务调度
3.6.1 任务调度
- 任务调度:是指系统在某个时间执行的特定的命令或程序
任务调度分类
- 系统工作:有些重要的工作必须周而复始地执行,如病毒扫描等
- 个别用户工作:个别用户可能希望执行某些程序,如对mysql数据库的备份
crontab
- 基本语法:
crontab [选项] 常用选项:
-e:编辑crontab定时任务-l:查询crontab任务-r:删除当前用户所有的crontab任务service crond restart:重启任务调度
- 如果只是简单的任务,可以不用写脚本,直接在
crontab中加入任务即可;对于比较复杂的任务,需要写脚本(shell脚本) 快速入门:
- 设置个人任务调度:
crontab -e 输入任务到调度文件:
*/1 * * * * ls -l /etc/ > /tmp/to.txt- 每小时的每分钟执行
ls -l /etc/ >> /tmp/to.txt命令
- 每小时的每分钟执行
- 保存退出后生效:
:wq
- 设置个人任务调度:
- 5个占位符的说明
| 项目 | 含义 | 范围 |
|---|---|---|
| 第一个“*” | 一小时当中的第几个分钟 | 0-59 |
| 第二个“*” | 一天当中的第几个小时 | 0-23 |
| 第三个“*” | 一个月当中的第几天 | 1-31 |
| 第四个“*” | 一年当中的第几月 | 1-12 |
| 第五个“*” | 一周当中的星期几 | 0-7(0和7都代表星期热) |
- 特殊符号的说明
| 特殊符号 | 含义 |
|---|---|
| * | 代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思 |
| , | 代表不连续的时间。比如“0 8,,1,16 * * * 命令”,就代表在每天的8点、12点、16点都执行一次命令 |
| - | 代表连续的时间范围。比如“0 5 1-6 命令”,代表在周一到周六的凌晨5点执行命令 |
| */n | 代表每个多久执行一次。比如“/10 * 命令”,代表每隔10分钟就执行一遍命令 |
- 特定时间执行任务案例
| 时间 | 含义 |
|---|---|
| 45 33 * 命令 | 在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分都会执行命令。注意:星期几和几号不要同时出现 |
应用案例
每隔1分钟,将当前的日期信息,追加到
/tmp/mydate文件中- 编写文件带有指令信息的
/home/mytask1.sh:date >> /tmp/mydate
- 编写文件带有指令信息的


- 给
mytask1.sh一个可执行权限

- 执行命令:
crontab -e

- 编辑指令:
*/1 * * * * /home/mytast1.sh

每天凌晨2点将mysql数据库testdb,备份到文件mydb.bak中
- 先编写一个文件
/home/mytast.sh,写入指令:/usr/local/mysql/bin/mysqldump -uroot -proot testdb > /tmp/mydb.bak - 给mytask.sh一个可执行权限:
chmod 744 /home/mytask.sh - 开启任务调度:
crontab -e,写入任务:0 2 * * * /home/mytask/sh
- 先编写一个文件
3.7 Linux磁盘分区、挂载
3.7.1 分区基础知识
mbr分区
- 最多支持4个主分区
- 系统只能安装在主分区
- 扩展分区要占一个主分区
- mbr最大只支持2TB,但拥有最好的兼容性
gtp分区
- 支持无限多个主分区(但操作系统可能限制,比如windows下最多128个分区)
- 最大支持18EB的大容量(EB=1024PB,PB=1024TB)
- windows7 64位之后支持gtp
- windows下的磁盘分区

3.7.2 Linux分区
- 原理介绍:Linux无论有几个分区,分给哪一个目录使用,归根结底只有一个根目录,一个独立且唯一的文件结构。Linux中每个分区都是用来组成整个文件系统的一部分。
- Linux采用了一个叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录练习起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。

硬盘说明:
- linux硬盘分IDE硬盘和SCSI硬盘,目前基本上都是SCSI硬盘
对于IDE硬盘,驱动器标识符为“hdx~”
- “hd”表名分区所在设备的类型,这里指IDE硬盘。
“x”为盘号:
- a为基本盘
- b为基本从属盘
- c为辅助主盘
- d为辅助从属盘
- “~”代表分区,前4个分区用数字1到4表示,是主分区或扩展分区;从5开始就是逻辑分区
- 对于SCSI硬盘,则表示为“sdx~”,SCSI硬盘使用“sd”来表示分区所在设备的类型,其余和IDE硬盘的标识方法一样。
查看系统的分区和挂载情况
- 查看系统的分区和挂载情况的指令:
lsblk [-f](速记:老师不离开 -f)

3.7.3 如何增加一块硬盘
- 虚拟机添加硬盘

分区:
fdisk /dev/sdb。开始分区后输入n,新增分区,然后选择p,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q。- m:显示命令列表
- p:显示磁盘分区,同
fdisk -1 - n:新增分区
- d:删除分区
- w:写入并推出
格式化:
mkfs -t ext4 /dev/sdb1- 其中
ext4是分区类型
- 其中
挂载:将一个分区与一个目录联系起来。基本指令:挂载:
mount 设备名称 挂载目录;卸载:umount 设备名称或挂载目录- 先创建一个
/home/newdisk - 挂载:
mount /dev/sdb1 /home/newdisk
- 先创建一个
设置可以自动挂载(永久挂载,重启后挂载关系人存在):通过修改
/etc/fstab实现,添加完成后,执行mount -a即刻生效vim /etc/fstab/dev/sdb1 /home/newdisk ext4 defaults 0 0

3.7.4 磁盘情况查询
- 基本语法:
df -h或df -lh 查询指定目录的磁盘占用情况:
du -h /目录-s:指定目录占用大小汇总-h:带计量单位-a:含文件--max-depth=1:子目录深度-c:列出明细的同时,增加汇总值
举例:
以深度1的形式查询
/opt目录下的文件大小:du -ach --max-depth=1 /opt
统计
/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
以树状形式显示目录
- 先要安装:
yum install tree - 再显示:
tree
- 先要安装: